Fix pcase memoizing; change lexbound byte-code marker.
commite2abe5a13dffb08d6371b6a611bc39c3a9ac2bc6
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 6 Mar 2011 04:48:17 +0000 (5 23:48 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 6 Mar 2011 04:48:17 +0000 (5 23:48 -0500)
treeb9fb87041279f75ba8b6b304e0765bf412377af6
parentd032d5e7dfabfae60f3304da02c97cd1e189b9a2
Fix pcase memoizing; change lexbound byte-code marker.
* src/bytecode.c (exec_byte_code): Remove old lexical binding slot handling
and replace it with the a integer args-desc handling.
* eval.c (funcall_lambda): Adjust arglist test accordingly.
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-signature):
Handle integer arglist descriptor.
(byte-compile-make-args-desc): Make integer arglist descriptor.
(byte-compile-lambda): Use integer arglist descriptor to mark lexical
byte-coded functions instead of an extra slot.
* lisp/help-fns.el (help-add-fundoc-usage): Don't add a dummy doc.
(help-split-fundoc): Return a nil doc if there was no actual doc.
(help-function-arglist): Generate an arglist from an integer arg-desc.
* lisp/emacs-lisp/pcase.el (pcase--memoize): Rename from pcase-memoize;
Make only the key weak.
(pcase): Change the key used in the memoization table, so it does not
always get GC'd away.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Slight change to the
pcase pattern to generate slightly better code.
lisp/ChangeLog
lisp/emacs-lisp/byte-opt.el
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/cconv.el
lisp/emacs-lisp/macroexp.el
lisp/emacs-lisp/pcase.el
lisp/help-fns.el
src/ChangeLog
src/alloc.c
src/bytecode.c