Commit graph

4067 commits

Author SHA1 Message Date
Stefan Monnier
67c477ae67 * 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.
2014-04-22 12:22:13 -04:00
Daniel Colascione
12b1389c90 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.
2014-04-22 00:04:34 -07:00
Daniel Colascione
c98212f9e7 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.
2014-04-21 23:51:30 -07:00
Daniel Colascione
66fda7948f Optimize cl-struct-slot-value; fix test
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'.
2014-04-21 20:51:12 -07:00
Stefan Monnier
d6f14ca729 * 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.
2014-04-21 23:18:15 -04:00
Daniel Colascione
44faec1788 Remove excess parameters on cl--const-expr-val
2014-04-21  Daniel Colascione  <dancol@dancol.org>

	* emacs-lisp/cl-macs.el (cl--const-expr-val): We didn't need the
	last two parameters after all.
	(cl--expr-contains,cl--compiler-macro-typep,cl--compiler-macro-member)
	(cl--compiler-macro-assoc,cl-struct-slot-value)
	(cl-struct-set-slot-value): Stop using them.
2014-04-21 11:00:19 -07:00
Daniel Colascione
985c035f2d Correctly treat progn contents as toplevel forms when byte compiling 2014-04-21 02:34:21 -07:00
Daniel Colascione
2fa1b97db0 Fix cl-loop destructuring under `with' clause 2014-04-20 18:03:39 -07:00
Daniel Colascione
e100022976 unbreak the build 2014-04-20 07:46:13 -07:00
Daniel Colascione
89a2e783c2 defstruct introspection 2014-04-19 19:34:22 -07:00
Stefan Monnier
6c2453e038 * lisp/emacs-lisp/cl-lib.el (current-case-table): Remove setter.
* lisp/leim/quail/sisheng.el (sisheng-list): Use with-case-table.
2014-04-12 15:30:14 -04:00
Daniel Colascione
3f63a9f7de Make up-list and backward-up-list get out of more spots 2014-04-09 09:58:08 -07:00
Daniel Colascione
6c971fb0f4 Tweak regex from last change 2014-04-09 08:33:43 -07:00
Daniel Colascione
226835801a Make cl-indent work better for elisp 2014-04-09 01:16:41 -07:00
Leo Liu
722237d55e * emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Add
define-compilation-mode.
2014-04-05 10:33:36 +08:00
Juanma Barranquero
09aba8153a Merge from emacs-24; up to 2014-03-28T01:39:30Z!rgm@gnu.org 2014-04-02 17:14:50 +02:00
Leo Liu
294b2b0928 * emacs-lisp/eldoc.el (eldoc-print-current-symbol-info): Refactor
out eldoc-documentation-function-default.
(eldoc-documentation-function-default): New function.
(eldoc-documentation-function): Change value.
2014-03-31 09:31:17 +08:00
Stefan Monnier
929c0500cc * lisp/emacs-lisp/package.el (package-built-in-p): Treat a min-version of
0 like nil.
2014-03-28 18:47:46 -04:00
Juanma Barranquero
1e757eb0a5 Merge from emacs-24; up to 2014-03-24T03:06:35Z!dancol@dancol.org 2014-03-27 18:34:22 +01:00
Juanma Barranquero
b1c870c9e8 lisp/emacs-lisp/package-x.el: Follow-up to change in package.el.
(package--archive-contents-from-url): Use url-insert-file-contents;
package-handle-response no longer exists.
2014-03-27 01:20:50 +01:00
Juanma Barranquero
16adf2e6eb Merge from emacs-24; up to 2014-03-23T23:14:52Z!yamaoka@jpl.org 2014-03-26 16:57:13 +01:00
Juanma Barranquero
196716cf35 * lisp/emacs-lisp/package.el: Fix bug#16733 (again).
(url-http-parse-response, url-http-end-of-headers, url-recreate-url)
  (url-http-target-url): Remove unused declarations.
  (package-handle-response): Remove.
  (package--with-work-buffer): Use url-insert-file-contents and simplify.
  (package--download-one-archive): Use current-buffer instead of
  dynamic binding of `buffer'.
  (describe-package-1): Do not decode readme-string.

* lisp/url/url-handlers.el (url-http-parse-response): Add autoload.
  (url-insert-file-contents): Signal file-error in case of HTTP error.
2014-03-26 16:21:17 +01:00
Glenn Morris
b4aca02176 Make gulp.el obsolete
* lisp/obsolete/gulp.el: Move here from emacs-lisp/.

* doc/emacs/ack.texi (Acknowledgments): Remove reference to obsolete file.
2014-03-25 21:41:13 -04:00
Dmitry Gutov
3e2377ce2f Fix bug#16762
* lisp/emacs-lisp/package.el (package--add-to-archive-contents):
Include already installed and built-in packages in
`package-archive-contents'.
(package-install): Don't include already installed packages in the
options on interactive invocation.
2014-03-25 00:38:06 +02:00
Daniel Colascione
544ab460f5 Backport &key-parsing improvement from trunk 2014-03-24 13:41:08 -07:00
Daniel Colascione
1edb4a2ec6 Improve performance of &key parsing 2014-03-23 20:06:35 -07:00
Dmitry Gutov
2614c1af39 * lisp/emacs-lisp/package.el (package-show-package-list): If the buffer
is already displayed in another window, switch to that window.
2014-03-23 10:35:56 +02:00
Daniel Colascione
7eab98da1b Fix keyword argument parsing. Please bootstrap. 2014-03-22 23:00:18 -07:00
Daniel Colascione
c6b0fbe7db Fix cl-defun keyword arg parsing. Please bootstrap. 2014-03-22 22:50:24 -07:00
Glenn Morris
5076d27513 Allow `declare' to set the interactive-only property
* lisp/emacs-lisp/byte-run.el (defun-declarations-alist):
Add interactive-only.  Doc tweak.
(macro-declarations-alist): Doc tweak.

* lisp/subr.el (declare): Doc tweak (add xref to manual).

* lisp/comint.el (comint-run):
* lisp/files.el (insert-file-literally, insert-file):
* lisp/replace.el (replace-string, replace-regexp):
* lisp/simple.el (beginning-of-buffer, end-of-buffer, delete-backward-char)
(delete-forward-char, goto-line, insert-buffer, next-line)
(previous-line): Set interactive-only via declare.

* doc/lispref/functions.texi (Declare Form): Add interactive-only.

* doc/lispref/commands.texi (Defining Commands) Mention declare.

* etc/NEWS: Mention this.
2014-03-22 15:12:52 -07:00
Glenn Morris
299ccd03f9 Merge from emacs-24; up to 2014-03-21T21:27:25Z!dancol@dancol.org 2014-03-22 14:44:04 -07:00
Dmitry Gutov
1197f2e665 Fix bug#16873
* lisp/emacs-lisp/package.el (package-desc): Use the contents of the
quoted form, not its cdr.
2014-03-22 10:43:30 +02:00
Glenn Morris
5671dc5159 Merge from emacs-24; up to 2014-03-21T08:51:02Z!eliz@gnu.org 2014-03-21 12:04:57 -07:00
Dmitry Gutov
dcf7866712 Fix bug#16826
* lisp/emacs-lisp/package.el (package-compute-transaction):
Use `version-list-<=' to compare the requirement version against
the package version already to be installed.  Update the error
message.
2014-03-21 08:06:52 +02:00
Juanma Barranquero
814e26fa05 lisp/emacs-lisp/cl-extra.el (cl--map-overlays): Remove obsolete code. 2014-03-20 19:16:47 +01:00
Stefan Monnier
049fac7c94 * lisp/emacs-lisp/nadvice.el (advice--make-docstring): Try harder to find
the docstring of functions advised before dumping.
* src/doc.c (store_function_docstring): Warn when we don't know where to
put a docstring.
(Fsubstitute_command_keys): Don't advertise the fact that
text-properties are dropped, since we think it's a bug that we'll fix
in 24.5.

Fixes: debbugs:16993
2014-03-20 12:00:17 -04:00
Juanma Barranquero
f88bdc45e0 lisp/emacs-lisp/package.el (describe-package-1): Decode commentary (bug#16733). 2014-03-19 17:14:26 +01:00
Stefan Monnier
adbfe42cd9 * lisp/emacs-lisp/nadvice.el (advice--interactive-form): New function.
(advice--make-interactive-form): Use it to avoid (auto)loading function.
(advice--make-1, advice-add, advice-remove):
Remove braindead :advice-pending hack.
2014-03-17 14:30:53 -04:00
Dmitry Gutov
4f8aeb84b6 Fix debbugs#16971
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Set
`comment-use-syntax' to t to avoid the unnecessary runtime check.
Set `comment-start-skip' to a simpler value that doesn't try to
check if the semicolon is escaped (this is handled by
`syntax-ppss' now). 

* lisp/progmodes/scheme.el (scheme-mode-variables): Same.
2014-03-17 08:22:58 +02:00
Glenn Morris
881033454a * package.el (package-menu-mode-map): Replace use of obsolete function alias.
Tweak menu item text.
2014-03-14 16:55:40 -04:00
Glenn Morris
56759cf12a Move some help functions from help-fns.el to help.el, which is preloaded.
They are now needed by eg the function `documentation' in some circumstances.

* lisp/help-fns.el (help-split-fundoc, help-add-fundoc-usage)
(help-function-arglist, help-make-usage): Move from here...

* lisp/help.el (help-split-fundoc, help-add-fundoc-usage)
(help-function-arglist, help-make-usage): ... to here. 

* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Do not load help-fns.

Fixes: debbugs:17001
2014-03-13 20:32:41 -04:00
Tom Willemse
0d71dfb381 * lisp/emacs-lisp/package.el (package--prepare-dependencies):
Accept requirements without explicit version.

Fixes: debbugs:14941
2014-03-13 09:34:01 -04:00
Jonas Bernoulli
08dfa0b75e lisp/emacs-lisp/eieio.el (with-slots): Use cl-symbol-macrolet (bug#16998). 2014-03-12 16:02:45 +01:00
Stefan Monnier
1ea2256000 * lisp/emacs-lisp/nadvice.el (advice--make-1): Fix autoloading avoidance.
(advice-add): Add a :advice--pending marker, so advice--make-1 knows
when the advice is pending.
(advice-remove): Remove this marker when not needed any more.
2014-03-10 21:22:24 -04:00
Glenn Morris
ba1a5c78f2 * lisp/emacs-lisp/advice.el (ad-add-advice, defadvice): Doc fix
remove references to deleted info nodes.
2014-03-10 14:16:13 -04:00
Leo Liu
6f0f96e756 * emacs-lisp/eldoc.el (eldoc-minibuffer-message): Clear
eldoc-last-message.

Fixes: debbugs:16920
2014-03-10 13:33:31 +08:00
Glenn Morris
c94e6ee499 * lisp/emacs-lisp/shadow.el (load-path-shadows-find): Ignore dir-locals.
Fixes: debbugs:12357
2014-03-05 21:01:02 -05:00
Glenn Morris
d82e752c05 Small smie.el doc and fix
* lisp/emacs-lisp/smie.el (smie-config-guess): Doc fix.
Explicit error if no grammar.
(smie-config-save): Doc fix.  Fix quote typo.

* etc/NEWS: Related edit.
2014-03-04 00:35:11 -08:00
Glenn Morris
d926361813 Some crm.el doc
* lisp/emacs-lisp/crm.el: Remove commentary that duplicates doc strings.
(crm-default-separator, crm-separator) (completing-read-multiple):
Doc fixes.

* etc/NEWS: Related edit.
2014-02-26 23:42:57 -08:00
Glenn Morris
b77cfcd762 * emacs-lisp/crm.el (completing-read-multiple): Empower help-enable-auto-load. 2014-02-26 20:17:40 -08:00