summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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
| |
* | * lisp/emacs-lisp/smie.el (smie-prec2->grammar): Fix corner case problem.Stefan Monnier2015-02-181-2/+5
| |
* | Push mark before goto-char in jump-to-register and check-parensKelly Dean2015-02-181-1/+2
| | | | | | | | | | | | * register.el (jump-to-register): * emacs-lisp/lisp.el (check-parens): Push mark before goto-char so user doesn't lose his previous place.
* | Use user-error where error is inappropriateKelly Dean2015-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * help-mode.el (help-go-back, help-go-forward, help-follow): * simple.el (yank-pop, pop-to-mark-command, exchange-point-and-mark): * winner.el (winner-redo): * windmove.el (windmove-do-window-select): * register.el (jump-to-register, increment-register, insert-register) (append-to-register, prepend-to-register): * files.el (find-alternate-file, abort-if-file-too-large, write-file) (set-visited-file-name): * emacs-lisp/lisp.el (kill-backward-up-list): Use user-error instead of error. (Bug#14480)
* | * lisp/emacs-lisp/checkdoc.el (checkdoc-show-diagnostics): Don't make bogusStefan Monnier2015-02-181-8/+9
| | | | | | | | assumptions about window ordering.
* | emacs-lisp/easy-mmode.el: Clarify mode switch messagesKelly Dean2015-02-171-2/+11
| | | | | | | | | | * emacs-lisp/easy-mmode.el (define-minor-mode): Clarify mode switch messages for minor modes. (Bug#19690)
* | emacs-lisp/easy-mmode.el (define-minor-mode): Clarify docsKelly Dean2015-02-171-3/+6
| |
* | emacs-lisp/easy-mmode.el: Process macro arguments correctlyKelly Dean2015-02-171-1/+2
| | | | | | | | | | * emacs-lisp/easy-mmode.el (define-minor-mode): Process macro arguments correctly. (Bug#19685)
* | emacs-lisp/package-x.el: Create valid tar filesKelly Dean2015-02-171-1/+1
| | | | | | | | | | * emacs-lisp/package-x.el (package-upload-buffer-internal): Create valid tar files. (Bug#19536)
* | * lisp/emacs-lisp/eieio*.el: Align a bit better with CLOSStefan Monnier2015-02-163-66/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag): Fix copy&paste error (semanticdb-project-database => sym). Avoid eieio--class-public-a when possible. * lisp/emacs-lisp/eieio-base.el (make-instance): Add a method here rather than on eieio-constructor. * lisp/emacs-lisp/eieio-core.el (eieio--class-print-name): New function. (eieio-class-name): Make it do what the docstring claims. (eieio-defclass-internal): Simplify since `prots' isn't used any more. (eieio--slot-name-index): Simplify accordingly. (eieio-barf-if-slot-unbound): Pass the class object rather than its name to `slot-unbound'. * lisp/emacs-lisp/eieio.el (defclass): Use make-instance rather than eieio-constructor. (set-slot-value): Mark as obsolete. (eieio-object-class-name): Improve call to eieio-class-name. (eieio-slot-descriptor-name, eieio-class-slots): New functions. (object-slots): Use it. Declare obsolete. (eieio-constructor): Merge it with `make-instance'. (initialize-instance): Use `dolist'. (eieio-override-prin1, eieio-edebug-prin1-to-string): Use eieio--class-print-name. * test/automated/eieio-test-methodinvoke.el (make-instance): Add methods here rather than on eieio-constructor.
* | * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Keep type=nil by default.Stefan Monnier2015-02-164-13/+17
| | | | | | | | | | | | | | * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Add sanity checks about relationship between `type', `named', and `slots'. * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tagcode): Adjust to new value of `cl-struct-type' property.
* | emacs-lisp/package.el (describe-package-1): Describe incompatibility.Artur Malabarba2015-02-141-13/+23
| |
* | emacs-lisp/package.el: Move the compatibility-table building logic.Artur Malabarba2015-02-141-6/+13
| |
* | * lisp/emacs-lisp/cl*.el: Use define-inline and move some codeStefan Monnier2015-02-143-95/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-lib.el: Move autoloaded code to cl-preload. * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Register as children of the parent. (cl--assertion-failed): New function. (cl-assertion-failed): Move in from cl-lib.el. * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't generate code to register as children of its parents. (cl--make-type-test, cl--compiler-macro-typep): Remove functions. (cl-typep): Reimplement using define-inline. (cl-assert): Use cl--assertion-failed. (cl-struct-slot-value): Use define-inline.
* | emacs-lisp/package.el (describe-package-1): Fix "incompat" handling.Artur Malabarba2015-02-131-3/+3
| |
* | emacs-lisp/package.el (package--incompatible-p): Check dependencies.Artur Malabarba2015-02-131-10/+50
| |
* | emacs-lisp/package.el: Indicate incompatible packages.Artur Malabarba2015-02-121-1/+26
| | | | | | | | | | These are packages which require a higher emacs version than the current one.
* | emacs-lisp/package.el (package-install): Invert the second argument.Artur Malabarba2015-02-121-15/+13
| |
* | Add a backward-compatible version of seq-reverseNicolas Petton2015-02-111-5/+23
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/seq.el (seq-reverse): Add a backward-compatible version of seq-reverse that works on sequences in Emacs 24. Bump version to 1.2. * test/automated/seq-tests.el (test-seq-reverse, test-seq-group-by): Add a test for seq-reverse and update test for seq-group-by to test vectors and strings, not only lists.
* | Improve seq-group-by to return sequence elements in correct orderNicolas Petton2015-02-111-12/+11
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/seq.el (seq-group-by): Improves seq-group-by to return sequence elements in correct order * tests/automated/seq-tests.el: Update test for seq-group-by * doc/lispref/sequences.texi (Sequence Functions): Update documentation examples for seq-group-by
* | * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Use macroexp-parse-body.Stefan Monnier2015-02-091-9/+4
| |
* | * lisp/emacs-lisp/eieio-core.el (eieio-oset-default): Catch the unexpectedStefan Monnier2015-02-091-0/+2
| | | | | | | | case where the default value would be re-interpreted as a form!
* | Add macro pcase-lambdaLeo Liu2015-02-093-1/+31
| | | | | | | | | | | | | | | | | | | | Fixes: debbugs:19814 * emacs-lisp/lisp-mode.el (el-kws-re): Include `pcase-lambda'. * emacs-lisp/macroexp.el (macroexp-parse-body): New function. * emacs-lisp/pcase.el (pcase-lambda): New Macro.
* | Better docstring for seq.el functionsNicolas Petton2015-02-061-7/+11
| | | | | | | | * lisp/emacs-lisp/seq.el: Better docstring for seq.el functions
* | Add seq-partition and seq-group-byNicolas Petton2015-02-061-0/+27
| | | | | | | | | | | | * lisp/emacs-lisp/seq.el: Better docstring for seq.el functions * test/automated/seq-tests.el: New tests for seq-partition and seq-group-by
* | Add seq-mapcatNicolas Petton2015-02-061-2/+8
| | | | | | | | | | * lisp/emacs-lisp/seq.el (seq-mapcat): New function * test/automated/seq-tests.el: Add unit tests for seq-mapcat