Ludovic Courtès
3db825b067
Use immutable cells for closures.
...
* libguile/eval.c (scm_closure): Use `scm_immutable_cell ()' instead
of `scm_cell ()'.
* libguile/procs.h (SCM_SETCODE, SCM_SETENV): Remove.
2008-09-15 23:45:37 +02:00
Ludovic Courtès
44e268898b
Merge branch 'master' into boehm-demers-weiser-gc
...
Conflicts:
lib/Makefile.am
libguile/gc-card.c
libguile/gc-freelist.c
libguile/gc-mark.c
libguile/gc-segment.c
libguile/gc.c
libguile/gc.h
libguile/gc_os_dep.c
libguile/private-gc.h
m4/.cvsignore
m4/gnulib-cache.m4
m4/gnulib-comp.m4
2008-09-13 22:51:27 +02:00
Ludovic Courtès
dbb605f575
Include <config.h> in all C files; use #ifdef HAVE_CONFIG_H' rather than
#if'.
2008-09-13 15:35:27 +02:00
Ludovic Courtès
6f03035fe8
Merge branch 'master' into boehm-demers-weiser-gc
...
Conflicts:
libguile/Makefile.am
libguile/coop-defs.h
libguile/gc-card.c
libguile/gc-freelist.c
libguile/gc-malloc.c
libguile/gc-mark.c
libguile/gc-segment.c
libguile/gc.c
libguile/gc.h
libguile/gc_os_dep.c
libguile/hashtab.c
libguile/hashtab.h
libguile/inline.h
libguile/private-gc.h
libguile/struct.c
libguile/struct.h
libguile/threads.c
libguile/threads.h
libguile/vectors.h
libguile/weaks.h
test-suite/tests/gc.test
2008-09-10 23:09:30 +02:00
Ludovic Courtès
6774820f1e
Merge commit ' 29776e85da
' into boehm-demers-weiser-gc
...
Conflicts:
libguile/gc-card.c
libguile/gc.c
libguile/gc.h
libguile/ports.c
2008-09-10 22:50:04 +02:00
Ludovic Courtès
e9b8556ec9
Merge commit ' 7337d56d57
' into boehm-demers-weiser-gc
...
Conflicts:
libguile/struct.c
2008-09-10 22:44:31 +02:00
Ludovic Courtès
4a4849dbe0
Merge commit ' 0329137392
' into boehm-demers-weiser-gc
...
Conflicts:
libguile/gc.c
libguile/srcprop.c
libguile/srcprop.h
2008-09-10 22:33:40 +02:00
Ludovic Courtès
35a9197ccc
Merge commit ' f30e1bdf97
' into boehm-demers-weiser-gc
...
Conflicts:
libguile/Makefile.am
libguile/coop-pthreads.c
libguile/gc-freelist.c
libguile/gc-segment.c
libguile/gc.c
libguile/private-gc.h
test-suite/tests/environments.nottest
2008-09-10 22:27:30 +02:00
Ludovic Courtes
a4a141f679
Removed a lot of now-useless SMOB mark/free functions.
...
* libguile/arbiters.c (scm_init_arbiters): Don't invoke `scm_set_smob_mark'.
* libguile/async.c (async_gc_mark): Removed.
(scm_init_async): Don't invoke `scm_set_smob_mark'.
* libguile/coop-pthreads.c (thread_mark): Removed.
(create_thread): Use `scm_gc_malloc' instead of `scm_malloc' when
allocating `launch_data'.
(mutex_mark): Removed.
(scm_threads_init): Don't invoke `scm_set_smob_mark' and
`scm_set_smob_free'.
* libguile/debug.c (scm_init_debug): Don't invoke `scm_set_smob_mark'.
* libguile/dynl.c (dynl_obj_mark): Removed.
(scm_init_dynamic_linking): Don't invoke `scm_set_smob_mark'.
* libguile/dynwind.c (winder_mark): Removed.
(scm_init_dynwind): Don't invoke `scm_set_smob_mark'.
* libguile/environments.c (environment_mark): Removed.
(environment_free): Removed.
(observer_mark): Removed.
(core_environments_mark): Removed.
(core_environments_finalize): Removed.
(leaf_environment_mark): Removed.
(leaf_environment_free): Removed.
(leaf_environment_funcs): Don't refer to the above funcs.
(eval_environment_mark): Removed.
(eval_environment_free): Removed.
(eval_environment_funcs): Don't refer to the above funcs.
(import_environment_mark): Removed.
(import_environment_free): Removed.
(import_environment_funcs): Don't refer to the above funcs.
(export_environment_mark): Removed.
(export_environment_free): Removed.
(export_environment_funcs): Don't refer to the above funcs.
(scm_environments_prehistory): Don't invoke `scm_set_smob_mark' and
`scm_set_smob_free'.
* libguile/environments.h (scm_environment_funcs)[mark]: Removed.
[free]: Removed.
* libguile/eval.c (promise_mark): Removed.
(promise_free): Removed.
(scm_init_eval): Don't invoke `scm_set_smob_mark' and
`scm_set_smob_free'.
* libguile/fluids.c (fluid_free): Removed.
(scm_fluids_prehistory): Don't invoke `scm_set_smob_mark' and
`scm_set_smob_free'.
* libguile/futures.c (future_mark): Removed.
(scm_init_futures): Don't invoke `scm_set_smob_mark'.
* libguile/hashtab.c (hashtable_free): Removed.
(scm_hashtab_prehistory): Don't invoke `scm_set_smob_mark' and
`scm_set_smob_free'.
* libguile/hooks.c (scm_init_hooks): Don't invoke `scm_set_smob_mark'.
* libguile/keywords.c (scm_init_keywords): Don't invoke
`scm_set_smob_mark'.
* libguile/macros.c (scm_init_macros): Don't invoke `scm_set_smob_mark'.
* libguile/modules.c (scm_init_modules): Don't invoke
`scm_set_smob_mark'.
* libguile/print.c (scm_init_print): Don't invoke `scm_set_smob_mark'.
* libguile/random.c (scm_i_copy_rstate): Use `scm_gc_malloc' instead of
`scm_malloc'.
(scm_c_make_rstate): Likewise.
(rstate_free): Removed.
(scm_init_random): Don't invoke `scm_set_smob_free'.
* libguile/srcprop.c (srcprops_mark): Removed.
(scm_init_srcprop): Don't invoke `srcprops_mark'.
* libguile/srfi-14.c (charset_free): Removed.
(scm_init_srfi_14): Don't invoke `scm_set_smob_free'.
* libguile/srfi-4.c (uvec_mark): Removed.
(uvec_free): Removed.
(scm_init_srfi_4): Don't invoke `scm_set_smob_free' and
`scm_set_smob_mark'.
* libguile/threads.c (thread_mark): Removed.
(fat_mutex_mark): Removed.
(fat_cond_mark): Removed.
(scm_init_threads): Dont invoke `scm_set_smob_mark' and
`scm_set_smob_free'.
* libguile/unif.c (bitvector_free): Removed.
(array_mark): Removed.
(array_free): Removed.
(scm_init_unif): Don't invoke `scm_set_smob_free' and
`scm_set_smob_mark'.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-28
2008-09-05 09:34:23 +02:00
Han-Wen Nienhuys
39d275916b
* eval.c: Mark #endif with comment.
2008-09-03 23:27:42 -03:00
Ludovic Courtès
417566ebc9
Never define _GNU_SOURCE' explicitly since
AC_USE_SYSTEM_EXTENSIONS'
...
takes care of it.
Conflicts:
ChangeLog
configure.in
libguile/eval.c
libguile/srfi-14.c
libguile/threads.c
2008-08-20 19:31:46 +02:00
Ludovic Courtès
61b6542aa6
Fix type-checking for the second argument of `eval'.
2008-03-06 09:51:44 +00:00
Ludovic Courtès
9cc37597af
Changes from arch/CVS synchronization
2007-12-08 16:00:56 +00:00
Neil Jerram
acbfb5946b
(unmemoize_delay): Extend the environment before
...
unmemoizing the promise thunk. This fixes a segmentation fault
reported by Frank Schwidom.
2007-10-21 20:43:14 +00:00
Ludovic Courtès
f743909974
Changes from arch/CVS synchronization
2007-07-29 15:16:46 +00:00
Ludovic Courtès
e08f3f7a30
Changes from arch/CVS synchronization
2007-07-24 23:17:54 +00:00
Ludovic Courtès
3dcf33733c
Changes from arch/CVS synchronization
2007-05-26 14:30:50 +00:00
Han-Wen Nienhuys
3d178652b8
* eval.c: remove superfluous ifndef DEVAL.
...
* eval.c: distangle. move duplicate code to eval.i.c and include
twice.
* backtrace.c, debug.c, debug.h, deprecation.c, eq.c, eval.c
eval.h, gsubr.c, init.c, macros.c, print.c, print.h, read.c,
read.h, stacks.c, symbols.c, throw.c: use private-options.h
2007-01-22 15:29:56 +00:00
Han-Wen Nienhuys
243ebb6113
* private-options.h: idem.
...
* eval.i.c: copyright nitpicking.
* eval.c: distangle. move duplicate code to eval.i.c and include
twice.
* eval.i.c: new file.
* backtrace.c, debug.c, debug.h, deprecation.c, eq.c, eval.c
eval.h, gsubr.c, init.c, macros.c, print.c, print.h, read.c,
read.h, stacks.c, symbols.c, throw.c: use private-options.h
* private-options.h: new file: contain hardcoded option
definitions.
2007-01-22 15:20:35 +00:00
Han-Wen Nienhuys
0ee05b85ee
* eval.c: distangle. move duplicate code to eval.i.c and include
...
twice.
* eval.i.c: new file.
* backtrace.c, debug.c, debug.h, deprecation.c, eq.c, eval.c
eval.h, gsubr.c, init.c, macros.c, print.c, print.h, read.c,
read.h, stacks.c, symbols.c, throw.c: use private-options.h
2007-01-22 15:16:44 +00:00
Han-Wen Nienhuys
72f19c2646
* debug.h (SCM_RESET_DEBUG_MODE): switch to debugging if
...
memoize-symbol is set.
* eval.h (SCM_MEMOIZE_HDLR): add macros for memoize symbol trap.
* eval.c (CEVAL): add memoize_symbol trap.
* read.c: idem.
* eval.c: terminate option lists with 0.
2007-01-19 20:05:05 +00:00
Han-Wen Nienhuys
b0763985c4
* srcprop.c: use double cell for storing source-properties. Put
...
filename in the plist, and share between srcprops if possible.
Remove specialized storage.
* srcprop.h: remove macros without SCM_ prefix from
interface. Remove specialized storage/type definitions.
* eval.c: terminate option lists with 0.
2007-01-19 19:33:10 +00:00
Han-Wen Nienhuys
6256065013
* readline.c: terminate option list with NULL.
...
* read.c: idem.
* print.c: idem.
* eval.c: terminate option lists with 0.
* options.c: remove n (for length) from scm_option_X
functions. Detect option list length by looking for NULL name.
2007-01-19 19:26:36 +00:00
Kevin Ryde
23d7256628
merge from 1.8
2007-01-15 23:42:45 +00:00
Kevin Ryde
8ab3d8a068
merge from 1.8 branch
2006-10-09 23:40:48 +00:00
Kevin Ryde
23f2b9a3de
merge from 1.8 branch
2006-06-17 23:15:59 +00:00
Kevin Ryde
2b829bbb3d
merge from 1.8 branch
2006-04-17 00:05:42 +00:00
Marius Vollmer
cce0e9c875
(scm_eval_body): Lock source_mutex with a dynwind context
...
so that it gets unlocked in all cases.
(SCM_APPLY, CEVAL): Likewise.
2006-01-29 23:12:01 +00:00
Marius Vollmer
2f263a6a0b
* futures.h, futures.c: Wrap whole contents in "#if 0"/"#endif".
...
* eval.c, init.c: Comment out all 'future' related things.
2006-01-29 19:09:52 +00:00
Marius Vollmer
661ae7ab6b
Renamed the "frames" that are related to dynamic-wind to "dynamic
...
contexts. Renamed all functions from scm_frame_ to scm_dynwind_.
Updated documentation.
2006-01-29 00:23:28 +00:00
Marius Vollmer
1fe1fc0a92
(scm_m_cond): Recognize SRFI 61 cond syntax.
...
(CEVAL): Evaluate SRFI 61 cond clauses.
2005-12-06 21:31:26 +00:00
Neil Jerram
7c9c0169b4
* eval.c (sym_instead): New symbol.
...
(ENTER_APPLY): Remove optional use of a continuation when making
trap call.
(scm_debug_opts): Change doc for 'cheap option to make clear that
it is now obsolete.
(CEVAL, SCM_APPLY): Remove optional use of a continuation when
making trap calls, and implement substitution of eval expressions
and return values using the values that the trap call handlers
return.
* debug.h (SCM_CHEAPTRAPS_P): Removed.
2005-11-04 21:20:24 +00:00
Marius Vollmer
d1138028c9
* null-threads.h, pthread-threads.h
...
(SCM_I_PTHREAD_RECURSIVE_MUTEX_INITIALIZER): Removed.
(scm_i_pthread_mutexattr_recursive): New.
* threads.c (scm_i_pthread_mutexattr_recursive): Declare.
(scm_i_critical_section_mutex): Do not initialize statically.
(scm_threads_prehistory): Initialize
scm_i_pthread_mutexattr_recursive and scm_i_critical_section_mutex
here.
* eval.c (source_mutex): Do not initialiaze statically.
(scm_init_eval): Do it here, using
scm_i_pthread_mutexattr_recursive.
2005-10-23 20:47:49 +00:00
Neil Jerram
5defc05d45
* eval.c (eval_letrec_inits): New.
...
(CEVAL): Eval letrec initializer forms using eval_letrec_inits.
* tests/r5rs_pitfall.test (1.1): Now passes.
2005-08-15 20:43:16 +00:00
Kevin Ryde
c3c97a34e7
(scm_dbg_make_iloc): Should be SCM_IFRAMEMAX and
...
SCM_IDISTMAX, and cast uints through scm_t_bits to make gcc happy.
Reported by Ken Raeburn.
2005-07-12 00:28:09 +00:00
Marius Vollmer
876099d4ef
(scm_eval_options_interface): Use scm_frame_critical_section instead
...
of SCM_CRITICAL_SECTION_START and SCM_CRITICAL_SECTION_END.
2005-06-06 18:49:55 +00:00
Marius Vollmer
e9ed042cbc
Added comment on how to make case 1.1 of r5rs_pitfall.test succeed.
2005-06-05 20:52:23 +00:00
Marius Vollmer
92205699d0
The FSF has a new address.
2005-05-23 19:57:22 +00:00
Neil Jerram
2b0fb0a50e
Critical section review.
2005-03-30 18:43:49 +00:00
Marius Vollmer
de527efba5
Define _GNU_SOURCE.
2005-03-04 12:11:10 +00:00
Marius Vollmer
9de87eea47
See ChangeLog from 2005-03-02.
2005-03-02 20:42:01 +00:00
Marius Vollmer
76da80e788
Reverted changed from 2005/01/24 19:14:54, which was a commit to the
...
wrong branch. Sorry.
2005-01-24 23:41:14 +00:00
Marius Vollmer
a54a94b397
Threading changes.
2005-01-24 19:14:54 +00:00
Marius Vollmer
65bc1f7a0b
* eval.c, debug.h (SCM_WARN_DEPRECATED): New debug option.
...
* deprecation.c (scm_issue_deprecation_warning,
scm_c_issue_deprecation_warning_fmt): Use it.
(mode): Removed.
(print_summary): New.
(scm_init_deprecation): Initialize SCM_WARN_DEPRECATED instead of
mode.
2005-01-11 17:43:37 +00:00
Marius Vollmer
6be1fab900
(scm_eval): Added example to docstring. Thanks to Issac Trotts!
2005-01-10 20:20:58 +00:00
Marius Vollmer
4057a3e05a
Use new vector elements API or simple vector API, as appropriate.
...
Removed SCM_HAVE_ARRAYS ifdefery. Replaced all uses of
SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
2005-01-02 20:49:04 +00:00
Marius Vollmer
a61f4e0c61
(scm_eval, scm_apply, call_cxr_1): Use scm_i_chase_pairs
...
instead of explicit code.
2004-09-22 17:38:44 +00:00
Dirk Herrmann
5fa0939ce5
* eval.c (unmemoize_exprs): When dropping internal body markers
...
from the output during unmemoization, also drop those that are not
immediately at the beginning of a body.
2004-08-21 07:28:16 +00:00
Marius Vollmer
a03bad878b
(scm_lookupcar1): Report "Variable used before given a value" insetad
...
of an "Unbound" one for variables that are found but still contain
SCM_UNDEFINED.
2004-08-20 13:33:28 +00:00
Marius Vollmer
2d0c133f92
(scm_lookupcar1): Report an "Undefined variable" insetad of an
...
"Unbound" one for variables that are found but still contain
SCM_UNDEFINED.
2004-08-20 12:26:46 +00:00