summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorClément Pit--Claudel <clement.pitclaudel@live.com>2016-12-05 00:52:14 -0500
committerClément Pit--Claudel <clement.pitclaudel@live.com>2016-12-12 17:41:27 -0500
commit27cada035a79b633e856a437dd0e037acc1d61c6 (patch)
treeb02c80fe4e7b4ce9fe54912118e4fa5e723723c5 /etc
parenta41ded87b318ce3cbeb0ba3624bcb83ae3b8a437 (diff)
downloademacs-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/NEWS4
1 files changed, 4 insertions, 0 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 44de3385629..fdd901f0dd6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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