annotate lib-src/ellcc.h.in @ 5656:e9c3fe82127d

Co-operate with the byte-optimizer in the bytecomp.el labels implementation. lisp/ChangeLog addition: 2012-05-05 Aidan Kehoe <kehoea@parhasard.net> Co-operate with the byte-optimizer in the bytecomp.el labels implementation, don't work against it. * byte-optimize.el: * byte-optimize.el (byte-compile-inline-expand): Call #'byte-compile-unfold-lambda explicitly here, don't assume that the byte-optimizer will do it. * byte-optimize.el (byte-compile-unfold-lambda): Call #'byte-optimize-body on the body, don't just mapcar #'byte-optimize-form along it. * byte-optimize.el (byte-optimize-lambda): New. Optimize a lambda form. * byte-optimize.el (byte-optimize-form-code-walker): Descend lambda expressions, defun, and defmacro, relevant for lexically-oriented operators like #'labels. * byte-optimize.el (byte-optimize-body): Only return a non-eq object if we've actually optimized something * bytecomp.el (byte-compile-initial-macro-environment): In the labels implementation, work with the byte optimizer, not against it; warn when labels are defined but not used, automatically inline labels that are used only once. * bytecomp.el (byte-recompile-directory): No need to wrap #'byte-compile-report-error in a lambda with #'call-with-condition-handler here. * bytecomp.el (byte-compile-form): Don't inline compiled-function objects, they're probably labels. * bytecomp.el (byte-compile-funcall): No longer inline lambdas, trust the byte optimizer to have done it properly, even for labels. * cl-extra.el (cl-macroexpand-all): Treat labels established by the byte compiler distinctly from those established by cl-macs.el. * cl-macs.el (cl-do-proclaim): Treat labels established by the byte compiler distinctly from those established by cl-macs.el. * gui.el (make-gui-button): When referring to the #'gui-button-action label, quote it using function, otherwise there's a warning from the byte compiler.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 05 May 2012 20:48:24 +0100
parents 365bc8cb5894
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
1 /* DO NOT EDIT THIS FILE!!!! */
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
2
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
3 /* Most of this is required due to a bug in the GCC compiler driver
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
4 which prevents us from passing this on the command line. It also
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
5 reduces the compiler command line length, which can be a problem
5416
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
6 on some systems.
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
7
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
8 This file is part of XEmacs.
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
9
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
10 XEmacs is free software: you can redistribute it and/or modify it
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
11 under the terms of the GNU General Public License as published by the
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
12 Free Software Foundation, either version 3 of the License, or (at your
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
13 option) any later version.
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
14
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
15 XEmacs is distributed in the hope that it will be useful, but WITHOUT
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
17 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
18 for more details.
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
19
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
20 You should have received a copy of the GNU General Public License
365bc8cb5894 Convert to GPLv3 misc files.
Mats Lidell <matsl@xemacs.org>
parents: 2377
diff changeset
21 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
22
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
23 #ifndef ELLCC_HDR
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
24 #define ELLCC_HDR
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
25
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 388
diff changeset
26 #define ELLCC_CC "@XEMACS_CC@"
2377
bbba13600d74 [xemacs-hg @ 2004-11-08 15:14:36 by stephent]
stephent
parents: 1111
diff changeset
27 #define ELLCC_CFLAGS "@XE_CFLAGS@"
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
28 #define ELLCC_CPPFLAGS "@CPPFLAGS@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
29 #define ELLCC_LDFLAGS "@LDFLAGS@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
30 #define ELLCC_CF_GENERAL "@c_switch_general@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
31 #define ELLCC_CF_ALL "@c_switch_all@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
32 #define ELLCC_LF_GENERAL "@ld_switch_general@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
33 #define ELLCC_LF_ALL "@ld_switch_all@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
34 #define ELLCC_LIBS_GENERAL "@ld_libs_general@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
35 #define ELLCC_DLL_CFLAGS "@dll_cflags@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
36 #define ELLCC_DLL_LDFLAGS "@dll_ldflags@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
37 #define ELLCC_DLL_POST "@dll_post@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
38 #define ELLCC_DLL_LD "@dll_ld@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
39 #define ELLCC_DLL_LDO "@dll_ldo@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
40 #define ELLCC_CONFIG "@configuration@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
41 #define ELLCC_EMACS_VER "@version@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
42 #define ELLCC_PROGNAME "@PROGNAME@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
43 #define ELLCC_ARCHDIR "@ARCHLIBDIR@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
44 #define ELLCC_MODDIR "@MODULEDIR@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
45 #define ELLCC_SITEMODS "@SITEMODULEDIR@"
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
46
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
47 #endif /* ELLCC_HDR */
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
48