diff 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
line wrap: on
line diff
--- a/src/lisp.h	Sun Mar 31 08:30:17 2002 +0000
+++ b/src/lisp.h	Mon Apr 01 03:59:04 2002 +0000
@@ -201,6 +201,7 @@
 #ifndef DOESNT_RETURN
 # if defined __GNUC__
 #  if ((__GNUC__ > 2) || (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5))
+#   define RETURN_NOT_REACHED(value)
 #   define DOESNT_RETURN void
 #   define DECLARE_DOESNT_RETURN(decl) \
            extern void decl __attribute__ ((noreturn))
@@ -229,9 +230,14 @@
 #if defined __SUNPRO_C || defined __USLC__
 #define RETURN_SANS_WARNINGS if (1) return
 #define RETURN_NOT_REACHED(value)
-#else
+#endif
+
+#ifndef RETURN_NOT_REACHED
+#define RETURN_NOT_REACHED(value) return value;
+#endif
+
+#ifndef RETURN_SANS_WARNINGS
 #define RETURN_SANS_WARNINGS return
-#define RETURN_NOT_REACHED(value) return value;
 #endif
 
 #ifndef DO_NOTHING
@@ -2301,14 +2307,6 @@
 /*		     Garbage collection / GC-protection			*/
 /************************************************************************/
 
-/* number of bytes of structure consed since last GC */
-
-extern EMACS_INT consing_since_gc;
-
-/* threshold for doing another gc */
-
-extern Fixnum gc_cons_threshold;
-
 /* Structure for recording stack slots that need marking */
 
 /* This is a chain of structures, each of which points at a Lisp_Object
@@ -2698,6 +2696,7 @@
 int object_dead_p (Lisp_Object);
 void mark_object (Lisp_Object obj);
 int marked_p (Lisp_Object obj);
+int need_to_garbage_collect (void);
 
 #ifdef MEMORY_USAGE_STATS
 Bytecount malloced_storage_size (void *, Bytecount, struct overhead_stats *);
@@ -3207,6 +3206,7 @@
 			 Lisp_Object, int, Error_Behavior);
 int external_remprop (Lisp_Object *, Lisp_Object, int, Error_Behavior);
 int internal_equal (Lisp_Object, Lisp_Object, int);
+int internal_equalp (Lisp_Object obj1, Lisp_Object obj2, int depth);
 Lisp_Object concat2 (Lisp_Object, Lisp_Object);
 Lisp_Object concat3 (Lisp_Object, Lisp_Object, Lisp_Object);
 Lisp_Object vconcat2 (Lisp_Object, Lisp_Object);
@@ -3759,8 +3759,21 @@
 int ascii_strncasecmp (const Char_ASCII *s1, const Char_ASCII *s2,
 		       Bytecount len);
 int qxememcmp (const Intbyte *s1, const Intbyte *s2, Bytecount len);
+int qxememcmp4 (const Intbyte *s1, Bytecount len1,
+		const Intbyte *s2, Bytecount len2);
 int qxememcasecmp (const Intbyte *s1, const Intbyte *s2, Bytecount len);
-int qxememcasecmp_i18n (const Intbyte *s1, const Intbyte *s2, Bytecount len);
+int qxememcasecmp4 (const Intbyte *s1, Bytecount len1,
+		    const Intbyte *s2, Bytecount len2);
+int qxetextcmp (const Intbyte *s1, Bytecount len1,
+		const Intbyte *s2, Bytecount len2);
+int qxetextcmp_matching (const Intbyte *s1, Bytecount len1,
+			 const Intbyte *s2, Bytecount len2,
+			 Charcount *matching);
+int qxetextcasecmp (const Intbyte *s1, Bytecount len1,
+		    const Intbyte *s2, Bytecount len2);
+int qxetextcasecmp_matching (const Intbyte *s1, Bytecount len1,
+			     const Intbyte *s2, Bytecount len2,
+			     Charcount *matching);
 
 void buffer_mule_signal_inserted_region (struct buffer *buf, Charbpos start,
 					 Bytecount bytelength,