Mercurial > hg > xemacs-beta
comparison src/eval.c @ 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 |
---|---|
29 #include "backtrace.h" | 29 #include "backtrace.h" |
30 #include "bytecode.h" | 30 #include "bytecode.h" |
31 #include "buffer.h" | 31 #include "buffer.h" |
32 #include "console.h" | 32 #include "console.h" |
33 #include "opaque.h" | 33 #include "opaque.h" |
34 | |
35 #ifdef ERROR_CHECK_GC | |
36 int always_gc; /* Debugging hack */ | |
37 #else | |
38 #define always_gc 0 | |
39 #endif | |
40 | 34 |
41 struct backtrace *backtrace_list; | 35 struct backtrace *backtrace_list; |
42 | 36 |
43 /* Note: you must always fill in all of the fields in a backtrace structure | 37 /* Note: you must always fill in all of the fields in a backtrace structure |
44 before pushing them on the backtrace_list. The profiling code depends | 38 before pushing them on the backtrace_list. The profiling code depends |
3211 else | 3205 else |
3212 return form; | 3206 return form; |
3213 } | 3207 } |
3214 | 3208 |
3215 QUIT; | 3209 QUIT; |
3216 if ((consing_since_gc > gc_cons_threshold) || always_gc) | 3210 if (need_to_garbage_collect ()) |
3217 { | 3211 { |
3218 struct gcpro gcpro1; | 3212 struct gcpro gcpro1; |
3219 GCPRO1 (form); | 3213 GCPRO1 (form); |
3220 garbage_collect_1 (); | 3214 garbage_collect_1 (); |
3221 UNGCPRO; | 3215 UNGCPRO; |
3435 struct backtrace backtrace; | 3429 struct backtrace backtrace; |
3436 int fun_nargs = nargs - 1; | 3430 int fun_nargs = nargs - 1; |
3437 Lisp_Object *fun_args = args + 1; | 3431 Lisp_Object *fun_args = args + 1; |
3438 | 3432 |
3439 QUIT; | 3433 QUIT; |
3440 if ((consing_since_gc > gc_cons_threshold) || always_gc) | 3434 if (need_to_garbage_collect ()) |
3441 /* Callers should gcpro lexpr args */ | 3435 /* Callers should gcpro lexpr args */ |
3442 garbage_collect_1 (); | 3436 garbage_collect_1 (); |
3443 | 3437 |
3444 if (++lisp_eval_depth > max_lisp_eval_depth) | 3438 if (++lisp_eval_depth > max_lisp_eval_depth) |
3445 { | 3439 { |