(sysdep_dynl_link): Added `flags' argument.
(kw_global, sym_global): New.
(scm_dynamic_link): Handle keyword arguments. Pass suitable flags
to sysdep_dynl_link.
* dynl-dl.c (sysdep_dynl_link): Handle new `flags' argument by
conditrionally adding RTLD_GLOBAL to DLOPEN_MODES.
* dynl-shl.c (sysdep_dynl_link): Add and ignore new flags
argument.
* dynl-dld.c (sysdep_dynl_link): Add and ignore new flags
argument.
* dynl.h (scm_dynamic_link): Added rest argument.
* dynl.c (sysdep_dynl_unlink, sysdep_dynl_func): Use const
qualifier for char* argument, to match prototypes. Thanks to Mark
Elbrecht.
* eq.c, eval.c, list.c, ramap.c, vectors.c: Always write parens
around the condition of an `if', `while', etc., even if the
condition is a macro invocation that expands to something
surrounded by parens. It's more readable.
chaining the live guardians in a single-linked list during the GC
mark phase.
(GUARDIAN_NEXT): convenience macro to access the `next' field.
(guardians, guardians_size, n_guardians): deleted.
(first_live_guardian, current_link_field): new globals used to
point to the head of the live guardian list and current `next'
field, respectively.
(g_mark): append the guardian to the live guardian list.
(scm_guardian_gc_init): zero the live guardian list.
(scm_guardian_zombify): iterate through the live guardian list.
* weaks.c (scm_make_weak_vector): Add another extra slot before
vector contents, to be used only during garbage collection.
* weaks.h (SCM_WVECT_GC_CHAIN): New macro to access it.
* gc.c (scm_weak_vectors): Now a SCM instead of a SCM*, and now
static.
(scm_weak_size, scm_n_weak): Deleted.
(scm_igc): Use SCM_WVECT_GC_CHAIN to build up a chain of weak
vectors without allocating new storage during GC, using
scm_weak_vectors as the head of the chain.
(scm_mark_weak_vector_spines): Walk SCM_WVECT_GC_CHAIN chain
instead of stepping through an array.
(scm_gc_sweep): Update offset used to find start of weak vector to
free it.
(scm_init_storage): Set scm_weak_vectors to EOL.
Fix from Ken Raeburn <raeburn@raeburn.org>:
* gc.c (already_in_gc): New variable.
(scm_igc): Set and clear already_in_gc; abort if it's set at
entry.
* weaks.c (scm_make_weak_vector): Add another extra slot before
vector contents, to be used only during garbage collection.
* weaks.h (SCM_WVECT_GC_CHAIN): New macro to access it.
* gc.c (scm_weak_vectors): Now a SCM instead of a SCM*, and now
static.
(scm_weak_size, scm_n_weak): Deleted.
(scm_igc): Use SCM_WVECT_GC_CHAIN to build up a chain of weak
vectors without allocating new storage during GC, using
scm_weak_vectors as the head of the chain.
(scm_mark_weak_vector_spines): Walk SCM_WVECT_GC_CHAIN chain
instead of stepping through an array.
(scm_gc_sweep): Update offset used to find start of weak vector to
free it.
(scm_init_storage): Set scm_weak_vectors to EOL.
that was introduced to fix the $ problem:
* expect.scm (expect): call the match proc an extra time at end
of file and set the eof? argument appropriately. call
expect-eof-proc only if the last call didn't match.
* expect.scm (expect-strings): change port to eof? in match proc.
* expect.scm (expect-regexec): take an eof indicator as an argument
instead of a port.
* fports.c, fports.h, gc.c, gdbint.c, ioext.c, ports.c, ports.h,
scmsigs.c, strports.c, vports.c: Install the sources which
actually correspond to the changes described below. I got the
ChangeLog entries and the patch from two different places...
extra character at the end of the string in the result.
* fports.c, fports.h, gc.c, gdbint.c, ioext.c, ports.c, ports.h,
scmsigs.c, strports.c, vports.c: Install the sources which
actually correspond to the changes described below. I got the
ChangeLog entries and the patch from two different places...
scmsigs.c, strports.c, vports.c: Install the sources which
actually correspond to the changes described below. I got the
ChangeLog entries and the patch from two different places...
know why it was missing. also don't peek for end of lines
unless expect-strings-exec-flags contains regexp/noteol.
(expect-strings-exec-flags): initialise to regexp/noteol.
* Makefile.in: Regenerated.
* popen.scm: applied fixes from Greg Harvey. use a guardian
and a gc-thunk so that cleanup is done if a pipe is garbage
collected or closed with close-port. use a weak hash-table instead of
an alist.
* boot-9.scm (reopen-file): deleted.
* popen.scm (open-output-pipe, open-input-pipe): moved from
boot-9.scm.
* popen.scm: new file.