• Stefan Monnier's avatar
    Fix pcase memoizing; change lexbound byte-code marker. · e2abe5a1
    Stefan Monnier authored
    * 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.
alloc.c 162 KB