Commit graph

50 commits

Author SHA1 Message Date
Alex Shinn
8359b48a59 commenting out complex asin tests 2016-06-08 07:24:03 +09:00
Alex Shinn
7cb15a7191 Handling exact zero imaginary parts in complex asin.
Fixes issue #350.
2016-06-05 22:25:18 +09:00
Alex Shinn
cccfe33f7f patch from kipples for ffi struct args (fixes issue #330) 2016-05-18 22:36:59 +09:00
Alex Shinn
25a8e4f11a adding more srfi 130 tests 2016-05-17 23:38:45 +09:00
Alex Shinn
7f22b61cf2 removing non-portable passing of improper list to macro
Fixes issue #318.
2016-04-02 18:10:44 +09:00
Alex Shinn
0c80f38a19 making string-cursors a disjoint type 2016-03-29 22:25:09 +09:00
Alex Shinn
0251d14653 making (chibi term ansi) tests standalone to avoid circular dep on (chibi test) 2016-03-19 15:15:28 +09:00
Alex Shinn
fec1016254 Fix for additional edge cases in escaping symbols on output. 2016-03-19 15:01:05 +09:00
Alex Shinn
55257b75e3 Write should pipe-escape symbols beginning with a number.
Fixes issue #316.
2016-03-14 09:09:00 +09:00
Alex Shinn
ec430071eb default snow-chibi command uses snow.img 2016-03-13 15:42:47 +09:00
Alex Shinn
22bfa48698 fix escaping |.| on write, and funny symbols in srfi 38 in general 2016-03-13 09:33:24 +09:00
Alex Shinn
45c03c5dcb restoring renaming of ... 2016-03-05 00:28:09 +09:00
Alex Shinn
97297221fa When an alternate syntax-rules ellipsis is specified, we must bind this
locally around the macro transformer.  Fixes issue #313.
2016-03-02 23:34:39 +09:00
Alex Shinn
fb78ec1d1c removing double renaming of explicit ellipsis in syntax-rules 2016-02-27 16:14:10 +09:00
Alex Shinn
1f5d816f59 let[rec]-syntax should not splice 2016-02-22 23:05:12 +09:00
Alex Shinn
11ad0c3e3d fixing boehm build, excluding image code when not used 2016-02-20 23:49:28 +09:00
okuoku
c7cf34fc6f tests/ffi: Complete removal of delete-file on .dll
This delete-file would lead test failure on Cygwin and defer actual file
deletion.
2016-02-02 08:24:48 +09:00
Alex Shinn
c6ffc27959 patch from okuoku fixing ffi tests on cygwin 2016-02-01 21:29:25 +09:00
Alex Shinn
3e28bdef8b wrap delete-file in protect for cygwin
The file may still be referenced by the parent process.
Fixes issue #302.
2016-01-25 22:04:14 +09:00
Alexis King
c5f24c64ce Allow asin and acos to return an exact zero result in the R7RS tests 2015-10-31 18:10:58 -07:00
Alex Shinn
42c14af4b9 removing support for SEXP_USE_STRING_STREAMS 2015-07-04 23:25:40 +09:00
Alex Shinn
2e4d0aed91 Handling non-pointer struct return types in the ffi. We do a flat memcopy
of the struct to heap.  Only the base case is supported - combining with
multiple values or returning fixed-size arrays of structs won't work.
Fixes issue #270.
2015-06-22 23:01:44 +09:00
Alex Shinn
854f2f09ed Adding command-line option tests. 2015-06-21 23:14:38 +09:00
Alex Shinn
402828c8e9 adding Steele's three-part test and including numeric tests in test-libs 2015-06-16 22:33:33 +09:00
Alex Shinn
6db194171e Adding option to disable automatic running of finalizers altogether. 2015-06-14 16:19:55 +09:00
Alex Shinn
eab76ce8c1 Fixing #; comments as the last element in a list for (scheme read). 2015-06-13 21:57:31 +09:00
Alex Shinn
e2a6a3651d updating memory tests 2015-05-09 22:54:10 +09:00
Alex Shinn
9b5fe665cc Supporting multiple repositories and siblings traversal.
Annotating (use-for test) for test libraries.
2015-05-07 00:10:34 +09:00
Alex Shinn
d05b5c2d92 Sane handling of multiple repos basing the local cache name on the remote uri.
Still need to support a list of repos and/or sibling repos.
2015-05-06 15:25:34 +09:00
Alex Shinn
315d87174c Improving automated "optionals" signature extraction in (chibi doc). 2015-04-30 08:54:11 +09:00
Alex Shinn
8ed0eaf1cb Recognizing default install (scheme *), (srfi *), (impl *) libraries.
Fixing default install path for Chicken.
2015-04-29 08:53:13 +09:00
Alex Shinn
705260f78e Fixing installs of packages with library files not matching their names. 2015-04-27 10:40:38 +09:00
Alex Shinn
00691b64f1 Making libraries portable where possible.
Many still import (chibi), and as (scheme base) is somewhat more
expensive to load at present these are changed to cond-expand.
Many libraries also rely on (srfi 33), and these have been changed
to a cond-expand first trying (srfi 60) where available.
Also fixing a few portability concerns (duplicate imports of the
same binding), and adding a few libraries missing from lib-tests.scm.
2015-04-26 16:17:38 +09:00
Alex Shinn
78d68de282 Adding missing test files from last commit. 2015-04-24 14:10:57 +09:00
Alex Shinn
ac53193e5d Adding initial chibi-ffi support to snow-chibi. 2015-04-24 14:10:37 +09:00
Alex Shinn
1027b424c2 Adding tests to ensure packages with failing tests aren't installed without confirmation. 2015-04-23 17:09:19 +09:00
Alex Shinn
259d208ad5 Adding support for installing data files. 2015-04-23 15:23:30 +09:00
Alex Shinn
882f36bccf Adding proper program installation for chicken, plus tests. 2015-04-21 18:02:19 +09:00
Alex Shinn
4e75fbab49 Adding snow tests for advanced package defaults from config.
Adding test-library option to automatically infer tests from libraries.
Processing scribble docs even when we can't load the module.
2015-04-20 00:09:02 +09:00
Alex Shinn
01df2fec44 Merge pull request #251 from ilammy/overflow-fixes
Fixed a couple of integer overflows
2015-04-15 17:14:58 +09:00
Alex Shinn
b6bbc1cae5 Enabling chicken snow installs, and adding to tests.
Smarter handling of requested vs. available impl installs.
2015-04-15 15:19:44 +09:00
Alex Shinn
579fcf95ae Fixing kawa install rules and adding to tests. 2015-04-11 01:21:38 +09:00
Alex Shinn
d1537fec79 Fixing library rewriting and test-depends bug. 2015-04-11 01:01:07 +09:00
Alex Shinn
2af0685012 Adding cross-implementation installation tests. 2015-04-09 11:05:33 +09:00
Alex Shinn
3979e98aa6 Adding initial snow command-line tests. 2015-04-09 01:16:52 +09:00
Alex Shinn
4e5cdedc03 Converting tests to modules instead of separate programs.
By convention, a library meant for testing exports "run-tests".
Also by convention, assume the test for (foo bar) is (foo bar-test),
keeping the test in the same directory and avoiding confusion since
(chibi test) is not a test for (chibi).
- Avoids the hack of "load"ing test, with resulting namespace complications.
- Allows keeping tests together with the libraries.
- Allows setting up test hooks before running.
- Allows implicit inference of test locations when using above conventions.
2015-04-05 23:38:51 +09:00
ilammy
8329ee9fd6 Do not lose carry bit in addition edge case
Previous code was losing the carry bit in 'all ones' case, when adata[i]
= bdata[i] = SEXP_UINT_T_MAX, and carry = 1 too. In this case expression
(SEXP_UINT_T_MAX - bdata[i] - carry) overflows and yields an incorrect
value SEXP_UINT_T_MAX which results into carry being incorrectly set to
0 after addition.

We need to avoid the second overflow when calculating the new value of
the carry bit. One way to do this is at first check for the overflow in
(adata[i] + bdata[i]), and then throw in the (previous) carry bit.

I have also given "n" more expressive name and added a comment about
the reason why we need that temporary variable.
2015-03-26 02:30:48 +02:00
ilammy
a1ec8ff493 Avoid overflow when doing sexp_fx_abs()
Naturally, fixed-width integer arithmetics can overflow. Chibi handles
it pretty well in general, but one case was missing: it is negation of
the minimal negative number that can be represented as a fixnum. That is,
sexp_fx_neg() must not be applied to sexp_make_fixnum(SEXP_MIN_FIXNUM)
because it overflows and returns an identical fixnum back.

sexp_fx_neg() itself seems to be used right in the current code, but
sexp_fx_abs()--which is defined in terms of sexp_fx_neg()--could be
applied to the forbidden number when used to retrieve an unboxed value
via the sexp_unbox_fixnum(sexp_fx_abs(x)) pattern. So I have added a
separate macro that safely calculates unboxed absolute value of a fixnum,
and replaced sexp_unbox_fixnum(sexp_fx_abs(x)) usages with it.

Current implementation uses two-bit tag for fixnums, plus we need one
bit for the sign, so fixnums have (machine word - 3) significant bits.
Regression tests cover word sizes of 16, 32, 64, and 128 bits (for the
sake of past- and future-proofness).

sexp_bignum_expt() does not have a regression test because we need to
check it with negative exponents like -2^29, so the base must be over
at least 2^(2^29) for the differences to be visible. Fun fact: bignum
representation of such number takes around 1/32 of the available user-
space memory, which makes testing on anything except 32-bit systems
unreasonable (4 TB of RAM anyone?)
2015-03-26 02:30:48 +02:00
Alex Shinn
2db64f67f8 Fixing typo in r7rs-tests.
Was testing be-like-begin1 twice instead of be-like-begin2.
2015-03-12 22:39:43 +09:00
Alex Shinn
2922ed591d Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00