Commit graph

2139 commits

Author SHA1 Message Date
Kevin Ryde
9ddeb77696 *** empty log message *** 2003-10-09 00:41:46 +00:00
Kevin Ryde
ff6ea7b951 *** empty log message *** 2003-10-08 23:00:37 +00:00
Dirk Herrmann
df5af69a91 * smob.h (scm_make_smob_type): Made the declaration match the
definition.
2003-10-07 22:03:26 +00:00
Marius Vollmer
da0e6c2baf Make type names char const * instead of char *. Thanks to Paul Jarc! 2003-10-07 15:58:19 +00:00
Kevin Ryde
591924eb4c *** empty log message *** 2003-10-02 00:11:12 +00:00
Dirk Herrmann
f03314f920 * numbers.h (SCM_INEXACTP): Removed uses of SCM_TYP16S.
* tags.h, deprecated.h (SCM_TYP16S): Deprecated and moved from
	tags.h to deprecated.h.
2003-09-21 07:54:23 +00:00
Dirk Herrmann
534c55a97d This set of patches introduces a new tc7 code scm_tc7_number for
numbers.  Bignums, reals and complex numbers are turned from smobs
	into subtypes of scm_tc7_number.

	* tags.h (scm_tc7_number): New.

	* eq.c (scm_equal_p), eval.c (SCM_CEVAL), evalext.c
	(scm_self_evaluating_p), gc-card.c (scm_i_sweep_card), gc-mark.c
	(scm_gc_mark_dependencies), goops.c (create_smob_classes), hash.c
	(scm_hasher), numbers.c, numbers.h (SCM_NUMP), objects.c
	(scm_class_of), print.c (scm_iprin1), smob.c
	(scm_smob_prehistory): Don't handle bignums, reals and complex
	numbers as subtypes of scm_tc7_smob any more.

	* numbers.h, tags.h (scm_tc16_big, scm_tc16_real,
	scm_tc16_complex): Moved definitions from tags.h to numbers.h.
2003-09-18 20:55:40 +00:00
Dirk Herrmann
29c4382afd * numbers.c (scm_make_complex), gc-card.c (scm_i_sweep_card): Use
sizeof (scm_t_complex) to determine the memory size of the
	malloc'd area for complex numbers.
2003-09-18 20:18:17 +00:00
Dirk Herrmann
47ae1f0eca * libguile/numbers.c (scm_bigequal): Fixed.
* test-suite/tests/numbers.test (equal?): Added tests.

	* test-suite/tests/numbers.test (=): Fixed and added some bignum
        related tests.
2003-09-17 21:03:26 +00:00
Marius Vollmer
859b6b2fff *** empty log message *** 2003-09-16 21:21:28 +00:00
Dirk Herrmann
e17d318faa This set of patches eliminates the dependency between the
implementation of evaluator specific memoization codes and special
	constants like #f, '() etc. ('flags'), which are not evaluator
	specific.  The goal is to remove definitions of evaluator
	memoization codes completely from the public interface.  This will
	make it possible to experiment more freely with optimizations of
	guile's internal representation of memoized code.

	* objects.c (scm_class_of): Eliminate dependency on SCM_ISYMNUM.

	* print.c (iflagnames): New array, holding the printed names of
	guile's special constants ('flags').

	(scm_isymnames): Now holds only the printed names of the
	memoization codes.

	(scm_iprin1): Separate the handling of memoization codes and
	guile's special constants.

	* tags.h (scm_tc9_flag, SCM_ITAG9, SCM_MAKE_ITAG9, SCM_ITAG9_DATA,
	SCM_IFLAGNUM): new

	(scm_tc8_char, scm_tc8_iloc, SCM_BOOL_F, SCM_BOOL_T,
	SCM_UNDEFINED, SCM_EOF_VAL, SCM_EOL, SCM_UNSPECIFIED, SCM_UNBOUND,
	SCM_ELISP_NIL, SCM_IM_DISPATCH, SCM_IM_SLOT_REF,
	SCM_IM_SLOT_SET_X, SCM_IM_DELAY, SCM_IM_FUTURE,
	SCM_IM_CALL_WITH_VALUES, SCM_IM_NIL_COND, SCM_IM_BIND): Changed
	values.

	(SCM_IFLAGP): SCM_IFLAGP now only tests for flags.

	(SCM_IFLAGP, SCM_MAKIFLAG, SCM_IFLAGNUM): Generalized to use the
	tc9 macros and scm_tc9_flag.
2003-09-16 17:37:56 +00:00
Marius Vollmer
eecac80630 *** empty log message *** 2003-09-15 12:37:16 +00:00
Dirk Herrmann
22f2cf2d9a * tags.h: Reduced the number of short instructions from 14 to 13.
The typecode of the former 14th short instruction is now used to
	represent long instructions.  Changed some comments to reflect
	this fact.

	(SCM_MAKISYM): ISYMs get a new tc7 code, namely the one that was
	previously used by SCM_IM_DEFINE.

	(SCM_IM_DEFINE): Turned into a long instruction.

	* eval.c (unmemocopy, SCM_CEVAL): Treat SCM_IM_DEFINE as a long
	instruction.

	* eval.c (SCM_CEVAL): Since characters and iflags have now a tc7
	code that is separate from all instructions, one level of dispatch
	for long instructions can be eliminated.

	* print.c (scm_isymnames): Removed some commented code.
2003-09-14 08:07:10 +00:00
Marius Vollmer
97a61c5f91 *** empty log message *** 2003-09-12 15:43:04 +00:00
Marius Vollmer
50e0ba57da *** empty log message *** 2003-09-12 15:16:56 +00:00
Marius Vollmer
62f548e16c *** empty log message *** 2003-09-12 14:14:05 +00:00
Dirk Herrmann
0d5e348022 * numbers.h (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Removed uses
of SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.

	* numbers.h, deprecated.h (SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP,
	SCM_SLOPPY_COMPLEXP): Deprecated and moved from numbers.h to
	deprecated.h.
2003-09-06 09:17:29 +00:00
Dirk Herrmann
6b412e9171 * eq.c (scm_eqv_p, scm_equal_p): Removed uses of
SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.

	* eq.c (scm_eqv_p, scm_equal_p): Reordered comparisons from
	0.0==some_expression to some_expression==0.0.  The latter is
	better readable.  The former is preferred by some people, since it
	leads to a compiler error when confusing == with =.  However, when
	using gcc, a warning will be issued if in an if-statement an
	assigment appears.  Since many Guile developers are using gcc,
	such errors will not remain unnoticed anyway.  We can therefore
	focus on better readability.
2003-09-06 08:50:26 +00:00
Dirk Herrmann
7e3b25bf51 * tags.h: Added description of Guile's type system. Removed some
old and misleading comments.
2003-09-04 20:47:41 +00:00
Dirk Herrmann
3ea39242b8 * unit.c (scm_cvref): Eliminate unnecessary uses of SCM_NIMP,
SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP.
2003-09-04 20:14:02 +00:00
Dirk Herrmann
5d7d39ff5d * numbers.h (SCM_MAKINUM): Define in terms of scm_tc2_int.
(SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Define in terms of the
	respective SLOPPY macro.
2003-09-04 20:04:30 +00:00
Dirk Herrmann
baa84a205c * eq.c (scm_equal_p): Use SCM_TYP7 to check if an object is of
type string, not SCM_TYP7S.
2003-09-04 19:21:21 +00:00
Kevin Ryde
53bb87824d *** empty log message *** 2003-09-03 00:03:20 +00:00
Kevin Ryde
ba15f500e3 *** empty log message *** 2003-09-02 23:03:34 +00:00
Neil Jerram
defdc4b4ee Make -s switch optional. 2003-08-30 21:22:45 +00:00
Kevin Ryde
0f008a157a *** empty log message *** 2003-08-30 00:07:49 +00:00
Kevin Ryde
438a3ba10d *** empty log message *** 2003-08-28 00:13:06 +00:00
Kevin Ryde
98dceb376e *** empty log message *** 2003-08-22 23:26:07 +00:00
Kevin Ryde
1fa79a3839 *** empty log message *** 2003-08-22 01:19:24 +00:00
Kevin Ryde
d97f9b4230 *** empty log message *** 2003-08-12 21:43:34 +00:00
Kevin Ryde
b9052fcc32 *** empty log message *** 2003-08-08 22:58:24 +00:00
Kevin Ryde
8e5b4b9e34 *** empty log message *** 2003-07-28 23:59:47 +00:00
Marius Vollmer
c6ccee3417 *** empty log message *** 2003-07-27 16:31:43 +00:00
Marius Vollmer
2f4931bf1b *** empty log message *** 2003-07-27 16:21:33 +00:00
Marius Vollmer
265c456f2f *** empty log message *** 2003-07-27 13:56:48 +00:00
Marius Vollmer
20703ac4dc *** empty log message *** 2003-07-27 13:35:02 +00:00
Dirk Herrmann
59c4bb82e3 * __scm.h: Reformulated the architecture and compiler properties
in terms of properties of scm_t_bits and SCM variables rather than
	in terms of c standard types.  This is since it is not known which
	of the standard types scm_t_bits and SCM variables will be defined
	to.
2003-07-24 06:32:20 +00:00
Kevin Ryde
d7850c8d68 *** empty log message *** 2003-07-24 01:05:02 +00:00
Kevin Ryde
8a0c514f35 *** empty log message *** 2003-07-17 23:40:03 +00:00
Mikael Djurfeldt
0aacf84ee6 (scm_odd_p, scm_even_p): Bugfix: Treat result of
scm_inf_p test as Scheme values.
(scm_sum): Bugfix: Normalize bignum created from a negative bignum
and a positive inum.
Use GNU indentation style.
2003-07-13 16:13:57 +00:00
Dirk Herrmann
192de9a4d6 * values.c (scm_values): Build lists of length 1 by using
scm_list_1 instead of using scm_cons.
2003-07-12 06:44:57 +00:00
Kevin Ryde
b58c85cead *** empty log message *** 2003-07-09 22:28:08 +00:00
Kevin Ryde
bbb4438a2a *** empty log message *** 2003-07-09 22:04:00 +00:00
Kevin Ryde
287f8ad11e *** empty log message *** 2003-07-08 00:42:27 +00:00
Kevin Ryde
005d2366ef *** empty log message *** 2003-07-08 00:33:43 +00:00
Han-Wen Nienhuys
cbfe8e6242 (decrease_mtrigger): new function
(increase_mtrigger): new function, separate debug registering and
mtrigger administration.
(scm_gc_realloc): bugfix: do mtrigger administration before the
actual realloc, for the realloc might invalidate a GC-d segment of
memory. Thanks to Sam Hocevar for pointing this out.
(scm_gc_realloc): use scm_malloc_reregister instead of
unregistering and registering in sequence.
2003-07-06 14:54:07 +00:00
Han-Wen Nienhuys
aeb4c2e162 (SCM_ASSERT): change "else" expansion to "do { } while (0)" 2003-07-02 23:04:54 +00:00
Han-Wen Nienhuys
4c27f8d23b (SCM_ASRTGO): add "else" to macro expansions with if
clauses.
2003-07-02 16:11:08 +00:00
Marius Vollmer
983e697d52 *** empty log message *** 2003-06-29 14:57:54 +00:00
Stefan Jahn
78b6566ece 2003-06-25 Stefan Jahn <stefan@lkcc.org>
* continuations.c: Redeclaration of getcontext() via the
        __asm__ ("getcontext") directive.

        * continuations.h: Include <ucontext.h> instead of
        <sys/ucontext.h>.
2003-06-25 18:12:35 +00:00