diff options
author | Clément Pit--Claudel <clement.pitclaudel@live.com> | 2016-12-05 00:52:14 -0500 |
---|---|---|
committer | Clément Pit--Claudel <clement.pitclaudel@live.com> | 2016-12-12 17:41:27 -0500 |
commit | 27cada035a79b633e856a437dd0e037acc1d61c6 (patch) | |
tree | b02c80fe4e7b4ce9fe54912118e4fa5e723723c5 /etc | |
parent | a41ded87b318ce3cbeb0ba3624bcb83ae3b8a437 (diff) | |
download | emacs-27cada035a79b633e856a437dd0e037acc1d61c6.tar.gz |
Move backtrace to ELisp using a new mapbacktrace primitive
* src/eval.c (get_backtrace_starting_at, backtrace_frame_apply)
(Fmapbacktrace, Fbacktrace_frame_internal): New functions.
(get_backtrace_frame, Fbacktrace_debug): Use `get_backtrace_starting_at'.
* lisp/subr.el (backtrace--print-frame): New function.
(backtrace): Reimplement using `backtrace--print-frame' and `mapbacktrace'.
(backtrace-frame): Reimplement using `backtrace-frame--internal'.
* lisp/emacs-lisp/debug.el (debugger-setup-buffer): Pass a base to
`mapbacktrace' instead of searching for "(debug" in the output of
`backtrace'.
* test/lisp/subr-tests.el (subr-test-backtrace-simple-tests)
(subr-test-backtrace-integration-test): New tests.
* doc/lispref/debugging.texi (Internals of Debugger): Document
`mapbacktrace' and missing argument BASE of `backtrace-frame'.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/NEWS | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -74,6 +74,10 @@ for '--daemon'. * Changes in Emacs 26.1 +++ +** The new function 'mapbacktrace' applies a function to all frames of +the current stack trace. + ++++ ** Emacs now provides a limited form of concurrency with Lisp threads. Concurrency in Emacs Lisp is "mostly cooperative", meaning that Emacs will only switch execution between threads at well-defined |