Mercurial > hg > xemacs-beta
annotate src/s/cygwin32.h @ 5562:855b667dea13
Drop cl-macro-environment in favour of byte-compile-macro-environment.
lisp/ChangeLog addition:
2011-09-04 Aidan Kehoe <kehoea@parhasard.net>
* bytecomp-runtime.el:
* bytecomp-runtime.el (byte-compile-macro-environment): Moved from
bytecomp.el.
* bytecomp.el:
* bytecomp.el (byte-compile-initial-macro-environment):
Add implementations for #'load-time-value, #'labels here, now
cl-macs respects byte-compile-macro-environment.
* bytecomp.el (byte-compile-function-environment):
* bytecomp.el (byte-compile-macro-environment): Removed.
* bytecomp.el (symbol-value):
* bytecomp.el (byte-compile-symbol-value): Removed.
* cl-extra.el (cl-macroexpand-all):
* cl-macs.el:
* cl-macs.el (bind-block):
* cl-macs.el (cl-macro-environment): Removed.
* cl-macs.el (cl-transform-lambda):
* cl-macs.el (load-time-value):
* cl-macs.el (block):
* cl-macs.el (flet):
* cl-macs.el (labels):
* cl-macs.el (macrolet):
* cl-macs.el (symbol-macrolet):
* cl-macs.el (lexical-let):
* cl-macs.el (apply):
* cl-macs.el (nthcdr):
* cl-macs.el (getf):
* cl-macs.el (substring):
* cl-macs.el (values):
* cl-macs.el (get-setf-method):
* cl-macs.el (cl-setf-do-modify):
* cl.el:
* cl.el (cl-macro-environment): Removed.
* cl.el (cl-macroexpand):
* obsolete.el (cl-macro-environment): Moved here.
Drop cl-macro-environment, in favour of
byte-compile-macro-environment; make the latter available in
bytecomp-runtime.el. This makes byte-compile-macro-environment far
less useless, since previously code that used cl-macs would ignore
it when calling #'cl-macroexpand-all.
Add byte-compiler-specific implementations for #'load-time-value,
#'labels. The latter is very nice indeed; it avoids the run-time
consing of the current implementation, is fully lexical and avoids
the run-time shadowing of symbol function slots that flet uses. It
would now be reasonable to move most core uses of flet to use
labels instead. Non-core code can't rely on print-circle for
mutually recursive functions, though, so it's less of an evident
win.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 04 Sep 2011 20:37:55 +0100 |
parents | 4dee0387b9de |
children | abe88cd200c9 |
rev | line source |
---|---|
428 | 1 /* system description file for cygwin32. |
2 Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. | |
558 | 3 Copyright (C) 2001 Ben Wing. |
428 | 4 |
613 | 5 This file is part of XEmacs. |
428 | 6 |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
7 XEmacs is free software: you can redistribute it and/or modify it |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
8 under the terms of the GNU General Public License as published by the |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
9 Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
10 option) any later version. |
428 | 11 |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
15 for more details. |
428 | 16 |
17 You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4858
diff
changeset
|
18 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
428 | 19 |
20 /* Building under cygwin | |
21 * | |
442 | 22 * The approach I have taken with this port is to use primarily the |
23 * UNIX code base adding stuff that is MS-Windows specific. This works | |
24 * quite well, and is in keeping with my perception of the cygwin | |
25 * philosophy. Note that if you make changes to this file you do NOT | |
26 * want to define WIN32_NATIVE (formerly "WINDOWSNT"), I repeat - do | |
27 * not define this, it will break everything horribly. What does get | |
28 * defined is HAVE_MS_WINDOWS, but this is done by configure and only | |
29 * applies to the window system. | |
428 | 30 * |
31 * When building make sure your HOME path is unix style - i.e. without | |
32 * a drive letter. | |
33 * | |
34 * once you have done this, configure and make. | |
35 * | |
36 * windows '95 - I haven't tested this under '95, it will probably | |
5384
3889ef128488
Fix misspelled words, and some grammar, across the entire source tree.
Jerry James <james@xemacs.org>
parents:
4858
diff
changeset
|
37 * build but I know there are some limitations with cygwin under 95 so |
428 | 38 * YMMV. I build with NT4 SP3. |
39 * | |
40 * Andy Piper <andy@xemacs.org> 8/1/98 | |
41 * http://www.xemacs.freeserve.co.uk/ */ | |
42 | |
771 | 43 #include "win32-common.h" |
44 | |
442 | 45 /* Identify ourselves */ |
46 #define CYGWIN | |
47 | |
4858
e1d8b6b0c589
Define CYGWIN_HEADERS in s/cygwin32.h and s/mingw32.h instead of syswindows.h, so they're available everywhere
Ben Wing <ben@xemacs.org>
parents:
4848
diff
changeset
|
48 /* We are using Cygwin-style headers in /usr/include, also used by MinGW */ |
e1d8b6b0c589
Define CYGWIN_HEADERS in s/cygwin32.h and s/mingw32.h instead of syswindows.h, so they're available everywhere
Ben Wing <ben@xemacs.org>
parents:
4848
diff
changeset
|
49 #define CYGWIN_HEADERS |
e1d8b6b0c589
Define CYGWIN_HEADERS in s/cygwin32.h and s/mingw32.h instead of syswindows.h, so they're available everywhere
Ben Wing <ben@xemacs.org>
parents:
4848
diff
changeset
|
50 |
428 | 51 /* cheesy way to determine cygwin version */ |
52 #ifndef NOT_C_CODE | |
442 | 53 # include <signal.h> |
558 | 54 # include <cygwin/version.h> |
442 | 55 |
56 /* Still left out of 1.1! */ | |
464 | 57 double logb (double); |
58 int killpg (int pgrp, int sig); | |
442 | 59 |
428 | 60 #endif |
61 | |
62 #ifndef ORDINARY_LINK | |
63 #define ORDINARY_LINK | |
64 #endif | |
65 | |
1111 | 66 #if __GNUC__ >= 3 |
67 #define C_SWITCH_SYSTEM -fno-caller-saves | |
68 #else | |
771 | 69 #define C_SWITCH_SYSTEM -fno-caller-saves -fvtable-thunks |
1111 | 70 #endif |
71 | |
428 | 72 #define LIBS_SYSTEM -lwinmm |
442 | 73 #define WIN32_LEAN_AND_MEAN |
428 | 74 |
75 #define TEXT_START -1 | |
76 #define HEAP_IN_DATA | |
442 | 77 #define NO_LIM_DATA |
428 | 78 |
79 #define BROKEN_SIGIO | |
558 | 80 |
613 | 81 #define CYGWIN_BROKEN_SIGNALS |
82 | |
428 | 83 #define strnicmp strncasecmp |
84 | |
85 #undef MAIL_USE_SYSTEM_LOCK | |
86 | |
87 /* SYSTEM_TYPE should indicate the kind of system you are using. | |
88 It sets the Lisp variable system-type. */ | |
89 | |
90 #define SYSTEM_TYPE "cygwin32" | |
872 | 91 |
92 /* Cygwin bogusly forgets to copy mmap()ed regions into the child when | |
93 a fork is done; thus, any reference to anything in mmap()ed space | |
94 (under PDUMP, in particular, this bites, since all data loaded from | |
95 PDUMP is normally done using mmap()) will cause an immediate segfault. */ | |
96 #undef HAVE_MMAP |