Kevin Ryde
16f9b79576
*** empty log message ***
2003-11-24 22:25:53 +00:00
Kevin Ryde
8c3b23b3aa
(Macros guile-snarf recognizes): Correction to GOOPS cross reference.
2003-11-24 22:17:13 +00:00
Kevin Ryde
6117838eb1
Remove empty (duplicate) "Jump Start" entry.
2003-11-24 22:13:26 +00:00
Dirk Herrmann
5c26400756
* Forgot to submit the Changelog last time.
2003-11-21 23:28:15 +00:00
Dirk Herrmann
6bff13687c
* eval.c (s_bad_define): New static identifier.
...
(m_body): Fixed comment.
(scm_m_define): Don't generate memoized code for definitions that
are not on the top level. As a consequence, no memoized code at
all is generated for definitions any more: Top level definitions
are executed immediately during memoization and internal
definitions are handled separately in m_expand_body.
(scm_unmemocopy, unmemocopy): Removed code for unmemoizing
definitions. Consequently, there is no unmemoizing code any more
that might modify the environment. Thus, the old scm_unmemocopy
is removed and the old unmemocopy is renamed to scm_unmemocopy.
(SCM_CEVAL): The SCM_IM_DEFINE keyword can no longer occur in
memoized code. Call EVALCAR for continuations. Prefer !SCM_NULLP
over SCM_NIMP in places, where the argument is known to be part of
a proper list.
2003-11-21 23:21:34 +00:00
Marius Vollmer
28a6e1b0b6
(scm_drain_input): Bug fix: only access the port after checking that
...
it indeed is one.
2003-11-21 17:08:31 +00:00
Kevin Ryde
018d4730fe
*** empty log message ***
2003-11-21 00:45:07 +00:00
Kevin Ryde
7f84824269
(scm_bit_extract): Use mpz functions, rearrange inum case
...
to share some shifting.
2003-11-21 00:33:44 +00:00
Kevin Ryde
ae38324d9c
(scm_abs): Allocate a new real only for negatives, as done for bignums.
2003-11-21 00:07:13 +00:00
Kevin Ryde
753ac1e7e1
(scm_integer_expt): Don't mpz_init after scm_i_clonebig or
...
scm_i_mkbig, since they do so already. Don't mpz_clear a bignum SCM,
since gc does this.
2003-11-21 00:03:54 +00:00
Marius Vollmer
ca2b31fe08
#e1.2 is now exactly 12/10. Expect exceptions when calling inexact?
...
with a non-number.
2003-11-20 23:55:51 +00:00
Rob Browning
c412e408c5
(scm_system_star): new prototype.
2003-11-19 21:40:42 +00:00
Rob Browning
0db17ef9ab
(scm_system_star): new function.
2003-11-19 21:40:32 +00:00
Rob Browning
8141bd983d
(Processes): add documentation for system*.
2003-11-19 21:39:35 +00:00
Rob Browning
d26af5b23e
*** empty log message ***
2003-11-19 21:39:26 +00:00
Rob Browning
060ffedfe1
(check_SCRIPTS): add test-system-cmds.
...
(TESTS): add test-system-cmds.
2003-11-19 21:39:16 +00:00
Rob Browning
b10b93de99
* standalone/test-system-cmds: new test.
2003-11-19 21:39:07 +00:00
Marius Vollmer
f24809dc2b
*** empty log message ***
2003-11-19 18:24:36 +00:00
Marius Vollmer
e23fec5561
Include exact rationals.
2003-11-19 18:13:21 +00:00
Marius Vollmer
01b30204b5
(What is Guile?): Add @acronym for POSIX, R5RS, GUI,
...
and HTTP. Conclude linking libguile.
2003-11-19 18:12:11 +00:00
Marius Vollmer
c1f1071afc
Changed to reflect the fact that rationalize only returns an exact
...
result for exact arguments. Fixed bugs in tests that were not caught
previously since all fraction were treated as equal regardless of
value.
2003-11-19 05:15:51 +00:00
Marius Vollmer
fb16d26e23
*** empty log message ***
2003-11-19 05:13:53 +00:00
Marius Vollmer
c60e130c97
* numbers.c (scm_make_ratio): Rewritten to have a simpler
...
structure. Previously, not all cases with a negative denominator
were covered.
2003-11-19 05:12:08 +00:00
Marius Vollmer
0b0c8e3b4c
* numbers.c (scm_make_ratio): Don't declare divisible_p after
...
statements.
2003-11-19 04:30:40 +00:00
Marius Vollmer
4bca30d83a
*** empty log message ***
2003-11-19 03:51:21 +00:00
Marius Vollmer
02164269a7
* numbers.c (scm_i_fraction_equalp): Do not treat the return value
...
of scm_equal_p as a C boolean, use SCM_FALSEP. Previously, all
fractions were equal to each other regardless of value. Ooops.
* numbers.c (scm_rationalize): Return an inexact result when given
inexact arguments.
2003-11-19 03:50:26 +00:00
Marius Vollmer
eb927cb95c
* numbers.c (scm_exact_p, scm_inexact_p): Throw error for non-numbers.
2003-11-19 02:38:37 +00:00
Marius Vollmer
d8592269ab
(mem2decimal_from_point): use scm_divide instead of scm_divide2real
...
when forming the fractional part. This allows "#e1.2" to yield 6/5.
2003-11-19 02:19:03 +00:00
Neil Jerram
0f8b558cbc
Work in progress.
2003-11-19 01:27:31 +00:00
Neil Jerram
d9d022a7d6
Work in progress.
2003-11-19 01:22:06 +00:00
Neil Jerram
64758fe259
Defer lookup of lazy-handler-dispatch.
2003-11-19 01:16:16 +00:00
Marius Vollmer
cef6deaff1
(Manual Conventions): Double-quote some statements formerly
...
single-quoted. Remove some redundant quotes around code. Clarify
meaning of `iff' further for those that didn't get it the first time
'round (like me). Make graphical indicators samples, not code. Put
results of evaluation on the same line as @result symbols. Use @print
example as example of total usage, and remind readers not to forget
the difference.
2003-11-18 23:18:19 +00:00
Marius Vollmer
bdf26b606b
*** empty log message ***
2003-11-18 20:01:57 +00:00
Marius Vollmer
f92e85f735
* print.c (scm_iprin1): Handle fractions.
...
* objects.h (scm_class_fraction): New.
* objects.c (scm_class_fraction): New.
(scm_class_of): Handle fractions.
* hash.c (scm_hasher): Handle fractions.
* numbers.c: New code for handling fraction all over the place.
(scm_odd_p, scm_even_p): Handle inexact integers.
(scm_rational_p): New function, same as scm_real_p.
(scm_round_number, scm_truncate_number, scm_ceiling, scm_floor):
New exact functions that replace the inexact 'dsubr'
implementations.
(scm_numerator, scm_denominator): New.
* numbers.h (SCM_NUMP): Recognize fractions.
(SCM_FRACTIONP, SCM_SLOPPY_FRACTIONP, SCM_FRACTION_NUMERATOR,
SCM_FRACTION_DENOMINATOR, SCM_FRACTION_SET_NUMERATOR,
SCM_FRACTION_SET_DENOMINATOR, SCM_FRACTION_REDUCED_BIT,
SCM_FRACTION_REDUCED_SET, SCM_FRACTION_REDUCED_CLEAR,
SCM_FRACTION_REDUCED): New.
(scm_floor, scm_ceiling, scm_truncate_number, scm_round_number):
New prototypes.
(scm_make_ratio, scm_rationalize, scm_numerator, scm_denominator,
scm_rational_p): New prototypes.
(scm_i_dbl2num, scm_i_fraction2double, scm_i_fraction_equalp,
scm_i_print_fraction): New prototypes.
* goops.c (create_standard_classes): Create "<fraction>" class.
* gc-mark.c (scm_gc_mark_dependencies): Handle fractions.
* gc-card.c (scm_i_sweep_card): Include scm_tc16_fraction as a
case in the switch, but do nothing for now.
* eval.c (SCM_CEVAL, SCM_APPLY, call_dsubr_1): Convert fractions
to doubles when calling 'dsubr' functions.
* eq.c (scm_eqv_p, scm_equal_p): Handle fractions.
2003-11-18 19:59:53 +00:00
Marius Vollmer
9dd9857f77
* tests/numbers.test ("string->number"): Expect exact rationals
...
for things like "1/2" and "#e1.2".
("inexact->exact"): Expect overflow error for infs and nans.
* tests/fractions.test: New file from Bill Schottstaedt. Thanks!
* tests/bit-operations.test (fixnum-bit): Round the result so that
fixnum-bit really is an integer.
2003-11-18 19:57:30 +00:00
Rob Browning
28fda54472
*** empty log message ***
2003-11-18 06:14:29 +00:00
Rob Browning
9ca20a9c88
* gen-scmconfig.c (main): remove public definition of
...
SCM_SIZEOF___INT64 and SCM_SIZEOF_UNSIGNED___INT64 and add
direct typedef of long_long and ulong_long inside deprecated block
when appropriate.
2003-11-18 06:10:39 +00:00
Rob Browning
1fe5648d31
move long_long and ulong_long definitions to
...
gen-scmconfig.c so that we don't need to add SCM_SIZEOF___INT64
and SCM_SIZEOF_UNSIGNED___INT64 to the public namespace.
2003-11-18 06:10:11 +00:00
Rob Browning
ec3972f753
*** empty log message ***
2003-11-17 19:19:26 +00:00
Rob Browning
936f702bfd
new file.
2003-11-17 19:15:30 +00:00
Rob Browning
fb2de91a2c
rewrite ALLOCA related code as multiple lines so
...
it doesn't break with current autoconf substitutions.
2003-11-17 19:14:44 +00:00
Rob Browning
5a76d4dc05
*** empty log message ***
2003-11-17 18:59:08 +00:00
Marius Vollmer
9a1d7d7c8b
*** empty log message ***
2003-11-17 16:57:27 +00:00
Marius Vollmer
b4d5926184
(scm_string_hash): New hashing algorithm that takes the complete
...
string into account.
2003-11-17 16:56:48 +00:00
Marius Vollmer
64daa01285
Expect a "Bad variable" error for (set! #f 1).
2003-11-17 16:55:03 +00:00
Marius Vollmer
6d1a2e9f4b
(scm_m_generalized_set_x): Macroexpand the target when it
...
is a list. This allows (@ ...) to work with set!.
(scm_m_generalized_set_x): Use ASSERT_SYNTAX_2 instead of
SCM_ASSYNT.
2003-11-17 16:52:05 +00:00
Marius Vollmer
aff7e166e8
*** empty log message ***
2003-11-17 00:38:25 +00:00
Marius Vollmer
da769b1937
* scheme-modules.texi: Document '@' and '@@'.
...
* scripts.texi: Mention that "-e (@ ...)" also works.
2003-11-17 00:36:00 +00:00
Marius Vollmer
473687d130
(@, @@): New macros.
2003-11-17 00:28:03 +00:00
Marius Vollmer
b58e742039
*** empty log message ***
2003-11-17 00:26:14 +00:00