Mikael Djurfeldt [Sun, 16 Apr 2000 02:02:31 +0000 (02:02 +0000)]
* r4rs.scm (close-input-port, close-output-port): Removed.
Mikael Djurfeldt [Sat, 15 Apr 2000 22:24:29 +0000 (22:24 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 15 Apr 2000 22:24:14 +0000 (22:24 +0000)]
* vectors.c (scm_vector_set_x): Return SCM_UNSPECIFIED (as
specified by R5RS).
Mikael Djurfeldt [Sat, 15 Apr 2000 19:34:09 +0000 (19:34 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 15 Apr 2000 19:30:16 +0000 (19:30 +0000)]
* validate.h (SCM_VALIDATE_INPUT_PORT, SCM_VALIDATE_OUTPUT_PORT):
New macros.
Cleanup of code layout.
Mikael Djurfeldt [Sat, 15 Apr 2000 19:29:58 +0000 (19:29 +0000)]
* ports.h (SCM_INPUT_PORT_P, SCM_OUTPUT_PORT_P): New macros.
(SCM_INPORTP, SCM_OUTPORTP): Marked as deprecated.
* ports.c, ports.h (close-input-port, close-output-port): New R5RS
procedures.
Mikael Djurfeldt [Sat, 15 Apr 2000 19:29:47 +0000 (19:29 +0000)]
* ports.c, ports.h (close-input-port, close-output-port): New R5RS
procedures.
Dirk Herrmann [Thu, 13 Apr 2000 12:02:18 +0000 (12:02 +0000)]
* Made scm_dynthrow static.
* Simplified and optimized the continuation calling code.
Mikael Djurfeldt [Thu, 13 Apr 2000 03:45:07 +0000 (03:45 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 13 Apr 2000 03:44:51 +0000 (03:44 +0000)]
* unif.c, unif.h (shared-array-root, shared-array-offset,
shared-array-increments): New primitives.
Mikael Djurfeldt [Thu, 13 Apr 2000 00:29:22 +0000 (00:29 +0000)]
Typo
Mikael Djurfeldt [Thu, 13 Apr 2000 00:15:21 +0000 (00:15 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 13 Apr 2000 00:08:44 +0000 (00:08 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 13 Apr 2000 00:08:22 +0000 (00:08 +0000)]
* session.scm (help): New macro. Prints helpful information.
Mikael Djurfeldt [Wed, 12 Apr 2000 21:55:36 +0000 (21:55 +0000)]
*** empty log message ***
Dirk Herrmann [Wed, 12 Apr 2000 12:48:11 +0000 (12:48 +0000)]
The msymbol slots are now a field of scm_bits_t values.
Dirk Herrmann [Wed, 12 Apr 2000 09:58:43 +0000 (09:58 +0000)]
Fix some SCM/scm_bits_t mismatches.
Dirk Herrmann [Wed, 12 Apr 2000 01:19:49 +0000 (01:19 +0000)]
The struct data is now an array of scm_bits_t variables.
Dirk Herrmann [Tue, 11 Apr 2000 22:36:55 +0000 (22:36 +0000)]
The struct vtable data is now an array of scm_bits_t variables.
Dirk Herrmann [Tue, 11 Apr 2000 13:45:01 +0000 (13:45 +0000)]
Don't use C operators to compare SCM values.
Dirk Herrmann [Tue, 11 Apr 2000 13:00:15 +0000 (13:00 +0000)]
* (scm_quotient, scm_modulo): Reordered to handle the case of immediate
numbers parameters first. Also, only use decoded numbers for numerical
comparison.
Gary Houston [Mon, 10 Apr 2000 21:56:38 +0000 (21:56 +0000)]
*** empty log message ***
Gary Houston [Mon, 10 Apr 2000 21:55:53 +0000 (21:55 +0000)]
* popen.scm (open-process): after forking, close all ports except
the end of the pipe to the parent. otherwise move->fdes and
the exec'd program and the exit handlers can interfere with file
descriptors still in use in parent ports.
Mikael Djurfeldt [Mon, 10 Apr 2000 20:37:48 +0000 (20:37 +0000)]
* objects.h: Don't redeclare scm_call_generic_0 and
scm_apply_generic. (Thanks to Tal Tversky.)
Mikael Djurfeldt [Mon, 10 Apr 2000 20:37:23 +0000 (20:37 +0000)]
*** empty log message ***
Dirk Herrmann [Mon, 10 Apr 2000 14:29:26 +0000 (14:29 +0000)]
scm_hasher: Use symbolic names for the tc3 constants and some SCM usage
cleanups.
Mikael Djurfeldt [Mon, 10 Apr 2000 12:38:19 +0000 (12:38 +0000)]
*** empty log message ***
Mikael Djurfeldt [Mon, 10 Apr 2000 12:35:57 +0000 (12:35 +0000)]
* coop.c (mother): Handled EINTR (the wait has been interrupted by
a signal).
Gary Houston [Sun, 9 Apr 2000 21:10:33 +0000 (21:10 +0000)]
*** empty log message ***
Gary Houston [Sun, 9 Apr 2000 21:10:06 +0000 (21:10 +0000)]
* popen.scm (close-process-quietly): new procedure. use it from
reap-pipes to avoid errors or hanging during background cleanup.
Dirk Herrmann [Fri, 7 Apr 2000 10:41:39 +0000 (10:41 +0000)]
Some SCM/scm_bits_t type strictness fixes.
Michael Livshin [Wed, 5 Apr 2000 15:28:28 +0000 (15:28 +0000)]
* async.[ch]: unexpose low-level async access macros (thanks to
Dirk Herrmann).
* validate.h: move async validation macros to async.c (nobody else
needs them anyway), and rename them.
Michael Livshin [Tue, 4 Apr 2000 20:07:11 +0000 (20:07 +0000)]
* async.h: kill the scm_async_t struct. having a heap cell
pretending to be a C struct is not helthy, and is not needed here
anyway, as asyncs happily fit in one heap cell.
* async.c: reflect the fact that asyncs are now represented by
single heap cell each.
Gary Houston [Tue, 4 Apr 2000 19:12:59 +0000 (19:12 +0000)]
*** empty log message ***
Gary Houston [Tue, 4 Apr 2000 19:11:58 +0000 (19:11 +0000)]
* error.c (scm_syserror): save errno before doing anything else,
since it's used in two expressions and may get mutated (thanks to
Dirk Herrmann).
Dirk Herrmann [Tue, 4 Apr 2000 12:13:41 +0000 (12:13 +0000)]
Lots of fixes with respect to strict typing.
Mikael Djurfeldt [Tue, 4 Apr 2000 11:40:49 +0000 (11:40 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 4 Apr 2000 11:40:39 +0000 (11:40 +0000)]
* format.scm (format:obj->str): Handle circular references. Also,
print improper lists with (x y . z) syntax rather than as
individual pairs. (This code should probably be integrated into C
level facilities. It is currently terribly slow.)
Dirk Herrmann [Tue, 4 Apr 2000 10:46:08 +0000 (10:46 +0000)]
Fix handling of SCM value with regard to strict typing.
Mikael Djurfeldt [Tue, 4 Apr 2000 09:15:11 +0000 (09:15 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 4 Apr 2000 09:15:03 +0000 (09:15 +0000)]
* print.c: Removed promise to rewrite printer code before next
release. :)
Mikael Djurfeldt [Mon, 3 Apr 2000 19:45:32 +0000 (19:45 +0000)]
*** empty log message ***
Mikael Djurfeldt [Mon, 3 Apr 2000 19:45:20 +0000 (19:45 +0000)]
* iselect.c (add_fd_sets): Insert empty statement after label.
(Thanks to Tim Mooney.)
Michael Livshin [Mon, 3 Apr 2000 15:56:17 +0000 (15:56 +0000)]
tweaked ChangeLog comments alittle
Michael Livshin [Mon, 3 Apr 2000 15:38:35 +0000 (15:38 +0000)]
* streams.scm (stream-fold, stream-for-each): don't use named let,
because it prevents the gc from junking the stream argument.
Michael Livshin [Mon, 3 Apr 2000 13:55:54 +0000 (13:55 +0000)]
* guardians.c (scm_guardian_zombify): mark all zombies in a
separate loop after processing all the currently known live
guardians, so as to not introduce order dependencies (thanks to
Gary Houston). also, make another outer loop to process zombified
guardians (which are uncovered while marking zombies).
Dirk Herrmann [Mon, 3 Apr 2000 08:47:51 +0000 (08:47 +0000)]
Lots of fixes to make guile (at some time) compile with strict typing.
Gary Houston [Sun, 2 Apr 2000 21:53:17 +0000 (21:53 +0000)]
*** empty log message ***
Gary Houston [Sun, 2 Apr 2000 21:52:49 +0000 (21:52 +0000)]
* guardians.c (TCONC_IN, scm_make_guardian): set the CDR of the
empty tconc pair to SCM_EOL instead of SCM_BOOL_F, avoiding the
use of an improper list (which breaks g_print. g_print isn't
used).
guardians.c: Added more comments and modified the make-guardian
docstring. Reordered a few procedures.
Dirk Herrmann [Sat, 1 Apr 2000 21:23:09 +0000 (21:23 +0000)]
Some fixes for strict typing.
Gary Houston [Fri, 31 Mar 2000 19:24:09 +0000 (19:24 +0000)]
*** empty log message ***
Gary Houston [Fri, 31 Mar 2000 19:23:52 +0000 (19:23 +0000)]
* tests/ports.test (non-blocking-I/O): a couple more details:
a) combine the O_NONBLOCK flag with the default flags instead
of replacing them. b) check EWOULDBLOCK as well as EAGAIN.
Dirk Herrmann [Fri, 31 Mar 2000 15:59:57 +0000 (15:59 +0000)]
Some more SCM/scm_bits_t and SCM-is-union issues.
Dirk Herrmann [Fri, 31 Mar 2000 13:34:30 +0000 (13:34 +0000)]
Use SCM_EQ_P to compare scheme objects, use SCM_CELL_WORD_1 for raw data.
Dirk Herrmann [Fri, 31 Mar 2000 07:56:40 +0000 (07:56 +0000)]
Change type of member 'stream' in scm_port from SCM to scm_bits_t.
Mikael Djurfeldt [Thu, 30 Mar 2000 23:32:56 +0000 (23:32 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 30 Mar 2000 23:32:45 +0000 (23:32 +0000)]
* coop-defs.h (struct coop_t): Added `sto'-field again because of
binary compatibility---let's remove it next time we alter some
major structure.
Mikael Djurfeldt [Thu, 30 Mar 2000 23:23:28 +0000 (23:23 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 30 Mar 2000 23:23:10 +0000 (23:23 +0000)]
* coop.c (coop_quitting_p, coop_cond_create, coop_mutex_create,
coop_mother, coop_child): New variables.
(mother): New function.
(coop_create): New thread spawning mechanism which uses a "mother
thread". The "dummy" pthreads aren't healthy enough to give birth
to new threads since Linux threads thinks they are asleep.
Mikael Djurfeldt [Thu, 30 Mar 2000 23:22:50 +0000 (23:22 +0000)]
* coop-defs.h (struct coop_t): Removed dummy_mutex.
* coop-defs.h, coop-threads.c (struct coop_t): Eliminate
`sto'-field when GUILE_PTHREAD_COMPAT is enabled.
Mikael Djurfeldt [Thu, 30 Mar 2000 23:18:39 +0000 (23:18 +0000)]
* coop-defs.h, coop-threads.c (struct coop_t): Eliminate
`sto'-field when GUILE_PTHREAD_COMPAT is enabled.
Dirk Herrmann [Thu, 30 Mar 2000 09:15:15 +0000 (09:15 +0000)]
Fix some typing issues wrt SCM/scm_bits_t.
Dirk Herrmann [Wed, 29 Mar 2000 16:22:57 +0000 (16:22 +0000)]
Don't use C operators == and != to compare SCM values.
Mikael Djurfeldt [Wed, 29 Mar 2000 11:02:44 +0000 (11:02 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 29 Mar 2000 10:52:26 +0000 (10:52 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 29 Mar 2000 10:52:07 +0000 (10:52 +0000)]
* coop-threads.c (scm_call_with_new_thread, scm_spawn_thread,
scm_make_mutex, scm_make_condition_variable): Cast data to
scm_bits_t in SCM_SET_CELL_WORD and SCM_NEWSMOB macros.
Mikael Djurfeldt [Wed, 29 Mar 2000 10:44:28 +0000 (10:44 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 29 Mar 2000 10:44:13 +0000 (10:44 +0000)]
* configure.in: Enable workaround for COOP-linuxthreads
compatibility on Linux systems.
Mikael Djurfeldt [Wed, 29 Mar 2000 10:43:18 +0000 (10:43 +0000)]
* coop.c (coop_create): Set `specific' field, not `data' to NULL.
Dirk Herrmann [Wed, 29 Mar 2000 09:17:25 +0000 (09:17 +0000)]
Access smob data with SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
Mikael Djurfeldt [Wed, 29 Mar 2000 01:58:30 +0000 (01:58 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 29 Mar 2000 01:58:17 +0000 (01:58 +0000)]
* threads.c (scm_init_threads): Pass 0 size to scm_make_smob_type
for scm_tc16_thread. As the current COOP threads are written, GC
is not supposed to manage storage for threads.
Mikael Djurfeldt [Wed, 29 Mar 2000 01:57:54 +0000 (01:57 +0000)]
* error.c (scm_error): Don't try to throw an error if
scm_gc_heap_lock is true.
Mikael Djurfeldt [Wed, 29 Mar 2000 01:57:40 +0000 (01:57 +0000)]
* coop.c (coop_finish): New function. Called at exit.
(coop_aborthelp): Free thread structures when threads die.
Finished LinuxThreads compatibility support => COOP threads now
mesh with LinuxThreads.
Mikael Djurfeldt [Wed, 29 Mar 2000 01:57:25 +0000 (01:57 +0000)]
* coop-threads.c (scm_call_with_new_thread, scm_spawn_thread):
Changed SETCDR --> SET_CELL_WORD_1.
* coop-threads.c (scheme_launch_thread): Set word 1 of handle to 0
when thread dies.
Mikael Djurfeldt [Wed, 29 Mar 2000 01:57:12 +0000 (01:57 +0000)]
Removed definition of GUILE_PTHREAD_COMPAT inside commentary
Mikael Djurfeldt [Wed, 29 Mar 2000 01:54:12 +0000 (01:54 +0000)]
* configure.in: Enable workaround for COOP-linuxthreads
compatibility on Linux systems (currently disabled).
Mikael Djurfeldt [Wed, 29 Mar 2000 01:52:19 +0000 (01:52 +0000)]
* acconfig.h (GUILE_PTHREAD_COMPAT): New config variable.
Dirk Herrmann [Wed, 29 Mar 2000 01:15:56 +0000 (01:15 +0000)]
* New macro SCM_TRUE_P.
* Use SCM_EQ_P to compare SCM values.
Dirk Herrmann [Tue, 28 Mar 2000 17:13:40 +0000 (17:13 +0000)]
Cleaned up continuation data access.
Dirk Herrmann [Tue, 28 Mar 2000 10:16:16 +0000 (10:16 +0000)]
Use SCM_{SET_}?CELL_WORD_[01] to access length and char * fields
of strings and symbols.
Dirk Herrmann [Mon, 27 Mar 2000 22:43:37 +0000 (22:43 +0000)]
Use SCM_{SET_}?CELL_TYPE when accessing the type entry of a cell.
Dirk Herrmann [Mon, 27 Mar 2000 12:42:16 +0000 (12:42 +0000)]
* SCM_C[AD]R and SCM_SETC[AD]R use SCM_{SET_}?OBJECT now.
* Moved SCM_GCCDR from pairs.h to tags.h.
Dirk Herrmann [Sun, 26 Mar 2000 10:08:52 +0000 (10:08 +0000)]
Moved some cell related definitions from tags.h and pairs.h to gc.h.
Dirk Herrmann [Sat, 25 Mar 2000 08:26:38 +0000 (08:26 +0000)]
* Allow to activate strict compile time type checking by defining
the macro SCM_STRICT_TYPING.
* Defined SCM_EQ_P as a macro equivalent for eq?.
Dirk Herrmann [Sat, 25 Mar 2000 07:56:53 +0000 (07:56 +0000)]
Removed use of SCM_POINTERS_MUNGED.
Dirk Herrmann [Fri, 24 Mar 2000 08:55:14 +0000 (08:55 +0000)]
Added a set of low level macros for accessing cell entries.
Dirk Herrmann [Fri, 24 Mar 2000 00:16:26 +0000 (00:16 +0000)]
Added a first attempt for a description of the low level API.
Jim Blandy [Thu, 23 Mar 2000 23:47:04 +0000 (23:47 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 23 Mar 2000 13:06:50 +0000 (13:06 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 23 Mar 2000 13:06:36 +0000 (13:06 +0000)]
* continuations.c (scm_make_cont): Removed cast of size_t into
long.
Mikael Djurfeldt [Thu, 23 Mar 2000 13:04:50 +0000 (13:04 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 23 Mar 2000 13:04:42 +0000 (13:04 +0000)]
* tags.h: Disabled definition of SCM_VOIDP_TEST.
Mikael Djurfeldt [Thu, 23 Mar 2000 13:04:35 +0000 (13:04 +0000)]
* symbols.h (SCM_SETCHARS): Cast second arg into SCM.
Mikael Djurfeldt [Thu, 23 Mar 2000 13:04:27 +0000 (13:04 +0000)]
* gc.c (scm_mark_locations): Changed * (SCM **) X --> * (SCM *) X
in order to obtain a value of type SCM.
(scm_cellp): Updated with new changes to scm_mark_locations.
Mikael Djurfeldt [Thu, 23 Mar 2000 13:04:19 +0000 (13:04 +0000)]
* continuations.h (SCM_SETJMPBUF): Cast second arg into SCM.
Jim Blandy [Wed, 22 Mar 2000 21:24:31 +0000 (21:24 +0000)]
More tweaks.
Jim Blandy [Wed, 22 Mar 2000 21:22:39 +0000 (21:22 +0000)]
Add some test suite philosophy.
Jim Blandy [Wed, 22 Mar 2000 21:18:57 +0000 (21:18 +0000)]
* lib.scm: Doc fixes.
Dirk Herrmann [Wed, 22 Mar 2000 20:48:18 +0000 (20:48 +0000)]
Fixed some bugs that are due to the fact that SCM is a void* now.
Cleaned up a macro definition. Thanks to Dale P. Smith for both of
these patches.