1 @c ===================================================================
2 @node Revision History, Index, Todo List, Top
3 @section Revision History
5 Here is a summary of changes to edebug recorded in the RCS log, in
6 reverse chronological order.
8 Revision 2.9 1993/02/04 22:40:58 liberte
9 Fix handling of 0 and t edebug-form-specs.
11 Remove loop for consecutive special specs to simplify code.
13 Fix [&optional specs] again.
15 Bug: [&rest specs] still broken.
17 Bug: nested definitions may have problems still - let me know.
19 New variable edebug-debugger holds name of debugger for errors or quit.
21 Unrestore edebug-buffer's window-point after edebug display.
22 Needed in addition to setting the buffer point
23 because otherwise quitting doesnt leave point as is.
24 But doing it causes point not to be restored other times.
25 Let me know if there are problems.
27 Fix zmacs-regions typo for lemacs.
29 Revision 2.8 1993/01/13 18:34:19 liberte
30 Support edebugging top-level forms and generalize handling
33 Rename edebug-defun to edebug-eval-top-level-form.
34 edebug-defun still points to the latter.
36 Rename edebug-all-defuns to edebug-all-defs.
38 Add edebug-all-forms option and command.
40 Add edebug-continue-kbd-macro option.
42 Stop defining epoch::version.
44 Rename def-edebug-form-spec to def-edebug-spec. Arguments are unevaluated.
46 edebug-form-spec supports indirection. List specs may now
47 contain body, &define, name, arglist, def-body, def-form, and strings.
49 While parsing, commit to alternative after matching a symbol.
51 Fix nested &optional handling.
53 Improve syntax error reporting.
55 Use edebug-form-specs for many Emacs special-forms: defun, defmacro,
56 interactive, condition-case, cond, as well as lambda forms and
57 functions that take function arguments. Define specs for all cl.el
60 Fix printing of window objects so they show the correct buffer.
62 Numerous display fixes that are too complex to explain.
64 Display frequency counts along with coverage data by inserting comment
67 Add global break condition.
69 Add "next" mode to stop only after expression evaluation.
70 Add top-level-nonstop to stop no more.
72 Add time argument to edebug-bounce-point.
74 Allow editing of previous breakpoint condition.
78 Clean up the backtrace display better.
80 Support Lucid Emacs command events.
85 Fix edebug-get-displayed-buffer-points to actually change buffers.
87 Restore current buffer in edebug-set-buffer-points
89 Use epoch::version instead of edebug-epoch-running.
91 Apparently we need to set-buffer in edebug-pop-to-buffer,
92 even after select-window.
94 Define dynamically bound variables to quite byte-compiler,
95 but leave them unbound to cause runtime error if used improperly.
97 Fix other problems with window-start, current-buffer, and
98 edebug-outside-excursion.
100 Revision 2.6 92/03/19
101 Disable edebug-save-point. Now point of source code buffers is always
102 saved, mark is never saved, and window-start is always saved.
104 Change name of edebug-save-buffer-points to
105 edebug-save-displayed-buffer-points. Also, if non-nil, only displayed
106 buffer points are saved.
108 Restructure definition of epoch specific functions so there is no
109 overhead for non-epoch use.
111 Add support for custom-print functions to handle print-level and
112 print-circle. Use edebug-prin* functions instead of standard
115 Yet another change of the instrumenting scheme:
116 edebug-enter gets a lambda form which can be byte-compiled;
117 edebug-after gets the after expression index from edebug-before which
118 is given the before expression index. (Perhaps it is false economy to
119 avoid the after expression index.) edebug-after also gets the
120 evaluated expression result, so no explicit evals need be done.
122 Most of edebug-defun was moved to edebug-func-form which also
123 handles embedded defuns.
125 Add functions edebug-forms and edebug-sexps.
127 Rename edebug-list to edebug-list-form.
129 Use edebug-form-specs for all special forms. The spec may now be
130 a function which is called to process args. Added -form to
131 the names of special form parser functions.
133 Rename edebug-form-parser to edebug-interpret-form-spec. Add handling
134 of [...], function spec, and backtracking. &optional now only applies
135 to one following spec. Fixed some other bugs.
137 Added macro def-edebug-form-spec for convenience, and to convert
138 0 and t values to edebug-forms and edebug-sexps.
140 Add edebug-form-specs for mapcar, mapconcat, mapatoms, apply, and funcall
141 that all use the new function spec.
143 Rebuilt edebug-read-sexp to be simpler, faster, and more complete.
145 Accummulate frequencies of expression evaluation, displayable
146 with edebug-display-freq-count.
148 No longer do save-restriction since edebug's eval-region doesnt narrow.
150 Numerous other display changes related to source code buffer's
151 point and window-start.
153 Add -mode to the names of mode changing functions.
155 Set debugger to edebug-debug while inside edebug - it's almost
156 always useful inside, and not useful outside of edebug.
158 Add edebug-trace function to output FMT with ARGS to *edebug-trace* buffer.
160 Other changes I've forgotten.
162 Revision 2.5 91/07/25
166 If edebug-form-spec is t, evaluate all arguments.
168 If edebug-form-spec is 0, evaluate no arguments.
170 If edebug-form-spec is nil, evaluate macro args according
171 to edebug-eval-macro-args.
173 Save the outside value of executing macro.
175 Save and restore the outside restriction.
177 Dont force update for go and Go-nonstop.
179 Save and restore last-command-char, last-command,
180 this-command, last-input-char.
182 For epoch, do epoch::dispatch-events before sit-for
183 and input-pending-p since X events could interfere.
185 Warn about unsetting non-existent breakpoint.
187 Fix edebug-forward-sexp with prefix arg.
189 Add edebug-step-out to exit from current sexp.
191 Revision 2.4 91/03/18
192 Force update after go or Go-nonstop modes, so overlay arrow is correct.
194 Support debug-on-quit. Remove edebug-on-error.
196 Fix edebug-anonymous. Bug found by jackr@wpd.sgi.com (Jack Repenning).
198 Don't discard-input anymore. Easier to change modes this way.
200 Fix max-lisp-eval-depth and max-specpdl-size incrementing.
202 Save and restore points in all buffers, if
203 edebug-save-buffer-points is non-nil. Expensive!
204 Bug caught by wolfgang@wsrcc.com (Wolfgang S. Rupprecht)
206 Save standard-output and standard-input in edebug-recursive-edit
207 so that edebug-outside-excursion can restore them.
209 Call set-buffer in edebug-pop-to-buffer since
210 select-window does not do that.
212 Fix edebug's eval-defun to remember current buffer inside evaluations
213 and to evaluate top-level forms. Found by Jamie Zawinski.
215 Add edebug-interactive-entry to support interactive forms with
216 non-string arg. Bug found by Jack Repenning.
218 Simplify edebug-restore-match-data to just store-match-data.
219 Motivated by linus@lysator.liu.se.
221 Move the match-data call to before the outside
222 buffer is changed, since it assumes that.
224 Revision 2.3 91/01/17
226 Fix bug found by hollen@megatek.uucp.
227 Current buffer was not being restored.
229 Call edebug with (edebug begin end 'exp)
230 and add additional wrapper around body of functions:
231 (edebug-enter function body).
233 Make &optional only apply to immediate next arg
234 in edebug-interpret-form-spec (was edebug-macro-parser).
236 Catch debug errors with edebug. Yeah!
238 Reset edebug-mode on first function entry. Yeah!
239 Motivated by Dion Hollenbeck.
241 Add the missing bindings to the global-edebug-map.
243 eval-current-buffer now uses eval-region.
245 eval-region now does not narrow region.
246 Narrowing was the cause of the window-start being set wrong.
248 Reset edebug-mode only on
249 first entry of any function at each recursive-edit level.
251 Add edebug-backtrace, to generate cleaned up
252 backtrace. It doesnt "work" like the debug backtrace, however.
254 Require reselecting outside window even if
255 quit occurs, otherwise save-excursions may restore
256 buffer to the wrong window.
258 Revision 2.2 90/11/26
260 Shadow eval-defun and eval-region. Toggle
261 edebugging with edebug-all-defuns.
263 Call edebug with (edebug 'function begin end 'exp)
264 Suggested by Jamie Zawinski <jwz@lucid.com>.
266 Add edebug-interpret-form-spec to process macro args.
267 Motivated by Darryl Okahata darrylo@hpnmxx.hp.com.
269 Fix by Roland McGrath <roland@ai.mit.edu>
270 to wrap body of edebug-save-restriction in progn.
272 Fix by Darryl Okahata <darrylo%hpnmd@hpcea.hp.com>
273 to add (set-window-hscroll (selected-window) 0) to
274 edebug-pop-to-buffer.
276 Revision 2.1 90/11/16
280 Add edebug-form-spec to edebug macro calls. Thanks to Joe Wells.
282 edebug-forward-sexp uses step mode if no forward-sexp.
284 Revision 2.0 90/11/14 22:30:54 liberte
286 Handle lambda forms, function, interactive evals, defmacro.
288 Clean up display for Epoch - save and restore screen configurations.
289 Note: epoch 3.2 broke set-window-configuration.
290 Also, sit-for pauses do not always work in epoch.
292 Display evaluations window.
294 Display result after expression evaluation.
295 Thanks to discussions with Shinichirou Sugou.
297 Conditional and temporary breakpoints.
299 Change "continue" to "go" mode and add different "continue" mode.
301 Option to stop before symbols.
303 Fix by: Glen Ditchfield gjditchfield@violet.uwaterloo.ca
304 to handle ?# type chars.
307 Revision 1.5 89/05/10
308 Fix condition-case expression lists.
312 Revision 1.4 89/02/14
313 Fix broken breakpointing.
315 Temporarily widen elisp buffer during edebug.
317 Revision 1.3 89/01/30
318 More bug fixes for cond and let.
320 Another parsing fix backquote.
322 Fix for lambda forms inside defuns.
324 Leave point at syntax error, mark at starting position.
326 Revision 1.2 88/11/28
327 Bug fixes: cond construct didnt execute.
328 () in sexp list didnt parse
329 () as variable in condition-case didnt parse.
331 Revision 1.1 88/11/28