annotate lib-src/emacs.csh @ 5574:d4f334808463

Support inlining labels, bytecomp.el. lisp/ChangeLog addition: 2011-10-02 Aidan Kehoe <kehoea@parhasard.net> * bytecomp.el (byte-compile-initial-macro-environment): Add #'declare to this, so it doesn't need to rely on #'cl-compiling file to determine when we're byte-compiling. Update #'labels to support declaring labels inline, as Common Lisp requires. * bytecomp.el (byte-compile-function-form): Don't error if FUNCTION is quoting a non-lambda, non-symbol, just return it. * cl-extra.el (cl-macroexpand-all): If a label name has been quoted, expand to the label placeholder quoted with 'function. This allows the byte compiler to distinguish between uses of the placeholder as data and uses in contexts where it should be inlined. * cl-macs.el: * cl-macs.el (cl-do-proclaim): When proclaming something as inline, if it is bound as a label, don't modify the symbol's plist; instead, treat the first element of its placeholder constant vector as a place to store compile information. * cl-macs.el (declare): Leave processing declarations while compiling to the implementation of #'declare in byte-compile-initial-macro-environment. tests/ChangeLog addition: 2011-10-02 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: * automated/lisp-tests.el (+): Test #'labels and inlining.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 02 Oct 2011 15:32:16 +0100
parents 06dd936cde16
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5491
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
1 ### emacs.csh
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
2
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
3 ## Add legal notice if non-trivial amounts of code are added.
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
4
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
5 ## Author: Michael DeCorte
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
6
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
7 ### Commentary:
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
8
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
9 # Synced up with: GNU 23.1.92.
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
10 # Synced by: Ben Wing, 2-17-10.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11
5491
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
12 ## This file is obsolete. Use emacsclient -a instead.
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
13
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
14 ## This defines a csh command named `edit' which resumes an
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
15 ## existing Emacs or starts a new one if none exists.
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
16 ## One way or another, any arguments are passed to Emacs to specify files
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
17 ## (provided you have loaded `resume.el').
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
18
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
19 ## These are the possible values of $whichjob
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
20 ## 1 = new ordinary emacs (the -nw is so that it doesn't try to do X)
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
21 ## 2 = resume emacs
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
22 ## 3 = new emacs under X (-i is so that you get a reasonable icon)
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
23 ## 4 = resume emacs under X
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 set EMACS_PATTERN="^\[[0-9]\] . Stopped ............ $EMACS"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 alias edit 'set emacs_command=("emacs -nw \!*" "fg %emacs" "emacs -i \!* &"\
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 "emacsclient \!* &") ; \
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 jobs >! $HOME/.jobs; grep "$EMACS_PATTERN" < $HOME/.jobs >& /dev/null; \
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 @ isjob = ! $status; \
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 @ whichjob = 1 + $isjob + $?DISPLAY * 2 + $?WINDOW_PARENT * 4; \
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 test -S ~/.emacs_server && emacsclient \!* \
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 || echo `pwd` \!* >! ~/.emacs_args && eval $emacs_command[$whichjob]'
5491
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
33
06dd936cde16 Merge some stuff in lib-src
Ben Wing <ben@xemacs.org>
parents: 0
diff changeset
34 # arch-tag: 433d58df-15b9-446f-ad37-f0393e3a23d4