summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'savahnna/master' into devAndrea Corallo2020-06-225-13/+13
|\
| * Revert last change in benchmark.elBasil L. Contovounesios2020-06-211-1/+1
| | | | | | | | | | | | | | | | For discussion, see the following thread: https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00791.html * lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): Revert to giving byte-compile a form rather than a closure.
| * Evaluate some unnecessarily quoted lambdasBasil L. Contovounesios2020-06-212-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/cedet/semantic/complete.el (semantic-displayer-tooltip-max-tags): * lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): * lisp/emacs-lisp/package.el (package--default-summary) (package-menu-filter-by-version): * lisp/eshell/em-pred.el (eshell-pred-file-time): * lisp/progmodes/verilog-mode.el (verilog-auto-lineup) (verilog-auto-reset-widths, verilog-auto-arg-format) (verilog-auto-inst-vector, verilog-auto-inst-template-numbers): * lisp/textmodes/bibtex.el (bibtex-dialect): * test/lisp/autoinsert-tests.el (autoinsert-tests-define-auto-insert-before) (autoinsert-tests-define-auto-insert-after): Remove some unnecessary quoting around anonymous functions.
| * Various battery.el improvements (bug#41808)Basil L. Contovounesios2020-06-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/battery.el: Mention BSD support in Commentary. Don't load preloaded lisp/emacs-lisp/timer.el. (battery--files): New function. (battery--find-linux-sysfs-batteries): Use it and make fewer syscalls. (battery-status-function): Perform GNU/Linux checks in increasing order of obsolescence: sysfs, ACPI, and then APM. Simplify Darwin check. Add :version tag now that battery-upower is the default. (battery-echo-area-format, battery-mode-line-format): Mention %s. (battery-load-low, battery-load-critical): New faces. (battery-update): Display battery-mode-line-format even if percentage is N/A. Apply faces battery-load-low or battery-load-critical according to the percentage, but append them so they don't override user customizations. Update all mode lines since we are in global-mode-string. (battery-linux-proc-apm-regexp): Mark as obsolete, replacing with... (battery--linux-proc-apm): ...this new rx definition. (battery-linux-proc-apm): Use it. Fix indentation. Simplify. (battery--acpi-rate, battery--acpi-capacity): New rx definitions. (battery-linux-proc-acpi): Use them. Fix pathological whitespace regexps. Simplify. (battery-linux-sysfs): Fix docstring and indentation. Reduce number of file searches. Simplify. (battery-bsd-apm): Fix docstring. Simplify. (battery-pmset): Fix docstring. Simplify ID regexp. * lisp/emacs-lisp/rx.el (rx-define): Indent as a defun. * test/lisp/battery-tests.el (battery-linux-proc-apm-regexp): Test new battery--linux-proc-apm rx definition. (battery-acpi-rate-regexp, battery-acpi-capacity-regexp): New tests.
| * Band-aid for edebugging generator bodies (Bug#40434).Philipp Stephani2020-06-141-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Edebug doesn't support them well. Rather than trying to fix Edebug, disable instrumentation for now to prevent annoying bugs. * lisp/emacs-lisp/generator.el (iter-defun, iter-lambda, iter-make) (iter-do): Don't attempt to instrument bodies that are mangled by the CPS transformer. * test/lisp/emacs-lisp/generator-tests.el (generator-tests-edebug): New regression test.
| * Ensure that getters and setters can be edebugged at the same time.Philipp Stephani2020-06-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | It's necessary to add a name suffix to setters defined with 'gv-define-setter' so that Edebug can distinguish between the getter and the setter (Bug#41853). * lisp/emacs-lisp/gv.el (gv-define-setter): Add a name suffix to setter definitions. * test/lisp/emacs-lisp/gv-tests.el (gv-setter-edebug): New regression test.
* | * Handle correctly pure delaration specifier.Andrea Corallo2020-06-221-8/+22
| | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-func): New slot 'pure'. (comp-spill-decl-spec): New function. (comp-spill-speed): Rework to use the later. (comp-spill-lap-function, comp-intern-func-in-ctxt): Spill pure decl value. (comp-function-optimizable-p): Check in the compiler env too if pure.
* | Allow per function speed declarationAndrea Corallo2020-06-223-53/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/comp.c (COMP_SPEED): Rename. (comp_t): Add 'func_speed' field. (emit_mvar_lval, compile_function): Update for per function speed. (Fcomp__compile_ctxt_to_file): COMP_SPEED renamed. * lisp/emacs-lisp/comp.el (comp-speed): Doc update. (comp-func): New 'speed' slot. (comp-spill-speed): New function. (comp-spill-lap-function, comp-intern-func-in-ctxt): Fill 'speed' slot. (comp-spill-lap-function): Gate -1 speed functions for native compilation and emit bytecode instead. (comp-spill-lap): Close over `byte-to-native-plist-environment'. (comp-latch-make-fill): Update for per function speed. (comp-limplify-top-level): Fill speed. (comp-propagate1, comp-call-optim-form-call, comp-call-optim) (comp-dead-code, comp-tco, comp-remove-type-hints): Update for per function speed.
* | Execute top level forms in the right lex/dyn scope.Andrea Corallo2020-06-222-8/+11
| | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-to-native-top-level): Add 'lexical' slot. (byte-compile-output-file-form): Update for new slot. (byte-compile-file-form-defmumble): Capture scope. * lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Specify execution scope.
* | Add native compiler dynamic scope supportAndrea Corallo2020-06-191-63/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an initial implementation to support dynamic scope. Arg parsing/binding it's done using the existing code in use for bytecode (no ad-hoc code is synthetized for that). * src/lisp.h (struct Lisp_Subr): Add lambda_list field. (SUBR_NATIVE_COMPILED_DYNP): New inliner. * src/alloc.c (mark_object): Update for Add lambda_list field. * src/eval.c (eval_sub, Ffuncall, funcall_lambda): Handle native compiled dynamic scope * src/comp.c (declare_lex_function): Rename from declare_function and rework. (declare_function): New function. (make_subr): Handle daynamic scope * src/pdumper.c (dump_subr): Update for lambda_list field. * lisp/emacs-lisp/comp.el (comp-func): Remove args slot. (comp-func-l, comp-func-d): New classes deriving from `comp-func'. (comp-spill-lap-function): Rework. (comp-prepare-args-for-top-level): New function. (comp-emit-for-top-level, comp-emit-lambda-for-top-level): Make use of `comp-prepare-args-for-top-level'. (comp-limplify-top-level): Use `comp-func-l'. (comp-limplify-function): Emit arg prologue only for dynamic scoped functions. (comp-call-optim-form-call): Use `comp-func-l'. (comp-call-optim, comp-tco): Do not optimize dynamic scoped code.
* | * Introduce latchesAndrea Corallo2020-06-131-36/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define a new kind of basic block 'latch' to close over loops. Its purpose is for now to emit calls to `comp-maybe-gc-or-quit' but in future will be usefull for the loop optimizer to exploit unboxes. * lisp/emacs-lisp/comp.el (comp-block): New base class. (comp-block-lap): New class for LAP derived basic blocks. (comp-latch): New class. (comp-bb-maybe-add, comp-make-curr-block, comp-emit-handler) (comp-emit-switch, comp-emit-switch, comp-limplify-top-level) (comp-addr-to-bb-name, comp-limplify-block) (comp-limplify-function): Update logic for new bb objects arrangment. (comp-latch-make-fill): New function. (comp-emit-uncond-jump, comp-emit-cond-jump): Update to emit latches. (comp-new-block-sym): Add a postfix paramenter.
* | Merge remote-tracking branch 'savahnna/master' into HEADAndrea Corallo2020-06-111-4/+4
|\|
| * Slightly improve commit 73be4d1ed5b190bd93e9bad6aebe43d0dea0d7d3.Philipp Stephani2020-06-101-4/+4
| | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-lambda-list, cl-lambda-list1) (cl-macro-list, cl-macro-list1): Use exactly the same specification as for &optional (sans the third optional list element).
| * Allow destructuring in &aux sections when using edebug (Bug#40431)Philipp Stephani2020-06-101-4/+4
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-lambda-list, cl-lambda-list1) (cl-macro-list, cl-macro-list1): Allow arbitrary 'cl-lambda' arguments in the &aux section. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-aux-edebug): New regression test.
* | * Fix usage of cl-destructuring-bind in package--delete-directory.Nicolás Bértolo2020-06-091-1/+1
| | | | | | | | | | * lisp/emacs-lisp/package.el (package--delete-directory): Fix usage of cl-destructuring-bind.
* | * Move final log after containers has been finalizedAndrea Corallo2020-06-081-3/+3
| | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-final): Remove function log. (comp-compile-ctxt-to-file): Add function log.
* | Merge remote-tracking branch 'savannah/master' into devAndrea Corallo2020-06-072-4/+7
|\|
| * * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add `make-byte-code'.Andrea Corallo2020-06-071-2/+2
| | | | | | | | | | | | `make-byte-code' wraps `vector' doing some sanity check on the input arguments. `vector' is in side-effect-and-error-free-fns so add `make-byte-code' to side-effect-free-fns.
| * Merge from origin/emacs-27Glenn Morris2020-06-071-2/+5
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 35661ef943 (origin/emacs-27) Fix typo in "(elisp) Type Keywords" 1af0e95fec Gnus nnir-summary-line-format has no effect dd366b5d3b Improve documentation of 'window-text-pixel-size' fbd49f969e * src/xdisp.c (Fwindow_text_pixel_size): Doc fix. (Bug#41... d8593fd19f Minor improvements to EDE and EIEIO manuals 3916e63f9e Have Fido mode also imitate Ido mode in ignore-case options cc35b197c7 Update package-menu-quick-help bf09106256 Improve documentation of 'sort-subr' 73749efa13 Update Ukrainian transliteration 30a7ee505a Fix Arabic shaping when eww/shr fill the text to be rendered 7d323f07c0 Silence some byte-compiler warnings in tests cf473e742f * test/lisp/battery-tests.el: New file. b07e3b1d97 Improve format-spec documentation (bug#41571) # Conflicts: # test/lisp/emacs-lisp/package-tests.el
| | * Update package-menu-quick-helpBasil L. Contovounesios2020-06-051-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/package.el (package--quick-help-keys): Filtering is now bound to the prefix '/', not the key 'f' (bug#41721). Advertise only the standard 'g' binding now that both it and 'r' are bound to revert-buffer (bug#35504). (package--prettify-quick-help-key): Avoid modifying string literals. (package-menu-filter): Reintroduce as obsolete alias of package-menu-filter-by-keyword for backward compatibility (bug#36981).
* | | * Rename comp-function-optimizable -> comp-function-optimizable-pAndrea Corallo2020-06-071-2/+2
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-function-optimizable): Rename into 'comp-function-optimizable-p'. (comp-function-call-maybe-remove): Use the new name.
* | | * Fix comp-call-optim-form-call for null `callee'Andrea Corallo2020-06-071-1/+2
| | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-call-optim-form-call): Guard agains null `calle'.
* | | * Improve propagate passAndrea Corallo2020-06-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | As function folding can generate 'setimm' insns handle them in the `comp-propagate-insn'. * lisp/emacs-lisp/comp.el (comp-propagate-insn): Handle 'setimm' insn.
* | | * Optimize optimizable variablesAndrea Corallo2020-06-071-11/+26
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-symbol-values-optimizable): New defconst. (comp-function-call-maybe-remove): New logic to to remove unnecessary `symbol-value' calls.
* | | * Mitigate possible speed 3 miss-optimizationAndrea Corallo2020-06-061-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not perform trampoline optimization at speed 3 on function if their name is not unique inside the compilation unit. Note that the function can still be redefined in any other way therefore this is a mitigation. * lisp/emacs-lisp/comp.el (comp-func-unique-in-cu-p): New predicate. (comp-call-optim-form-call): Perform trampoline optimization for named functions only if they are unique within the current compilation unit.
* | | * Allow for optimizing anonymous lambdas in call-optimAndrea Corallo2020-06-061-7/+23
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-func-in-unit): New function. (comp-call-optim-form-call): Update logic for optimizing anonymous lambdas.
* | | Change 'direct-call' 'direct-callref' LIMPLE ops sematincAndrea Corallo2020-06-061-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Is cleaner to have the function c-name as first argument of 'direct-call' 'direct-callref'. This is preparatory to anonymous lambdas optimization. * lisp/emacs-lisp/comp.el (comp-propagate-insn): Use c-name when gathering the comp-func definition for direct calls. (comp-call-optim-form-call): Add put c-name as first argument of direct-call direct-callref when optimizing. * src/comp.c (emit_call): Update logic for having c-name as first arg of direct calls. (emit_call_ref): Rename 'subr_sym' into 'func'.
* | | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-06-062-13/+5
|\| |
| * | Un-deprecate oset and oset-defaultBasil L. Contovounesios2020-06-062-13/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For discussion see the following threads: https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg00630.html https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg00674.html https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00099.html * lisp/emacs-lisp/eieio.el (oset, oset-default): Un-deprecate. * lisp/emacs-lisp/eieio-core.el (eieio-oref): Declare gv-setter here instead of in lisp/emacs-lisp/eieio.el. Suggested by Stefan Monnier <monnier@iro.umontreal.ca>. (eieio-oref-default): Add gv-setter declaration. * etc/NEWS: Announce these changes. * doc/misc/eieio.texi (Accessing Slots): Document oref and oref-default as generalized variables. Consistently document getters before setters. * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Use lexical-binding. (eieio-test-13-init-methods): Simplify. (eieio-test-33-instance-tracker): Declare IT-list as special.
* | | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-06-041-3/+4
|\| |
| * | Merge from origin/emacs-27Paul Eggert2020-06-011-3/+4
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 44c0e074f7 * doc/emacs/buffers.texi (Icomplete): Mention icomplete-mi... 68b6dad1d8 Be more aggressive in marking objects during GC 36f508f589 ; * src/xdisp.c (find_last_unchanged_at_beg_row): Fix a typo. cc340da1fe Fix bug #41618 "(byte-compile 'foo) errors when foo is a m... 41232e6797 Avoid crashes due to bidi cache being reset during redisplay f72bb4ce36 * lisp/tab-bar.el (switch-to-buffer-other-tab): Normalize ... d3e0023aaa ; * etc/TODO: Fix formatting. (Bug#41497) a8ad94cd2f Fix mingw.org's MinGW GCC 9 warning about 'execve' # Conflicts: # lisp/tab-bar.el # nt/inc/ms-w32.h # src/alloc.c
| | * Fix bug #41618 "(byte-compile 'foo) errors when foo is a macro."Alan Mackenzie2020-05-311-3/+4
| | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile): Disentangle the eval of the final form from the pushing of 'macro onto it, doing the former first.
* | | * Introduce `comp-loop-insn-in-block'Andrea Corallo2020-06-031-29/+33
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-loop-insn-in-block): New macro. (comp-call-optim-func, comp-dead-assignments-func) (comp-remove-type-hints-func): Use `comp-loop-insn-in-block'.
* | | Merge remote-tracking branch 'savannah/master' into HEADAndrea Corallo2020-05-303-10/+22
|\| |
| * | * lisp/emacs-lisp/package.elm lisp/emacs-lisp/smie.el: Fix indentStefan Monnier2020-05-292-8/+16
| | | | | | | | | | | | Use the new "space after paren" convention to get the desired indentation
| * | * lisp/emacs-lisp/lisp-mode.el: Add new indentation conventionakater2020-05-291-2/+6
| | | | | | | | | | | | | | | | | | (calculate-lisp-indent): To distinguish code and data when indenting, introduce the convention that a space between an open paren and a symbol indicate that this should be indented as a simple data list.
* | | * Split type hint pass from dead code removal pass into dedicated one.Andrea Corallo2020-05-251-15/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given SSA prop overwrite mvar type slot we clean-up the compiler type hints as last. * lisp/emacs-lisp/comp.el (comp-passes): Add comp-remove-type-hints. (comp-remove-type-hints-func): Code move. (comp-dead-code): Do not call `comp-remove-type-hints-func'. (comp-remove-type-hints): Add as new pass.
* | | Fix GNU styleAndrea Corallo2020-05-241-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/comp.h: Fix GNU style. * src/comp.c (Fcomp__compile_ctxt_to_file): Likewise. * lisp/emacs-lisp/comp.el (comp--replace-output-file): Likewise. * src/pdumper.c (dump_do_dump_relocation): Likewise.
* | | Improve handling of native compilation units still in use in WindowsNicolás Bértolo2020-05-252-1/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When closing emacs will inspect all directories from which it loaded native compilation units. If it finds a ".eln.old" file it will try to delete it, if it fails that means that another Emacs instance is using it. When compiling a file we rename the file that was in the output path in case it has been loaded into another Emacs instance. When deleting a package we move any ".eln" or ".eln.old" files in the package folder that we can't delete to `package-user-dir`. Emacs will check that directory when closing and delete them. * lisp/emacs-lisp/comp.el (comp--replace-output-file): Function called from C code to finish the compilation process. It performs renaming of the old file if necessary. * lisp/emacs-lisp/package.el (package--delete-directory): Function to delete a package directory. It moves native compilation units that it can't delete to `package-user-dir'. * src/alloc.c (cleanup_vector): Call dispose_comp_unit(). (garbage_collect): Call finish_delayed_disposal_of_comp_units(). * src/comp.c: Restore the signal mask using unwind-protect. Store loaded native compilation units in a hash table for disposal on close. Store filenames of native compilation units GC'd in a linked list to finish their disposal when the GC is over. (clean_comp_unit_directory): Delete all *.eln.old files in a directory. (clean_package_user_dir_of_old_comp_units): Delete all *.eln.old files in `package-user-dir'. (dispose_all_remaining_comp_units): Dispose of native compilation units that are still loaded. (dispose_comp_unit): Close handle and cleanup directory or arrange for later cleanup if DELAY is true. (finish_delayed_disposal_of_comp_units): Dispose of native compilation units that were GC'd. (register_native_comp_unit): Register native compilation unit for disposal when Emacs closes. * src/comp.h: Introduce cfile member in Lisp_Native_Comp_Unit. Add declarations of functions that: clean directories of unused native compilation units, handle disposal of native compilation units. * src/emacs.c (kill-emacs): Dispose all remaining compilation units right right before calling exit(). * src/eval.c (internal_condition_case_3, internal_condition_case_4): Add functions. * src/lisp.h (internal_condition_case_3, internal_condition_case_4): Add functions. * src/pdumper.c (dump_do_dump_relocation): Set cfile to a copy of the Lisp string specifying the file path.
* | | 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.