diff options
author | Justus Winter <[email protected]> | 2016-11-18 09:58:18 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-12-08 16:15:20 +0000 |
commit | 404e8a4136bbbab39df7dd5119841e131998cc15 (patch) | |
tree | b4376ddd421de49fbff9b3bb379e2a1b1e114e46 /common/argparse.c | |
parent | gpgscm: Add flag TAIL_CONTEXT. (diff) | |
download | gnupg-404e8a4136bbbab39df7dd5119841e131998cc15.tar.gz gnupg-404e8a4136bbbab39df7dd5119841e131998cc15.zip |
gpgscm: Keep a history of calls for error messages.
* tests/gpgscm/init.scm (vm-history-print): New function.
* tests/gpgscm/opdefines.h: New opcodes 'CALLSTACK_POP', 'APPLY_CODE',
and 'VM_HISTORY'.
* tests/gpgscm/scheme-private.h (struct history): New definition.
(struct scheme): New field 'history'.
* tests/gpgscm/scheme.c (gc): Mark objects in the history.
(history_free): New function.
(history_init): Likewise.
(history_mark): Likewise.
(add_mod): New macro.
(sub_mod): Likewise.
(tailstack_clear): New function.
(callstack_pop): Likewise.
(callstack_push): Likewise.
(tailstack_push): Likewise.
(tailstack_flatten): Likewise.
(callstack_flatten): Likewise.
(history_flatten): Likewise.
(opexe_0): New variable 'callsite', keep track of the expression if it
is a call, implement the new opcodes, record function applications in
the history.
(opexe_6): Implement new opcode.
(scheme_init_custom_alloc): Initialize history.
(scheme_deinit): Free history.
* tests/gpgscm/scheme.h (USE_HISTORY): New macro.
--
This patch makes TinySCHEME keep a history of function calls. This
history can be used to produce helpful error messages. The history
data structure is inspired by MIT/GNU Scheme.
Signed-off-by: Justus Winter <[email protected]>
fu history
Diffstat (limited to 'common/argparse.c')
0 files changed, 0 insertions, 0 deletions