annotate lisp/gnome.el @ 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 b9167d522a9a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5288
061f4feaeefd More permission consistency. (Opps, missed one.)
Stephen J. Turnbull <stephen@xemacs.org>
parents: 5231
diff changeset
1 ;; gnome.el --- GNOME integration for XEmacs/GTK
061f4feaeefd More permission consistency. (Opps, missed one.)
Stephen J. Turnbull <stephen@xemacs.org>
parents: 5231
diff changeset
2 ;;
061f4feaeefd More permission consistency. (Opps, missed one.)
Stephen J. Turnbull <stephen@xemacs.org>
parents: 5231
diff changeset
3 ;; Copyright (C) 2000, 2001 William M. Perry
061f4feaeefd More permission consistency. (Opps, missed one.)
Stephen J. Turnbull <stephen@xemacs.org>
parents: 5231
diff changeset
4 ;;
4709
db7068430402 Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents: 502
diff changeset
5 ;; This file is part of XEmacs.
5404
91b3aa59f49b Convert lisp/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
6
91b3aa59f49b Convert lisp/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
7 ;; XEmacs is free software: you can redistribute it and/or modify it
4709
db7068430402 Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents: 502
diff changeset
8 ;; under the terms of the GNU General Public License as published by the
5404
91b3aa59f49b Convert lisp/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
9 ;; Free Software Foundation, either version 3 of the License, or (at your
91b3aa59f49b Convert lisp/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
10 ;; option) any later version.
91b3aa59f49b Convert lisp/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
11
4709
db7068430402 Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents: 502
diff changeset
12 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
db7068430402 Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents: 502
diff changeset
13 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
db7068430402 Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents: 502
diff changeset
14 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
db7068430402 Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents: 502
diff changeset
15 ;; for more details.
5404
91b3aa59f49b Convert lisp/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
16
4709
db7068430402 Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents: 502
diff changeset
17 ;; You should have received a copy of the GNU General Public License
5404
91b3aa59f49b Convert lisp/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
18 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
4709
db7068430402 Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents: 502
diff changeset
19
502
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 462
diff changeset
20 (globally-declare-fboundp
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 462
diff changeset
21 '(gtk-type-from-name
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 462
diff changeset
22 gtk-import-function-internal
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 462
diff changeset
23 gtk-call-function))
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 462
diff changeset
24
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
25 (defvar gnome-init-called nil)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
26
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
27 (defun gnome-init (app-id app-version argv)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
28 (mapc 'dll-load
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
29 '("libgnomesupport.so"
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
30 "libgnome.so"
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
31 "libgnomeui.so"
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
32 "libesd.so"
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
33 "libaudiofile.so"
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
34 "libart_lgpl.so"))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
35 (if (and (not (noninteractive)) (not gnome-init-called)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
36 (= (gtk-type-from-name "GnomeApp") 0))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
37 (prog1
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
38 (gtk-call-function (gtk-import-function-internal
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
39 'gint "gnome_init" '(GtkString GtkString gint GtkArrayOfString))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
40 (list app-id app-version (length argv) argv))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
41 (setq gnome-init-called t))))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
42
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
43 (require 'gnome-widgets)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
44 (provide 'gnome)