Ludovic Courtès
46935a1fac
Arrange so that `SCM_I_CURRENT_THREAD' is not accessed outside of libguile.
...
* libguile/__scm.h (scm_async_tick): New declaration.
(SCM_ASYNC_TICK)[!BUILDING_LIBGUILE]: Use `scm_async_tick ()'.
* libguile/async.c (scm_critical_section_start,
scm_critical_section_end, scm_async_tick): New functions.
* libguile/async.h (scm_i_critical_section_mutex): Made internal.
(scm_critical_section_start, scm_critical_section_end): New
declarations.
(SCM_CRITICAL_SECTION_START,
SCM_CRITICAL_SECTION_END)[!BUILDING_LIBGUILE]: Use the same-named
function (lower-case).
* libguile/stackchk.h (SCM_STACK_OVERFLOW_P): Conditionalize on
`BUILDING_LIBGUILE'.
* libguile/threads.h (SCM_I_CURRENT_THREAD, scm_i_dynwinds,
scm_i_set_dynwinds, scm_i_last_debug_frame,
scm_i_set_last_debug_frame): Conditionalize on `BUILDING_LIBGUILE'.
2009-10-09 14:10:03 +02:00
Ludovic Courtès
0eb934f1f0
Use `SCM_DEPRECATED' in declarations of deprecated functions/variables.
...
* libguile/deprecated.c (SCM_BUILDING_DEPRECATED_CODE): New macro.
* libguile/async.c (SCM_BUILDING_DEPRECATED_CODE): Likewise.
* libguile/macros.c (SCM_BUILDING_DEPRECATED_CODE): Likewise.
* libguile/async.h, libguile/deprecated.h, libguile/eval.h,
libguile/gc.h, libguile/gc.h, libguile/macros.h, libguile/ports.h,
libguile/srfi-4.h, libguile/strings.h: Change declarations of
deprecated functions and variables to use `SCM_DEPRECATED' instead of
`SCM_API'.
2009-10-02 14:48:22 +02:00
Ludovic Courtès
fbb857a472
Merge branch 'master' into boehm-demers-weiser-gc
...
Conflicts:
lib/Makefile.am
libguile/Makefile.am
libguile/frames.c
libguile/gc-card.c
libguile/gc-freelist.c
libguile/gc-mark.c
libguile/gc-segment.c
libguile/gc_os_dep.c
libguile/load.c
libguile/macros.c
libguile/objcodes.c
libguile/programs.c
libguile/strings.c
libguile/vm.c
m4/gnulib-cache.m4
m4/gnulib-comp.m4
m4/inline.m4
2009-08-18 00:06:45 +02:00
Neil Jerram
53befeb700
Change Guile license to LGPLv3+
...
(Not quite finished, the following will be done tomorrow.
module/srfi/*.scm
module/rnrs/*.scm
module/scripts/*.scm
testsuite/*.scm
guile-readline/*
)
2009-06-17 00:22:09 +01:00
Neil Jerram
877f06c338
Fix explicitely' typos, should be
explicitly'
2009-05-20 18:51:03 +01:00
Ludovic Courtès
083f810fe9
Merge branch 'master' into boehm-demers-weiser-gc
...
Conflicts:
lib/Makefile.am
libguile/struct.c
libguile/threads.c
m4/gnulib-cache.m4
m4/gnulib-comp.m4
2008-12-14 20:48:15 +01:00
Ludovic Courtès
634aa8de8f
Check the return value of libc's functions to make `_FORTIFY_SOURCE=2' work.
...
This fixes bug #24009 reported by Martin Pitt.
* libguile/threads.c (guilify_self_1): Check the return value of
pipe(2).
(scm_std_select): Use `full_read ()' instead of `read ()' when reading
from WAKEUP_FD.
* libguile/async.c (scm_i_queue_async_cell): Use `full_write ()' instead
of write(2) when writing to SLEEP_FD.
* libguile/fports.c (fport_flush): Likewise.
* libguile/posix.c (getgroups): Use the return value of getgroups(2) as
NGROUPS.
(scm_nice): Get the return value of nice(2) to make glibc happy.
* libguile/scmsigs.c (take_signal): Use `full_write ()' instead of
write(2).
2008-11-30 18:43:41 +01: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 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
Kevin Ryde
2b829bbb3d
merge from 1.8 branch
2006-04-17 00:05:42 +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
92205699d0
The FSF has a new address.
2005-05-23 19:57:22 +00:00
Marius Vollmer
9de87eea47
See ChangeLog from 2005-03-02.
2005-03-02 20:42:01 +00:00
Marius Vollmer
d2e53ed6f8
*** empty log message ***
2004-09-22 17:41:37 +00:00
Marius Vollmer
7888309be8
* deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL,
...
SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into "deprecated.h".
Replaced all uses with scm_is_false, scm_is_true, scm_from_bool, and
scm_is_bool, respectively.
2004-07-06 10:59:25 +00:00
Marius Vollmer
16c5cac25a
(scm_frame_unwind, scm_frame_unwind_handler): Renamed and changed all
...
uses. (scm_frame_rewind, scm_frame_rewind_handler): Likewise.
2004-01-11 00:51:19 +00:00
Marius Vollmer
dfe610a085
Did the follwing renamings: scm_with_blocked_asyncs ->
...
scm_frame_block_asyncs, scm_with_unblocked_asyncs ->
scm_frame_unblock_asyncs. Changed all uses.
2004-01-07 18:03:18 +00:00
Marius Vollmer
9320d21970
dynwind.h (SCM_F_WIND_EXPLICITELY, SCM_F_WIND_EXPLICITLY): It's
...
"explicitly" not "explicitely", damn. Changed all uses.
2004-01-06 18:11:55 +00:00
Marius Vollmer
b57a0953fe
(scm_with_blocked_asyncs, scm_with_unblocked_asyncs): New.
2004-01-04 23:36:49 +00:00
Marius Vollmer
73be1d9e8e
Changed license terms to the plain LGPL thru-out.
2003-04-05 19:15:35 +00:00
Rob Browning
ef92a2a2d7
* async.c: #include <config.h> if HAVE_CONFIG_H.
2003-03-25 23:52:33 +00:00
Mikael Djurfeldt
c7fabadfe0
* async.c, error.h (scm_ints_disabled): Removed.
...
* gc.c (scm_gc_for_newcell), init.c (scm_init_guile_1),
root.c (scm_internal_cwdr), gdbint.c (SCM_BEGIN_FOREIGN_BLOCK,
SCM_END_FOREIGN_BLOCK): Don't touch scm_ints_disabled.
(old_ints): Removed.
* __scm.h (SCM_DEFER_INTS, SCM_ALLOW_INTS): Define as a recursive
critical section.
(SCM_REDEFER_INTS, SCM_ALLOW_INTS): Define as SCM_DEFER_INTS and
SCM_ALLOW_INTS.
2002-12-10 09:35:06 +00:00
Marius Vollmer
3d7f708f21
* __scm.h (USE_THREADS, GUILE_ISELECT): Define when
...
SCM_DEBUG_DEPRECATED. Removed their use thru-out Guile.
2002-11-03 22:09:20 +00:00
Marius Vollmer
402858a4d3
(scm_async_click): Reset pending_asyncs, handle
...
signal_asyncs. Don't set cdr of a non-signal async to #f.
(scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
always. Set pending_asyncs.
(scm_system_async_mark_for_thread): Check that thread has not
exited.
(scm_unmask_signals, decrease_block): Call scm_async_click after
block_asyncs becomes zero.
2002-10-27 20:22:01 +00:00
Marius Vollmer
6182ceacb4
(SCM_MAKE_VALIDATE_MSG): New. Use it instead of SCM_MAKE_VALIDATE in
...
lots of places to gove better error messages. Thanks to Bill
Schottstaedt!
2002-10-20 22:59:01 +00:00
Neil Jerram
0a50eeaadb
Auto docstring updates, including soft port enhancement.
2002-10-19 16:33:25 +00:00
Dirk Herrmann
100ae50db2
* async.h, async.c (scm_system_async): Fixed deprecation to work
...
correctly when deprecated features are excluded.
2002-10-19 08:22:50 +00:00
Marius Vollmer
028e573c8a
(scm_system_async_mark_for_thread): Validate thread argument.
2002-10-16 16:27:46 +00:00
Marius Vollmer
4feac0b904
* async.c (s_scm_system_async_mark_for_thread): Only call
...
scm_i_thread_root when USE_THREADS is defined. Use scm_root
otherwise.
* scmsigs.c (take_signal): Only call scm_i_thread_root when
USE_THREADS is defined. Use scm_root otherwise.
(scm_sigaction_for_thread): Ignore THREAD argument when
USE_THREADS is not defined. Also, move THREAD argument defaulting
out of HAVE_SIGACTION section, which was a bug.
2002-10-11 13:02:50 +00:00
Marius Vollmer
e292f7aac8
* async.h (scm_call_with_blocked_asyncs,
...
scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
scm_c_call_with_unblocked_asyncs): New prototypes.
(scm_mask_signals, scm_unmask_signals): Deprecated.
(scm_mask_ints): Turned into a macro.
* async.c (scm_mask_ints): Removed.
(scm_run_asyncs): Do not set scm_mask_ints while running an async.
this should not be necessary.
(scm_async_click): Test block_asyncs instead of scm_mask_ints.
(scm_mask_signals, scm_unmask_signals): Deprecated. Emit
deprecation warning and check for errornous use. Set block_asyncs
instead of scm_mask_ints.
(increase_block, decrease_block, scm_call_with_blocked_asyncs,
scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
scm_c_call_with_unblocked_asyncs): New.
2002-10-09 22:44:02 +00:00
Marius Vollmer
f6b44bd99f
* async.c (scm_async_click): Set the cdr of a executed handler
...
cell to SCM_BOOL_F, not SCM_EOL.
(scm_i_queue_async_cell): Queue the cell at the end of the list,
and only if the handler procedure is not already present.
(scm_system_async_mark_for_thread): Initialize cdr of handler cell
with SCM_BOOL_F.
* scmsigs.c (scm_sigaction_for_thread): Likewise.
2002-10-05 13:06:58 +00:00
Marius Vollmer
2d3179db77
Removed GUILE_OLD_ASYNC_CLICK code. Reorganized so that system asnycs
...
and user asyncs are separated. Reimplemented system asyncs to work
per-thread.
2002-10-04 13:49:13 +00:00
Han-Wen Nienhuys
34d19ef643
2002-07-20 Han-Wen <hanwen@cs.uu.nl>
...
* *.c: add space after commas everywhere.
* *.c: use SCM_VECTOR_SET everywhere, where a vector is written.
Document cases where SCM_WRITABLE_VELTS() is used.
* vectors.h (SCM_VELTS): prepare for write barrier, and let
SCM_VELTS() return a const pointer
(SCM_VECTOR_SET): add macro.
* autogen.sh (mscripts): find and check version number of
autoconf. Complain if 2.53 is not found.
2002-07-20 14:08:34 +00:00
Thien-Thi Nguyen
a6b844c224
Retire inclusion guard macro SCM_MAGIC_SNARFER.
2002-03-14 03:47:43 +00:00
Neil Jerram
c96d76b88d
* First batch of libguile changes for Elisp support.
...
* Fixed a few typos.
* Minor rationalization of macros relating to source breakpoints.
2002-01-22 23:31:39 +00:00
Marius Vollmer
da6129a67e
(scm_system_async_mark_from_signal_handler): New.
2001-11-25 15:04:56 +00:00
Thien-Thi Nguyen
a06e3a75b2
Remove "face-lift" comment.
2001-07-09 07:36:48 +00:00
Keisuke Nishida
fdc2839563
* eval.c (scm_call_0, scm_call_1, scm_call_2, scm_call_3,
...
scm_apply_0, scm_apply_1, scm_apply_2, scm_apply_3): New functions.
2001-06-26 15:46:40 +00:00
Marius Vollmer
92c2555f69
replace "scm_*_t" with "scm_t_*".
2001-06-14 19:50:43 +00:00
Dirk Herrmann
22a52da14d
* Replaced a lot of calls to SCM_C[AD]R with more appropriate macros.
...
* Minor cleanups to hashtable implementation.
* Minor code beautifications.
2001-03-30 15:03:23 +00:00
Keisuke Nishida
783e777478
Remove #include <stdio.h>. Add #include <string.h>.
2001-03-09 23:33:41 +00:00
Martin Grabmüller
811cf8467a
(scm_async, scm_system_async, scm_async_mark, scm_system_async_mark,
...
scm_run_asyncs, scm_noop, scm_set_tick_rate, scm_set_switch_rate,
scm_unmask_signals, scm_mask_signals): Added docstrings.
2001-02-16 15:22:58 +00:00
Keisuke Nishida
e841c3e0c0
Smob-related creanup.
2000-12-08 17:32:56 +00:00
Dirk Herrmann
fd3363659b
* eval.c: remove commented code, remove #ifdef CCLO conditionals
...
* remove uses of older GC marking and cell accessing macros
2000-12-06 15:16:59 +00:00
Marius Vollmer
8dc9439fc6
* alist.c, arbiters.c, async.c, backtrace.c, boolean.c, chars.c,
...
continuations.c, debug-malloc.c, debug.c, dynl.c, dynwind.c,
environments.c, eq.c, error.c, eval.c, evalext.c, feature.c,
filesys.c, fluids.c, fports.c, gc.c, goops.c, guardians.c, hash.c,
hashtab.c, hooks.c, ioext.c, iselect.c, keywords.c, lang.c,
list.c, load.c, macros.c, modules.c, net_db.c, numbers.c,
objects.c, objprop.c, options.c, pairs.c, ports.c, posix.c,
print.c, procprop.c, procs.c, properties.c, ramap.c, random.c,
read.c, regex-posix.c, root.c, scmsigs.c, script.c, simpos.c,
socket.c, sort.c, srcprop.c, stackchk.c, stacks.c, stime.c,
strings.c, strop.c, strorder.c, strports.c, struct.c, symbols.c,
tag.c, threads.c, throw.c, unif.c, variable.c, vectors.c,
version.c, vports.c, weaks.c: Makes sure the snarfer output
inclusion is disabled when the snarfer is run on the file. Thanks
to Lars J. Aas!
* Makefile.am: Install guile-procedures.txt in version-specific
directory to enable multiple installed guile versions. Suggested
by Karl M. Hegbloom <karlheg@debian.org, patch by Matthias Koeppe.
2000-11-17 16:25:05 +00:00
Dirk Herrmann
d1ca2c6423
* Some more work to get rid of SCM_LENGTH
...
* Eliminated some cell type bit fiddling
* Various minor changes
2000-10-25 11:01:03 +00:00
Dirk Herrmann
9b166f1273
* Removed some unused identifiers and commented code.
2000-06-29 15:06:31 +00:00
Dirk Herrmann
939794ce7f
* Cleaned up initialization of asyncs.
...
* Moved handling of scm_gc_async to gc.c.
* Extracted handling of scheme level after-gc-hook from gc core.
2000-06-28 10:26:52 +00:00
Dirk Herrmann
73ea78af4d
* Switch to standard way of smob initialization.
2000-06-27 16:00:01 +00:00