Matt Birkholz [Sat, 24 Nov 2018 22:30:53 +0000 (15:30 -0700)]
Merge branch 'master' into pucked.
Chris Hanson [Sat, 24 Nov 2018 05:56:17 +0000 (21:56 -0800)]
Initial draft of program to grovel over files looking for libraries.
This eliminates the need for the library names to be tied to the filesystem
structure.
The loader still needs to be enhanced to automatically load the registered
libraries. For now this is essentially a no-op.
Taylor R Campbell [Sat, 24 Nov 2018 03:53:29 +0000 (03:53 +0000)]
Default os/interprogram-paste needs to return #f or string.
Chris Hanson [Fri, 23 Nov 2018 00:46:54 +0000 (16:46 -0800)]
Revise unix installation notes to be more specific.
Chris Hanson [Fri, 23 Nov 2018 00:48:20 +0000 (16:48 -0800)]
Explicitly prevent native releases from assuming a scheme exists.
Chris Hanson [Thu, 22 Nov 2018 08:23:53 +0000 (00:23 -0800)]
Arrange for runtime packages to be importable as libraries.
Chris Hanson [Tue, 20 Nov 2018 03:57:38 +0000 (19:57 -0800)]
Pass IS_NATIVE_RELEASE to microcode during configuration.
Chris Hanson [Tue, 20 Nov 2018 03:50:37 +0000 (19:50 -0800)]
Fix create-makefiles.sh to use arch consistently.
Chris Hanson [Tue, 20 Nov 2018 00:33:44 +0000 (16:33 -0800)]
Change configure.ac to gobble up arch from ".native-release-marker".
Taylor R Campbell [Tue, 20 Nov 2018 09:18:03 +0000 (09:18 +0000)]
Use flo:hypot to compute inexact magnitudes with edge caess.
Maybe not the best way but it'll do for now.
Taylor R Campbell [Tue, 20 Nov 2018 09:15:53 +0000 (09:15 +0000)]
Test angles of partly infinite complex numbers.
Taylor R Campbell [Tue, 20 Nov 2018 09:15:20 +0000 (09:15 +0000)]
Teach relerr to return 0 if eqv or 1 if not for zero or inf.
This way we confirm infinite results and the sign of zero.
Fix up some test cases that this broke.
Taylor R Campbell [Tue, 20 Nov 2018 08:48:55 +0000 (08:48 +0000)]
magnitude is busted when both components are infinite.
Taylor R Campbell [Tue, 20 Nov 2018 07:01:43 +0000 (07:01 +0000)]
Fix harmless typo.
Accidentally using base 2 set this bound far lower than it needed to
be, but this branch isn't necessary anyway; it just skips a call to
exp that would have given the same result.
Taylor R Campbell [Tue, 20 Nov 2018 06:55:35 +0000 (06:55 +0000)]
Redo some of the floating-point parameters. Test them.
My initial attempt at these went wrong in various ways, oops.
Taylor R Campbell [Tue, 20 Nov 2018 06:34:54 +0000 (06:34 +0000)]
Fix nonsense error analysis in logit1/2+.
The Sterbenz lemma does not apply here after all, not sure why I
thought it did.
Taylor R Campbell [Tue, 20 Nov 2018 06:34:38 +0000 (06:34 +0000)]
Fix overflow in logistic-1/2.
Taylor R Campbell [Tue, 20 Nov 2018 06:33:18 +0000 (06:33 +0000)]
Test some screw cases for logistic-1/2.
Taylor R Campbell [Mon, 19 Nov 2018 01:40:30 +0000 (01:40 +0000)]
Check all four quadrants of complex asin, acos, atan.
Taylor R Campbell [Sun, 18 Nov 2018 23:06:46 +0000 (23:06 +0000)]
Avoid overflow in sqrt(1 - z^2) with sqrt(1 - z)*sqrt(1 + z) in asin.
Strike off a couple xfails. Others remain because the branch cuts
are busted.
Taylor R Campbell [Mon, 19 Nov 2018 01:07:29 +0000 (01:07 +0000)]
Tweak acos tests to clarify and reduce rounding errors.
Taylor R Campbell [Sun, 18 Nov 2018 22:31:36 +0000 (22:31 +0000)]
Define some more complex trig tests, several currently broken.
Chris Hanson [Mon, 19 Nov 2018 05:01:47 +0000 (21:01 -0800)]
Implement handling of traps under macOS.
Chris Hanson [Mon, 19 Nov 2018 02:45:00 +0000 (18:45 -0800)]
Change .native-release-marker to contain arch.
Chris Hanson [Mon, 19 Nov 2018 02:44:24 +0000 (18:44 -0800)]
Move string-for-primitive to (runtime).
Taylor R Campbell [Sun, 18 Nov 2018 06:32:51 +0000 (06:32 +0000)]
Fix definition of relerr.
The expected magnitude should be, well, the magnitude of the expected
value, not the one we actually computed!
Fortunately it doesn't change the outcome of any of the tests here.
Taylor R Campbell [Sun, 18 Nov 2018 06:20:50 +0000 (06:20 +0000)]
Use complex:1+ and complex:-1+.
No functional change but this makes it less likely that someone might
tweak the argument order, which tend sto matter for preserving things
like signed zeros.
Taylor R Campbell [Sun, 18 Nov 2018 06:18:25 +0000 (06:18 +0000)]
Note corrected atan branch cut.
Taylor R Campbell [Sun, 18 Nov 2018 06:05:10 +0000 (06:05 +0000)]
Some more atan tests for real values.
Taylor R Campbell [Sun, 18 Nov 2018 05:34:23 +0000 (05:34 +0000)]
Invent complex:log1m to get correct branch cut in atan on exact inputs.
Not going to export it for now without further thought, though.
Taylor R Campbell [Sun, 18 Nov 2018 05:17:32 +0000 (05:17 +0000)]
Add some atan tests.
Currently (atan -2i) is broken because of an unfortunate consequence
of exact Scheme arithmetic failing to propagate sign changes through
zero like floating-point does.
Taylor R Campbell [Sun, 18 Nov 2018 04:11:50 +0000 (04:11 +0000)]
Add note about signed zero in complex notation.
Taylor R Campbell [Sun, 18 Nov 2018 04:09:23 +0000 (04:09 +0000)]
Fix printing signed zero imaginary part.
Taylor R Campbell [Sun, 18 Nov 2018 04:04:59 +0000 (04:04 +0000)]
More signed zero screw cases in complex numbers.
Taylor R Campbell [Sun, 18 Nov 2018 04:00:17 +0000 (04:00 +0000)]
Some more cases.
Taylor R Campbell [Sun, 18 Nov 2018 03:58:40 +0000 (03:58 +0000)]
Respect signed zero in complex real part.
Taylor R Campbell [Sun, 18 Nov 2018 03:56:31 +0000 (03:56 +0000)]
Test some complex cases. We lose on signed zero (again).
Taylor R Campbell [Sun, 18 Nov 2018 03:38:52 +0000 (03:38 +0000)]
Add note about <= and >= fix.
Taylor R Campbell [Sun, 18 Nov 2018 03:36:52 +0000 (03:36 +0000)]
Teach (log1p x) to return complex results for real x < -1.
Taylor R Campbell [Sun, 18 Nov 2018 03:35:43 +0000 (03:35 +0000)]
Add some log1p edge cases, not all working.
Taylor R Campbell [Sun, 18 Nov 2018 03:34:32 +0000 (03:34 +0000)]
Test all of the comparison procedures without SF's help.
Taylor R Campbell [Sun, 18 Nov 2018 03:33:15 +0000 (03:33 +0000)]
Remove buggy `optimization' of (<= x y) into (not (> x y)).
Taylor R Campbell [Sun, 18 Nov 2018 03:29:10 +0000 (03:29 +0000)]
Test without the sf fakeout, xfail for now.
Taylor R Campbell [Sun, 18 Nov 2018 03:26:52 +0000 (03:26 +0000)]
(<= x y) is not (not (> x y)) in the presence of NaN.
Taylor R Campbell [Sun, 18 Nov 2018 03:25:17 +0000 (03:25 +0000)]
Fake out sf so we actually test the <= and >= procedures here.
Taylor R Campbell [Sun, 18 Nov 2018 03:10:04 +0000 (03:10 +0000)]
Test equality and ordering of various things with NaN.
Alas, <= and >= are broken.
Chris Hanson [Sat, 17 Nov 2018 07:07:17 +0000 (23:07 -0800)]
Empty out host-adapter now that the release is out.
Taylor R Campbell [Sun, 18 Nov 2018 02:10:28 +0000 (02:10 +0000)]
Tweak note to note how to get human-readable names.
Taylor R Campbell [Sun, 18 Nov 2018 01:48:24 +0000 (01:48 +0000)]
Note more floating-point edge case bug fixes.
Taylor R Campbell [Sun, 18 Nov 2018 01:47:06 +0000 (01:47 +0000)]
Test (make-polar nan 0) is nan.
Taylor R Campbell [Sun, 18 Nov 2018 01:44:49 +0000 (01:44 +0000)]
Make (make-polar magnitude 0) return magnitude.
Taylor R Campbell [Sun, 18 Nov 2018 01:42:55 +0000 (01:42 +0000)]
(make-polar mag 0) should always be mag even if infinite.
Taylor R Campbell [Sun, 18 Nov 2018 01:38:28 +0000 (01:38 +0000)]
Fix 0 * inf.
Taylor R Campbell [Sun, 18 Nov 2018 01:36:25 +0000 (01:36 +0000)]
Bug: 0 * inf should be NaN, but if the 0 is exact it gives 0.
Taylor R Campbell [Sun, 18 Nov 2018 01:19:30 +0000 (01:19 +0000)]
Fix release note on floating-point exceptions.
Taylor R Campbell [Sat, 17 Nov 2018 23:33:41 +0000 (23:33 +0000)]
Note bug with reading and printing nonfinite complex parts.
Taylor R Campbell [Sat, 17 Nov 2018 23:31:56 +0000 (23:31 +0000)]
Parse and print nonfinite parts in rectangular complex numbers.
Taylor R Campbell [Sat, 17 Nov 2018 23:21:57 +0000 (23:21 +0000)]
Add some more nonfinite complex screw cases.
Taylor R Campbell [Sat, 17 Nov 2018 09:15:26 +0000 (09:15 +0000)]
Revert "Remove workaround for 9.2 compiler bug."
This reverts commit
7828111b77fb53e34b365abc775148f49eabe1d2.
Can't keep this change until a new release has a compiler without
the bug.
Taylor R Campbell [Sat, 17 Nov 2018 09:14:14 +0000 (09:14 +0000)]
Add a directory of pending release notes.
These are in separate files in no particular order so that we don't
have merge conflicts when people merge branches with their own
release notes.
When a release goes out we can just clear the directory and start
over.
Some of these actually went out in 10.1 but didn't make it into the
release notes (and a couple may have been slightly broken in 10.1
anyway).
Taylor R Campbell [Sat, 17 Nov 2018 09:13:21 +0000 (09:13 +0000)]
Add some complex infinite screw cases, xfail.
Chris Hanson [Sat, 17 Nov 2018 06:45:20 +0000 (22:45 -0800)]
Eliminate more string-copy calls.
Chris Hanson [Sat, 17 Nov 2018 04:44:44 +0000 (20:44 -0800)]
Eliminate now-unnecessary string-copy calls.
Matt Birkholz [Fri, 16 Nov 2018 02:14:56 +0000 (19:14 -0700)]
gcnote: When heap runs low, abort just the current/console thread.
Matt Birkholz [Fri, 16 Nov 2018 02:09:36 +0000 (19:09 -0700)]
runtime/gcdemn: Update daemon descriptions.
Matt Birkholz [Sun, 11 Nov 2018 19:05:48 +0000 (12:05 -0700)]
runtime/http-io: request body can be #f
Matt Birkholz [Sun, 11 Nov 2018 16:03:49 +0000 (09:03 -0700)]
mcrypt/configure.ac: typo
Matt Birkholz [Sat, 10 Nov 2018 19:56:47 +0000 (12:56 -0700)]
ffi/build: typo, free variable
Taylor R Campbell [Fri, 16 Nov 2018 17:01:39 +0000 (17:01 +0000)]
Revert "Revert "Remove workaround for 9.2 compiler bug.""
This reverts commit
690adab07f3f98ccc53d38a75347f184e8811248.
Let's try this again.
Taylor R Campbell [Fri, 16 Nov 2018 17:00:10 +0000 (17:00 +0000)]
Make flo:integer? answer true only for finite inputs.
Taylor R Campbell [Fri, 16 Nov 2018 16:57:59 +0000 (16:57 +0000)]
Add tests for integer?.
It incorrectly reports infinities as integers, so xfail.
Taylor R Campbell [Fri, 16 Nov 2018 16:48:00 +0000 (16:48 +0000)]
Confirm that complex flonum components survive read/write in hex.
Taylor R Campbell [Fri, 16 Nov 2018 16:46:08 +0000 (16:46 +0000)]
Teach the printer to print inexacts and complexes in hexadecimal.
Taylor R Campbell [Fri, 16 Nov 2018 16:39:50 +0000 (16:39 +0000)]
Add some more tests for read/write invariance with hex.
Printer doesn't yet understand how to print flonums in hex, so xfail.
Taylor R Campbell [Fri, 16 Nov 2018 16:38:36 +0000 (16:38 +0000)]
Don't add the #x marker in flo:->string / number->string.
We'll add it in the printer downstream.
Taylor R Campbell [Fri, 16 Nov 2018 09:18:19 +0000 (09:18 +0000)]
Use a make macro with $(MAKE) to make in subdirs, with + modifier.
- Avoids relying on `make' to execute the right make.
- Works with `make -n'.
Taylor R Campbell [Fri, 16 Nov 2018 09:09:40 +0000 (09:09 +0000)]
Fix case that wasn't adequately exercised.
Taylor R Campbell [Fri, 16 Nov 2018 09:08:43 +0000 (09:08 +0000)]
Tickle error case that I missed.
Taylor R Campbell [Fri, 16 Nov 2018 08:35:42 +0000 (08:35 +0000)]
Revert "Remove workaround for 9.2 compiler bug."
This reverts commit
7828111b77fb53e34b365abc775148f49eabe1d2.
I haven't tracked this down because the stack trace is full of frames
in the compiler for which we don't install debug data but the symptom
is:
; Compiling file: "./floenv.bin" => "./floenv.com"...
;The object +inf.0, passed as the first argument to flonum-normalize, is not the correct type.
First few frames suggest this is in flo:->rational called by something
in RTL CSE.
Taylor R Campbell [Fri, 16 Nov 2018 08:02:22 +0000 (08:02 +0000)]
Teach (number->string x 16) to use radix 16, base 2 exponent notation.
Taylor R Campbell [Fri, 16 Nov 2018 07:44:50 +0000 (07:44 +0000)]
Fix export list of (runtime ieee754).
Taylor R Campbell [Fri, 16 Nov 2018 07:41:53 +0000 (07:41 +0000)]
Fix definition of flo:largest-positive-normal.
Taylor R Campbell [Fri, 16 Nov 2018 07:41:19 +0000 (07:41 +0000)]
Test a couple edge cases for hexadecimal floating-point parsing.
One is xfail right now because I defined flo:largest-positive-normal
wrong -- oops!
Taylor R Campbell [Fri, 16 Nov 2018 07:39:47 +0000 (07:39 +0000)]
Add support for parsing non-decimal radix points and binary exponents.
Taylor R Campbell [Fri, 16 Nov 2018 07:22:25 +0000 (07:22 +0000)]
Add some trivial string->number tests.
Taylor R Campbell [Fri, 16 Nov 2018 07:05:17 +0000 (07:05 +0000)]
Don't transform (- x) into (- 0 x).
The transformation is wrong for floating-point signed zero.
Taylor R Campbell [Fri, 16 Nov 2018 07:08:07 +0000 (07:08 +0000)]
Add an explicit test for negating zero with (- x).
Currently xfail for some cases because of incorrect optimization in
sf.
Chris Hanson [Fri, 16 Nov 2018 07:27:17 +0000 (23:27 -0800)]
Remove workaround for 9.2 compiler bug.
Chris Hanson [Fri, 16 Nov 2018 07:26:21 +0000 (23:26 -0800)]
Remove workaround for 9.2 compiler bug.
Chris Hanson [Fri, 16 Nov 2018 07:24:00 +0000 (23:24 -0800)]
Eliminate support for old types in debugging info.
Chris Hanson [Fri, 16 Nov 2018 07:19:35 +0000 (23:19 -0800)]
Eliminate obsolete record-type-dispatch-tag.
Chris Hanson [Fri, 16 Nov 2018 07:08:04 +0000 (23:08 -0800)]
Remove no-longer-needed comment.
Chris Hanson [Fri, 16 Nov 2018 07:06:35 +0000 (23:06 -0800)]
Implement new-make-define-structure-type without the obsolete argument.
Temporarily preserve make-define-structure-type which ignores the arg.
Chris Hanson [Fri, 16 Nov 2018 07:03:45 +0000 (23:03 -0800)]
Change plugins to use the already-compiled toolchain.
Chris Hanson [Fri, 16 Nov 2018 05:36:02 +0000 (21:36 -0800)]
Eliminate structure-type/unparser-method and its dependents.
Chris Hanson [Fri, 16 Nov 2018 05:31:22 +0000 (21:31 -0800)]
Eliminate old version of make-record-type.
Chris Hanson [Thu, 15 Nov 2018 05:19:09 +0000 (21:19 -0800)]
Add patch from internet to enable/disable FP traps on macOS.
Chris Hanson [Wed, 14 Nov 2018 07:06:20 +0000 (23:06 -0800)]
Big round of changes to UCD tables, no longer need runtime conversion.
Previous tables had to be compiled using 9.2, and couldn't use bytevector,
unicode string syntax, or R7RS char/string escapes. Now they do that which
results in some small space savings and less work at cold load.
Additionally I changed the representation of multiple-code-point values from
strings to vectors. The old representation depended on the fact that
vector->string didn't do normalization, so those strings can't be constructed at
compile time (they'll be normalized) and anyway it's not good to depend on that
feature of vector->string.
Chris Hanson [Wed, 14 Nov 2018 04:47:46 +0000 (20:47 -0800)]
Change default port char-set to ASCII.
Chris Hanson [Wed, 14 Nov 2018 04:47:17 +0000 (20:47 -0800)]
Add char-set operation to string output ports, using Unicode.