summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge from origin/emacs-24Paul Eggert2015-03-231-2/+4
|\| | | | | | | | | | | | | bb7b23c In `debug' don't try using window on inaccessible frame (Bug#17170). Conflicts: lisp/ChangeLog
| * In `debug' don't try using window on inaccessible frame (Bug#17170).Martin Rudalics2015-03-221-2/+4
| | | | | | | | | | * emacs-lisp/debug.el (debug): Don't try using "previous" window when its not live or on an invisible frame (Bug#17170).
| * Fix problems caused by calling 'recenter' in auto-revert (Bug#20122)Mario Lang2015-03-211-1/+2
| | | | | | | | | | | | | | lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): Only call `recenter' if `current-buffer' is equal to `window-buffer'. (cherry picked from commit 4a8160204325c4b955647fe9e0a944c1f8c705dd)
| * authors.el: Add missing ignored and renamed filesNicolas Petton2015-02-041-0/+2
| | | | | | | | | | * emacs-lisp/authors.el (authors-ignored-files) (authors-renamed-files-alist): Additions.
| * authors.el: backport some additionsGlenn Morris2015-02-011-1/+4
| | | | | | | | | | * lisp/emacs-lisp/authors.el (authors-obsolete-files-regexps) (authors-valid-file-names, authors-renamed-files-alist): Additions.
| * Backport: Add an extra column for Version in list-packages tableSteve Purcell2015-01-061-1/+1
| | | | | | | | | | | | | | * emacs-lisp/package.el (package-menu-mode): Use an extra column for the "Version" column, to accomodate date-and-time-based versions. (cherry picked from commit eaf25ad549dc5a9b26089f588e0a80268708a3d1)
| * Auto-commit of loaddefs files.Glenn Morris2015-01-021-2/+2
| |
| * Update copyright year to 2015Paul Eggert2015-01-0175-75/+76
| | | | | | | | Run admin/update-copyright.
* | Fix previous commit (again)Daniel Colascione2015-03-231-13/+16
| |
* | Fix previous commitDaniel Colascione2015-03-231-25/+25
| |
* | Try to avoid fontifying macros in funcall positionDaniel Colascione2015-03-231-1/+35
| | | | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp--el-non-funcall-position-p): New function. (lisp--el-match-keyword): Use it.
* | Handle setf methods in elisp font-locking.Tassilo Horn2015-03-211-7/+10
| | | | | | | | | | * emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-1): Also recognize (cl-)defmethod with (setf method) name.
* | Fix CL function name font-lock bug.Tassilo Horn2015-03-201-4/+7
| | | | | | | | | | * emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-1): Fix false positive in function name font-locking.
* | Fix elisp function name font-lock bug.Tassilo Horn2015-03-201-7/+11
| | | | | | | | | | * emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-1): Fix false positive in function name font-locking.
* | (cl-defsubst): Ignore false-positive occurrences of args via &cl-defsStefan Monnier2015-03-201-1/+2
| | | | | | | | | | | | | | Fixes: debbugs:20149 * lisp/emacs-lisp/cl-macs.el (cl-defsubst): Ignore false-positive occurrences of args via &cl-defs.
* | * lisp/emacs-lisp/pcase.el (pcase-lambda): Rewrite.Stefan Monnier2015-03-191-16/+19
| |
* | Fixes: debbugs:20141Stefan Monnier2015-03-191-2/+3
| | | | | | | | * lisp/emacs-lisp/eieio.el (object-slots): Return slot names as before.
* | EIEIO: Change class's representation to unify instance & class slotsStefan Monnier2015-03-188-662/+482
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/eieio-core.el (eieio--class): Change field names and order to match those of cl--class; use cl--slot for both instance slots and class slots. (eieio--object-num-slots): Use cl-struct-slot-info. (eieio--object-class): Rename from eieio--object-class-object. (eieio--object-class-name): Remove. (eieio-defclass-internal): Adjust to new slot representation. Store doc in class rather than in `variable-documentation'. (eieio--perform-slot-validation-for-default): Change API to take a slot object. (eieio--slot-override): New function. (eieio--add-new-slot): Rewrite. (eieio-copy-parents-into-subclass): Rewrite. (eieio--validate-slot-value, eieio--validate-class-slot-value) (eieio-oref-default, eieio-oset-default) (eieio--class-slot-name-index, eieio-set-defaults): Adjust to new slot representation. (eieio--c3-merge-lists): Simplify. (eieio--class/struct-parents): New function. (eieio--class-precedence-bfs): Use it. * lisp/emacs-lisp/eieio.el (with-slots): Use macroexp-let2. (object-class-fast): Change recommend replacement. (eieio-object-class): Rewrite. (slot-exists-p): Adjust to new slot representation. (initialize-instance): Adjust to new slot representation. (object-write): Adjust to new slot representation. * lisp/emacs-lisp/eieio-base.el (eieio-persistent-convert-list-to-object): Manually map initargs to slot names. (eieio-persistent-validate/fix-slot-value): Adjust to new slot representation. * lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-specializers): Extract from eieio--generic-static-symbol-generalizer. (eieio--generic-static-symbol-generalizer): Use it. * lisp/emacs-lisp/eieio-custom.el (eieio-object-value-create) (eieio-object-value-get): Adjust to new slot representation. * lisp/emacs-lisp/eieio-datadebug.el (data-debug/eieio-insert-slots): Declare to silence warnings. (data-debug-insert-object-button): Avoid `object-slots'. (data-debug/eieio-insert-slots): Adjust to new slot representation. * lisp/emacs-lisp/eieio-opt.el (eieio--help-print-slot): New function extracted from eieio-help-class-slots. (eieio-help-class-slots): Use it. Adjust to new slot representation. * test/automated/eieio-test-methodinvoke.el (make-instance): Use new-style `subclass' specializer for a change. * test/automated/eieio-test-persist.el (persist-test-save-and-compare): Adjust to new slot representation. * test/automated/eieio-tests.el (eieio-test-17-virtual-slot): Don't use initarg in `oset'. (eieio-test-32-slot-attribute-override-2): Adjust to new slot representation. * lisp/emacs-lisp/cl-preloaded.el (cl--class): Fix type of `parents'.
* | * cl-generic.el (cl-generic-generalizers): Clean up after braindamageStefan Monnier2015-03-181-2/+2
| |
* | Add classes as run-time descriptors of cl-structs.Stefan Monnier2015-03-185-147/+362
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class): New function. (cl--make-slot-desc): New constructor. (cl--plist-remove, cl--struct-register-child): New functions. (cl-struct-define): Rewrite. (cl-structure-class, cl-structure-object, cl-slot-descriptor) (cl--class): New structs. (cl--struct-default-parent): Initialize it here. * lisp/emacs-lisp/cl-macs.el (cl--find-class): New macro. (cl-defsubst, cl--defsubst-expand, cl--sublis): Move before first use. (cl--struct-default-parent): New var. (cl-defstruct): Adjust to new representation of classes; add default parent. In accessors, signal `wrong-type-argument' rather than a generic error. (cl-struct-sequence-type, cl-struct-slot-info) (cl-struct-slot-offset): Rewrite. * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-specializers) (cl-generic-generalizers): Rewrite. * src/alloc.c (purecopy): Handle hash-tables. * lisp/emacs-lisp/debug.el (debug--implement-debug-on-entry): Bind inhibit-debug-on-entry here... (debug): Instead of here. * lisp/emacs-lisp/macroexp.el (macroexp--debug-eager): New var. (internal-macroexpand-for-load): Use it. * lwlib/xlwmenu.c (pop_up_menu): Remove debugging code.
* | Improve dynamic elisp keyword font-lockingTassilo Horn2015-03-182-34/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * emacs-lisp/byte-run.el (macro-declarations-alist): New declaration no-font-lock-keyword. (defmacro): Flush font-lock in existing elisp buffers. * emacs-lisp/lisp-mode.el (lisp--el-update-after-load) (lisp--el-update-macro-regexp, lisp--el-macro-regexp): Delete functions and defconst. (lisp--el-match-keyword): Rename from lisp--el-match-macro. (lisp--el-font-lock-flush-elisp-buffers): New function. (lisp-mode-variables): Remove code for updating lisp--el-macro-regexp, and add lisp--el-font-lock-flush-elisp-buffers to after-load-functions.
* | * cl-macs.el (cl--transform-lambda): Refine last change.Stefan Monnier2015-03-171-11/+15
| | | | | | | | | | | | | | | | | | | | Fixes: debbugs:20125 * test/automated/cl-lib-tests.el: Use lexical-binding. (cl-lib-arglist-performance): Refine test to the case where one of the fields has a non-nil default value. Use existing `mystruct' defstruct. (cl-lib-struct-accessors): Use `pcase' to be a bit more flexible in the accepted outputs.
* | Edebug: Allow "S" to work during trace mode. Fixes debbugs #20074.Alan Mackenzie2015-03-161-16/+12
| | | | | | | | | | | | | | | | | | Also display the overlay arrow in go and go-nonstop modes. * emacs-lisp/edebug.el (edebug--display-1): Move the `input-pending' test to after trace mode's `sit-for'. (edebug--recursive-edit): Insert "(sit-for 0)" after "(edebug-overlay-arrow)".
* | * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): Optimize &aux.Stefan Monnier2015-03-162-49/+100
| | | | | | | | | | | | | | | | Rework to avoid cl--do-arglist in more cases; add comments to explain what's going on. (cl--do-&aux): New function extracted from cl--do-arglist. (cl--do-arglist): Use it. * lisp/emacs-lisp/cl-generic.el: Add Version: header, for ELPA purposes.
* | Make Edebug work with Follow Mode.Alan Mackenzie2015-03-161-34/+0
| | | | | | | | | | | | | | | | * emacs-lisp/edebug.el (edebug--display-1): Remove call to edebug-adjust-window. (edebug--recursive-edit): Don't bind pre/post-command-hooks to nil over the recursive edit. (edebug-adjust-window): Remove.
* | Font-lock elisp macros/special forms dynamicallyTassilo Horn2015-03-151-2/+34
| | | | | | | | | | | | | | | | * emacs-lisp/lisp-mode.el (lisp--el-macro-regexp): New defconst. (lisp--el-update-macro-regexp, lisp--el-update-after-load) (lisp--el-match-macro): New functions. (lisp-mode-variables): Update lisp--el-macro-regexp and add lisp--el-update-after-load to after-load-functions.
* | Support indenting backquote substitutions in cl-indentDaniel Colascione2015-03-151-11/+51
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-indent.el (lisp-indent-backquote-substitution-mode): New user option. (common-lisp-indent-function-1, common-lisp-loop-part-indentation) (common-lisp-indent-function): Support normally indenting backquote substitutions. (extended-loop-p): Rename to `lisp-extended-loop-p'.
* | Spelling and minor grammar fixesPaul Eggert2015-03-101-3/+3
| |
* | Add seq-into as a public functionNicolas Petton2015-03-091-5/+7
| | | | | | | | | | | | | | * lisp/emacs-lisp/seq.el: Make seq-into a public function (replacing seq--into) * test/automated/seq-tests.el: Add tests for seq-into * doc/lispref/sequences.texi: Add documentation for seq-into
* | * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't try toStefan Monnier2015-03-061-60/+61
| | | | | | | | | | unfold `closure's since byte-compile-unfold-lambda doesn't know how to do it.
* | package.el (package-refresh-contents): Update doc.Artur Malabarba2015-03-051-3/+4
| |
* | Replace *-function vars with generic functions in cl-generic.Stefan Monnier2015-03-044-295/+442
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-generic.el (cl--generic-generalizer): New struct. (cl-generic-tagcode-function, cl-generic-tag-types-function): Remove. (cl--generic-t-generalizer): New const. (cl--generic-make-method): Rename from `cl--generic-method-make'. (cl--generic-make): Change calling convention. (cl--generic): Add `options' field. (cl-generic-function-options): New function. (cl-defgeneric): Rewrite handling of options. Add support for :method options and allow the use of a default body. (cl-generic-define): Save options in the corresponding new field. (cl-defmethod): Fix ordering of qualifiers. (cl-generic-define-method): Use cl-generic-generalizers. (cl--generic-get-dispatcher): Change calling convention, and change calling convention of the returned function as well so as to take the list of methods separately from the generic function object, so that it can receive the original generic function object. (cl--generic-make-next-function): New function, extracted from cl--generic-make-function. (cl--generic-make-function): Use it. (cl-generic-method-combination-function): Remove. (cl--generic-cyclic-definition): New error. (cl-generic-call-method): Take a generic function object rather than its name. (cl-method-qualifiers): New alias. (cl--generic-build-combined-method): Use cl-generic-combine-methods, don't segregate by qualifiers here any more. (cl--generic-standard-method-combination): Segregate by qualifiers here instead. Add support for the `:extra' qualifier. (cl--generic-cache-miss): Move earlier, adjust to new calling convention. (cl-generic-generalizers, cl-generic-combine-methods): New generic functions. (cl-no-next-method, cl-no-applicable-method, cl-no-primary-method): Use the new "default method in defgeneric" functionality, change calling convention to receive a generic function object. (cl--generic-head-used): New var. (cl--generic-head-generalizer, cl--generic-eql-generalizer) (cl--generic-struct-generalizer, cl--generic-typeof-generalizer): New consts. * lisp/emacs-lisp/eieio-core.el (eieio--generic-generalizer) (eieio--generic-subclass-generalizer): New consts. (cl-generic-generalizers): New methods. * lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-generalizer) (eieio--generic-static-object-generalizer): New consts. (cl-generic-generalizers) <(head eieio--static)>: New method. * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Unfold closures like lambdas.
* | Spelling fixesPaul Eggert2015-03-032-3/+3
| |
* | Use `macroexp-parse-body'Daniel Colascione2015-03-031-7/+5
| | | | | | | | | | | | | | * lisp/emacs-lisp/generator.el: (iter-defun): Use `macroexp-parse-body'. * test/automated/generator-tests.el (cps-testcase): Use (cps-test-declarations-preserved): New test.
* | * lisp/progmodes/gud.el: Use lexical-binding.Stefan Monnier2015-03-031-3/+14
| | | | | | | | | | | | Fixes: debbugs:19966 * lisp/emacs-lisp/gv.el (gv-ref): Warn about likely problematic cases.
* | Address generator feedbackDaniel Colascione2015-03-031-37/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/control.texi (Generators): Correct missing word. Clarify which forms are legal in which parts of `unwind-protect'. Fix orphaned close parenthesis. * lisp/emacs-lisp/generator.el: Make globals conform to elisp style throughout. Use more efficient font-lock patterns. (cps-inhibit-atomic-optimization): Rename from `cps-disable-atomic-optimization'. (cps--gensym): New macro; replaces `cl-gensym' throughout. (cps-generate-evaluator): Move the `iter-yield' local macro definition here (iter-defun, iter-lambda): from here. * test/automated/generator-tests.el (cps-test-iter-close-finalizer): Rename `gc-precise-p' to `gc-precise'. * test/automated/generator-tests.el (cps-testcase): Use `cps-inhibit-atomic-optimization' instead of `cps-disable-atomic-optimization'.
* | Rename globals in generator.elDaniel Colascione2015-03-031-78/+78
| | | | | | | | | | * lisp/emacs-lisp/generator.el: Make globals conform to elisp style throughout.
* | # Standardize copyright and license notices for recently added filesGlenn Morris2015-03-031-1/+1
| |
* | emacs-lisp/package.el (package-autoremove): Fix if logic.Artur Malabarba2015-03-031-2/+2
| |
* | Add cl-iter-defunDaniel Colascione2015-03-021-0/+21
| | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-iter-defun): Add cl-iter-defun.
* | Fix docstrings, declarations in iter-defunDaniel Colascione2015-03-021-4/+10
| | | | | | | | | | * lisp/emacs-lisp/generator.el (iter-defun): Correctly propagate docstrings and declarations to underlying function.
* | Add support for generatorsDaniel Colascione2015-03-021-0/+789
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 78f7e34..e7d79d5 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2015-03-02 Daniel Colascione <dancol@dancol.org> + + * control.texi (Generators): New section + * elisp.text: Reference new section. + 2015-02-28 Eli Zaretskii <eliz@gnu.org> * searching.texi (Char Classes): Update the documentation of diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 448c7f2..4e9c119 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2015-03-02 Daniel Colascione <dancol@dancol.org> + + * cl.texi (Iteration Clauses): Mention iterator support. + 2015-02-25 Tassilo Horn <tsdh@gnu.org> * reftex.texi (Multifile Documents): Document diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7ce2e81..4ab4406 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,6 +1,8 @@ 2015-03-02 Daniel Colascione <dancol@dancol.org> - * vc/vc.el (vc-responsible-backend): Add autoload cooking for + * emacs-lisp/generator.el: New file. + + * vc/vc.el (vc-responsible-backend): Add autoload cookie for `vc-responsible-backend'. 2015-03-01 Michael Albinus <michael.albinus@gmx.de> diff --git a/test/ChangeLog b/test/ChangeLog index 684e98f..64ad851 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,5 +1,7 @@ 2015-03-02 Daniel Colascione <dancol@dancol.org> + * automated/generator-tests.el: New tests + * automated/finalizer-tests.el (finalizer-basic) (finalizer-circular-reference, finalizer-cross-reference) (finalizer-error): New tests.
* | check-declare.el: Use compilation-style warningsOleh Krehel2015-02-251-8/+32
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/check-declare.el (check-declare-warn): Add file-line-column info to the warning. (check-declare-files): Make sure that `check-declare-warning-buffer' is in `compilation-mode'. Make the order of the errors that same as in the file. Add code to ensure that `first-error' will work properly.
* | check-declare.el (check-declare-ext-errors): New defcustom.Oleh Krehel2015-02-251-1/+10
| | | | | | | | | | | | | | * emacs-lisp/check-declare.el (check-declare): New defgroup. (check-declare-verify): When `check-declare-ext-errors' is non-nil, warn about an unfound function, instead of saying "skipping external file".
* | * lisp/emacs-lisp/edebug.el (edebug--display): Save-excursion.Stefan Monnier2015-02-252-5/+10
| | | | | | | | | | | | | | Fixes: debbugs:19611 * lisp/emacs-lisp/debug.el (debugger-env-macro): Remove redundant save-excursion.
* | * lisp/emacs-lisp/macroexp.el (macroexp-parse-body): Handle cl-declareStefan Monnier2015-02-224-30/+28
| | | | | | | | | | | | | | and :documentation. Change return value format accordingly. * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): * lisp/emacs-lisp/pcase.el (pcase-lambda): Adjust accordingly. * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): Use macroexp-parse-body.
* | Spelling fixesPaul Eggert2015-02-211-7/+6
| | | | | | | | | | | | | | | | * lisp/cedet/semantic/doc.el (semantic-documentation-comment-preceding-tag): Rename from semantic-documentation-comment-preceeding-tag. All uses changed. Leave an obsolete alias behind. * src/lisp.h (DEFINE_NON_NIL_Q_SYMBOL_MACROS): Rename from DEFINE_NONNIL_Q_SYMBOL_MACROS. All uses changed.
* | # Auto-commit of loaddefs files.Glenn Morris2015-02-201-1/+1
| |
* | * lisp/emacs-lisp/eieio-opt.el (eieio-help-class): Fix bug#19891Stefan Monnier2015-02-191-0/+1
| | | | | | | | | | | | | | Fixes: debbugs:19891 * lisp/emacs-lisp/eieio-opt.el (eieio-help-class): `eieio-class-parents' returns classes, not class names.
* | * lisp/emacs-lisp/cl-macs.el (cl-struct-slot-value): Handle a nil type.Stefan Monnier2015-02-191-3/+3
| |