summaryrefslogtreecommitdiff
path: root/libguile/gc.c
AgeCommit message (Collapse)AuthorFilesLines
1996-12-18This commit was manufactured by cvs2svn to create tagpre_jimb_debugcvs2svn1-1825/+0
'pre_jimb_debug'.
1996-12-18* gc.c (SCM_MTRIGGER_HYSTERESIS): New memory management parameter.Marius Vollmer1-4/+20
(scm_must_malloc, scm_must_realloc): Added a hysteresis to the rules for raising scm_mtrigger. Previously, unfortunate but not unlikely circumstances could result in almost constant invokation of the gc. Now, this situations should be less likely, but they are not prevented completely.
1996-11-20* gc.c (scm_igc, scm_gc_mark): Round up the size of the stack weJim Blandy1-3/+7
pass to scm_mark_locations. (Thanks to Aubrey Jaffer.)
1996-11-10* gc.c (struct scm_heap_seg_data): Doc fixes.Jim Blandy1-16/+135
* gc.c (scm_gc_sweep): Prepend each segment's free cells to its freelist, rather than wiping out the old value. (Thanks to Marius Vollmer.) * gc.c (which_seg, scm_map_free_list, scm_newcell_count, scm_check_freelist, scm_debug_newcell): New functions and variables, for debugging freelist problems. * pairs.h (SCM_NEWCELL): New debugging version added. * gc.h (scm_debug_newcell): Added extern declaration, used by debugging version of SCM_NEWCELL.
1996-10-20* pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,Mikael Djurfeldt1-11/+11
ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC for obtaining the address of a car or cdr field. Motivation: &SCM_CXR make assumptions about the internal structure of the SCM_CXR selectors. * pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h, srcprop.h, tags.h, throw.c, unif.c: Added new selectors SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR. Motivation: Safer use. Some other macros are defined in terms of these operations. If these are defined using the SCM_SETCXR (<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead to inefficiency and an <e1> with side-effects could potentially break. Also, these particular operations are heavily utilized in the garbage collector. In unoptimized code there will be a measurable speedup. * alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c, eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c, ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h, pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c, procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h, strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c, vports.c: Cleaned up use of pairs: Don't make any special assumptions about the internal structure of selectors and mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>), SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc. (Among other things, this change makes it easier to build Guile with certain compilers which have problems with casted lvalues.)
1996-10-15Allocate data for structures on an eight-byte boundary, asJim Blandy1-7/+7
required by the tagging system. * struct.c (alloc_struct): New function. (scm_make_struct, scm_make_vtable_vtable): Call it. * struct.h (scm_struct_n_extra_words): Bump to 3. (scm_struct_i_ptr): New "field". * gc.c (scm_gc_sweep): When we need to free the data, use the information stored by alloc_struct to find the beginning of the block allocated to the structure, so we can free it.
1996-10-14* gc.c (scm_init_storage): Initialize scm_stand_in_procs to SCM_EOL.Mikael Djurfeldt1-0/+1
1996-10-14* continuations.c, continuations.h, debug.c, gc.c, init.c, root.c,Mikael Djurfeldt1-2/+2
stacks.c: Renamed regs --> scm_contregs.
1996-10-14* __scm.h, alist.c, alist.h, append.c, append.h, appinit.c,Jim Blandy1-5/+10
arbiters.c, arbiters.h, async.c, async.h, boolean.c, boolean.h, chars.c, chars.h, continuations.c, continuations.h, debug.c, debug.h, dynwind.c, dynwind.h, eq.c, eq.h, error.c, eval.c, eval.h, extchrs.c, extchrs.h, fdsocket.c, fdsocket.h, filesys.c, filesys.h, fports.c, fports.h, gc.c, gdb_interface.h, gdbint.c, gdbint.h, genio.c, genio.h, gscm.c, gscm.h, gsubr.c, gsubr.h, hash.c, hash.h, hashtab.c, hashtab.h, init.c, ioext.c, ioext.h, kw.c, kw.h, libguile.h, mallocs.c, mallocs.h, markers.c, markers.h, mbstrings.c, mbstrings.h, numbers.c, numbers.h, objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h, ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c, procprop.h, procs.c, procs.h, ramap.c, ramap.h, read.c, read.h, root.c, scmsigs.c, scmsigs.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c, socket.c, socket.h, srcprop.c, srcprop.h, stackchk.c, stackchk.h, stime.c, stime.h, strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h, strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h, tag.c, tag.h, unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h, version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: Use SCM_P to declare functions with prototypes. (Patch thanks to Marius Vollmer.)
1996-10-01* gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START andMikael Djurfeldt1-14/+20
SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to root.c:mark_root.
1996-09-22* struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,Mikael Djurfeldt1-7/+18
scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom Lord's implementation of structs, allowing for tail arrays as described in the manual. Also fixed some bugs. (Both the interface and the implementation should be improved.)
1996-09-17* ports.h (scm_port_table): put back file_name, it will be used toGary Houston1-4/+2
support debugging. Undo related changes in fports.c, ioext.c, ports.c, gc.c.
1996-09-16 * ports.h (scm_port_table): remove file_name member for now, it seemsGary Houston1-2/+4
undesirable. * fports.c (scm_open_file): don't set file_name in PTAB. (prinfport): don't use file_name in PTAB. * ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB. * ports.c (scm_add_to_port_table): don't intialize file_name. (scm_port_file_name): remove for now. * gc.c (scm_gc_mark): don't mark PTAB file_name. * fports.h (scm_mkfile): prototype deleted. * fports.c (scm_mkfile): merged into scm_open_file to simplify.
1996-09-10Use SCM_P instead of PROTO; the latter intrudes on the user'sJim Blandy1-3/+3
namespace. * params.h: Deleted; definition of SCM_P moved to... * __scm.h: ... here, where it replaces PROTO macro. * libguile.h, smob.h: Don't #include "params.h". * continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h, smob.h: Fix prototypes accordingly. * Makefile.in: Update dependencies. (inner_h_files): Remove params.h.
1996-09-10* gc.c: #include "gc.h"; every module should include its header,Jim Blandy1-0/+2
to let the compiler cross-check the declarations against the definitions.
1996-09-10C files should #include only the header files they need, notJim Blandy1-0/+8
libguile.h (which #includes all the header files); the pointless recompilation was wasting my time. * Makefile.in (all .o dependency lists): Regenerated. * libguile.h: Don't try to get a definition for size_t here... * __scm.h: Do it here. * _scm.h: Since this is the internal libguile header, put things here that all (or a majority) of the libguile files will want. Don't #include <libguile.h> here; that generates dependencies on way too much. Instead, get "__scm.h", "error.h", "pairs.h", "list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h", "boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and "async.h". * alist.c: Get "eq.h", "list.h", "alist.h". * append.c: Get "append.h", "list.h". * arbiters.c: Get "arbiters.h", "smob.h". * async.c: Get "async.h", "smob.h", "throw.h", "eval.h". * boolean.c: Get "boolean.h". * chars.c: Get "chars.h". * continuations.c: Get "continuations.h", "dynwind.h", "debug.h", "stackchk.h". * debug.c: Get "debug.h", "feature.h", "read.h", "strports.h", "continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h", "genio.h", "throw.h", "eval.h". * dynwind.c: Get "dynwind.h", "alist.h", "eval.h". * eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h", "stackchk.h". * error.c: Get "error.h", "throw.h", "genio.h", "pairs.h". * eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h", "hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h", "continuations.h", "eq.h", "sequences.h", "alist.h", "append.h", "debug.h". * fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h". * feature.c: Get "feature.h". * files.c: Get "files.h". * filesys.c: Get "filesys.h", "smob.h", "genio.h". * fports.c: Get "fports.h", "markers.h". * gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h", "genio.h", "struct.h", "stackchk.h", "stime.h". * gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h", "read.h", "strports.h", "tag.h". * genio.c: Get "genio.h", "chars.h". * gsubr.c: Get "gsubr.h", "genio.h". * hash.c: Get "hash.h", "chars.h". * hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h". * init.c: Get everyone who has an scm_init_mumble function: "weaks.h", "vports.h", "version.h", "vectors.h", "variable.h", "unif.h", "throw.h", "tag.h", "symbols.h", "struct.h", "strports.h", "strorder.h", "strop.h", "strings.h", "stime.h", "stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h", "scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h", "print.h", "posix.h", "ports.h", "pairs.h", "options.h", "objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h", "list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h", "gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h", "feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h", "dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h", "async.h", "arbiters.h", "append.h", "alist.h". * ioext.c: Get "ioext.h", "fports.h". * kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h". * list.c: Get "list.h", "eq.h". * load.c: Get "load.h", "eval.h", "read.h", "fports.h". * mallocs.c: Get "smob.h", "genio.h". * markers.c: Get "markers.h". * mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h", "chars.h". * numbers.c: Get "unif.h", "genio.h". * objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h". * options.c: Get "options.h". * ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h", "markers.h", "chars.h", "genio.h". * posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h", "read.h", "scmsigs.h", "genio.h", "fports.h". * print.c: Get "print.h", "unif.h", "weaks.h", "read.h", "procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h", "chars.h". * procprop.c: Get "procprop.h", "eval.h", "alist.h". * procs.c: Get "procs.h". * ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h", "chars.h", "smob.h", "unif.h". * read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h", "eval.h", "genio.h", "chars.h". * root.c: Get "root.h", "stackchk.h". * scmsigs.c: Get "scmsigs.h". * sequences.c: Get "sequences.h". * simpos.c: Get "simpos.h", "scmsigs.h". * smob.c: Get "smob.h". * socket.c: Get "socket.h", "feature.h". * srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h", "alist.h", "smob.h". * stackchk.c: Get "stackchk.h", "genio.h". * stime.c: Get "stime.h"."libguile/continuations.h". * strings.c: Get "strings.h", "chars.h". * strop.c: Get "strop.h", "chars.h". * strorder.c: Get "strorder.h", "chars.h". * strports.c: Get "strports.h", "print.h", "eval.h", "unif.h". * struct.c: Get "struct.h", "chars.h". * symbols.c: Get "symbols.h", "mbstrings.h", "alist.h", "variable.h", "eval.h", "chars.h". * tag.c: Get "tag.h", "struct.h", "chars.h". * throw.c: Get "throw.h", "continuations.h", "debug.h", "dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h". * unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h", "smob.h", "genio.h", "eval.h", "chars.h". * variable.c: Get "variable.h", "smob.h", "genio.h". * vectors.c: Get "vectors.h", "eq.h". * version.c: Get "version.h". * vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h". * weaks.c: Get "weaks.h".
1996-09-04* gc.c (scm_cellp): New function: C predicate to determine if anMikael Djurfeldt1-0/+71
SCM value can be regarded as a pointer to a cell on the heap.
1996-08-20* gc.c (scm_init_storage): Renamed scm_make_weak_hash_tableMikael Djurfeldt1-1/+1
--> scm_make_weak_key_hash_table.
1996-08-15* gc.h: Use the PROTO macro when declaring functions.Jim Blandy1-113/+5
* gc.c: Use the PROTO macro when declaring static functions. Remove the CPP hair around function definitions. * gc.c (scm_init_storage): Initialize scm_asyncs.
1996-08-07portability fixes for header inclusion etc.Gary Houston1-2/+2
1996-07-25maintainer changed: was lord, now jimb; first importJim Blandy1-0/+1690