1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 18:40:39 -08:00
Commit graph

98509 commits

Author SHA1 Message Date
Stefan Monnier
e0f57e6569 * lisp/subr.el (save-window-excursion): New macro, moved from C.
* lisp/emacs-lisp/lisp-mode.el (save-window-excursion): Don't touch.
* lisp/emacs-lisp/cconv.el (cconv-closure-convert-rec, cconv-analyse-form):
Don't handle save-window-excursion any more.
* lisp/emacs-lisp/bytecomp.el (interactive-p, save-window-excursion):
Don't use the byte-code any more.
(byte-compile-form): Check macro expansion was done.
(byte-compile-save-window-excursion): Remove.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Ignore save-window-excursion.  Don't macroepand any more.

* src/window.c (Fsave_window_excursion): Remove.  Moved to Lisp.
(syms_of_window): Don't defsubr it.
* src/window.h (Fsave_window_excursion): Don't declare it.
* src/bytecode.c (exec_byte_code): Inline Fsave_window_excursion.
2011-02-19 00:10:33 -05:00
Stefan Monnier
9a05edc4fc * lisp/emacs-lisp/pcase.el (pcase--expand, pcase--u, pcase--u1, pcase--q1):
Avoid destructuring-bind which results in poorer code.
2011-02-18 08:55:51 -05:00
Stefan Monnier
b38b1ec071 Various compiler bug-fixes. MPC seems to run correctly now.
* lisp/files.el (lexical-binding): Add a safe-local-variable property.

* lisp/emacs-lisp/byte-opt.el (byte-inline-lapcode): Check how many elements
are added to the stack.
(byte-compile-splice-in-already-compiled-code): Don't touch lexical nor
byte-compile-depth now that byte-inline-lapcode does it for us.
(byte-compile-inline-expand): Don't inline dynbind byte code into
lexbind code, since it has to be done differently.

* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
Correctly extract arglist from `closure's.
(byte-compile-cl-warn): Compiler-macros are run earlier now.
(byte-compile-top-level): Bind byte-compile-lexical-environment to nil,
except for lambdas.
(byte-compile-form): Don't run the compiler-macro expander here.
(byte-compile-let): Merge with byte-compile-let*.
Don't preserve-body-value if the body's value was discarded.

* lisp/emacs-lisp/cconv.el (cconv--set-diff, cconv--set-diff-map)
(cconv--map-diff, cconv--map-diff-elem, cconv--map-diff-set): New funs.
(cconv--env-var): New constant.
(cconv-closure-convert-rec): Use it and use them.  Fix a typo that
ended up forgetting to remove entries from lmenvs in `let'.
For `lambda' use the outer `fvrs' when building the closure and don't
forget to remove `vars' from the `emvrs' and `lmenvs' of the body.

* lisp/emacs-lisp/cl-macs.el (cl-byte-compile-block): Disable optimization
in lexbind, because it needs a different implementation.

* src/bytecode.c (exec_byte_code): Fix handling of &rest.

* src/eval.c (Vinternal_interpreter_environment): Remove.
(syms_of_eval): Do declare Vinternal_interpreter_environment as
a global lisp var, but unintern it to hide it.
(Fcommandp):
* src/data.c (Finteractive_form): Understand `closure's.
2011-02-17 16:19:13 -05:00
Stefan Monnier
ce5b520a37 * lisp/emacs-lisp/byte-lexbind.el: Delete.
* lisp/emacs-lisp/bytecomp.el (byte-compile-current-heap-environment)
(byte-compile-current-num-closures): Remove vars.
(byte-vec-ref, byte-vec-set): Remove byte codes.
(byte-compile-arglist-vars, byte-compile-make-lambda-lexenv): Move from
byte-lexbind.el.
(byte-compile-lambda): Never build a closure.
(byte-compile-closure-code-p, byte-compile-make-closure): Remove.
(byte-compile-closure): Simplify.
(byte-compile-top-level): Don't mess with heap environments.
(byte-compile-dynamic-variable-bind): Always maintain
byte-compile-bound-variables.
(byte-compile-variable-ref, byte-compile-variable-set): Always just use
the stack for lexical vars.
(byte-compile-push-binding-init): Simplify.
(byte-compile-not-lexical-var-p): New function, moved from cconv.el.
(byte-compile-bind, byte-compile-unbind): New functions, moved and
simplified from byte-lexbind.el.
(byte-compile-let, byte-compile-let*): Simplify.
(byte-compile-condition-case): Don't add :fun-body to the bound vars.
(byte-compile-defmacro): Simplify.
* lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops)
(byte-optimize-lapcode): Remove byte-vec-ref and byte-vec-set.
* lisp/emacs-lisp/cconv.el (cconv-not-lexical-var-p): Remove.
(cconv-freevars, cconv-analyse-function, cconv-analyse-form):
Use byte-compile-not-lexical-var-p instead.
* src/bytecode.c (Bvec_ref, Bvec_set): Remove.
(exec_byte_code): Don't handle them.
* lisp/help-fns.el (describe-function-1): Fix paren typo.
2011-02-12 00:53:30 -05:00
Stefan Monnier
c530e1c2a3 Merge from trunk 2011-02-11 21:27:53 -05:00
Stefan Monnier
295fb2ac59 Let cconv use :fun-body in special forms that need it.
* lisp/emacs-lisp/cconv.el (cconv-closure-convert): Drop `toplevel' arg.
(cconv-closure-convert-toplevel): Remove.
(cconv-lookup-let): New fun.
(cconv-closure-convert-rec): Don't bother with defs-are-legal.
Use :fun-body to handle special forms that require closing their forms.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form, byte-compile):
Use cconv-closure-convert instead of cconv-closure-convert-toplevel.
(byte-compile-lambda, byte-compile-make-closure):
* lisp/emacs-lisp/byte-lexbind.el (byte-compile-maybe-push-heap-environment):
Make sure cconv did its job.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Check stack-depth
before using it.
* lisp/dired.el (dired-desktop-buffer-misc-data): Don't use a dynamic var as
function argument.
2011-02-11 17:30:02 -05:00
Stefan Monnier
43e67019df Make cconv-analyse understand the need for closures.
* lisp/emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze):
Understand the :fun-body case for catch, save-window-excursion, and
condition-case.
(byte-compile-maybe-push-heap-environment): No need when nclosures is
zero and byte-compile-current-num-closures is -1.

* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Fix `fun' that was not
renamed to `bytecomp-fun'.

* lisp/emacs-lisp/cconv.el (cconv-not-lexical-var-p): New function.
(cconv-freevars): Use it.
(cconv-closure-convert-rec): Avoid `position'.
(cconv-analyse-function): New function.
(cconv-analyse-form): Use it.  `inclosure' can't be nil any more.
Check lexical vars at let-binding time rather than when referenced.
For defuns to be in an empty environment and lambdas to take lexical args.
Pay attention to the need to build closures in catch, unwind-protect,
save-window-excursion, condition-case, and track-mouse.
Fix defconst/defvar handling.
2011-02-11 14:48:54 -05:00
Deniz Dogan
e0e36cac4a * lisp/net/rcirc.el (defun-rcirc-join): Accept multiple channels. 2011-02-11 07:19:34 +01:00
Glenn Morris
5935086250 * lisp/emacs-lisp/cl-specs.el (multiple-value-bind): Fix debug spec. 2011-02-10 19:54:12 -08:00
Glenn Morris
3af31cd80d * lib/getopt_.h: Fix typo in _GL_ARG_NONNULL license comment. 2011-02-10 19:43:40 -08:00
Glenn Morris
8f45ebb8b5 lwlib/Makefile.in misc cleanup.
* lwlib/Makefile.in (USE_X_TOOLKIT, RM, TOOLKIT_DEFINES): Remove.
(ALL_CFLAGS): Remove -I.
(config_h, lisp_h, src_h): New variables.
(globals_h): Rename from $globals.
($(globals_h)): Check cd exit status.
(lwlib.o): Remove special rule.
(lwlib-utils.o, lwlib.o, lwlib-Xlw.o, lwlib-Xaw.o, lwlib-Xm.o, xlwmenu.o):
Add lisp.h and config.h to prereqs.
(lwlib-utils.o): Add lwlib.h to prereqs.
(lwlib.o): Add lwlib-utils.h and lwlib-Xm.h to prereqs.
(lwlib-Xlw.o): Add xlwmenu.h to prereqs.
(xlwmenu.o): Add ../src/xterm.h to prereqs.
(mostlyclean): Forget about "core" files.
2011-02-10 19:41:17 -08:00
Glenn Morris
eb5141d9f6 * lwlib/Makefile.in: Standardize on $(), not ${}. 2011-02-10 19:30:09 -08:00
Juanma Barranquero
5708ce5e83 * net/rcirc.el (rcirc-send-ctcp): Remove spurious arg to `format'. 2011-02-11 01:49:28 +01:00
Stefan Monnier
d779e73c22 * lisp/emacs-lisp/bytecomp.el (byte-compile-catch)
(byte-compile-unwind-protect, byte-compile-track-mouse)
(byte-compile-condition-case, byte-compile-save-window-excursion):
Provide a :fun-body alternative, so that info can be propagated from the
surrounding context, as is the case for lexical scoping.

* lisp/emacs-lisp/cconv.el (cconv-mutated, cconv-captured)
(cconv-captured+mutated, cconv-lambda-candidates): Fix up declaration.
(cconv-freevars): Minor cleanup.  Fix handling of the error var in
condition-case.
2011-02-10 18:37:03 -05:00
Antoine Levitt
cec2114e7b gnus-sum.el (gnus-summary-save-parts): Use read-directory-name. 2011-02-10 22:43:21 +00:00
Stefan Monnier
59003be943 * lisp/server.el (server-process-filter): Use pcase. 2011-02-10 14:41:44 -05:00
Stefan Monnier
9517f8af14 * lisp/emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two
conflicting ways.
(smie-indent--parent): Extend to "parent of arg".
(smie-indent-inside-string): New function.
(smie-indent-functions): Use it.
2011-02-10 14:40:17 -05:00
Stefan Monnier
cf77dd27af * lisp/vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid
bzr locking race condition.
2011-02-10 14:37:42 -05:00
Stefan Monnier
665addc97b * lisp/gnus/message.el (message-bury): Don't pop up a new window when selected
window is dedicated.
2011-02-10 14:35:35 -05:00
Stefan Monnier
49ffc0786e * lisp/emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is
still valid before using it.
2011-02-10 14:21:07 -05:00
Stefan Monnier
1a0a6cefcf * lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Adjust to
`message' -> `compilation-message' rename.

Fixes: debbugs:8004
2011-02-10 14:13:31 -05:00
Igor Kuzmin
94d11cb577 * lisp/emacs-lisp/cconv.el: New file.
* lisp/emacs-lisp/bytecomp.el: Use cconv.
(byte-compile-file-form, byte-compile):
Call cconv-closure-convert-toplevel when requested.
* lisp/server.el:
* lisp/mpc.el:
* lisp/emacs-lisp/pcase.el:
* lisp/doc-view.el:
* lisp/dired.el: Use lexical-binding.
2011-02-10 13:53:49 -05:00
Stefan Monnier
b016851cb1 Move keymap initialization into declaration.
* lisp/textmodes/enriched.el (enriched-mode-map):
* lisp/textmodes/bib-mode.el (bib-mode-map):
* lisp/term/lk201.el (lk201-function-map):
* lisp/tar-mode.el (tar-mode-map):
* lisp/replace.el (occur-mode-map):
* lisp/progmodes/idlwave.el (idlwave-rinfo-mouse-map, idlwave-rinfo-map):
* lisp/progmodes/idlw-help.el (idlwave-help-mode-map):
* lisp/progmodes/gdb-mi.el (gdb-memory-format-menu, gdb-memory-unit-menu):
* lisp/play/solitaire.el (solitaire-mode-map):
* lisp/play/snake.el (snake-mode-map, snake-null-map):
* lisp/play/pong.el (pong-mode-map):
* lisp/play/handwrite.el (menu-bar-handwrite-map):
* lisp/play/gametree.el (gametree-mode-map):
* lisp/net/rcirc.el (rcirc-mode-map, rcirc-browse-url-map
(rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map):
* lisp/net/newst-plainview.el (newsticker-menu, newsticker-mode-map)
(newsticker--url-keymap):
* lisp/net/net-utils.el (nslookup-mode-map, ftp-mode-map):
* lisp/menu-bar.el (menu-bar-file-menu, menu-bar-i-search-menu)
(menu-bar-search-menu, menu-bar-replace-menu, menu-bar-goto-menu)
(menu-bar-edit-menu, menu-bar-custom-menu)
(menu-bar-showhide-fringe-ind-menu, menu-bar-showhide-fringe-menu)
(menu-bar-showhide-scroll-bar-menu, menu-bar-showhide-menu)
(menu-bar-line-wrapping-menu, menu-bar-options-menu)
(menu-bar-games-menu, menu-bar-encryption-decryption-menu)
(menu-bar-tools-menu, menu-bar-describe-menu)
(menu-bar-search-documentation-menu, menu-bar-manuals-menu)
(menu-bar-help-menu):
* lisp/mail/rmailsum.el (rmail-summary-mode-map):
* lisp/kmacro.el (kmacro-step-edit-map):
* lisp/ibuffer.el (ibuffer-mode-groups-popup, ibuffer-mode-map)
(ibuffer-mode-operate-map):
* lisp/hi-lock.el (hi-lock-menu, hi-lock-map):
* lisp/emulation/vip.el (vip-mode-map):
* lisp/emacs-lisp/re-builder.el (reb-lisp-mode-map):
* lisp/bookmark.el (bookmark-bmenu-mode-map):
* lisp/help-mode.el (help-mode-map):
* lisp/erc/erc-list.el (erc-list-menu-mode-map):
* lisp/org/org-remember.el (org-remember-mode-map):
* lisp/org/org-src.el (org-src-mode-map): Move initialization into declaration.
2011-02-10 11:56:00 -05:00
Deniz Dogan
1be1d1e98e * lisp/net/rcirc.el: Add PRIVMSG and CTCP functions.
(rcirc-send-privmsg, rcirc-send-ctcp): New functions.
(rcirc-keepalive, rcirc-cmd-ctcp, rcirc-ctcp-sender-PING)
(rcirc-cmd-me, rcirc-authenticate): Use them.
2011-02-10 16:41:40 +01:00
Glenn Morris
67f02b82f4 lwlib/ trivia.
* lwlib-Xaw.c, lwlib-Xlw.c, lwlib-Xm.c, lwlib-utils.c, lwlib.c, xlwmenu.c:
Standardize on <> for includes from the ../src directory.
2011-02-09 21:03:29 -08:00
Paul Eggert
6ffb2c0ceb Undo my previous commit, as per Stefan. 2011-02-09 19:56:30 -08:00
Paul Eggert
102252aa03 New file lib/ChangeLog, with entries moved from ChangeLog 2011-02-09 19:32:03 -08:00
Glenn Morris
5ac75e8f4b * src/Makefile.in (really-lwlib): Depend on globals.h, for parallel builds.
Otherwise, lwlib/ and src/ would try to run make-docfile at the same
time, and one of them would lose when its output file disappeared.
2011-02-09 19:20:52 -08:00
Paul Eggert
988c07dff2 * arg-nonnull.h, c++defs.h, warn-on-use.h: Fix licenses. 2011-02-09 19:16:11 -08:00
Ken Manheimer
26d2a9bd7a * allout.el: Synopsis: Change allout user configuration so auto-activation
is controlled solely by customization `allout-auto-activation'.
2011-02-09 19:33:34 -05:00
Ken Manheimer
11c46e1507 Synopsis: Change allout user configuration so auto-activation is controlled
solely by customization `allout-auto-activation'.

(allout-auto-activation-helper) (allout-setup): New autoloads implement new
custom set procedure for allout-auto-activation.  Also, explicitly invoke
(allout-setup) after allout-auto-activation is custom-defined, to effect
the settings in emacs sessions besides the few where allout-auto-activation
customization is donea.
(allout-auto-activation): Use allout-auto-activation-helper to :set.
Revise the docstring.
(allout-init): Reduce functionality to just customizing
allout-auto-activation, and mark obsolete.
(allout-mode): Respect string values for allout-auto-activation.  Run
allout-after-copy-or-kill-hook without any args.
(allout-mode) (allout-layout) (allout-default-layout) (outlineify-sticky):
Adjust docstring for new scheme.
(allout-after-copy-or-kill-hook): No arguments - hook implementers should
concentrate on the kill ring.
2011-02-09 19:31:18 -05:00
Gnus developers
af4e5f4c5f Merge changes made in Gnus trunk.
nntp.el (nntp-retrieve-group-data-early-disabled): Disable the async code for now, since it doesn't work for all users.
message.el (message-options): Make message-options really buffer local.
shr.el (shr-tag-body): Add support for text attribute in body markups.
2011-02-09 22:16:29 +00:00
Eli Zaretskii
d37f40ed38 Update the Windows build according to 2011-02-08T21:42:56Z!tromey@redhat.com and 2011-02-09T17:04:43Z!schwab@linux-m68k.org.
src/makefile.w32-in (GLOBAL_SOURCES, SOME_MACHINE_OBJECTS, obj): New
 macros.
 (globals.h, gl-stamp): New targets.
 (clean): Clean gl-stamp and globals.h.
 nt/makefile.w32-in (bootstrap-nmake, bootstrap-gmake): Make the
 "make-docfile" target in lib-src, before bootstrapping the src
 directory.  Needed since building in src needs to run make-docfile
 to produce globals.h.
2011-02-09 22:50:17 +02:00
Stefan Monnier
ccded26c1e * lisp/progmodes/sh-script.el (sh-font-lock-open-heredoc): Fix case
of here-doc that immediately follows a comment.
* .bzrignore: Ignore globals.h and related stamp.
* test/indent/shell.sh:
* test/indent/shell.rc: New files.
2011-02-09 13:59:55 -05:00
Andreas Schwab
33cd3ee46b * src/Makefile.in (gl-stamp): Create globals.h here.
(globals.h): Don't do it here.
(mostlyclean): Clean globals.h and gl-stamp.
2011-02-09 18:04:43 +01:00
Julien Danjou
69b2604f77 Fix tracking visibility in ERC.
* lisp/erc/erc-track.el (erc-window-configuration-change): New function.
This will allow to track buffer visibility when a command is
finished to executed.  Idea stolen from rcirc.
(track): Put erc-window-configuration-change in
window-configuration-change-hook.
(erc-modified-channels-update): Remove
erc-modified-channels-update from post-command-hook after update.
2011-02-08 23:08:25 -05:00
Glenn Morris
9218b9bd6c * admin/notes/bugtracker: Small updates. 2011-02-08 19:27:57 -08:00
Glenn Morris
7bd04bb46d Update lucid toolkit build for src/globals.h being a generated file.
* lwlib/Makefile.in (@SET_MAKE@): New, set by configure.
(globals): New variable and rule.
(lwlib-utils.o, lwlib.o, lwlib-Xlw.o, lwlib-Xaw.o, lwlib-Xm.o)
(xlwmenu.o): Add dependency on src/globals.h.
2011-02-08 19:25:07 -08:00
Paul Eggert
caf825516a Sync texinfo.tex and sed-related fixes from gnulib. 2011-02-08 17:40:01 -08:00
Deniz Dogan
4d04fdc950 * lisp/net/rcirc.el (rcirc-ctcp-sender-PING): Simplifying. 2011-02-09 02:22:26 +01:00
Paul Eggert
f9f2e7f540 * src/Makefile.in ($(otherobj)): Depend on globals.h. 2011-02-08 16:44:29 -08:00
Paul Eggert
64df8c1098 * make-docfile.c (EMACS_INTEGER): Rename from EMACS_INT. 2011-02-08 16:30:33 -08:00
Reuben Thomas
bfcb151a96 Remove unnecessary manual advice about eval-after-load (Bug#7986).
* loading.texi (Hooks for Loading): Remove unnecessary manual advice
about eval-after-load.
2011-02-08 19:28:06 -05:00
Deniz Dogan
ee6a57ab20 * lisp/net/rcirc.el (rcirc-cmd-ctcp): Use dedicated function when
available.
(rcirc-ctcp-sender-PING): New function.
2011-02-09 01:22:01 +01:00
Tom Tromey
00b3c7ac85 Make globals.h a generated header
* configure: Rebuild.
	* configure.in (NS_OBJC_OBJ): New subst.
lib-src
	* make-docfile.c: Unconditionally include stdlib.h.
	(generate_globals): New global.
	(xrealloc): New function.
	(main): Handle '-g'.  Call start_globals, write_globals.
	(scan_file): Conditionally call put_filename.
	(start_globals): New function.
	(struct global): New.
	(num_globals, globals): New globals.
	(add_global, compare_globals, write_globals): New functions.
	(scan_c_file): Update for "-g".
	(scan_lisp_file): Fail if "-g".
	(enum global_type): New.
src
	* Makefile.in (NS_OBJC_OBJ): New variable.
	(base_obj): Rename from 'obj'.
	(obj): New variable.
	(globals.h, gl-stamp, $(obj)): New targets.
	(GLOBAL_SOURCES): New variable.
	* globals.h: Remove.
	* nsselect.m (Vselection_alist): Define.  Reverts part of
	2011-01-19T22:11:33Z!jan.h.d@swipnet.se.
	* buffer.c: Don't use "no_cell" for name of kill-buffer-hook's
	variable.
	* xselect.c (Vselection_alist): Define.  Reverts part of 2011-01-19T23:32:42Z!eggert@cs.ucla.edu.
2011-02-08 14:42:56 -07:00
Stefan Monnier
6ca94a0b49 * lisp/obsolete/pc-select.el: Rename from emulation/pc-select.el.
Remove the mark/nomark handling, and activate shift-select-mode instead.
* lisp/obsolete/pc-mode.el: Rename from emulation/pc-mode.el.

Fixes: debbugs:7940
2011-02-08 15:45:53 -05:00
Julien Danjou
756441ed82 message.el (message-options): Make message-options a local variable. 2011-02-08 12:03:14 +00:00
Kenichi Handa
8f3b2e120b font.c (Ffont_get): Do not cache :otf value. 2011-02-08 15:56:57 +09:00
Kenichi Handa
50c822bd67 update for autoloads 2011-02-08 15:54:37 +09:00
Lars Ingebrigtsen
b52daf3d93 nnimap.el (nnimap-update-info): Simplify split history test. 2011-02-07 22:49:38 +00:00