| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(debug): In backtrace, show the renaming pairs for unbound
variables (up_p_a_pairs) if they are present.
* debug.h (debug_begin): Renamed to debug_frame.
* eval.c (eval): Wrap debug_begin/debug_end around function dispatch,
so TXR Lisp functions are included in backtraces.
* match.c (h_fun): Follow rename of debug_begin to debug_frame.
Pass in evaluated args, not the original ones.
(v_fun): Likewise.
* unwind.c (uw_push_debug): bindings argument renamed to env.
Bugfix: args argument was being assigned to ub_p_a_pairs.
* unwind.h (struct uw_debug): Member bindings renamed to env.
(uw_push_debug): Declaration updated.
|
|
|
|
|
| |
this is not a constant expression in C.
(debug): Handle the situation here.
|
|
|
|
| |
(debug): Some commands changed due to duplicates.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and used for next/step/finish stepping.
* Makefile (OBJS): debug.o moved to OBJS-y or OBJS-.
(OBJS-y, OBJS-): New variables.
$(PROG): Depends on OBJS-y also.
clean: clean $(OBJS-y).
depend: include $(OBJS-y) in dependency generation.
* configure: Underscores and dashes are interchangeable in
configure variables.
(yaccname_given, yacc_given): Default value is y, not yes.
(debug_support): New config variable.
(CONFIG_DEBUG_SUPPORT): New config.h symbol.
* debug.c (debug_depth): New global variable.
(debug_block_s): New symbol variable.
(next_depth): New static variable.
(debug): Renamed some commands. Introduced separate next, step
and finish.
(debug_init): debug_block_s initialized.
* debug.h (debug_depth, debug_block_s): Declared.
(debug_enter, debug_leave, debug_return): New macros.
(debug_check, debug_init): Conditionally defined based on
if this is a debug build.
* dep.mk: Regenerated.
* eval.c (eval): Instrumented with debug_enter, debug_leave,
debug_return.
* match.c (match_line, v_fun, match_files): Likewise.
* txr.c (txr_main): Bail if -d or --debug used in build
that lacks debug support.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
than nil, otherwise hitting enter tries to repeat the nil command.
(show_bindings): New function. Prints all levels of bindings.
(debug): Flip the corresponding print flags after printing the current
form or data, so they are not printed for every prompt.
On EOF from standard input, substitute the q command.
If enter is hit and there is no last command, just re-print the prompt.
The v command uses show_bindings to dump the environment.
* eval.c (eval): When calling debug_check, pass the env objects, rather
than the bindings it contains.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enter stopped working. This was broken by recent bugfixes in the
string splitting functions, which introduced a semantics change.
* eval.c (flip_s, vecref_s): New symbol variables.
(op_modplace): New places (vecref ...) and (flip ...). Bugfix: dec
operator was incrementing.
(expand_place): Handle vecref and flip. Bugfix: pop has no
third argument and so is now handled by the same case as flip.
Bugfix: if a modify form has no third argument, then do not
resynthesize it with a nil third argument.
(eval_init): Initialize new symbol variables.
Register new flip operator. Register new list_vectory function
as intrinsic.
* lib.c (rplacd): When modifying the cdr field of a lazy cons,
then lapse the lazy function to nil! This is needed by user-defined
lazy conses, and it makes sense to do it this way rather than
put in some explicit interface.
(list_vector): New function.
* lib.h (list_vector): Declared.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the sequencing! Making it an inline function broke the tests.
But we can't have multiple evaluation either, so it's going to use
a temporary lexical variable.
(uses_or2): Macro which declares the lexical variable needed by or2.
* debug.c (debug): add uses_or2.
* eval.c (eval_intrinsic, op_modplace): Likewise.
* lib.c (lazy_str, lazy_str_force_upto, lazy_str_get_trailing_list):
Likewise.
* match.c (h_parallel, v_freeform, v_parallel, v_output): Likewise.
* parser.y (unquotes_occur): Likewise.
* stream.c (format): Likewise.
|
|
|
|
| |
Implemented better way of printing character context.
|
|
* Makefile (OBJS): New object file debug.o.
* dep.mk: Updated.
* match.c (h_fun): Use debug_begin and debug_end macros
to set up a debug frame for backtracing.
(match_line, match_files): Call debug_check to give debugger a chance
to instrument call.
(v_fun): Use debug_begin and debug_end macros to set up a debug frame
for backtracing. Call debug_check to give debugger a chance to
instrument call.
* stream.c (struct strm_ops): New function pointer, flush.
(stdio_maybe_write_error): Wrong word in error message corrected.
(stdio_flush): New static function.
(stdio_ops, pipe_ops): New function entered into tables.
(flush_stream): New function.
* stream.h (flush_stream): Declared.
* txr.c (help): New options documented.
(main): call to debug_init added. New debug options parsed and
opt_debugger set accordingly.
* unwind.c (uw_push_debug, uw_current_frame): New function.
* unwind.h (uw_frtype): New enumeration member UW_DBG.
(struct uw_debug): New frame variant.
(union uw_frame): New member, db.
(uw_push_debug, uw_current_frame): Declared,
* debug.c: New file.
* debug.h: New file.
|