Mercurial > emacs
annotate src/puresize.h @ 68478:61b78b1445bf
(org-allow-space-in-links, org-closed-string, org-quote-string,
org-calendar-to-agenda-key, org-agenda-sorting-strategy,
org-agenda-use-time-grid, org-show-following-heading,
org-tags-column, org-use-tag-inheritance, org,
org-allow-space-in-links, org-usenet-links-prefer-google,
org-file-apps-defaults-gnu, org-enable-table-editor,
org-calc-default-modes, org-export-html-style,
org-table-allow-automatic-line-recalculation,
org-export-with-fixed-width, org-export-with-sub-superscripts,
org-special-keyword, org-formula, org-time-grid,
org-table-may-need-update, org-mode, org-goto-ret, org-goto-left,
org-goto-right, org-goto-quit, org-get-indentation,
org-end-of-item, org-move-item-down, org-move-item-up,
org-renumber-ordered-list, org-todo, org-log-done, org-occur,
org-remove-occur-highlights, org-read-date, org-goto-calendar,
org-agenda, org-agenda-day-view, org-agenda-previous-date-line,
org-agenda-log-mode, org-agenda-toggle-diary,
org-agenda-toggle-time-grid, org-agenda-cleanup-fancy-diary,
org-agenda-file-to-end, org-agenda-no-heading-message,
org-agenda-get-closed, org-format-agenda-item, org-cmp-priority,
org-cmp-category, org-cmp-time, org-agenda-change-all-lines,
org-agenda-diary-entry, org-scan-tags,
org-after-todo-state-change-hook, org-tags-view, org-link-search,
org-camel-to-words, org-open-file, org-remember-handler,
org-table-convert-region, org-table-move-row-down,
org-table-move-row-up, org-table-copy-region,
org-table-wrap-region, org-table-toggle-vline-visibility,
org-table-get-vertical-vector, org-table-modify-formulas,
org-table-get-specials, org-recalc-commands,
org-table-rotate-recalc-marks, org-table-eval-formula,
orgtbl-make-binding, org-in-invisibility-spec-p, org-cycle,
org-level-color-stars-only, org-insert-heading):
Fix typos in docstrings.
(last-arg): Add defvar.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Mon, 30 Jan 2006 02:03:21 +0000 |
parents | 598f2fa3c1cf |
children | 3bd95f4f2941 5b7d410e31f9 |
rev | line source |
---|---|
355 | 1 /* How much read-only Lisp storage a dumped Emacs needs. |
64770
a0d1312ede66
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64084
diff
changeset
|
2 Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
355 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
12244 | 8 the Free Software Foundation; either version 2, or (at your option) |
355 | 9 any later version. |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs; see the file COPYING. If not, write to | |
64084 | 18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
19 Boston, MA 02110-1301, USA. */ | |
355 | 20 |
8933
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
21 /* Define PURESIZE, the number of bytes of pure Lisp code to leave space for. |
355 | 22 |
23 At one point, this was defined in config.h, meaning that changing | |
24 PURESIZE would make Make recompile all of Emacs. But only a few | |
484 | 25 files actually use PURESIZE, so we split it out to its own .h file. |
26 | |
27 Make sure to include this file after config.h, since that tells us | |
28 whether we are running X windows, which tells us how much pure | |
29 storage to allocate. */ | |
355 | 30 |
8933
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
31 /* First define a measure of the amount of data we have. */ |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
32 |
9572 | 33 /* A system configuration file may set this to request a certain extra |
34 amount of storage. This is a lot more update-robust that defining | |
35 BASE_PURESIZE or even PURESIZE directly. */ | |
36 #ifndef SYSTEM_PURESIZE_EXTRA | |
37 #define SYSTEM_PURESIZE_EXTRA 0 | |
38 #endif | |
39 | |
12986
180f04639e71
(SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
12612
diff
changeset
|
40 #ifndef SITELOAD_PURESIZE_EXTRA |
180f04639e71
(SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
12612
diff
changeset
|
41 #define SITELOAD_PURESIZE_EXTRA 0 |
180f04639e71
(SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
12612
diff
changeset
|
42 #endif |
180f04639e71
(SITELOAD_PURESIZE_EXTRA): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
12612
diff
changeset
|
43 |
8933
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
44 #ifndef BASE_PURESIZE |
68290
598f2fa3c1cf
(BASE_PURESIZE): Increment to 1190000.
Kenichi Handa <handa@m17n.org>
parents:
67062
diff
changeset
|
45 #define BASE_PURESIZE (1190000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) |
484 | 46 #endif |
8933
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
47 |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
48 /* Increase BASE_PURESIZE by a ratio depending on the machine's word size. */ |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
49 #ifndef PURESIZE_RATIO |
57111
722f614e880a
(PURESIZE_RATIO): Define based on BITS_PER_EMACS_INT.
Kim F. Storm <storm@cua.dk>
parents:
54822
diff
changeset
|
50 #if BITS_PER_EMACS_INT > 32 |
43316
3b39ade5b472
(BASE_PURESIZE): Increase to 9/5.
Andreas Schwab <schwab@suse.de>
parents:
41241
diff
changeset
|
51 #define PURESIZE_RATIO 9/5 /* Don't surround with `()'. */ |
8933
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
52 #else |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
53 #define PURESIZE_RATIO 1 |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
54 #endif |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
55 #endif |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
56 |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
57 /* This is the actual size in bytes to allocate. */ |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
58 #ifndef PURESIZE |
f060ee7326c5
(PURESIZE_RATIO, BASE_PURESIZE): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8832
diff
changeset
|
59 #define PURESIZE (BASE_PURESIZE * PURESIZE_RATIO) |
484 | 60 #endif |
355 | 61 |
13778
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
62 /* Signal an error if OBJ is pure. */ |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
63 #define CHECK_IMPURE(obj) \ |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
64 { if (PURE_P (obj)) \ |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
65 pure_write_error (); } |
21515 | 66 |
67 extern void pure_write_error P_ ((void)); | |
13778
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
68 |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
69 /* Define PURE_P. */ |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
70 |
54822
09d9fc390321
Set up PURE_P() for Cygwin unexec() support.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52401
diff
changeset
|
71 #if defined(VIRT_ADDR_VARIES) || defined(CYGWIN) |
355 | 72 /* For machines like APOLLO where text and data can go anywhere |
73 in virtual memory. */ | |
13778
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
74 |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
75 extern EMACS_INT pure[]; |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
76 |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
77 #define PURE_P(obj) \ |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
78 ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) ((char *) pure + PURESIZE) \ |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
79 && (PNTR_COMPARISON_TYPE) XPNTR (obj) >= (PNTR_COMPARISON_TYPE) pure) |
355 | 80 |
81 #else /* not VIRT_ADDR_VARIES */ | |
82 #ifdef PNTR_COMPARISON_TYPE | |
13778
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
83 /* When PNTR_COMPARISON_TYPE is not the default (unsigned int). */ |
355 | 84 |
13778
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
85 extern char my_edata[]; |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
86 |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
87 #define PURE_P(obj) \ |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
88 ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) my_edata) |
355 | 89 |
90 #else /* not VIRT_ADDRESS_VARIES, not PNTR_COMPARISON_TYPE */ | |
91 | |
13778
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
92 extern char my_edata[]; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46842
diff
changeset
|
93 |
13778
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
94 #define PURE_P(obj) \ |
7b2f71009e4c
(PURE_P): New macro (three definitions).
Karl Heuer <kwzh@gnu.org>
parents:
12986
diff
changeset
|
95 (XPNTR (obj) < (unsigned int) my_edata) |
355 | 96 |
97 #endif /* PNTR_COMPARISON_TYPE */ | |
98 #endif /* VIRT_ADDRESS_VARIES */ | |
52401 | 99 |
100 /* arch-tag: fd9b0a91-a70e-4729-a75a-6bb4ca1ce14f | |
101 (do not change this comment) */ |