Gary Houston
2969637c9e
* popen.scm (close-process-quietly): new procedure. use it from
...
reap-pipes to avoid errors or hanging during background cleanup.
2000-04-09 21:10:06 +00:00
Dirk Herrmann
451e591cdd
Some SCM/scm_bits_t type strictness fixes.
2000-04-07 10:41:39 +00:00
Michael Livshin
e94e3f21d6
* 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.
2000-04-05 15:28:28 +00:00
Michael Livshin
843e4e9d17
* 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.
2000-04-04 20:07:11 +00:00
Gary Houston
873c35ee82
*** empty log message ***
2000-04-04 19:12:59 +00:00
Gary Houston
1de052a72c
* 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).
2000-04-04 19:11:58 +00:00
Dirk Herrmann
4260a7fced
Lots of fixes with respect to strict typing.
2000-04-04 12:13:41 +00:00
Mikael Djurfeldt
304b56da60
*** empty log message ***
2000-04-04 11:40:49 +00:00
Mikael Djurfeldt
186cf94654
* 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.)
2000-04-04 11:40:39 +00:00
Dirk Herrmann
f60d011a05
Fix handling of SCM value with regard to strict typing.
2000-04-04 10:46:08 +00:00
Mikael Djurfeldt
5b15c3b457
*** empty log message ***
2000-04-04 09:15:11 +00:00
Mikael Djurfeldt
5d46ebe36d
* print.c: Removed promise to rewrite printer code before next
...
release. :)
2000-04-04 09:15:03 +00:00
Mikael Djurfeldt
395c856721
*** empty log message ***
2000-04-03 19:45:32 +00:00
Mikael Djurfeldt
26cbcbf968
* iselect.c (add_fd_sets): Insert empty statement after label.
...
(Thanks to Tim Mooney.)
2000-04-03 19:45:20 +00:00
Michael Livshin
f6e2fd8bf3
tweaked ChangeLog comments alittle
2000-04-03 15:56:17 +00:00
Michael Livshin
b87e3d4d19
* streams.scm (stream-fold, stream-for-each): don't use named let,
...
because it prevents the gc from junking the stream argument.
2000-04-03 15:38:35 +00:00
Michael Livshin
50fecba92d
* 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).
2000-04-03 13:55:54 +00:00
Dirk Herrmann
54778cd312
Lots of fixes to make guile (at some time) compile with strict typing.
2000-04-03 08:47:51 +00:00
Gary Houston
abeed82198
*** empty log message ***
2000-04-02 21:53:17 +00:00
Gary Houston
e46f3fa6ba
* 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.
2000-04-02 21:52:49 +00:00
Dirk Herrmann
cf49832683
Some fixes for strict typing.
2000-04-01 21:23:09 +00:00
Gary Houston
47a4dcc5b4
*** empty log message ***
2000-03-31 19:24:09 +00:00
Gary Houston
8cc58ec1cc
* 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.
2000-03-31 19:23:52 +00:00
Dirk Herrmann
cffcab3013
Some more SCM/scm_bits_t and SCM-is-union issues.
2000-03-31 15:59:57 +00:00
Dirk Herrmann
7fa93bf859
Use SCM_EQ_P to compare scheme objects, use SCM_CELL_WORD_1 for raw data.
2000-03-31 13:34:30 +00:00
Dirk Herrmann
74a16888eb
Change type of member 'stream' in scm_port from SCM to scm_bits_t.
2000-03-31 07:56:40 +00:00
Mikael Djurfeldt
6a87835719
*** empty log message ***
2000-03-30 23:32:56 +00:00
Mikael Djurfeldt
5c90be5282
* 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.
2000-03-30 23:32:45 +00:00
Mikael Djurfeldt
b6cc0ef66d
*** empty log message ***
2000-03-30 23:23:28 +00:00
Mikael Djurfeldt
6219b5eb41
* 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.
2000-03-30 23:23:10 +00:00
Mikael Djurfeldt
2f511ab1aa
* 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.
2000-03-30 23:22:50 +00:00
Mikael Djurfeldt
21aab5c929
* coop-defs.h, coop-threads.c (struct coop_t): Eliminate
...
`sto'-field when GUILE_PTHREAD_COMPAT is enabled.
2000-03-30 23:18:39 +00:00
Dirk Herrmann
843524cc20
Fix some typing issues wrt SCM/scm_bits_t.
2000-03-30 09:15:15 +00:00
Dirk Herrmann
fbd485ba49
Don't use C operators == and != to compare SCM values.
2000-03-29 16:22:57 +00:00
Mikael Djurfeldt
91163914cf
*** empty log message ***
2000-03-29 11:02:44 +00:00
Mikael Djurfeldt
0208baa0d9
*** empty log message ***
2000-03-29 10:52:26 +00:00
Mikael Djurfeldt
7a8e7a6ce2
* 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.
2000-03-29 10:52:07 +00:00
Mikael Djurfeldt
64e3bf6c38
*** empty log message ***
2000-03-29 10:44:28 +00:00
Mikael Djurfeldt
e4d2166f80
* configure.in: Enable workaround for COOP-linuxthreads
...
compatibility on Linux systems.
2000-03-29 10:44:13 +00:00
Mikael Djurfeldt
ac1aca3515
* coop.c (coop_create): Set specific' field, not
data' to NULL.
2000-03-29 10:43:18 +00:00
Dirk Herrmann
941132492e
Access smob data with SCM_{SET_}?CELL_TYPE or SCM_{SET_}?WORD_[1-3].
2000-03-29 09:17:25 +00:00
Mikael Djurfeldt
1978b33ef8
*** empty log message ***
2000-03-29 01:58:30 +00:00
Mikael Djurfeldt
31bc6de36a
* 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.
2000-03-29 01:58:17 +00:00
Mikael Djurfeldt
ef18914a94
* error.c (scm_error): Don't try to throw an error if
...
scm_gc_heap_lock is true.
2000-03-29 01:57:54 +00:00
Mikael Djurfeldt
f85a9bcf5f
* 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.
2000-03-29 01:57:40 +00:00
Mikael Djurfeldt
0e551780ec
* 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.
2000-03-29 01:57:25 +00:00
Mikael Djurfeldt
ad1a269029
Removed definition of GUILE_PTHREAD_COMPAT inside commentary
2000-03-29 01:57:12 +00:00
Mikael Djurfeldt
ed65453e53
* configure.in: Enable workaround for COOP-linuxthreads
...
compatibility on Linux systems (currently disabled).
2000-03-29 01:54:12 +00:00
Mikael Djurfeldt
25f457c0e2
* acconfig.h (GUILE_PTHREAD_COMPAT): New config variable.
2000-03-29 01:52:19 +00:00
Dirk Herrmann
dd039d6dc6
* New macro SCM_TRUE_P.
...
* Use SCM_EQ_P to compare SCM values.
2000-03-29 01:15:56 +00:00