]> birchwood-abbey.net Git - mit-scheme.git/log
mit-scheme.git
3 years agoEliminate outdated R7RS incompatibilities.
Chris Hanson [Sat, 24 Dec 2022 05:04:44 +0000 (21:04 -0800)]
Eliminate outdated R7RS incompatibilities.

3 years agoFix missing SRFIs.
Chris Hanson [Fri, 23 Dec 2022 13:21:23 +0000 (05:21 -0800)]
Fix missing SRFIs.

3 years agocompiler/x86-64: Limit detag-subtract-compare rules to ZERO-FIXNUM?.
Taylor R Campbell [Thu, 22 Dec 2022 14:44:51 +0000 (14:44 +0000)]
compiler/x86-64: Limit detag-subtract-compare rules to ZERO-FIXNUM?.

The shortcut without detagging doesn't work for ordered comparisons.

Add automatic tests for (fix:</=/> 0 (fix:- x y)).

Savannah bug #63534

(If we ever switched to separate positive and negative fixnum tags,
we could fruitfully revive the </> rules.)

3 years agoImprove printing support for editor objects.
Chris Hanson [Sun, 18 Dec 2022 03:35:07 +0000 (19:35 -0800)]
Improve printing support for editor objects.

3 years agoFix compilation issues in svm1 build.
Chris Hanson [Fri, 16 Dec 2022 00:57:24 +0000 (16:57 -0800)]
Fix compilation issues in svm1 build.

3 years agoUse bootstrap script to set up doc tree.
Chris Hanson [Thu, 15 Dec 2022 10:14:56 +0000 (02:14 -0800)]
Use bootstrap script to set up doc tree.

3 years agoEliminate release notes for version 12.
Chris Hanson [Thu, 15 Dec 2022 10:07:49 +0000 (02:07 -0800)]
Eliminate release notes for version 12.

3 years agoUpdate version now that release-12 branch is cut.
Chris Hanson [Mon, 12 Dec 2022 10:23:40 +0000 (02:23 -0800)]
Update version now that release-12 branch is cut.

3 years agoTweak mtimes of source files if git-restore-mtime available.
Chris Hanson [Mon, 12 Dec 2022 10:03:25 +0000 (02:03 -0800)]
Tweak mtimes of source files if git-restore-mtime available.

3 years agoFix update-copyright to handle top-level Tags.sh.
Chris Hanson [Mon, 12 Dec 2022 09:03:25 +0000 (01:03 -0800)]
Fix update-copyright to handle top-level Tags.sh.

3 years agoFix bug#63507.
Chris Hanson [Mon, 12 Dec 2022 01:57:04 +0000 (17:57 -0800)]
Fix bug#63507.

Continue to use uninterned symbols, but incorporate the original symbol's name
into the rename.

3 years agoFix bug #63503.
Chris Hanson [Sun, 11 Dec 2022 07:54:13 +0000 (23:54 -0800)]
Fix bug #63503.

Screwed up literal identifier matching during rewrite.

3 years ago.gitignore: Ignore .rtl files too.
Taylor R Campbell [Sat, 15 Oct 2022 14:25:59 +0000 (14:25 +0000)]
.gitignore: Ignore .rtl files too.

Compiler diagnostic output, not source code.

3 years agoFix bug #62618.
Chris Hanson [Sat, 10 Dec 2022 09:53:08 +0000 (01:53 -0800)]
Fix bug #62618.

Don't automatically normalize strings to NFC.  Add a note to the reference
manual stating that it's the programmer's responsibility to normalize when
needed.

3 years agoFix bug #63495.
Chris Hanson [Sat, 10 Dec 2022 06:08:08 +0000 (22:08 -0800)]
Fix bug #63495.

Eliminate string-for-primitive and string-from-primitive, and treat filenames,
command-line arguments, and environment variables as 8-bit strings.  In reality,
these are all byte sequences, but it would take more work to convert everything
to use bytevectors for them.

3 years agoTweak syntax-rules to be consistent with R7RS.
Chris Hanson [Sat, 10 Dec 2022 06:07:10 +0000 (22:07 -0800)]
Tweak syntax-rules to be consistent with R7RS.

My understanding has been appropriately adjusted by R7RS editors.

3 years agoAdd original copyrights to some tests.
Chris Hanson [Tue, 6 Dec 2022 06:25:06 +0000 (22:25 -0800)]
Add original copyrights to some tests.

These tests were derived by translation from published SRFI tests.

3 years agoUndo previous change 6b1dc52ce26921e0b68b4103828ed6e19e1f8fb0.
Chris Hanson [Tue, 6 Dec 2022 06:14:44 +0000 (22:14 -0800)]
Undo previous change 6b1dc52ce26921e0b68b4103828ed6e19e1f8fb0.

There's no need to insert an extra space, it's done automatically.  Also,
eliminated upper-case interned symbols and simplify one definition.

3 years agoMove environment->library out of global env.
Chris Hanson [Tue, 6 Dec 2022 05:32:56 +0000 (21:32 -0800)]
Move environment->library out of global env.

End users should use environment-name instead.

3 years agoFix bug #63454.
Chris Hanson [Tue, 6 Dec 2022 05:05:02 +0000 (21:05 -0800)]
Fix bug #63454.

Add optimizations for mixed single and multiple-value bindings in let-values.

3 years agoFix bug #63438.
Chris Hanson [Tue, 6 Dec 2022 02:06:54 +0000 (18:06 -0800)]
Fix bug #63438.

Abandon overly-clever mechanism to use generated interned symbols in syntaxer
output.  Leaving the uninterned renames will always work.

3 years agoAdd more tests for syntax-rules.
Chris Hanson [Mon, 5 Dec 2022 08:35:49 +0000 (00:35 -0800)]
Add more tests for syntax-rules.

3 years agoComplete reimplementation of syntax-rules.
Chris Hanson [Tue, 22 Nov 2022 03:07:32 +0000 (19:07 -0800)]
Complete reimplementation of syntax-rules.

3 years agoDon't error out if tests/ffi/ has no makefile.
Chris Hanson [Sat, 3 Dec 2022 06:20:10 +0000 (22:20 -0800)]
Don't error out if tests/ffi/ has no makefile.

3 years agoImplement count-pairs.
Chris Hanson [Mon, 28 Nov 2022 08:20:22 +0000 (00:20 -0800)]
Implement count-pairs.

3 years agoChange length+ to signal an error on dotted lists.
Chris Hanson [Sun, 20 Nov 2022 05:41:14 +0000 (21:41 -0800)]
Change length+ to signal an error on dotted lists.

3 years agoUse hash-table-constructor instead of comparator->hash-table-type.
Chris Hanson [Mon, 28 Nov 2022 08:18:34 +0000 (00:18 -0800)]
Use hash-table-constructor instead of comparator->hash-table-type.

The former was designed for the use case and does not expose hash-table types,
which are deprecated (though not yet marked as such).

3 years agoAdd missing spar-macro-transformer to rewrite-macro-defn.
Chris Hanson [Wed, 23 Nov 2022 01:18:45 +0000 (17:18 -0800)]
Add missing spar-macro-transformer to rewrite-macro-defn.

3 years agoFix bug in rb-tree/update!.
Chris Hanson [Sun, 20 Nov 2022 04:37:34 +0000 (20:37 -0800)]
Fix bug in rb-tree/update!.

Also document some rb-tree operations, including that one.

3 years agoImplement SRFI 129.
Chris Hanson [Fri, 11 Nov 2022 06:56:50 +0000 (22:56 -0800)]
Implement SRFI 129.

3 years agoHandle circularity in arguments to equal?.
Chris Hanson [Sun, 6 Nov 2022 07:47:04 +0000 (00:47 -0700)]
Handle circularity in arguments to equal?.

This is accomplished by detecting a pair of args that's been seen before and
returning the value from those args, or #t if there's no value yet.  Using a
true value allows the comparison to continue without committing to a particular
value for those args.  The actual value is determined when the original call
with those args finishes.

3 years agoFix bug #63166.
Chris Hanson [Thu, 13 Oct 2022 09:25:06 +0000 (02:25 -0700)]
Fix bug #63166.

HTTP client now only accepts the "http" scheme and rejects others.

3 years agoChange os-name to be from uname.
Chris Hanson [Thu, 22 Sep 2022 19:52:13 +0000 (12:52 -0700)]
Change os-name to be from uname.

This is because os-version is the kernel version, not the operating-system
version.

3 years agoImplement SRFI 162.
Chris Hanson [Wed, 21 Sep 2022 07:01:28 +0000 (00:01 -0700)]
Implement SRFI 162.

3 years agoImplement SRFI 112.
Chris Hanson [Wed, 21 Sep 2022 06:03:33 +0000 (23:03 -0700)]
Implement SRFI 112.

3 years agoFix handling of environ so that it works on older systems.
Chris Hanson [Mon, 19 Sep 2022 02:06:43 +0000 (19:06 -0700)]
Fix handling of environ so that it works on older systems.

3 years agoAdd missing boolean-valued predicate.
Chris Hanson [Mon, 19 Sep 2022 00:27:30 +0000 (17:27 -0700)]
Add missing boolean-valued predicate.

3 years agoAdd two SRFIs that are fully supported.
Chris Hanson [Sun, 18 Sep 2022 06:07:41 +0000 (23:07 -0700)]
Add two SRFIs that are fully supported.

3 years agoImplement remainder of SRFI 158 and add tests.
Chris Hanson [Sat, 17 Sep 2022 07:06:56 +0000 (00:06 -0700)]
Implement remainder of SRFI 158 and add tests.

3 years agoProvide uniform mechanism to for environment names.
Chris Hanson [Sun, 11 Sep 2022 06:10:46 +0000 (23:10 -0700)]
Provide uniform mechanism to for environment names.

Previously we called environment->package and used the name of the returned
package, if any.  Now there is environment-name and some other procedures that
get the name, whether it's a package or a library.

3 years agoFix typo.
Chris Hanson [Sun, 11 Sep 2022 06:09:17 +0000 (23:09 -0700)]
Fix typo.

3 years agoEliminate win32 support from runtime and a few other places.
Chris Hanson [Sun, 11 Sep 2022 01:30:37 +0000 (18:30 -0700)]
Eliminate win32 support from runtime and a few other places.

3 years agoEliminate win32 references from reference manual.
Chris Hanson [Sun, 11 Sep 2022 01:01:53 +0000 (18:01 -0700)]
Eliminate win32 references from reference manual.

3 years agoRemove note about datum labels being unsupported.
Chris Hanson [Sun, 11 Sep 2022 01:01:40 +0000 (18:01 -0700)]
Remove note about datum labels being unsupported.

3 years agoUpdate configure.ac to eliminate deprecated macros.
Chris Hanson [Sun, 11 Sep 2022 00:27:16 +0000 (17:27 -0700)]
Update configure.ac to eliminate deprecated macros.

3 years agoAdd bootstrap file to set up config files.
Chris Hanson [Sun, 11 Sep 2022 00:23:00 +0000 (17:23 -0700)]
Add bootstrap file to set up config files.

3 years agoFix thinko: parameter-converter in infinite loop for forwarding parameter.
Chris Hanson [Sat, 10 Sep 2022 05:19:17 +0000 (22:19 -0700)]
Fix thinko: parameter-converter in infinite loop for forwarding parameter.

This was probably not noticed because it was never called and not documented.

3 years agoFix bug #62580.
Chris Hanson [Sat, 10 Sep 2022 04:56:21 +0000 (21:56 -0700)]
Fix bug #62580.

Really two bugs: (1) mistakenly turning the HTTP method into a symbol; and (2)
calling encapsulate-uri with the wrong number of arguments.

3 years agoAllow multiple programs to be registered in a library DB.
Chris Hanson [Thu, 8 Sep 2022 07:56:02 +0000 (00:56 -0700)]
Allow multiple programs to be registered in a library DB.

Previously, a program was registered using its name -- #f -- which meant that
registering a second program would replace the first.  Now, a unique key is
created for each program, and it is registered with that key.

3 years agoEliminate use of nonstandard #\u+ in favor of standard #\x.
Chris Hanson [Wed, 7 Sep 2022 06:26:47 +0000 (23:26 -0700)]
Eliminate use of nonstandard #\u+ in favor of standard #\x.

3 years agoUpdate copyright dates.
Chris Hanson [Wed, 7 Sep 2022 06:01:33 +0000 (23:01 -0700)]
Update copyright dates.

3 years agoEliminate superfluous compiler warnings for case-lambda expansion.
Chris Hanson [Tue, 6 Sep 2022 08:47:51 +0000 (01:47 -0700)]
Eliminate superfluous compiler warnings for case-lambda expansion.

3 years agoFix bug #62614.
Chris Hanson [Tue, 6 Sep 2022 02:00:26 +0000 (19:00 -0700)]
Fix bug #62614.

3 years agoFix bug #62707.
Chris Hanson [Tue, 6 Sep 2022 01:55:55 +0000 (18:55 -0700)]
Fix bug #62707.

3 years agoFix bug #62836.
Chris Hanson [Tue, 6 Sep 2022 01:28:36 +0000 (18:28 -0700)]
Fix bug #62836.

3 years agoFix bug #62582.
Chris Hanson [Mon, 5 Sep 2022 09:04:01 +0000 (02:04 -0700)]
Fix bug #62582.

3 years agoFix bug #62581.
Chris Hanson [Mon, 5 Sep 2022 08:48:41 +0000 (01:48 -0700)]
Fix bug #62581.

3 years agoFix parsing error when reading RFC 2822 headers.
Chris Hanson [Thu, 1 Sep 2022 06:16:45 +0000 (23:16 -0700)]
Fix parsing error when reading RFC 2822 headers.

3 years agoProperly handle HTTP URLs without a path.
Chris Hanson [Thu, 1 Sep 2022 06:04:29 +0000 (23:04 -0700)]
Properly handle HTTP URLs without a path.

For example, "http://google.com" should be treated as though it were
"http://google.com/".

3 years agoFix typo.
Chris Hanson [Thu, 1 Sep 2022 05:12:50 +0000 (22:12 -0700)]
Fix typo.

3 years agoA bunch of changes to get things to config/compile on Ubuntu 22.04 LTS.
Chris Hanson [Sun, 7 Aug 2022 04:49:58 +0000 (21:49 -0700)]
A bunch of changes to get things to config/compile on Ubuntu 22.04 LTS.

Many of these changes were due to autoconf 2.71, which has obsoleted a bunch of
the macros we were using, and whose advice has considerably changed as to what
macros are needed for reasonably modern systems.

The rest are changes to the C files that were affected by the autoconf changes.

3 years agomicrocode: Tweak for musl libc.
Taylor R Campbell [Thu, 14 Jul 2022 20:55:02 +0000 (20:55 +0000)]
microcode: Tweak for musl libc.

3 years agorelnotes: Add release note about microcode stack traces.
Taylor R Campbell [Fri, 10 Jun 2022 15:11:42 +0000 (15:11 +0000)]
relnotes: Add release note about microcode stack traces.

3 years agortlgen: Simplify generate/continuation.
Taylor R Campbell [Fri, 22 Apr 2022 09:11:29 +0000 (09:11 +0000)]
rtlgen: Simplify generate/continuation.

No functional change intended, except that this might be a little
faster because it uses one fewer temporary register for many
continuations.

3 years agoAdd test for predicate continuation with dynamic link.
Taylor R Campbell [Sat, 14 May 2022 14:24:31 +0000 (14:24 +0000)]
Add test for predicate continuation with dynamic link.

3 years agortlgen: Always copy register:value to temp in continuation.
Taylor R Campbell [Fri, 22 Apr 2022 08:49:23 +0000 (08:49 +0000)]
rtlgen: Always copy register:value to temp in continuation.

This is necessary because register:value may be a machine register
available for allocation as a machine temporary (as on x86 where it
is rax).

I had found most (if not all) other cases where register:value needed
to be stashed in a pseudo temporary in a continuation, but I missed
this one: if the continuation is a predicate continuation that first
restores a dynamic link, the code to restore the dynamic link would
ask for a temporary register that might (and did) turn out to be the
same as register:value.  Example:

(define (rexists pred thing)
  (let tlp ((thing thing))
    (pp thing)
    (cond ((pred thing) #t)
          ((vector? thing)
           (pp 'here)
           (let ((n (vector-length thing)))
     (let lp ((i 0))
       (cond ((fix:= i n) #f)
     ((tlp (vector-ref thing i))        ; (*)
                      (pp 'there)
                      #t)
     (else (lp (fix:+ i 1)))))))
          ((list? thing)
           (any tlp thing))
          (else #f))))

The predicate continuation marked (*) had the following code
generated for it (rax is (r 0), where return value lives on entry):

continuation-11:
;; (assign (register #x2d) (post-increment (register 4) 1))
(pop q (r 0))
;; (assign (register #x2e) (object->address (register #x2d)))
(and q (r 0) (r 5))
;; (assign (offset (register 6) (machine-constant 4)) (register #x2e))
(mov q (@ro 6 #x20) (r 0))
;; (eq-test (register 0) (constant #f))
(cmp q (r 0) (&u 0))
(jne (@pcr label-42))

This clobbers rax to restore the dynamic link, so the comparison at
the end compares compares the dynamic link, not the return value as
intended, to #f.

3 years agoTest get-environment-variables.
Taylor R Campbell [Sat, 14 May 2022 14:05:00 +0000 (14:05 +0000)]
Test get-environment-variables.

Based on test added in the release-11 branch, without the detour
through an expected error to test for a bug on that branch.

3 years agoDelete trailing whitespace.
Chris Hanson [Sat, 26 Feb 2022 04:27:31 +0000 (20:27 -0800)]
Delete trailing whitespace.

4 years agomicrocode/macosx-starter: Use fork, not vfork.
Taylor R Campbell [Tue, 28 Dec 2021 12:16:28 +0000 (12:16 +0000)]
microcode/macosx-starter: Use fork, not vfork.

I don't think this utility is remotely performance-sensitive, but if
it is we could switch to posix_spawn instead.

4 years agomicrocode: Fix bug in writing ucode stack traces to file.
Taylor R Campbell [Tue, 28 Dec 2021 12:04:58 +0000 (12:04 +0000)]
microcode: Fix bug in writing ucode stack traces to file.

In the v15 microcode merge, the type-abuse of casting a FILE * to
outf_channel was dropped, and thus so was the `C-c t' function's file
output at the console.

Do this is a slightly less abusive way that works with modern C and
modern platforms where enums are not necessarily wide enough, or
allowed by the semantics, to hold pointers.

4 years agoAdd make-arity-dispatched-procedure to dependencies for case-lambda.
Chris Hanson [Sun, 12 Dec 2021 04:56:28 +0000 (20:56 -0800)]
Add make-arity-dispatched-procedure to dependencies for case-lambda.

4 years agoAdd tests for private exports.
Chris Hanson [Sun, 28 Nov 2021 08:26:32 +0000 (00:26 -0800)]
Add tests for private exports.

4 years agoFix typo discovered by testing.
Chris Hanson [Sun, 28 Nov 2021 08:26:03 +0000 (00:26 -0800)]
Fix typo discovered by testing.

4 years agoProvide lset-adjoin!.
Chris Hanson [Sun, 28 Nov 2021 00:47:17 +0000 (16:47 -0800)]
Provide lset-adjoin!.

4 years agoFix whitespace.
Chris Hanson [Sun, 28 Nov 2021 00:47:06 +0000 (16:47 -0800)]
Fix whitespace.

4 years agoFix library bugs for existing test cases.
Chris Hanson [Mon, 15 Nov 2021 07:01:01 +0000 (23:01 -0800)]
Fix library bugs for existing test cases.

It remains to write tests that exercise the new functionality.

4 years agoFix compilation errors.
Chris Hanson [Mon, 15 Nov 2021 02:21:26 +0000 (18:21 -0800)]
Fix compilation errors.

4 years agoFirst draft of private exports.
Chris Hanson [Sun, 14 Nov 2021 10:14:07 +0000 (02:14 -0800)]
First draft of private exports.

4 years agoFix strip-syntactic-closures so it handles circularity.
Chris Hanson [Fri, 5 Nov 2021 06:18:46 +0000 (23:18 -0700)]
Fix strip-syntactic-closures so it handles circularity.

4 years agoRewrite datum label reading to support cyclical references.
Chris Hanson [Fri, 5 Nov 2021 06:02:38 +0000 (23:02 -0700)]
Rewrite datum label reading to support cyclical references.

This works fine in tests, but can't yet be used at the REPL.  For example,
evaluating

     '(a #1=(b . #1#))

goes into an infinite loop.  This is because the quote syntax calls
strip-syntactic-closures, which doesn't handle circularity right.  I'll rewrite
that soon.

4 years agoAdd tests for change to reading dot.
Chris Hanson [Fri, 5 Nov 2021 04:46:50 +0000 (21:46 -0700)]
Add tests for change to reading dot.

4 years agoFix handling of dot token in reader.
Chris Hanson [Mon, 1 Nov 2021 06:17:02 +0000 (23:17 -0700)]
Fix handling of dot token in reader.

The reader was allowing the dot token to appear in places where it is illegal.
For example, it could be used in vectors, where it was treated as a symbol,
which is explicitly forbidden by R7RS.

I changed the reader to never convert the dot token to a symbol, and to only be
allowed in the list-parsing context.  This revealed that there was an instance
of a quoted dot in another file, which again is forbidden.

This change may break any code that depends on dot being a symbol.

4 years agoSRFI 219 is supported.
Chris Hanson [Sun, 31 Oct 2021 23:29:46 +0000 (16:29 -0700)]
SRFI 219 is supported.

4 years agoFix #N= and #N# so that N is composed of ASCII digits.
Chris Hanson [Sun, 31 Oct 2021 23:21:58 +0000 (16:21 -0700)]
Fix #N= and #N# so that N is composed of ASCII digits.

4 years agoedwin/sendmail: Don't abbreviate away content-type if not US-ASCII.
Taylor R Campbell [Mon, 25 Oct 2021 23:03:48 +0000 (23:03 +0000)]
edwin/sendmail: Don't abbreviate away content-type if not US-ASCII.

`Content-type: text/plain; charset=utf-8' is not optional.

Fixes a bug I introduced over 12 years ago in a fat-fingered cvs
commit with a message about an unrelated change.

4 years agomicrocode: Make definition for chacha_core match declaration.
Taylor R Campbell [Fri, 7 May 2021 16:02:08 +0000 (16:02 +0000)]
microcode: Make definition for chacha_core match declaration.

Makes no semantic difference but some compilers object now.

4 years agoFix wastefulness in grapheme/word breaks.
Chris Hanson [Mon, 12 Apr 2021 05:03:47 +0000 (22:03 -0700)]
Fix wastefulness in grapheme/word breaks.

The solution has two parts: the first part is to generate the transitions at a
finer grain and using hash consing for new states.  The second part is to
optimize the resulting diagram by collapsing identical states, which are an
unfortunate side effect of the first part.

The end result is a much smaller diagram, in which there is never more than one
speculative branch introduced for any input code.  I haven't measured the
performance, but this can't help but be faster just on the basis of the amount
of data being manipulated.  Now that we have a limit on the speculative
branches, it should be possible to optimize the NFA further by supporting at
most two branches rather than a list of them.

4 years agoSimplify interface to grapheme/word breaks.
Chris Hanson [Sat, 10 Apr 2021 22:34:28 +0000 (15:34 -0700)]
Simplify interface to grapheme/word breaks.

Don't assume that breaks are generated incrementally, and take advantage of all
the breaks being returned in a list.

4 years agoImplement grapheme/word-break changes for UCD 13.
Chris Hanson [Tue, 16 Mar 2021 05:05:25 +0000 (22:05 -0700)]
Implement grapheme/word-break changes for UCD 13.

This is a complete reimplementation of the segmentation code, since the old
model wasn't able to cope with the recent changes.  There are a couple of
problems remaining:

1. The evolver interface was designed to do incremental generation of breaks.
The new design doesn't permit that, since it implements an NFA with speculative
branches.  It could be changed to do the breaks in batches when speculations
collapse into certainties, but it is certainly simpler to accept all the breaks
at once.

2. The speculative branches are somewhat wasteful: many of them have identical
prefixes, which means we're updating several branches in parallel rather than
having a shared prefix and splitting branches only when necessary.  I'm working
on an optimization that will take care of this.

4 years agoUpdate UCD tables to Unicode 13.0.0.
Chris Hanson [Tue, 16 Mar 2021 05:03:37 +0000 (22:03 -0700)]
Update UCD tables to Unicode 13.0.0.

This is not yet complete: there are issues with the new grapheme/word break code
that I'm still working on.

4 years agoHandle number specially in string*.
Chris Hanson [Fri, 9 Apr 2021 06:51:43 +0000 (23:51 -0700)]
Handle number specially in string*.

This matters because we want to use numbers early enough in the cold load that
string ports aren't available yet.

4 years agoWhen setting REPL env, don't push old env on stack.
Chris Hanson [Thu, 18 Mar 2021 05:27:48 +0000 (22:27 -0700)]
When setting REPL env, don't push old env on stack.

4 years agoChange several procedures to comply with R7RS.
Chris Hanson [Tue, 16 Mar 2021 05:05:02 +0000 (22:05 -0700)]
Change several procedures to comply with R7RS.

In particular:

* Change map and vector-map to avoid mutating previously returned results when
  there are multiple returns.

* Change list-copy to accept improper lists.

* Change vector-map and vector-for-each to stop on the shortest argument list.

4 years agoUpdate reference manual to match R7RS for {,vector-}{map,for-each}.
Chris Hanson [Tue, 16 Mar 2021 04:58:16 +0000 (21:58 -0700)]
Update reference manual to match R7RS for {,vector-}{map,for-each}.

4 years agoWrite program to convert grapheme/word break test data.
Chris Hanson [Wed, 10 Mar 2021 07:14:07 +0000 (23:14 -0800)]
Write program to convert grapheme/word break test data.

Also update the tests for Unicode 10.0.0.

4 years agoMove prop files from ucd-9 to ucd-9/raw-props.
Chris Hanson [Wed, 10 Mar 2021 07:12:59 +0000 (23:12 -0800)]
Move prop files from ucd-9 to ucd-9/raw-props.

4 years agoUpdate runtime system to Unicode 10.0.0.
Chris Hanson [Sun, 7 Mar 2021 23:07:56 +0000 (15:07 -0800)]
Update runtime system to Unicode 10.0.0.

4 years agoUpdate to work with recent Scheme versions and prepare for newer UCD.
Chris Hanson [Sat, 6 Mar 2021 23:16:34 +0000 (15:16 -0800)]
Update to work with recent Scheme versions and prepare for newer UCD.

Also simplify the process a little, support version-specific output
directories, and add converter for normalization test data.

4 years agoMove ucd-raw-props into a version-specific directory.
Chris Hanson [Sat, 6 Mar 2021 21:54:20 +0000 (13:54 -0800)]
Move ucd-raw-props into a version-specific directory.

4 years agoAdd parameter to force printer to use ASCII.
Chris Hanson [Sat, 6 Mar 2021 21:49:44 +0000 (13:49 -0800)]
Add parameter to force printer to use ASCII.

This is needed for the UCD converter, when converting newer versions of UCD.
Otherwise the output could contain characters that can't be read by the host
Scheme reader, since they didn't exist in that version.