1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-04 05:50:26 +02:00
Commit graph

9141 commits

Author SHA1 Message Date
Mikael Djurfeldt
a3365d4711 * Makefile.am: Added .x-dependencies to variable BUILT_SOURCES. 1998-04-14 09:22:52 +00:00
Mikael Djurfeldt
2c2b06709f Small fix. 1998-04-14 09:22:27 +00:00
Mikael Djurfeldt
fc1d67c47b * unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings.  (Thanks
to Ole Myren Röhne.)
1998-04-12 23:36:54 +00:00
Mikael Djurfeldt
360fc44c98 * ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
scm_set_port_column_x, scm_port_filename,
scm_set_port_filename_x): Removed optional arguments.  Added
proper argument checking.
1998-04-12 23:35:17 +00:00
Mikael Djurfeldt
a74145b809 * eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
stack size in machine words.
1998-04-12 23:34:43 +00:00
Mikael Djurfeldt
1ba8c23aca * socket.c: Check for HAVE_UNIX_DOMAIN_SOCKETS instead of
UNIX_DOMAIN_SOCKETS.  (Thanks to Lauri Alanko.)
1998-04-12 16:27:48 +00:00
Mikael Djurfeldt
6f3067f1e0 * gc.c (scm_gc_sweep): Count cells correctly. (Thanks to Ben
Caradoc-Davies.)
1998-04-12 10:23:20 +00:00
Mikael Djurfeldt
1609038c87 * eval.c (SCM_CEVAL, SCM_APPLY): In SCM_IM_APPLY and in the
procedure apply: Copy argument lists before pushing them unto the
environment so that the environment won't get mutated due to
manipulation of procedure arguments.  This should perhaps be
regarded as a temporary solution until someone finds a more
efficient one.  (Thanks to Maciej Stachowiak.)
1998-04-12 10:10:29 +00:00
Mark Galassi
17bf105df1 trivial 1998-04-11 12:40:19 +00:00
Mikael Djurfeldt
5798fd9790 New libtool: 1.2
* ltconfig, ltmain.sh, config.sub, config.guess: Updated.
New automake: 1.3
* Makefile.in, aclocal.m4, configure: Regenerated.
* README: Mention new version numbers on libtool and automake.
1998-04-11 09:51:40 +00:00
Mikael Djurfeldt
1abb11b658 * script.c (scm_compile_shell_switches): Use "guile" as default
zero arg if argc is NULL.
1998-04-10 19:01:53 +00:00
Mikael Djurfeldt
d0e32dd50d * script.c (scm_compile_shell_switches): Allow NULL argv if argc
is zero.  (Thanks to Dirk Herrmann.)
1998-04-02 09:25:00 +00:00
Mikael Djurfeldt
ac67270dcf *** empty log message *** 1998-03-30 21:04:09 +00:00
Mikael Djurfeldt
cda139a791 * gsubr.c (scm_gsubr_apply): Added dummy return to avoid compiler
warning.

* eval.c, numbers.c, unif.c, srcprop.c: Added a few curly braces
to avoid compiler warnings.

* dynl-dl.c (sysdep_dynl_func): Only define usymb if needed.
1998-03-30 21:03:35 +00:00
Mikael Djurfeldt
33b974026b * eval.h, eval.c, debug.h, debug.c (scm_evaluator_traps): Moved
from debug.c --> eval.c

* eval.h, eval.c (scm_eval_options_interface): New options
interface.
(SCM_EVAL_STACK): New option: Size of newly created stacks,
i.e. stacks for new threads.

* eval.c (unsafe_setjmp): Removed with #if 0.

* eval.c, numbers.c, unif.c, srcprop.c: Added a few curly braces
to avoid compiler warnings.
1998-03-30 21:02:59 +00:00
Mikael Djurfeldt
51d394a1c5 * coop.c (COOP_STKSIZE): Use SCM_EVAL_STACK. 1998-03-30 21:02:31 +00:00
Mikael Djurfeldt
0e929db3d1 * ports.c (scm_add_to_port_table): First line is now line 0
(was 1).  (Interface changed according to suggestion by Per
Bothner.)

* backtrace.c (display_header): Add 1 to line and column numbers
when presenting them to the user.
1998-03-30 19:31:52 +00:00
Mikael Djurfeldt
d0defdf3aa * ports.c (scm_add_to_port_table): First line is now line 0
(was 1).  (Interface changed according to suggestion by Per
Bothner.)

* backtrace.c (display_header): Add 1 to line and column numbers
when presenting them to the user.
1998-03-30 19:22:16 +00:00
Mikael Djurfeldt
701191ba9c * throw.c (handler_message): Print message on current error port
instead of default error port.  (Thanks to Maciej Stachowiak.)
1998-03-28 20:26:17 +00:00
Gary Houston
67fe060ed5 * ports.c (scm_add_to_port_table): allocate in units of
struct scm_port_table *, not struct scm_port_table.
	* posix.c (scm_close_pipe): remove the port from the port table
	and mark as closed.
	Thanks to Rob Engle for both fixes.
1998-03-03 10:11:13 +00:00
Mark Galassi
186d31e78c minor: remove some commented out old code 1998-03-01 07:25:59 +00:00
Mikael Djurfeldt
d90ca38d06 * iselect.h, iselect.c, coop.c, coop-threads.c, coop-threads.h,
coop-defs.h, throw.c, backtrace.c: Added new copyright year 1998.
1998-02-06 18:55:29 +00:00
Mikael Djurfeldt
492960a4f4 * throw.h: Removed jmpbuf arg in scm_catch_body_t.
* backtrace.c (display_error_body, display_backtrace_body),
coop-threads.c (scheme_body_bootstrip, c_body_bootstrip),
gh_eval.c (eval_str_wrapper, eval_file_wrapper), init.c
(invoke_main_func), root.c (cwdr_body), throw.c (cwss_body,
scm_body_thunk, hbpca_body): Removed the second jmpbuf arg on body
functions.

* throw.c (scm_internal_catch, scm_internal_lazy_catch): Bodies
don't receive the jmpbuf arg anylonger.
(scm_catch): Don't accept a #f tag.
(scm_throw): Check that key is a symbol.
(scm_ithrow): Don't take a jmpbuf as key.  Don't check key arg.
1998-02-02 15:00:59 +00:00
Mikael Djurfeldt
39752bec0a * backtrace.c (display_error_body, display_backtrace_body),
coop-threads.c (scheme_body_bootstrip, c_body_bootstrip),
gh_eval.c (eval_str_wrapper, eval_file_wrapper), init.c
(invoke_main_func), root.c (cwdr_body), throw.c (cwss_body,
scm_body_thunk, hbpca_body): Removed the second jmpbuf arg on body
functions.
1998-02-02 15:00:14 +00:00
Mikael Djurfeldt
79a85e3b62 * async.c (async_pending): Removed declaration. 1998-01-31 13:30:10 +00:00
Mikael Djurfeldt
c69dfa6575 * coop.c, iselect.c: Since thread switches are now performed with
interrupts masked, we can't use the old mechanism of delivering
signals immediately when they arrive.  Signals must instead be
delivered when the asyncs run *after* the end of the critical
section in scm_internal_select.  But this also means after context
switch so that the signal will be delivered to a different thread.
To avoid this, I have changed the protocol of
coop_wait_for_runnable_thread and friends so that they are allowed
to return the original thread.  So, if a signal arrives during
scm_internal_select, we won't any longer be forced do a context
switch, but can remain in the same thread and deliver the signal
to it.

* iselect.c: Small fixes.
1998-01-30 21:08:26 +00:00
Mikael Djurfeldt
9cb5124fe3 * eval.c (scm_eval, scm_deval), eq.c (scm_equal_p): Use SCM_TICK
instead of SCM_ASYNC_TICK.
1998-01-30 21:07:51 +00:00
Mikael Djurfeldt
c2654ef0fa * dynwind.c (scm_wind_chain): New debug function. 1998-01-30 21:07:14 +00:00
Mikael Djurfeldt
d186aac642 * coop.c, iselect.c: Since thread switches are now performed with
interrupts masked, we can't use the old mechanism of delivering
signals immediately when they arrive.  Signals must instead be
delivered when the asyncs run *after* the end of the critical
section in scm_internal_select.  But this also means after context
switch so that the signal will be delivered to a different thread.
To avoid this, I have changed the protocol of
coop_wait_for_runnable_thread and friends so that they are allowed
to return the original thread.  So, if a signal arrives during
scm_internal_select, we won't any longer be forced do a context
switch, but can remain in the same thread and deliver the signal
to it.

* coop.c (coop_mutex_init, coop_mutex_lock, coop_mutex_unlock,
coop_condition_variable_init, coop_condition_variable_wait,
coop_condition_variable_signal): Changed return type from `void'
to `int'.  This is to adhere closer to the pthreads interface.
This, in turn, is part of an attempt to provide C versions of the
mutex and condition variable primitives which can be part of a
frontend to COOP or pthreads.

* coop.c (coop_mutex_destroy, coop_condition_variable_wait_mutex,
coop_condition_variable_destroy): New functions.
1998-01-30 21:07:00 +00:00
Mikael Djurfeldt
0a1a92ab64 * coop-threads.c (scheme_launch_data, scheme_body_bootstrip,
scheme_handler_bootstrip, scheme_launch_thread, c_launch_data,
c_body_bootstrip, c_handler_bootstrip, c_launch_thread): Add an
extra layer of functions around the body and handler of a thread.
This extra layer makes sure that the handler is called in the
dynamic context of the surround (= empty dynwind list), but under
the *dynamic root* of the body.  We can not use the dynamic root
of the surround since that root belongs to another thread => stack
is not handled correctly.  It may seem ugly to use this extra
layer, but the extra cost in terms of execution time is really
negligible compared to the total amount of time required to create
a thread, and it would reduce maintainability to duplicate the
crucial and complicated steps performed by cwdr.

* coop-threads.c (scm_wait_condition_variable): Use
coop_condition_variable_wait_mutex.
1998-01-30 21:06:47 +00:00
Mikael Djurfeldt
5e569ca831 * async.c, async.h (asyncs_pending): Renamed asyncs_pending -->
scm_asyncs_pending and made it global.
1998-01-30 21:06:31 +00:00
Mikael Djurfeldt
c72cc5fbe4 * __scm.h (SCM_ASYNC_TICK): Removed thread switching code.
(SCM_ALLOW_INTS): Added thread switching code before interrupts
get re-enabled.  The important effect of this is that interrupts
are blocked during thread switching so that thread data structures
don't risk getting messed up by an unfortunate signal.
(SCM_REDEFER_INTS, SCM_REALLOW_INTS): It turned out that gcc-2.8.0
seems to do more aggressive optimization which actually move
instructions around in these macros in a fatal way.  Therefore:
Introduce Anthony's SCM_FENCE macro!  (And I who thought he was
just superstitious...)
(SCM_TICK): Maybe do a context switch and take care of asyncs.
This macro should be used instead of SCM_ASYNC_TICK since the
latter doesn't do context switches any more.
1998-01-30 21:06:16 +00:00
Mikael Djurfeldt
a3ec616e42 Small fix to scm_getc: Move FD_ZERO into the select loop 1998-01-30 21:02:36 +00:00
Mikael Djurfeldt
6905611f41 *** empty log message *** 1998-01-26 01:43:43 +00:00
Mikael Djurfeldt
c8bf4ecd10 * coop.c (coop_mutex_init, coop_mutex_lock, coop_mutex_unlock,
coop_condition_variable_init, coop_condition_variable_wait,
coop_condition_variable_signal): Changed return type from `void'
to `int'.  This is to adhere closer to the pthreads interface.
This, in turn, is part of an attempt to provide C versions of the
mutex and condition variable primitives which can be part of a
frontend to COOP or pthreads.

* coop.c (coop_mutex_destroy, coop_condition_variable_wait_mutex,
coop_condition_variable_destroy): New functions.

* coop-threads.c (scm_wait_condition_variable): Use
coop_condition_variable_wait_mutex.

* coop-threads.h, coop-defs.h (coop_q_t, coop_m, coop_c):
Definitions moved to coop-defs.h.

* coop-defs.h (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock,
scm_mutex_destroy, scm_cond_init, scm_cond_wait, scm_cond_signal,
scm_cond_destroy): New C interface to mutecis and cond vars.
1998-01-26 01:43:16 +00:00
Mikael Djurfeldt
3237b129f7 * iselect.c: Small fixes. 1998-01-26 01:42:43 +00:00
Mikael Djurfeldt
3d9352fb80 * error.c (scm_wta): Added support for SCM_ARG6 and SCM_ARG7. 1998-01-25 12:00:47 +00:00
Mikael Djurfeldt
a48b6916e2 * iselect.c: Now several threads can wait on the same file
descriptor.  The behaviour is compatible with OS select: All
threads waiting for the fd return with the same status.
1998-01-24 01:50:43 +00:00
Mikael Djurfeldt
df366c2615 * coop-threads.c, threads.h (scm_spawn_thread): New function.
Can spawn a thread from application C code.
1998-01-23 20:51:47 +00:00
Mikael Djurfeldt
f3a2c4cfe6 * gh.h, gh_data.c (gh_doubles2scm, gh_doubles2dvect,
gh_doubles2scm): New functions.
1998-01-20 17:57:01 +00:00
Mark Galassi
770827b0f0 some trivial cleanup 1998-01-16 00:32:28 +00:00
Gary Houston
ef9ff3fd0a * socket.c (scm_bind): free soka after use.
* stime.c (tzvar): new variable.
	(setzone, restorezone, scm_localtime, scm_mktime, scm_strftime):
	avoid memory leaks when allocating.
1998-01-04 02:50:12 +00:00
Jim Blandy
7a35faf841 *** empty log message *** 1998-01-04 00:31:25 +00:00
Jim Blandy
ab256d3909 * gc.c, tags.h: Doc fixes. 1998-01-04 00:31:13 +00:00
Jim Blandy
bb3b902f56 * iselect.h: Some systems require <sys/types.h> to get the FD_SET
macro definitions.
1998-01-04 00:31:05 +00:00
Jim Blandy
e7c5fb3770 Doc fix. 1998-01-04 00:09:54 +00:00
Mikael Djurfeldt
b971e6c65c * eval.c (macro-eval!): Removed. This function was a design bug.
It allowed memoized code to leak out to the scheme level.  Most
things that you could do with `macro-eval!' can be done with
`local-eval'.
1998-01-02 16:44:05 +00:00
Tim Pierce
377474477c * fports.c (scm_pipob): Use scm_generic_fgets for line i/o, since
scm_fgets now depends on ftell(3) to know how many bytes were
	read.  Sigh.
1997-12-20 13:52:09 +00:00
Tim Pierce
66d1e129c9 * gh_data.c (gh_scm2newstr, gh_get_substr): Use RO macros for
dealing with strings.
1997-12-16 05:09:50 +00:00
Tim Pierce
848f2a0114 boot-9.scm (read-line): Rewritten to use %read-line.
ioext.c (%read-line): Return a cons of the input line and its terminator.
fports.c, genio.c, genio.h, ports.c, ports.h: Change fgets methods
	to return the string length as well as its contents.
1997-12-13 08:33:33 +00:00