1. 03 Mar, 2015 1 commit
  2. 23 Feb, 2015 1 commit
  3. 19 Feb, 2015 1 commit
  4. 16 Feb, 2015 1 commit
  5. 14 Feb, 2015 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl*.el: Use define-inline and move some code · 61b4c22c
      Stefan Monnier authored
      * 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.
      61b4c22c
  6. 28 Jan, 2015 1 commit
    • Stefan Monnier's avatar
      Tighten up the tagcode used for eieio and cl-struct objects · 2668ac1a
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Set the function
      slot of the tag symbol to :quick-object-witness-check.
      (eieio-object-p): Use :quick-object-witness-check.
      (eieio--generic-tagcode): Use cl--generic-struct-tag.
      * lisp/emacs-lisp/cl-preloaded.el: New file.
      * lisp/emacs-lisp/cl-macs.el (cl--bind-inits): Remove, unused.
      (cl--transform-lambda, cl-destructuring-bind): Remove cl--bind-inits.
      (cl--make-usage-args): Strip away &aux args.
      (cl-case, cl-typecase, cl--parse-loop-clause): Use macroexp-let2.
      (cl-the, cl-check-type): Use macroexp-let2 and cl-typep.
      (cl-defstruct): Use `declare' and cl-struct-define.
      * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): New function.
      (cl--generic-struct-tagcode): Use it to tighten the tagcode.
      * lisp/loadup.el: Load cl-preloaded.
      * src/lisp.mk (lisp): Add cl-preloaded.
      2668ac1a
  7. 16 Jan, 2015 1 commit
  8. 14 Jan, 2015 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-generic.el: New file. · 9def17e9
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-macs.el (cl-flet): Allow (FUN EXP) forms.
      (cl-load-time-value, cl-labels): Use closures rather than
      backquoted lambdas.
      (cl-macrolet): Use `eval' to create the function value, and support CL
      style arguments in for the defined macros.
      * test/automated/cl-generic-tests.el: New file.
      9def17e9
  9. 01 Jan, 2015 2 commits
  10. 24 Nov, 2014 1 commit
    • Leo Liu's avatar
      New macro macroexp-let2* · 6dbaf047
      Leo Liu authored
      * emacs-lisp/macroexp.el (macroexp-let2*): New macro.
      
      * window.el (with-temp-buffer-window)
      (with-current-buffer-window, with-displayed-buffer-window):
      * emacs-lisp/cl-macs.el (cl--compiler-macro-adjoin):
      * emacs-lisp/cl-lib.el (substring):
      * emacs-lisp/cl-extra.el (cl-getf): Use it.
      6dbaf047
  11. 09 Nov, 2014 1 commit
    • Stefan Monnier's avatar
      Fix bootstrap failure after last change to eval-and-compile. · 57db3f3a
      Stefan Monnier authored
      * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
      Don't call byte-compile-preprocess since the result will go through cconv.
      (byte-compile-output-docform): Handle uninterned `name' correctly.
      * lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro): Use interned name
      to circumvent byte-compiler bug.
      
      * lisp/emacs-lisp/cl-extra.el (cl-get): Silence compiler warning.
      
      * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Fix typo.
      (macroexp--compiler-macro): Remove left-over debug code.
      57db3f3a
  12. 23 Oct, 2014 1 commit
  13. 17 Oct, 2014 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio-base.el: Use lexical-binding and cl-lib. · 94250173
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el: Use lexical-binding and cl-lib.
      (list-of): New type.
      (eieio--typep): Remove.
      (eieio-perform-slot-validation): Use cl-typep instead.
      * lisp/emacs-lisp/eieio.el: Use lexical-binding drop non-GV fallback.
      (defclass, defgeneric, defmethod): Add doc-string position.
      (with-slots): Require cl-lib.
      * lisp/emacs-lisp/cl-macs.el (cl--make-type-test): Avoid ((lambda ..) ..).
      94250173
  14. 21 Jul, 2014 1 commit
  15. 26 Jun, 2014 1 commit
  16. 05 Jun, 2014 2 commits
  17. 02 May, 2014 1 commit
  18. 23 Apr, 2014 1 commit
  19. 22 Apr, 2014 3 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/byte-run.el (function-put): New function. · 67c477ae
      Stefan Monnier authored
      (defun-declarations-alist): Use it.  Add `pure' and `side-effect-free'.
      * lisp/emacs-lisp/cl-macs.el (cl-defstruct, cl-struct-sequence-type)
      (cl-struct-slot-info, cl-struct-slot-offset, cl-struct-slot-value):
      Use them.
      67c477ae
    • Daniel Colascione's avatar
      Optimize cl-struct-slot-value; fix test · 66fda794
      Daniel Colascione authored
      2014-04-22  Daniel Colascione  <dancol@dancol.org>
      
      	* emacs-lisp/cl-macs.el
      	(cl-struct-sequence-type,cl-struct-slot-info): Declare pure.
      	(cl-struct-slot-value): Conditionally use aref or nth so that the
      	compiler produces optimal code.
      
      2014-04-22  Daniel Colascione  <dancol@dancol.org>
      
      	* automated/cl-lib.el (cl-lib-struct-accessors): Fix test to
      	account for removal of `cl-struct-set-slot-value'.
      66fda794
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-macs.el (cl-struct-slot-offset): Mark as pure. · d6f14ca7
      Stefan Monnier authored
      (cl--set-elt): Don't proclaim as inline.
      (cl-struct-slot-value): Remove explicit gv-setter and compiler-macro.
      Define as inlinable instead.
      (cl-struct-set-slot-value): Remove.
      * doc/misc/cl.texi (Structures): Remove cl-struct-set-slot-value.
      * lisp/emacs-lisp/cl-lib.el (cl--set-elt): Remove.
      * lisp/emacs-lisp/cl-seq.el (cl-replace, cl-substitute, cl-nsubstitute):
      Use setf instead.
      d6f14ca7
  20. 21 Apr, 2014 3 commits
  21. 20 Apr, 2014 2 commits
  22. 24 Mar, 2014 2 commits
  23. 23 Mar, 2014 2 commits
  24. 21 Feb, 2014 1 commit
  25. 23 Jan, 2014 1 commit
  26. 01 Jan, 2014 1 commit
  27. 07 Nov, 2013 2 commits
  28. 28 Sep, 2013 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-macs.el: · 3b7b2692
      Stefan Monnier authored
      (cl--loop-destr-temps): Remove.
      (cl--loop-iterator-function): Rename from cl--loop-map-form and change
      its convention.
      (cl--loop-set-iterator-function): New function.
      (cl-loop): Adjust accordingly, so as not to use cl-subst.
      (cl--parse-loop-clause): Adjust all uses of cl--loop-map-form.
      Bind `it' with `let' instead of substituting it with `cl-subst'.
      (cl--unused-var-p): New function.
      (cl--loop-let): Don't use the cl--loop-destr-temps hack any more.
      Eliminate some unused variable warnings.
      
      Fixes: debbugs:15326
      3b7b2692
  29. 25 Sep, 2013 1 commit
  30. 19 Sep, 2013 1 commit