Mercurial > emacs
comparison src/alloc.c @ 39988:eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 17 Oct 2001 03:16:12 +0000 |
parents | 579177964efa |
children | d3cc7dd5d75a |
comparison
equal
deleted
inserted
replaced
39987:9c096889e4c6 | 39988:eac4e9ae201c |
---|---|
36 /* This file is part of the core Lisp implementation, and thus must | 36 /* This file is part of the core Lisp implementation, and thus must |
37 deal with the real data structures. If the Lisp implementation is | 37 deal with the real data structures. If the Lisp implementation is |
38 replaced, this file likely will not be used. */ | 38 replaced, this file likely will not be used. */ |
39 | 39 |
40 #undef HIDE_LISP_IMPLEMENTATION | 40 #undef HIDE_LISP_IMPLEMENTATION |
41 #define DOC_STRINGS_IN_COMMENTS | |
42 #include "lisp.h" | 41 #include "lisp.h" |
43 #include "process.h" | 42 #include "process.h" |
44 #include "intervals.h" | 43 #include "intervals.h" |
45 #include "puresize.h" | 44 #include "puresize.h" |
46 #include "buffer.h" | 45 #include "buffer.h" |
1658 current_sblock = tb; | 1657 current_sblock = tb; |
1659 } | 1658 } |
1660 | 1659 |
1661 | 1660 |
1662 DEFUN ("make-string", Fmake_string, Smake_string, 2, 2, 0, | 1661 DEFUN ("make-string", Fmake_string, Smake_string, 2, 2, 0, |
1663 /* Return a newly created string of length LENGTH, with each element being INIT. | 1662 doc: /* Return a newly created string of length LENGTH, with each element being INIT. |
1664 Both LENGTH and INIT must be numbers. */ | 1663 Both LENGTH and INIT must be numbers. */) |
1665 (length, init)) | 1664 (length, init) |
1666 Lisp_Object length, init; | 1665 Lisp_Object length, init; |
1667 { | 1666 { |
1668 register Lisp_Object val; | 1667 register Lisp_Object val; |
1669 register unsigned char *p, *end; | 1668 register unsigned char *p, *end; |
1670 int c, nbytes; | 1669 int c, nbytes; |
1702 return val; | 1701 return val; |
1703 } | 1702 } |
1704 | 1703 |
1705 | 1704 |
1706 DEFUN ("make-bool-vector", Fmake_bool_vector, Smake_bool_vector, 2, 2, 0, | 1705 DEFUN ("make-bool-vector", Fmake_bool_vector, Smake_bool_vector, 2, 2, 0, |
1707 /* Return a new bool-vector of length LENGTH, using INIT for as each element. | 1706 doc: /* Return a new bool-vector of length LENGTH, using INIT for as each element. |
1708 LENGTH must be a number. INIT matters only in whether it is t or nil. */ | 1707 LENGTH must be a number. INIT matters only in whether it is t or nil. */) |
1709 (length, init)) | 1708 (length, init) |
1710 Lisp_Object length, init; | 1709 Lisp_Object length, init; |
1711 { | 1710 { |
1712 register Lisp_Object val; | 1711 register Lisp_Object val; |
1713 struct Lisp_Bool_Vector *p; | 1712 struct Lisp_Bool_Vector *p; |
1714 int real_init, i; | 1713 int real_init, i; |
2056 cons_free_list = ptr; | 2055 cons_free_list = ptr; |
2057 } | 2056 } |
2058 | 2057 |
2059 | 2058 |
2060 DEFUN ("cons", Fcons, Scons, 2, 2, 0, | 2059 DEFUN ("cons", Fcons, Scons, 2, 2, 0, |
2061 /* Create a new cons, give it CAR and CDR as components, and return it. */ | 2060 doc: /* Create a new cons, give it CAR and CDR as components, and return it. */) |
2062 (car, cdr)) | 2061 (car, cdr) |
2063 Lisp_Object car, cdr; | 2062 Lisp_Object car, cdr; |
2064 { | 2063 { |
2065 register Lisp_Object val; | 2064 register Lisp_Object val; |
2066 | 2065 |
2067 if (cons_free_list) | 2066 if (cons_free_list) |
2129 Fcons (arg5, Qnil))))); | 2128 Fcons (arg5, Qnil))))); |
2130 } | 2129 } |
2131 | 2130 |
2132 | 2131 |
2133 DEFUN ("list", Flist, Slist, 0, MANY, 0, | 2132 DEFUN ("list", Flist, Slist, 0, MANY, 0, |
2134 /* Return a newly created list with specified arguments as elements. | 2133 doc: /* Return a newly created list with specified arguments as elements. |
2135 Any number of arguments, even zero arguments, are allowed. */ | 2134 Any number of arguments, even zero arguments, are allowed. */) |
2136 (nargs, args)) | 2135 (nargs, args) |
2137 int nargs; | 2136 int nargs; |
2138 register Lisp_Object *args; | 2137 register Lisp_Object *args; |
2139 { | 2138 { |
2140 register Lisp_Object val; | 2139 register Lisp_Object val; |
2141 val = Qnil; | 2140 val = Qnil; |
2148 return val; | 2147 return val; |
2149 } | 2148 } |
2150 | 2149 |
2151 | 2150 |
2152 DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0, | 2151 DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0, |
2153 /* Return a newly created list of length LENGTH, with each element being INIT. */ | 2152 doc: /* Return a newly created list of length LENGTH, with each element being INIT. */) |
2154 (length, init)) | 2153 (length, init) |
2155 register Lisp_Object length, init; | 2154 register Lisp_Object length, init; |
2156 { | 2155 { |
2157 register Lisp_Object val; | 2156 register Lisp_Object val; |
2158 register int size; | 2157 register int size; |
2159 | 2158 |
2335 return v; | 2334 return v; |
2336 } | 2335 } |
2337 | 2336 |
2338 | 2337 |
2339 DEFUN ("make-vector", Fmake_vector, Smake_vector, 2, 2, 0, | 2338 DEFUN ("make-vector", Fmake_vector, Smake_vector, 2, 2, 0, |
2340 /* Return a newly created vector of length LENGTH, with each element being INIT. | 2339 doc: /* Return a newly created vector of length LENGTH, with each element being INIT. |
2341 See also the function `vector'. */ | 2340 See also the function `vector'. */) |
2342 (length, init)) | 2341 (length, init) |
2343 register Lisp_Object length, init; | 2342 register Lisp_Object length, init; |
2344 { | 2343 { |
2345 Lisp_Object vector; | 2344 Lisp_Object vector; |
2346 register EMACS_INT sizei; | 2345 register EMACS_INT sizei; |
2347 register int index; | 2346 register int index; |
2358 return vector; | 2357 return vector; |
2359 } | 2358 } |
2360 | 2359 |
2361 | 2360 |
2362 DEFUN ("make-char-table", Fmake_char_table, Smake_char_table, 1, 2, 0, | 2361 DEFUN ("make-char-table", Fmake_char_table, Smake_char_table, 1, 2, 0, |
2363 /* Return a newly created char-table, with purpose PURPOSE. | 2362 doc: /* Return a newly created char-table, with purpose PURPOSE. |
2364 Each element is initialized to INIT, which defaults to nil. | 2363 Each element is initialized to INIT, which defaults to nil. |
2365 PURPOSE should be a symbol which has a `char-table-extra-slots' property. | 2364 PURPOSE should be a symbol which has a `char-table-extra-slots' property. |
2366 The property's value should be an integer between 0 and 10. */ | 2365 The property's value should be an integer between 0 and 10. */) |
2367 (purpose, init)) | 2366 (purpose, init) |
2368 register Lisp_Object purpose, init; | 2367 register Lisp_Object purpose, init; |
2369 { | 2368 { |
2370 Lisp_Object vector; | 2369 Lisp_Object vector; |
2371 Lisp_Object n; | 2370 Lisp_Object n; |
2372 CHECK_SYMBOL (purpose, 1); | 2371 CHECK_SYMBOL (purpose, 1); |
2401 return vector; | 2400 return vector; |
2402 } | 2401 } |
2403 | 2402 |
2404 | 2403 |
2405 DEFUN ("vector", Fvector, Svector, 0, MANY, 0, | 2404 DEFUN ("vector", Fvector, Svector, 0, MANY, 0, |
2406 /* Return a newly created vector with specified arguments as elements. | 2405 doc: /* Return a newly created vector with specified arguments as elements. |
2407 Any number of arguments, even zero arguments, are allowed. */ | 2406 Any number of arguments, even zero arguments, are allowed. */) |
2408 (nargs, args)) | 2407 (nargs, args) |
2409 register int nargs; | 2408 register int nargs; |
2410 Lisp_Object *args; | 2409 Lisp_Object *args; |
2411 { | 2410 { |
2412 register Lisp_Object len, val; | 2411 register Lisp_Object len, val; |
2413 register int index; | 2412 register int index; |
2421 return val; | 2420 return val; |
2422 } | 2421 } |
2423 | 2422 |
2424 | 2423 |
2425 DEFUN ("make-byte-code", Fmake_byte_code, Smake_byte_code, 4, MANY, 0, | 2424 DEFUN ("make-byte-code", Fmake_byte_code, Smake_byte_code, 4, MANY, 0, |
2426 /* Create a byte-code object with specified arguments as elements. | 2425 doc: /* Create a byte-code object with specified arguments as elements. |
2427 The arguments should be the arglist, bytecode-string, constant vector, | 2426 The arguments should be the arglist, bytecode-string, constant vector, |
2428 stack size, (optional) doc string, and (optional) interactive spec. | 2427 stack size, (optional) doc string, and (optional) interactive spec. |
2429 The first four arguments are required; at most six have any | 2428 The first four arguments are required; at most six have any |
2430 significance. */ | 2429 significance. */) |
2431 (nargs, args)) | 2430 (nargs, args) |
2432 register int nargs; | 2431 register int nargs; |
2433 Lisp_Object *args; | 2432 Lisp_Object *args; |
2434 { | 2433 { |
2435 register Lisp_Object len, val; | 2434 register Lisp_Object len, val; |
2436 register int index; | 2435 register int index; |
2509 n_symbol_blocks = 1; | 2508 n_symbol_blocks = 1; |
2510 } | 2509 } |
2511 | 2510 |
2512 | 2511 |
2513 DEFUN ("make-symbol", Fmake_symbol, Smake_symbol, 1, 1, 0, | 2512 DEFUN ("make-symbol", Fmake_symbol, Smake_symbol, 1, 1, 0, |
2514 /* Return a newly allocated uninterned symbol whose name is NAME. | 2513 doc: /* Return a newly allocated uninterned symbol whose name is NAME. |
2515 Its value and function definition are void, and its property list is nil. */ | 2514 Its value and function definition are void, and its property list is nil. */) |
2516 (name)) | 2515 (name) |
2517 Lisp_Object name; | 2516 Lisp_Object name; |
2518 { | 2517 { |
2519 register Lisp_Object val; | 2518 register Lisp_Object val; |
2520 register struct Lisp_Symbol *p; | 2519 register struct Lisp_Symbol *p; |
2521 | 2520 |
2627 misc_objects_consed++; | 2626 misc_objects_consed++; |
2628 return val; | 2627 return val; |
2629 } | 2628 } |
2630 | 2629 |
2631 DEFUN ("make-marker", Fmake_marker, Smake_marker, 0, 0, 0, | 2630 DEFUN ("make-marker", Fmake_marker, Smake_marker, 0, 0, 0, |
2632 /* Return a newly allocated marker which does not point at any place. */ | 2631 doc: /* Return a newly allocated marker which does not point at any place. */) |
2633 ()) | 2632 () |
2634 { | 2633 { |
2635 register Lisp_Object val; | 2634 register Lisp_Object val; |
2636 register struct Lisp_Marker *p; | 2635 register struct Lisp_Marker *p; |
2637 | 2636 |
2638 val = allocate_misc (); | 2637 val = allocate_misc (); |
3298 /* Average number of live objects per GC. */ | 3297 /* Average number of live objects per GC. */ |
3299 | 3298 |
3300 static double avg_live; | 3299 static double avg_live; |
3301 | 3300 |
3302 DEFUN ("gc-status", Fgc_status, Sgc_status, 0, 0, "", | 3301 DEFUN ("gc-status", Fgc_status, Sgc_status, 0, 0, "", |
3303 /* Show information about live and zombie objects. */ | 3302 doc: /* Show information about live and zombie objects. */) |
3304 ()) | 3303 () |
3305 { | 3304 { |
3306 Lisp_Object args[7]; | 3305 Lisp_Object args[7]; |
3307 args[0] = build_string ("%d GCs, avg live/zombies = %.2f/%.2f (%f%%), max %d/%d"); | 3306 args[0] = build_string ("%d GCs, avg live/zombies = %.2f/%.2f (%f%%), max %d/%d"); |
3308 args[1] = make_number (ngcs); | 3307 args[1] = make_number (ngcs); |
3309 args[2] = make_float (avg_live); | 3308 args[2] = make_float (avg_live); |
3538 /* Mark Lisp data pointed to. This is necessary because, in some | 3537 /* Mark Lisp data pointed to. This is necessary because, in some |
3539 situations, the C compiler optimizes Lisp objects away, so that | 3538 situations, the C compiler optimizes Lisp objects away, so that |
3540 only a pointer to them remains. Example: | 3539 only a pointer to them remains. Example: |
3541 | 3540 |
3542 DEFUN ("testme", Ftestme, Stestme, 0, 0, 0, "") | 3541 DEFUN ("testme", Ftestme, Stestme, 0, 0, 0, "") |
3543 () | 3542 () |
3544 { | 3543 { |
3545 Lisp_Object obj = build_string ("test"); | 3544 Lisp_Object obj = build_string ("test"); |
3546 struct Lisp_String *s = XSTRING (obj); | 3545 struct Lisp_String *s = XSTRING (obj); |
3547 Fgarbage_collect (); | 3546 Fgarbage_collect (); |
3548 fprintf (stderr, "test `%s'\n", s->data); | 3547 fprintf (stderr, "test `%s'\n", s->data); |
3917 return new; | 3916 return new; |
3918 } | 3917 } |
3919 | 3918 |
3920 | 3919 |
3921 DEFUN ("purecopy", Fpurecopy, Spurecopy, 1, 1, 0, | 3920 DEFUN ("purecopy", Fpurecopy, Spurecopy, 1, 1, 0, |
3922 /* Make a copy of OBJECT in pure storage. | 3921 doc: /* Make a copy of OBJECT in pure storage. |
3923 Recursively copies contents of vectors and cons cells. | 3922 Recursively copies contents of vectors and cons cells. |
3924 Does not copy symbols. Copies strings without text properties. */ | 3923 Does not copy symbols. Copies strings without text properties. */) |
3925 (obj)) | 3924 (obj) |
3926 register Lisp_Object obj; | 3925 register Lisp_Object obj; |
3927 { | 3926 { |
3928 if (NILP (Vpurify_flag)) | 3927 if (NILP (Vpurify_flag)) |
3929 return obj; | 3928 return obj; |
3930 | 3929 |
4014 return count; | 4013 return count; |
4015 } | 4014 } |
4016 | 4015 |
4017 | 4016 |
4018 DEFUN ("garbage-collect", Fgarbage_collect, Sgarbage_collect, 0, 0, "", | 4017 DEFUN ("garbage-collect", Fgarbage_collect, Sgarbage_collect, 0, 0, "", |
4019 /* Reclaim storage for Lisp objects no longer needed. | 4018 doc: /* Reclaim storage for Lisp objects no longer needed. |
4020 Returns info on amount of space in use: | 4019 Returns info on amount of space in use: |
4021 ((USED-CONSES . FREE-CONSES) (USED-SYMS . FREE-SYMS) | 4020 ((USED-CONSES . FREE-CONSES) (USED-SYMS . FREE-SYMS) |
4022 (USED-MARKERS . FREE-MARKERS) USED-STRING-CHARS USED-VECTOR-SLOTS | 4021 (USED-MARKERS . FREE-MARKERS) USED-STRING-CHARS USED-VECTOR-SLOTS |
4023 (USED-FLOATS . FREE-FLOATS) (USED-INTERVALS . FREE-INTERVALS) | 4022 (USED-FLOATS . FREE-FLOATS) (USED-INTERVALS . FREE-INTERVALS) |
4024 (USED-STRINGS . FREE-STRINGS)) | 4023 (USED-STRINGS . FREE-STRINGS)) |
4025 Garbage collection happens automatically if you cons more than | 4024 Garbage collection happens automatically if you cons more than |
4026 `gc-cons-threshold' bytes of Lisp data since previous garbage collection. */ | 4025 `gc-cons-threshold' bytes of Lisp data since previous garbage collection. */) |
4027 ()) | 4026 () |
4028 { | 4027 { |
4029 register struct gcpro *tail; | 4028 register struct gcpro *tail; |
4030 register struct specbinding *bind; | 4029 register struct specbinding *bind; |
4031 struct catchtag *catch; | 4030 struct catchtag *catch; |
4032 struct handler *handler; | 4031 struct handler *handler; |
5319 | 5318 |
5320 | 5319 |
5321 /* Debugging aids. */ | 5320 /* Debugging aids. */ |
5322 | 5321 |
5323 DEFUN ("memory-limit", Fmemory_limit, Smemory_limit, 0, 0, 0, | 5322 DEFUN ("memory-limit", Fmemory_limit, Smemory_limit, 0, 0, 0, |
5324 /* Return the address of the last byte Emacs has allocated, divided by 1024. | 5323 doc: /* Return the address of the last byte Emacs has allocated, divided by 1024. |
5325 This may be helpful in debugging Emacs's memory usage. | 5324 This may be helpful in debugging Emacs's memory usage. |
5326 We divide the value by 1024 to make sure it fits in a Lisp integer. */ | 5325 We divide the value by 1024 to make sure it fits in a Lisp integer. */) |
5327 ()) | 5326 () |
5328 { | 5327 { |
5329 Lisp_Object end; | 5328 Lisp_Object end; |
5330 | 5329 |
5331 XSETINT (end, (EMACS_INT) sbrk (0) / 1024); | 5330 XSETINT (end, (EMACS_INT) sbrk (0) / 1024); |
5332 | 5331 |
5333 return end; | 5332 return end; |
5334 } | 5333 } |
5335 | 5334 |
5336 DEFUN ("memory-use-counts", Fmemory_use_counts, Smemory_use_counts, 0, 0, 0, | 5335 DEFUN ("memory-use-counts", Fmemory_use_counts, Smemory_use_counts, 0, 0, 0, |
5337 /* Return a list of counters that measure how much consing there has been. | 5336 doc: /* Return a list of counters that measure how much consing there has been. |
5338 Each of these counters increments for a certain kind of object. | 5337 Each of these counters increments for a certain kind of object. |
5339 The counters wrap around from the largest positive integer to zero. | 5338 The counters wrap around from the largest positive integer to zero. |
5340 Garbage collection does not decrease them. | 5339 Garbage collection does not decrease them. |
5341 The elements of the value are as follows: | 5340 The elements of the value are as follows: |
5342 (CONSES FLOATS VECTOR-CELLS SYMBOLS STRING-CHARS MISCS INTERVALS STRINGS) | 5341 (CONSES FLOATS VECTOR-CELLS SYMBOLS STRING-CHARS MISCS INTERVALS STRINGS) |
5343 All are in units of 1 = one object consed | 5342 All are in units of 1 = one object consed |
5344 except for VECTOR-CELLS and STRING-CHARS, which count the total length of | 5343 except for VECTOR-CELLS and STRING-CHARS, which count the total length of |
5345 objects consed. | 5344 objects consed. |
5346 MISCS include overlays, markers, and some internal types. | 5345 MISCS include overlays, markers, and some internal types. |
5347 Frames, windows, buffers, and subprocesses count as vectors | 5346 Frames, windows, buffers, and subprocesses count as vectors |
5348 (but the contents of a buffer's text do not count here). */ | 5347 (but the contents of a buffer's text do not count here). */) |
5349 ()) | 5348 () |
5350 { | 5349 { |
5351 Lisp_Object consed[8]; | 5350 Lisp_Object consed[8]; |
5352 | 5351 |
5353 consed[0] = make_number (min (MOST_POSITIVE_FIXNUM, cons_cells_consed)); | 5352 consed[0] = make_number (min (MOST_POSITIVE_FIXNUM, cons_cells_consed)); |
5354 consed[1] = make_number (min (MOST_POSITIVE_FIXNUM, floats_consed)); | 5353 consed[1] = make_number (min (MOST_POSITIVE_FIXNUM, floats_consed)); |
5437 } | 5436 } |
5438 | 5437 |
5439 void | 5438 void |
5440 syms_of_alloc () | 5439 syms_of_alloc () |
5441 { | 5440 { |
5442 DEFVAR_INT ("gc-cons-threshold", &gc_cons_threshold | 5441 DEFVAR_INT ("gc-cons-threshold", &gc_cons_threshold, |
5443 /* *Number of bytes of consing between garbage collections. | 5442 doc: /* *Number of bytes of consing between garbage collections. |
5444 Garbage collection can happen automatically once this many bytes have been | 5443 Garbage collection can happen automatically once this many bytes have been |
5445 allocated since the last garbage collection. All data types count. | 5444 allocated since the last garbage collection. All data types count. |
5446 | 5445 |
5447 Garbage collection happens automatically only when `eval' is called. | 5446 Garbage collection happens automatically only when `eval' is called. |
5448 | 5447 |
5449 By binding this temporarily to a large number, you can effectively | 5448 By binding this temporarily to a large number, you can effectively |
5450 prevent garbage collection during a part of the program. */); | 5449 prevent garbage collection during a part of the program. */); |
5451 | 5450 |
5452 DEFVAR_INT ("pure-bytes-used", &pure_bytes_used | 5451 DEFVAR_INT ("pure-bytes-used", &pure_bytes_used, |
5453 /* Number of bytes of sharable Lisp data allocated so far. */); | 5452 doc: /* Number of bytes of sharable Lisp data allocated so far. */); |
5454 | 5453 |
5455 DEFVAR_INT ("cons-cells-consed", &cons_cells_consed | 5454 DEFVAR_INT ("cons-cells-consed", &cons_cells_consed, |
5456 /* Number of cons cells that have been consed so far. */); | 5455 doc: /* Number of cons cells that have been consed so far. */); |
5457 | 5456 |
5458 DEFVAR_INT ("floats-consed", &floats_consed | 5457 DEFVAR_INT ("floats-consed", &floats_consed, |
5459 /* Number of floats that have been consed so far. */); | 5458 doc: /* Number of floats that have been consed so far. */); |
5460 | 5459 |
5461 DEFVAR_INT ("vector-cells-consed", &vector_cells_consed | 5460 DEFVAR_INT ("vector-cells-consed", &vector_cells_consed, |
5462 /* Number of vector cells that have been consed so far. */); | 5461 doc: /* Number of vector cells that have been consed so far. */); |
5463 | 5462 |
5464 DEFVAR_INT ("symbols-consed", &symbols_consed | 5463 DEFVAR_INT ("symbols-consed", &symbols_consed, |
5465 /* Number of symbols that have been consed so far. */); | 5464 doc: /* Number of symbols that have been consed so far. */); |
5466 | 5465 |
5467 DEFVAR_INT ("string-chars-consed", &string_chars_consed | 5466 DEFVAR_INT ("string-chars-consed", &string_chars_consed, |
5468 /* Number of string characters that have been consed so far. */); | 5467 doc: /* Number of string characters that have been consed so far. */); |
5469 | 5468 |
5470 DEFVAR_INT ("misc-objects-consed", &misc_objects_consed | 5469 DEFVAR_INT ("misc-objects-consed", &misc_objects_consed, |
5471 /* Number of miscellaneous objects that have been consed so far. */); | 5470 doc: /* Number of miscellaneous objects that have been consed so far. */); |
5472 | 5471 |
5473 DEFVAR_INT ("intervals-consed", &intervals_consed | 5472 DEFVAR_INT ("intervals-consed", &intervals_consed, |
5474 /* Number of intervals that have been consed so far. */); | 5473 doc: /* Number of intervals that have been consed so far. */); |
5475 | 5474 |
5476 DEFVAR_INT ("strings-consed", &strings_consed | 5475 DEFVAR_INT ("strings-consed", &strings_consed, |
5477 /* Number of strings that have been consed so far. */); | 5476 doc: /* Number of strings that have been consed so far. */); |
5478 | 5477 |
5479 DEFVAR_LISP ("purify-flag", &Vpurify_flag | 5478 DEFVAR_LISP ("purify-flag", &Vpurify_flag, |
5480 /* Non-nil means loading Lisp code in order to dump an executable. | 5479 doc: /* Non-nil means loading Lisp code in order to dump an executable. |
5481 This means that certain objects should be allocated in shared (pure) space. */); | 5480 This means that certain objects should be allocated in shared (pure) space. */); |
5482 | 5481 |
5483 DEFVAR_INT ("undo-limit", &undo_limit | 5482 DEFVAR_INT ("undo-limit", &undo_limit, |
5484 /* Keep no more undo information once it exceeds this size. | 5483 doc: /* Keep no more undo information once it exceeds this size. |
5485 This limit is applied when garbage collection happens. | 5484 This limit is applied when garbage collection happens. |
5486 The size is counted as the number of bytes occupied, | 5485 The size is counted as the number of bytes occupied, |
5487 which includes both saved text and other data. */); | 5486 which includes both saved text and other data. */); |
5488 undo_limit = 20000; | 5487 undo_limit = 20000; |
5489 | 5488 |
5490 DEFVAR_INT ("undo-strong-limit", &undo_strong_limit | 5489 DEFVAR_INT ("undo-strong-limit", &undo_strong_limit, |
5491 /* Don't keep more than this much size of undo information. | 5490 doc: /* Don't keep more than this much size of undo information. |
5492 A command which pushes past this size is itself forgotten. | 5491 A command which pushes past this size is itself forgotten. |
5493 This limit is applied when garbage collection happens. | 5492 This limit is applied when garbage collection happens. |
5494 The size is counted as the number of bytes occupied, | 5493 The size is counted as the number of bytes occupied, |
5495 which includes both saved text and other data. */); | 5494 which includes both saved text and other data. */); |
5496 undo_strong_limit = 30000; | 5495 undo_strong_limit = 30000; |
5497 | 5496 |
5498 DEFVAR_BOOL ("garbage-collection-messages", &garbage_collection_messages | 5497 DEFVAR_BOOL ("garbage-collection-messages", &garbage_collection_messages, |
5499 /* Non-nil means display messages at start and end of garbage collection. */); | 5498 doc: /* Non-nil means display messages at start and end of garbage collection. */); |
5500 garbage_collection_messages = 0; | 5499 garbage_collection_messages = 0; |
5501 | 5500 |
5502 DEFVAR_LISP ("post-gc-hook", &Vpost_gc_hook | 5501 DEFVAR_LISP ("post-gc-hook", &Vpost_gc_hook, |
5503 /* Hook run after garbage collection has finished. */); | 5502 doc: /* Hook run after garbage collection has finished. */); |
5504 Vpost_gc_hook = Qnil; | 5503 Vpost_gc_hook = Qnil; |
5505 Qpost_gc_hook = intern ("post-gc-hook"); | 5504 Qpost_gc_hook = intern ("post-gc-hook"); |
5506 staticpro (&Qpost_gc_hook); | 5505 staticpro (&Qpost_gc_hook); |
5507 | 5506 |
5508 /* We build this in advance because if we wait until we need it, we might | 5507 /* We build this in advance because if we wait until we need it, we might |