Mercurial > hg > xemacs-beta
comparison src/lisp.h @ 801:2b676dc88c66
[xemacs-hg @ 2002-04-01 03:58:02 by ben]
bug fixes (e.g. ballooning on X windows)
Makefile.in.in: Try to make the Makefile notice if its source Makefile.in.in is
changed, and regenerate and run itself.
Use a bigger default SHEAP_ADJUSTMENT on Cygwin; otherwise you
can't compile under Mule if a Lisp file has changed. (can't run
temacs)
TODO.ben-mule-21-5: update.
mule/mule-cmds.el: Hash the result of mswindows-get-language-environment-from-locale,
since it's very expensive (and causes huge ballooning of memory
under X Windows, since it's called from x-get-resource).
cl-extra.el, code-files.el, files.el, simple.el, subr.el, x-faces.el: Create new string-equal-ignore-case, based on built-in
compare-strings -- compare strings ignoring case without the need
to generate garbage by calling downcase. Use it in equalp and
elsewhere.
alloc.c, bytecode.c, chartab.c, data.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-unixoid.c, extents.c, file-coding.c, fileio.c, fns.c, glyphs.c, gutter.c, lisp-union.h, lisp.h, mule-charset.c, nt.c, process-unix.c, process.c, specifier.c, symbols.c, sysdep.c, sysdep.h, text.c, toolbar.c: Try to implement GC triggering based on percentage of total memory
usage. Not currently activated (percentage set to 0) because not
quite working. Add `memory-usage' primitive to return XEmacs'
idea of its memory usage.
Add primitive compare-strings, compatible with FSF 21.1 -- can
compare any part of two strings, optionally ignoring case.
Improve qxe() functions in text.c for text comparison.
Use RETURN_NOT_REACHED to try to avoid warnings about unreachable
code.
Add volatile_make_int() to fix warning in unix_send_process().
author | ben |
---|---|
date | Mon, 01 Apr 2002 03:59:04 +0000 |
parents | a5954632b187 |
children | 19dfb459d51a |
comparison
equal
deleted
inserted
replaced
800:a5954632b187 | 801:2b676dc88c66 |
---|---|
199 #endif | 199 #endif |
200 | 200 |
201 #ifndef DOESNT_RETURN | 201 #ifndef DOESNT_RETURN |
202 # if defined __GNUC__ | 202 # if defined __GNUC__ |
203 # if ((__GNUC__ > 2) || (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5)) | 203 # if ((__GNUC__ > 2) || (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5)) |
204 # define RETURN_NOT_REACHED(value) | |
204 # define DOESNT_RETURN void | 205 # define DOESNT_RETURN void |
205 # define DECLARE_DOESNT_RETURN(decl) \ | 206 # define DECLARE_DOESNT_RETURN(decl) \ |
206 extern void decl __attribute__ ((noreturn)) | 207 extern void decl __attribute__ ((noreturn)) |
207 # define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \ | 208 # define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \ |
208 /* Should be able to state multiple independent __attribute__s, but \ | 209 /* Should be able to state multiple independent __attribute__s, but \ |
227 /* "end-of-loop code not reached" */ | 228 /* "end-of-loop code not reached" */ |
228 /* "statement not reached */ | 229 /* "statement not reached */ |
229 #if defined __SUNPRO_C || defined __USLC__ | 230 #if defined __SUNPRO_C || defined __USLC__ |
230 #define RETURN_SANS_WARNINGS if (1) return | 231 #define RETURN_SANS_WARNINGS if (1) return |
231 #define RETURN_NOT_REACHED(value) | 232 #define RETURN_NOT_REACHED(value) |
232 #else | 233 #endif |
234 | |
235 #ifndef RETURN_NOT_REACHED | |
236 #define RETURN_NOT_REACHED(value) return value; | |
237 #endif | |
238 | |
239 #ifndef RETURN_SANS_WARNINGS | |
233 #define RETURN_SANS_WARNINGS return | 240 #define RETURN_SANS_WARNINGS return |
234 #define RETURN_NOT_REACHED(value) return value; | |
235 #endif | 241 #endif |
236 | 242 |
237 #ifndef DO_NOTHING | 243 #ifndef DO_NOTHING |
238 #define DO_NOTHING do {} while (0) | 244 #define DO_NOTHING do {} while (0) |
239 #endif | 245 #endif |
2298 | 2304 |
2299 | 2305 |
2300 /************************************************************************/ | 2306 /************************************************************************/ |
2301 /* Garbage collection / GC-protection */ | 2307 /* Garbage collection / GC-protection */ |
2302 /************************************************************************/ | 2308 /************************************************************************/ |
2303 | |
2304 /* number of bytes of structure consed since last GC */ | |
2305 | |
2306 extern EMACS_INT consing_since_gc; | |
2307 | |
2308 /* threshold for doing another gc */ | |
2309 | |
2310 extern Fixnum gc_cons_threshold; | |
2311 | 2309 |
2312 /* Structure for recording stack slots that need marking */ | 2310 /* Structure for recording stack slots that need marking */ |
2313 | 2311 |
2314 /* This is a chain of structures, each of which points at a Lisp_Object | 2312 /* This is a chain of structures, each of which points at a Lisp_Object |
2315 variable whose value should be marked in garbage collection. | 2313 variable whose value should be marked in garbage collection. |
2696 void mark_conses_in_list (Lisp_Object); | 2694 void mark_conses_in_list (Lisp_Object); |
2697 void free_marker (Lisp_Marker *); | 2695 void free_marker (Lisp_Marker *); |
2698 int object_dead_p (Lisp_Object); | 2696 int object_dead_p (Lisp_Object); |
2699 void mark_object (Lisp_Object obj); | 2697 void mark_object (Lisp_Object obj); |
2700 int marked_p (Lisp_Object obj); | 2698 int marked_p (Lisp_Object obj); |
2699 int need_to_garbage_collect (void); | |
2701 | 2700 |
2702 #ifdef MEMORY_USAGE_STATS | 2701 #ifdef MEMORY_USAGE_STATS |
2703 Bytecount malloced_storage_size (void *, Bytecount, struct overhead_stats *); | 2702 Bytecount malloced_storage_size (void *, Bytecount, struct overhead_stats *); |
2704 Bytecount fixed_type_block_overhead (Bytecount); | 2703 Bytecount fixed_type_block_overhead (Bytecount); |
2705 #endif | 2704 #endif |
3205 int, Error_Behavior); | 3204 int, Error_Behavior); |
3206 void external_plist_put (Lisp_Object *, Lisp_Object, | 3205 void external_plist_put (Lisp_Object *, Lisp_Object, |
3207 Lisp_Object, int, Error_Behavior); | 3206 Lisp_Object, int, Error_Behavior); |
3208 int external_remprop (Lisp_Object *, Lisp_Object, int, Error_Behavior); | 3207 int external_remprop (Lisp_Object *, Lisp_Object, int, Error_Behavior); |
3209 int internal_equal (Lisp_Object, Lisp_Object, int); | 3208 int internal_equal (Lisp_Object, Lisp_Object, int); |
3209 int internal_equalp (Lisp_Object obj1, Lisp_Object obj2, int depth); | |
3210 Lisp_Object concat2 (Lisp_Object, Lisp_Object); | 3210 Lisp_Object concat2 (Lisp_Object, Lisp_Object); |
3211 Lisp_Object concat3 (Lisp_Object, Lisp_Object, Lisp_Object); | 3211 Lisp_Object concat3 (Lisp_Object, Lisp_Object, Lisp_Object); |
3212 Lisp_Object vconcat2 (Lisp_Object, Lisp_Object); | 3212 Lisp_Object vconcat2 (Lisp_Object, Lisp_Object); |
3213 Lisp_Object vconcat3 (Lisp_Object, Lisp_Object, Lisp_Object); | 3213 Lisp_Object vconcat3 (Lisp_Object, Lisp_Object, Lisp_Object); |
3214 Lisp_Object nconc2 (Lisp_Object, Lisp_Object); | 3214 Lisp_Object nconc2 (Lisp_Object, Lisp_Object); |
3757 int qxestrncasecmp_c (const Intbyte *s1, const Char_ASCII *s2, Bytecount len); | 3757 int qxestrncasecmp_c (const Intbyte *s1, const Char_ASCII *s2, Bytecount len); |
3758 int qxestrncasecmp_i18n (const Intbyte *s1, const Intbyte *s2, Bytecount len); | 3758 int qxestrncasecmp_i18n (const Intbyte *s1, const Intbyte *s2, Bytecount len); |
3759 int ascii_strncasecmp (const Char_ASCII *s1, const Char_ASCII *s2, | 3759 int ascii_strncasecmp (const Char_ASCII *s1, const Char_ASCII *s2, |
3760 Bytecount len); | 3760 Bytecount len); |
3761 int qxememcmp (const Intbyte *s1, const Intbyte *s2, Bytecount len); | 3761 int qxememcmp (const Intbyte *s1, const Intbyte *s2, Bytecount len); |
3762 int qxememcmp4 (const Intbyte *s1, Bytecount len1, | |
3763 const Intbyte *s2, Bytecount len2); | |
3762 int qxememcasecmp (const Intbyte *s1, const Intbyte *s2, Bytecount len); | 3764 int qxememcasecmp (const Intbyte *s1, const Intbyte *s2, Bytecount len); |
3763 int qxememcasecmp_i18n (const Intbyte *s1, const Intbyte *s2, Bytecount len); | 3765 int qxememcasecmp4 (const Intbyte *s1, Bytecount len1, |
3766 const Intbyte *s2, Bytecount len2); | |
3767 int qxetextcmp (const Intbyte *s1, Bytecount len1, | |
3768 const Intbyte *s2, Bytecount len2); | |
3769 int qxetextcmp_matching (const Intbyte *s1, Bytecount len1, | |
3770 const Intbyte *s2, Bytecount len2, | |
3771 Charcount *matching); | |
3772 int qxetextcasecmp (const Intbyte *s1, Bytecount len1, | |
3773 const Intbyte *s2, Bytecount len2); | |
3774 int qxetextcasecmp_matching (const Intbyte *s1, Bytecount len1, | |
3775 const Intbyte *s2, Bytecount len2, | |
3776 Charcount *matching); | |
3764 | 3777 |
3765 void buffer_mule_signal_inserted_region (struct buffer *buf, Charbpos start, | 3778 void buffer_mule_signal_inserted_region (struct buffer *buf, Charbpos start, |
3766 Bytecount bytelength, | 3779 Bytecount bytelength, |
3767 Charcount charlength); | 3780 Charcount charlength); |
3768 void buffer_mule_signal_deleted_region (struct buffer *buf, Charbpos start, | 3781 void buffer_mule_signal_deleted_region (struct buffer *buf, Charbpos start, |