lp:emacs

Created by Jonathan Lange on 2008-03-14 and last modified on 2014-04-23

This branch is an import of the Emacs trunk.

Get this branch:
bzr branch lp:emacs

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
VCS imports
Project:
GNU Emacs
Status:
Mature
Location:
http://bzr.savannah.gnu.org/r/emacs/trunk
Last mirrored:
4 hours ago
Next mirror:
in 1 hour

Recent revisions

117015. By Stefan Monnier 6 hours ago

* lisp/emacs-lisp/cl-macs.el (cl--loop-let): Fix last merge.

117014. By Daniel Colascione 10 hours ago

2014-04-22 Daniel Colascione <email address hidden>

 * emacs-lisp/byte-run.el (function-put): Unbreak build: don't
 use defun to define `function-put'.

117013. By Paul Eggert <email address hidden> 10 hours ago

Merge from emacs-24; up to r117008

117012. By Stefan Monnier 14 hours ago

* lisp/emacs-lisp/lisp-mode.el (lisp--match-hidden-arg): New function.
(lisp-el-font-lock-keywords-2, lisp-cl-font-lock-keywords-2): Use it.
(lisp-mode-variables): Set font-lock-extra-managed-props.

117011. By Stefan Monnier 15 hours ago

* lisp/emacs-lisp/byte-run.el (function-put): New function.
(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.

117010. By Daniel Colascione on 2014-04-22

Correctly macroexpand top-level forms during eager macroexpand

* lisp/emacs-lisp/byte-run.el (eval-when-compile, eval-and-compile):
Improve docstrings.

* lisp/emacs-lisp/macroexp.el (internal-macroexpand-for-load): Add
`full-p' parameter; when nil, call `macroexpand' instead of
`macroexpand-all'.

* src/lread.c (readevalloop_eager_expand_eval): New function
that can recurse into toplevel forms.
(readevalloop): Call it.
* src/lisp.h: Declare Qprogn.
* src/callint.c (Qprogn): No longer static.

* test/automated/bytecomp-tests.el (test-byte-comp-compile-and-load):
Add compile flag.
(test-byte-comp-macro-expansion)
(test-byte-comp-macro-expansion-eval-and-compile)
(test-byte-comp-macro-expansion-eval-when-compile)
(test-byte-comp-macro-expand-lexical-override): Use it.
(test-eager-load-macro-expansion)
(test-eager-load-macro-expansion-eval-and-compile)
(test-eager-load-macro-expansion-eval-when-compile)
(test-eager-load-macro-expand-lexical-override): New tests.

117009. By Daniel Colascione on 2014-04-22

Minor bytecomp.el fixes

* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
Use lambda function values, not quoted lambdas.
(byte-compile-recurse-toplevel): Remove extraneous &optional.

117008. By Daniel Colascione on 2014-04-22

Fix cl-lib-struct-accessors test again.

* test/automated/cl-lib.el (cl-lib-struct-accessors): Fix test to
account for removal of `cl-struct-set-slot-value'. Also, move
the defstruct to top level.

117007. By Daniel Colascione on 2014-04-22

Optimize cl-struct-slot-value; fix test

2014-04-22 Daniel Colascione <email address hidden>

 * 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 <email address hidden>

 * automated/cl-lib.el (cl-lib-struct-accessors): Fix test to
 account for removal of `cl-struct-set-slot-value'.

117006. By Stefan Monnier on 2014-04-22

* lisp/emacs-lisp/cl-macs.el (cl-struct-slot-offset): Mark as pure.
(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.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.