summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-05-242-14/+49
|\
| * Let user adjust the column widths of the package menu.Chris McMahan2020-05-231-4/+24
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/package.el (package-name-column-width) (package-version-column-width, package-status-column-width) (package-archive-column-width): New defcustoms. (package-menu-mode): Use the values of defcustoms instead of hardcoded values. (Bug#41086)
| * Allow back-references in syntax-propertize-rules.Tassilo Horn2020-05-191-10/+25
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/syntax.el (syntax-propertize--shift-groups-and-backrefs): Renamed from syntax-propertize--shift-groups, and also shift back-references. (syntax-propertize-rules): Adapt docstring and use renamed function. * test/lisp/emacs-lisp/syntax-tests.el: New test. (syntax-propertize--shift-groups-and-backrefs): New ERT test.
* | * Windows: Use NUMBER_OF_PROCESSORS environment variable.Nicolás Bértolo2020-05-231-3/+8
| | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-effective-async-max-jobs): Use NUMBER_OF_PROCESSORS environment variable if system is Windows NT, "nproc" if it is in PATH or a default of 1.
* | * Workaround the 32768 chars command line limit in Windows.Nicolás Bértolo2020-05-231-1/+6
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-run-async-workers): Pass the compilation commands through a temporary file that is loaded by the child process. This is also done all other operating systems, even those that support long command lines. It should not be a problem since libgccjit uses temporary files too.
* | * lisp/emacs-lisp/comp.el (comp-num-cpus): Fix definition.Andrea Corallo2020-05-191-1/+1
| | | | | | | | Introduced by 2aec16ab75.
* | * Pacify with the byte-compilerAndrea Corallo2020-05-181-14/+14
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-num-cpus): New special variable. (comp-effective-async-max-jobs): Make use of `comp-num-cpus'. (comp-call-optim-form-call): Remove unnecessary parameter. (comp-call-optim-func): Reflect `comp-call-optim-form-call' parameter removal.
* | * Add new customize `comp-async-env-modifier-form' (Bug#40838)Andrea Corallo2020-05-181-0/+7
| | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-async-env-modifier-form): New customize. (comp-run-async-workers): Make use of `comp-async-env-modifier-form'.
* | * Make the Evil happy (Bug#41374)Andrea Corallo2020-05-181-5/+7
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-never-optimize-functions): Blacklist all primitives advised by evil-mode from trampoline optimization. (comp-call-optim-form-call): Prevent trampoline optimization for recursive calls at speed 2 to respect elisp original semantic.
* | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-05-171-1/+1
|\|
| * Don’t attempt to modify constant consesPaul Eggert2020-05-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From a patch privately suggested by Mattias Engdegård on 2020-05-11 in a followup to Bug#40671. * admin/charsets/cp51932.awk: * admin/charsets/eucjp-ms.awk: Generate code that does not modify constant conses. * doc/misc/emacs-mime.texi (Encoding Customization): * lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops): * lisp/frameset.el (frameset-persistent-filter-alist): * lisp/gnus/gnus-sum.el (gnus-article-mode-line-format-alist): Use append instead of nconc. * lisp/language/japanese.el (japanese-ucs-cp932-to-jis-map) (jisx0213-to-unicode): Use mapcar instead of mapc. * lisp/language/lao-util.el (lao-transcription-consonant-alist) (lao-transcription-vowel-alist): * lisp/language/tibetan.el (tibetan-subjoined-transcription-alist): Use copy-sequence. * test/src/fns-tests.el (fns-tests-nreverse): (fns-tests-sort, fns-tests-collate-sort) (fns-tests-string-version-lessp, fns-tests-mapcan): Use copy-sequence, vector, and list.
* | * Do not refuse to compile if a dynamic lambda is encounteredAndrea Corallo2020-05-151-22/+30
| | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-lex-byte-func-p): New subst. (comp-intern-func-in-ctxt): Do not crash if we still encounter a non lexical scoped lambda.
* | * Allow for logging async compilation command lineAndrea Corallo2020-05-151-0/+3
| | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-run-async-workers): When non zero verbose log async compilation command line invocation.
* | Sanity check on lambdas fixupsAndrea Corallo2020-05-151-1/+1
| | | | | | | | | | | | | | | | | | | | * src/pdumper.c (dump_do_dump_relocation): While fixing up lambda relocation verify placeholder coherency. * src/comp.c (syms_of_comp): Define symbol 'lambda-fixup'. * lisp/emacs-lisp/comp.el (comp-finalize-container): Leave a lambda-fixup as placeholder in the relocation as a sanity check.
* | * Fix speed 2 bootstrapAndrea Corallo2020-05-151-0/+1
| | | | | | | | | | (comp-call-optim-func): Do nothing if the function name is unknown.
* | Add anonymous lambdas reload mechanismAndrea Corallo2020-05-151-2/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/pdumper.c (dump_do_dump_relocation): Initialize 'lambda_gc_guard' while resurrecting. (dump_do_dump_relocation): Revive lambdas and fixup them. * src/comp.h (struct Lisp_Native_Comp_Unit): Define new 'lambda_gc_guard' 'lambda_c_name_idx_h' 'data_imp_relocs' 'loaded_once' fields. * src/comp.c (load_comp_unit): Use compilaiton unit 'loaded_once' field. (make_subr, Fcomp__register_lambda): New functions. (Fcomp__register_subr): Make use of 'make_subr'. (Fnative_elisp_load): Indent. (Fnative_elisp_load): Initialize 'lambda_gc_guard' 'lambda_c_name_idx_h' fields. (syms_of_comp): Add Scomp__register_lambda. * lisp/emacs-lisp/comp.el (comp-ctxt): Change 'byte-func-to-func-h' hash key test. (comp-ctxt): Add 'lambda-fixups-h' slot. (comp-emit-lambda-for-top-level): New function. (comp-finalize-relocs): Never emit lambdas in pure space. (comp-finalize-relocs): Fixup relocation indexes.
* | * Prune now unnecessary byte-code objectsAndrea Corallo2020-05-141-2/+10
| | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-finalize-container): Prune byte-code that was lambdas. (comp-compile-ctxt-to-file): Remove fixme.
* | * Rework comp-spill-lap-functionAndrea Corallo2020-05-141-35/+36
| | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Move code from to comp-intern-func-in-ctxt. (comp-intern-func-in-ctxt): New function, this guard in case byte-to-native-lambda-byte-func is nil.
* | Update spill LAP machinery and compile anonymous lambdasAndrea Corallo2020-05-142-56/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Make use of byte-to-native-lambdas-h and update for 'byte-to-native-func-def'. (comp-spill-lap-function): Rework logic to retrive LAP using 'byte-to-native-lambdas-h'. (comp-emit-for-top-level): Update for 'byte-to-native-function'. * lisp/emacs-lisp/bytecomp.el: Add commentary on new spill LAP mechanism. (byte-to-native-lambda, byte-to-native-func-def): New structures. (byte-to-native-top-level): Indent. (byte-to-native-lambdas-h): Update doc. (byte-compile-lapcode): Add a 'byte-to-native-lambda' instance into byte-to-native-lambdas-h instead of just LAP. (byte-compile-file-form-defmumble): Store into 'byte-to-native-func-def' only the byte compiled function, the LAP will be retrived through 'byte-to-native-lambdas-h'. (byte-compile-lambda): Return the byte compiled function.
* | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-05-147-126/+200
|\|
| * Turn Eldoc, Xref and Project into GNU ELPA :core packagesJoão Távora2020-05-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new packages state they require Emacs 26.3 to function, but a small part of project.el breaks this "soft" rule: the two functions requiring fileloop.el are incompatible with Emacs 26.3. * lisp/jsonrpc.el: Tweak comment near Package-Requires. * lisp/emacs-lisp/eldoc.el: Add Version and Package-Requires. * lisp/progmodes/flymake.el: Add comment near Package-Requires. * lisp/progmodes/project.el: Add Version and Package-Requires. * lisp/progmodes/xref.el: Add Version and Package-Requires.
| * * lisp/emacs-lisp/syntax.el: Fix bug#41195Stefan Monnier2020-05-121-6/+18
| | | | | | | | | | | | | | | | Allow use of `syntax-ppss-flush-cache` in `syntax-propertize-function`. (syntax-propertize--inhibit-flush): New var. (syntax-propertize): Bind it. (syntax-ppss-flush-cache): Test it.
| * Revert "Inhibit modification hooks when saving eieio-persistent's"Michael Heerdegen2020-05-121-2/+1
| | | | | | | | This reverts commit c59e878439833d89998e03134ee9060f9c449fd9.
| * Support sorting timer-list-mode by column (Bug#40854)Stefan Kangas2020-05-121-4/+31
| | | | | | | | | | | | | | * lisp/emacs-lisp/timer-list.el (timer-list-mode) (timer-list--idle-predicate, timer-list--next-predicate) (timer-list--repeat-predicate) (timer-list--function-predicate): Add support for sorting by column.
| * Base timer-list-mode on tabulated-list-mode (Bug#40854)Stefan Kangas2020-05-121-56/+49
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/timer-list.el (list-timers) (timer-list-mode): Inherit from 'tabulated-list-mode' instead of 'special-mode' and make the necessary changes to support that. * doc/lispref/os.texi (Timers): Update documentation.
| * Fix bug #40992 whilst still allowing breakpoint highlights in edebugAlan Mackenzie2020-05-111-15/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Strategy: when an instrumented function gets re-evaluated, save the former value of its symbol's `edebug' property in the new propery `ghost-edebug'. If this function is still being edebugged, edebug will then access its info from this new property. Also fix the bug whereby compile-defun'ing an instrumented function prevents the function being re-instrumented by I (edebug-instrument-callee). * lisp/emacs-lisp/edebug.el (edebug-get-edebug-or-ghost): New function. (edebug-read-and-maybe-wrap-form1): save value of `edebug' property in 'ghost-edebug'. (edebug-make-form-wrapper): Set value of `ghost-edebug' to nil. (edebug-make-form-wrapper, edebug-find-stop-point, edebug-next-break-point) (edebug-modify-breakpoint, edebug--overlay-breakpoints, edebug-set-breakpoint) (edebug-unset-breakpoints, edebug-toggle-disable-breakpoint) (edebug--backtrace-goto-source, edebug-display-freq-count) (edebug-set-conditional-breakpoint): Use edebug-get-edebug-or-ghost to access edebug information. (edebug-instrument-function): Also check a function is a cons before declaring it "already instrumented".
| * * lisp/emacs-lisp/pcase.el (pcase--fgrep): Look inside vectorsStefan Monnier2020-05-111-4/+9
| |
| * * lisp/emacs-lisp/syntax.el (syntax-propertize): Use run-hook-wrappedStefan Monnier2020-05-111-17/+21
| | | | | | | | | | This way we avoid making assumptions about the content of syntax-propertize-extend-region-functions
| * * lisp/emacs-lisp/pcase.el: Don't bind unused vars in branchesStefan Monnier2020-05-101-20/+27
| | | | | | | | | | | | | | (pcase--fgrep): Change calling convention to take bindings rather than just variables. (pcase--funcall, pcase--eval): Adjust to this new calling convention. (pcase--expand): Use `pcase--fgrep` to bind only the vars that are used.
| * * lisp/emacs-lisp/eieio.el (eieio pcase macro): Fix last-minute typoStefan Monnier2020-05-101-1/+1
| |
| * * lisp/emacs-lisp/eieio.el (eieio pcase macro): Remove unused var `is`Stefan Monnier2020-05-101-10/+9
| |
* | * Fix `comp-deferred-compilation-black-list' effectivenessAndrea Corallo2020-05-101-6/+7
| | | | | | | | | | * lisp/emacs-lisp/comp.el (native-compile-async): Fix logic for 'comp-deferred-compilation-black-list' effectiveness.
* | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-05-092-5/+37
|\|
| * Merge from origin/emacs-27Glenn Morris2020-05-091-5/+6
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | be0d1cac83 (origin/emacs-27) Small fix for type of 'display-fill-colu... c5e5839776 Fix customization of 'display-fill-column-indicator-charac... d5c184aa3e Refer to fill column indicator Info node in some places. e13300ae50 Merge branch 'emacs-27' of git.sv.gnu.org:/srv/git/emacs i... 0bae57033f Fix GTK's Tool Bar menu radio buttons 4c98aa7ea5 Minor clarifications in NEWS a1cbd05f38 Improve documentation of 'with-suppressed-warnings'. 4a895c1b26 Fix a typo in a comment 2caf3e997e Improve documentation of Hi Lock mode 7081c1d66f Fix typos in the Emacs user manual 0385771e2f Fix references to Speedbar in VHDL mode a76cafea0d Fix handling of FROM = t and TO = t by 'window-text-pixel-... # Conflicts: # etc/NEWS # src/xdisp.c
| | * Improve documentation of 'with-suppressed-warnings'.Philipp Stephani2020-05-081-5/+6
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Refer to 'byte-compile-warnings' instead of 'byte-compile-warning-types', as only the former variable documents the available warning types.
| | * Revert "cl-loop: Calculate the array length just once"Noam Postavsky2020-05-051-9/+3
| | | | | | | | | | | | Don't merge to master. This is a safe-for-release fix for Bug#40727.
| | * Revert "cl-loop: Add missing guard condition"Noam Postavsky2020-05-051-25/+7
| | | | | | | | | | | | Don't merge to master. This is a safe-for-release fix for Bug#40727.
| | * Revert "Refix conditional step clauses in cl-loop"Noam Postavsky2020-05-051-37/+59
| | | | | | | | | | | | Don't merge to master. This is a safe-for-release fix for Bug#40727.
| | * Remove calls to non-existent functions from edebug.el.Alan Mackenzie2020-05-041-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Do not merge to master. *lisp/emacs-lisp/edebug.el (edebug--display-1) (edebug-toggle-disable-breakpoint): Remove calls to edebug--overlay-breakpoints and edebug--overlay-breakpoints-removed which had been overlooked in a recent changed to edebug.
| | * Revert "Mark breakpoints in edebug with highlights". This fixes bug #40992Alan Mackenzie2020-05-031-40/+1
| | | | | | | | | | | | | | | | | | Do not merge to master. This reverts commit e8b3a15cb6ff187ce08afcb43bd9a0b7907268ca.
| * | Add new filter command to Package Menu (Bug#39903)Pieter van Oostrum2020-05-091-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/package.el (package-menu-filter-marked): New filter command. * test/lisp/emacs-lisp/package-tests.el (package-test-list-filter-marked): New test. (package-menu-mode-menu): (package-menu-mode-map): Update menu to include new filter command. * doc/emacs/package.texi (Package Menu): Document the new command. * etc/NEWS: Announce the new command.
* | | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-05-092-20/+12
|\| |
| * | Make pcase pattern 'eieio' respect slot access related functions.Zhu Zihao2020-05-081-10/+7
| | | | | | | | | | | | | | | * lisp/emacs-lisp/eieio.el: Make pcase pattern respect slot-missing and slot-unbound
| * | Don't increment array index in cl-loop twice (Bug#40727)Noam Postavsky2020-05-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Put the temp-idx increment in cl--loop-body, leaving just the side-effect free testing of the index for both cl--loop-body and cl--loop-conditions. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-arrays): Extend test to cover this case.
| * | Revert "cl-loop: Calculate the array length just once"Noam Postavsky2020-05-071-10/+4
| | | | | | | | | | | | | | | | | | | | | | | | It fails when using 'and' (parallel bindings) for arrays (Bug#40727). * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Revert to recomputing array length. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-arrays): New test.
* | | * Add 'comp-deferred-compilation-black-list' customizeAndrea Corallo2020-05-091-1/+13
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-deferred-compilation-black-list): New customize. (native-compile-async): Make use of 'comp-deferred-compilation-black-list'.
* | | * Fix bug#41112Andrea Corallo2020-05-071-30/+42
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-jump-table-optimizable): New function. (comp-emit-switch): Make use of 'comp-jump-table-optimizable'.
* | | * Add native compilation unit black listAndrea Corallo2020-05-061-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-bootstrap-black-list): New customize. (batch-native-compile): Rework to make use of 'comp-bootstrap-black-list'. (batch-byte-native-compile-for-bootstrap): Add assertion to make logic assumption explicit.
* | | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-05-046-29/+41
|\| |
| * | * lisp/emacs-lisp/eieio.el (oset, oset-default): Mark as obsoleteStefan Monnier2020-05-031-2/+4
| | |