1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 05:30:21 +02:00
Commit graph

11174 commits

Author SHA1 Message Date
Neil Jerram
63bf8015ab Doc clarification from tomas@fabula.de. 2003-04-26 15:09:18 +00:00
Neil Jerram
a95dbade59 scm_sysmissing doc fix from Kevin Ryde. 2003-04-26 15:02:56 +00:00
Mikael Djurfeldt
56b97da987 * serialize.scm: New file. 2003-04-25 19:49:15 +00:00
Mikael Djurfeldt
ee2a6d9940 Comment fix 2003-04-25 19:48:33 +00:00
Dirk Herrmann
b0c5d67b98 * eval.c, eval.h, goops.c, goops.h (scm_m_atslot_ref,
scm_m_atslot_set_x, scm_m_atdispatch): Move the declarations and
	definitions of the special goops memoizers from goops.[ch] to
	eval.[ch].  Hmm... it seems that scm_m_atdispatch is not used
	throughout guile.
2003-04-25 16:22:47 +00:00
Mikael Djurfeldt
b9ad392e86 * ports.c, ports.h (scm_i_port_table_mutex): New mutex.
* fports.c (scm_evict_ports): Lock/unlock scm_i_port_table_mutex.

* ports.c (scm_close_port, scm_flush_all_ports): Ditto.

* ioext.c (scm_fdes_to_ports): Ditto.

* vports.c (scm_make_soft_port): Changed SCM_DEFER/ALLOW_INTS into
lock/unlock scm_i_port_table_mutex.

* strports.c (scm_mkstrport): Ditto.

* ports.c (scm_void_port, scm_port_for_each): Ditto.

* fports.c (scm_fdes_to_port): Ditto.
2003-04-24 16:02:04 +00:00
Mikael Djurfeldt
359aab2498 * threads.scm (n-for-each-par-map): New procedure. 2003-04-24 10:44:06 +00:00
Dirk Herrmann
4dce3c9645 * tests/syntax.test: Modified some tests to use eval when
providing bad syntax.  Otherwise, the memoizer will report an
	error immediately after reading the form, without even the chance
	to get the pass-if-exception mechanism started.
2003-04-23 19:04:00 +00:00
Dirk Herrmann
9247b5bca6 * tests/guardians.test: Added some more elaborate and
sophisticated tests for the guardian functionality.
2003-04-23 18:47:54 +00:00
Dirk Herrmann
d0b07b5def This set of patches contains no functional changes, only debatable
minor stylistic ones.  Still, in order to prepare a patch between
	my local copy and the CVS version, I decided to submit the changes
	below.  Then, the patch will hopefully only contain relevant
	modifications :-)

	* eval.c (iqq): Added const specifier.

	* eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
	Use NULL instead of 0 to indicate that a pointer is returned.
	Removed some misleading 'fall through' comments.

	* eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
	Split up long expressions into smaller ones to be more debugging
	friendly.
2003-04-23 18:27:37 +00:00
Dirk Herrmann
a98e8e985b * eval.h (SCM_ENTER_FRAME_HDLR, SCM_APPLY_FRAME_HDLR,
SCM_EXIT_FRAME_HDLR): Use SCM_PACK to convert data to a SCM value
	rather than casting to SCM.
2003-04-23 17:20:26 +00:00
Dirk Herrmann
c178c3a68b * sort.c, pairs.h: Removed unnecessary includes. 2003-04-23 16:49:30 +00:00
Dirk Herrmann
d339981a5a * test-suite/tests/sort.test: Added. Both tests in that file did
fail (one even with a segfault) with CVS guile before the recent
	changes to libguile/sort.c.

	* libguile/sort.c: Replaced hand-made trampline code by the new
	official mechanism from eval.c.  This fixes a segfault in the new
	test file test-suite/tests/sort.test.

	(quicksort, compare_function, scm_restricted_vector_sort_x,
	scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
	scm_merge_list_step, scm_sort_x, scm_sort, scm_merge_vector_x,
	scm_merge_vector_step, scm_stable_sort_x, scm_stable_sort,
	scm_sort_list_x, scm_sort_list): Use trampoline mechanism from
	eval.c.

	(subr2less, lsubrless, closureless, applyless, scm_cmp_function,
	cmp_fun_t): Removed.

	(compare_function): Added.

	* libguile/sort.c (quicksort, SWAP, stack_node): Replaced pointer
	arithmetics with index arithmetics.  Changed quicksort to work on
	an array of SCM values instead of an array of characters.  Avoid
	bytewise copying of SCM elements.  Avoid allocating memory on the
	stack with alloca.  Fixed some comments.
2003-04-22 23:32:40 +00:00
Marius Vollmer
2d2f76fc5f *** empty log message *** 2003-04-22 22:41:39 +00:00
Marius Vollmer
2a3264974b Removed stray "o" from exports list. 2003-04-22 22:41:19 +00:00
Dirk Herrmann
821f18a442 * eval.c (EXTEND_ENV): Eliminated.
(unmemocopy, SCM_CEVAL, SCM_APPLY): Use SCM_EXTEND_ENV instead of
	EXTEND_ENV.
2003-04-21 19:20:13 +00:00
Rob Browning
86d43b9bd2 *** empty log message *** 2003-04-21 18:47:40 +00:00
Rob Browning
9e31322c0c *** empty log message *** 2003-04-21 18:14:17 +00:00
Dirk Herrmann
94fb5a6e31 * __scm.h (SCM_DEBUG_DEBUGGER_SUPPORT): New compile-time option.
* gc.card.c (scm_gc_marked_p): Fixed compiler warning when
	compiling with SCM_DEBUG==1 by moving definition behind prototype.

	* gc.card.c (scm_dbg_t_list_cell, scm_dbg_t_double_cell,
	scm_dbg_gc_marked_p, scm_dbg_gc_get_card, scm_dbg_gc_get_bvec,
	scm_t_list_cell_struct, scm_t_list_cell, scm_t_double_cell,
	scm_gc_marked_p, scm_gc_get_card, scm_gc_get_bvec): Fixed
	functions such that they check if the object is a non-immediate.
	Further, renamed identifiers to use the scm_dbg_ prefix and made
	their inclusion into the lib dependent of the
	SCM_DEBUG_DEBUGGER_SUPPORT compile time option.
2003-04-21 14:39:37 +00:00
Dirk Herrmann
fce0b22d94 * __scm.h: Fixed comment about the SCM_DEBUG_TYPING_STRICTNESS
debug option.
2003-04-21 13:33:48 +00:00
Dirk Herrmann
1685446c0d * srfi/srfi-1.c (srfi1_ilength), libguile/list.c (scm_ilength,
scm_last_pair), libguile/unif.c (l2ra): Prefer !SCM_CONSP over
	SCM_NCONSP.

	* libguile/unif.c (l2ra): Eliminate redundant check.

	Now, guile itself does not include any calls to SCM_NCONSP any
	more.
2003-04-21 01:59:57 +00:00
Dirk Herrmann
9ff1720f85 * list.c (scm_cons_star), ramap.c (scm_ra_sum, scm_ra_product,
scm_array_map_x), unif.c (l2ra): Prefer !SCM_NULLP over
	SCM_NNULLP.  Now, guile itself does not include any calls to
	SCM_NNULLP any more.
2003-04-21 01:35:33 +00:00
Dirk Herrmann
05b1536228 * eval.c (unmemocopy, SCM_APPLY, scm_map, scm_for_each,
scm_copy_tree): Place assignment expressions which are part of
	other expressions into an expression of their own.
2003-04-21 01:07:09 +00:00
Dirk Herrmann
0c88d7dfae * goops.c (TEST_CHANGE_CLASS, scm_sys_initialize_object): Don't
compare SCM values with !=.
2003-04-20 23:38:18 +00:00
Dirk Herrmann
5cb22e9606 * eval.c, eval.h, evalext.c, evalext.h (scm_sym_setter,
scm_m_generalized_set_x, scm_init_evalext): Move the declaration
	and definition of the memoizer for the generalized set! macro from
	evalext.[ch] to eval.[ch].  Use the SCM_SYNTAX snarfer macro to
	define the macro object.

	* eval.c, eval.h (s_set_x, scm_s_set_x, scm_m_set_x,
	scm_m_generalized_set_x): Since now scm_s_set_x is only used in
	eval.c, it is made static and renamed to s_set_x.

	* evalext.c (scm_defined_p, scm_m_undefine): Prefer !SCM_<foo>
	over SCM_N<foo>.
2003-04-20 19:18:43 +00:00
Dirk Herrmann
a44a9715eb * eval.c, root.h (scm_undefineds, SCM_NUM_PROTECTS, undefineds,
scm_init_eval): Made scm_undefineds static in eval.c, renamed it
	to undefineds and registered the object as a permanent object.

	* eval.c, eval.h (scm_f_apply, scm_init_eval): Made scm_f_apply
	static in eval.c, renamed it to f_apply and registered the object
	as a permanent object.
2003-04-20 18:08:07 +00:00
Mikael Djurfeldt
05a6b2d3cc * goops.scm (compute-getters-n-setters): Allow for primitive
procedure thunks.  (Thanks to Neil W. Van Dyke.)
2003-04-20 17:35:41 +00:00
Mikael Djurfeldt
3bf465263c * goops.scm (compute-getters-n-setters): Allow for primitive
procedure thunks.  (Thanks to Neil W. Van Dyke.)
2003-04-20 17:33:08 +00:00
Mikael Djurfeldt
624b0da1ca *** empty log message *** 2003-04-20 11:44:12 +00:00
Dirk Herrmann
1b43d24c36 * eval.c (SCM_BIT8, SCM_BIT8, unmemocopy, SCM_CEVAL): Renamed
file-local macro SCM_BIT8 to SCM_BIT7, which is more appropriate.
2003-04-20 11:01:33 +00:00
Dirk Herrmann
aec16f9972 * numbers.c (scm_logtest): Fixed argument bug in the call to
mpz_and, which showed up when compiling with SCM_DEBUG defined.
2003-04-20 08:55:50 +00:00
Dirk Herrmann
f96460ce84 * gc-card.c (scm_i_sweep_card, scm_i_init_card_freelist): Fixed
type errors that showed up when compiling with SCM_DEBUG defined.
2003-04-20 08:39:38 +00:00
Dirk Herrmann
d0f6ceb84f * Removed uses of DEBUG_EXTENSIONS and DYNAMIC_LINKING to
fix compile errors with --disable-deprecated.
2003-04-20 07:19:38 +00:00
Mikael Djurfeldt
1ac61c2b50 * goops/dispatch.scm (cache-hashval): Corrected termination
condition for hashval computation.  (Previously, it made erroneous
assumptions about the representation of environments; Thanks to
Andreas Rottmann.)
2003-04-19 17:26:05 +00:00
Mikael Djurfeldt
a980f465e9 *** empty log message *** 2003-04-19 17:23:50 +00:00
Mikael Djurfeldt
3d167db8a9 * goops/dispatch.scm (cache-hashval): Corrected termination
condition for hashval computation.  (Previously, it made erroneous
assumptions about the representation of environments; Thanks to
Andreas Rottmann.)
2003-04-19 17:15:38 +00:00
Marius Vollmer
842d510f73 *** empty log message *** 2003-04-19 11:18:10 +00:00
Marius Vollmer
dea8a73c42 (SCM_MTRIGGER_HYSTERESIS): Removed.
(scm_i_minyield_malloc, check_mtrigger): New.
(scm_must_malloc, scm_must_realloc, scm_done_malloc): Use it
instead of explicit code.  Thanks to Han-Wen Nienhuys!
2003-04-19 11:17:23 +00:00
Mikael Djurfeldt
0fd7dcd398 goops.c (TEST_CHANGE_CLASS): Update variable class after class change. 2003-04-18 08:19:03 +00:00
Marius Vollmer
eff2965e58 *** empty log message *** 2003-04-17 22:47:53 +00:00
Rob Browning
19a7a0897b *** empty log message *** 2003-04-17 22:15:46 +00:00
Rob Browning
1c35cb199f * numbers.c (scm_integer_expt): fix case where we were declaring
vars in the middle of a statement block.  Thanks to Thamer
Al-Harbash.
2003-04-17 22:15:37 +00:00
Mikael Djurfeldt
f721dc1de1 * goops.c (TEST_CHANGE_CLASS): Update variable class after class
change.
2003-04-17 20:45:00 +00:00
Mikael Djurfeldt
89aab6f1ac *** empty log message *** 2003-04-17 19:51:04 +00:00
Mikael Djurfeldt
b3a9e3d58f *** empty log message *** 2003-04-17 19:40:49 +00:00
Mikael Djurfeldt
a75d54876c *** empty log message *** 2003-04-17 19:33:00 +00:00
Mikael Djurfeldt
47cd67db2f * tests/goops.test: Added tests for correctness of class
precedence list in all basic classes and tests for eqv? and
equal?.

* goops.scm (compute-getters-n-setters): Check for bad init-thunk.
(eqv?): Added default method.
(equal?): New default method which uses eqv?.

* eq.c (scm_eqv_p): Turned into a primitive generic.
2003-04-17 19:23:52 +00:00
Mikael Djurfeldt
3ad4ed2c8b Updated tests 2003-04-17 19:16:27 +00:00
Mikael Djurfeldt
95f2bb326c * goops.scm (eqv?, equal?): Provide default methods for `eqv?' and
`equal?'.
(compute-getters-n-setters): Check for bad init-thunks.
(update-direct-method!): Use eq? instead of eqv?.
2003-04-17 18:52:21 +00:00
Mikael Djurfeldt
61951a9a9a *** empty log message *** 2003-04-17 18:48:27 +00:00