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

4067 commits

Author SHA1 Message Date
Mikael Djurfeldt
c8e1d35451 * eval.c (scm_m_atdispatch): Removed until actually needed. (This
macro was introduced in anticipation of GOOPS method compilation
code.)

* goops.c: Removed binding of @dispatch.
2003-04-28 12:43:45 +00:00
Dirk Herrmann
a4aa213486 * eval.c, goops.c (@dispatch, @slot-ref, @slot-set!): Move the
instructions that bind the macros on the scheme level back to
	goops.c in order to make sure again that the bindings go into the
	(oop goops) module and are not visible from the outside.
2003-04-28 06:05:10 +00:00
Dirk Herrmann
9fbee57e8e * eval.c: Non functional change: Separated R5RS and non-R5RS
macros into different sections of the file and ordered the
	memoizers alphabetically.
2003-04-27 12:06:48 +00:00
Dirk Herrmann
12841895dc * eval.c (scm_ilookup): Rewritten to improve readability. 2003-04-27 11:06:14 +00:00
Dirk Herrmann
6a3f13f070 * eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
Partially reverted patch from 2003-04-23 in oder to find a better
	compromise between readability and debuggability.
2003-04-27 10:44:08 +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
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
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
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
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
0fd7dcd398 goops.c (TEST_CHANGE_CLASS): Update variable class after class change. 2003-04-18 08:19:03 +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
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
Rob Browning
312006bbb2 *** empty log message *** 2003-04-16 20:15:48 +00:00
Rob Browning
683a2f9a4c * gc_os_dep.c: Added patch for UnixWare and OpenUNIX support.
Thanks to Boyd Gerber.
Added check for __arm__ in addition to arm for LINUX and copied
__s390__ defines from upstream libgc. Thanks to James Treacy for
reporting the problems.
2003-04-16 20:15:37 +00:00
Rob Browning
c7ef2ea133 *** empty log message *** 2003-04-16 19:59:27 +00:00
Rob Browning
311daf8be1 * gc_os_dep.c: add check for __arm__ in addition to arm for
LINUX.  Thanks to James Treacy for tracking this one down.
2003-04-16 19:59:17 +00:00
Rob Browning
0b85efff1d oops -- reverse accidental commit. 2003-04-16 19:45:12 +00:00
Rob Browning
3b8b889c93 *** empty log message *** 2003-04-16 19:45:11 +00:00
Rob Browning
7310ad0ccf * socket.c: use SCM_CHAR_BIT. 2003-04-16 19:45:01 +00:00
Rob Browning
0d79003d44 * random.c (scm_c_random_bignum): use SCM_CHAR_BIT. 2003-04-16 19:44:55 +00:00
Rob Browning
b4fb7de868 * numbers.c (PTRDIFF_MIN): use SCM_CHAR_BIT. 2003-04-16 19:44:02 +00:00
Rob Browning
43151146c2 * num2integral.i.c (NUM2INTEGRAL): use SCM_CHAR_BIT. 2003-04-16 19:43:55 +00:00
Rob Browning
f55a171dc4 * gc_os_dep.c (mach_type_known): added patch for UnixWare and
OpenUNIX support.  Thanks to Boyd Gerber.
2003-04-16 19:39:35 +00:00
Mikael Djurfeldt
43261b390f * feature.c (scm_init_feature): Always add threads feature. 2003-04-16 12:52:04 +00:00
Mikael Djurfeldt
58241edc7d * tests/goops.test: Added tests for class redefinition, object
update and active slots.

* goops.scm (compute-getter-method): For custom getter: Check
boundness even if there is an init-thunk.  (The getter can return
#<unbound> even if the slot has been set before.)
(remove-class-accessors!): Also remove accessor-method from its
accessor.

* goops.c (scm_sys_fast_slot_ref): Use SCM_SLOT instead of
scm_at_assert_bound_ref.  (We don't want the unbound check.  See
oop/goops/active-slot.scm.)
2003-04-15 01:17:36 +00:00
Rob Browning
94e9127567 *** empty log message *** 2003-04-14 15:44:40 +00:00
Rob Browning
f59195a1d0 * tags.h: scm_t_intptr should have been intptr_t. 2003-04-14 15:42:34 +00:00
Rob Browning
3071ea2764 *** empty log message *** 2003-04-13 17:48:02 +00:00
Rob Browning
63c1872f88 * goops.c (prep_hashsets): make static to match prototype.
(scm_sym_args): SCM_SYMBOL -> SCM_GLOBAL_SYMBOL.  Thanks to Albert
Chin.
2003-04-13 17:46:54 +00:00
Rob Browning
9534300a30 * gc_os_dep.c: add NetBSD powerpc config info. Thanks to Thomas
Klausner.
2003-04-13 17:46:39 +00:00
Rob Browning
620246746b * c-tokenize.lex: remove trailing comma from enum. Thanks to
Albert Chin.
2003-04-13 17:46:21 +00:00
Rob Browning
7c12f0ac3d * __scm.h (SCM_FLUSH_REGISTER_WINDOWS): don't just rely on "sparc"
test.  Instead use
#if defined (sparc) || defined (__sparc__) || defined (__sparc)
as gc_os_dep.c suggests is appropriate.
2003-04-13 17:46:09 +00:00
Mikael Djurfeldt
21ab2aeb77 * goops.scm (compute-getters-n-setters/verify-accessors): Better
check of format of value returned by compute-get-n-set.
(compute-getters-n-setters): Extended format of slot
getters-n-setters to indicate position and size of slot memory
allocated in instances.

* goops.c (scm_sys_prep_layout_x): Instance allocation is now
indicated through extra fields in getters-n-setters.
(scm_add_slot): Adapted to new format of getters_n_setters slot.
(Thanks to Andy Wingo.)
2003-04-13 14:48:35 +00:00
Han-Wen Nienhuys
dff96e9567 (snarfcppopts): use DEFAULT_INCLUDES
instead of INCLUDES
2003-04-09 09:29:44 +00:00