mit-scheme.git
7 years agoEliminate char->ascii and ascii->char, which were misnomers.
Chris Hanson [Sun, 29 Jan 2017 08:42:13 +0000 (00:42 -0800)]
Eliminate char->ascii and ascii->char, which were misnomers.

Change char-ascii? to be true only for 7-bit chars.  Also change char-ascii? to
return a boolean and implement ascii-char?.

7 years agoFix bug: would-block value only returned if nothing has been read.
Chris Hanson [Sun, 29 Jan 2017 06:00:21 +0000 (22:00 -0800)]
Fix bug: would-block value only returned if nothing has been read.

7 years agoSimplify logic for printing generic I/O ports.
Chris Hanson [Sun, 29 Jan 2017 04:26:35 +0000 (20:26 -0800)]
Simplify logic for printing generic I/O ports.

7 years agoUpgrade compound-predicate implementation with latest from book.
Chris Hanson [Sat, 28 Jan 2017 23:38:50 +0000 (15:38 -0800)]
Upgrade compound-predicate implementation with latest from book.

Also clean up the initialization sequence.

7 years agoMove tests from test-predicate-lattice -> test-compound-predicate.
Chris Hanson [Sat, 28 Jan 2017 22:36:55 +0000 (14:36 -0800)]
Move tests from test-predicate-lattice -> test-compound-predicate.

7 years agoEliminate use of obsolete get-if-available method.
Chris Hanson [Sat, 28 Jan 2017 11:20:29 +0000 (03:20 -0800)]
Eliminate use of obsolete get-if-available method.

7 years agoMove non-{top,bottom}-tag? to be near {top,bottom}-tag?.
Chris Hanson [Sat, 28 Jan 2017 11:19:45 +0000 (03:19 -0800)]
Move non-{top,bottom}-tag? to be near {top,bottom}-tag?.

7 years agoImplement simple-{list,lset}-memoizer to capture common pattern.
Chris Hanson [Sat, 28 Jan 2017 11:19:02 +0000 (03:19 -0800)]
Implement simple-{list,lset}-memoizer to capture common pattern.

7 years agoSome tests had undefined assertions; use new assertions instead.
Chris Hanson [Sat, 28 Jan 2017 11:18:09 +0000 (03:18 -0800)]
Some tests had undefined assertions; use new assertions instead.

7 years agoImprove the unit-testing framework in a few ways.
Chris Hanson [Sat, 28 Jan 2017 11:15:42 +0000 (03:15 -0800)]
Improve the unit-testing framework in a few ways.

* Simplified the creation of new assertions.
* Added ability to have templated failure messages.
* Made it easy to make negated assertions.
* Added a handful of new assertions.

7 years agoRename predicate constructor/accessor to tagger/untagger.
Chris Hanson [Sat, 28 Jan 2017 05:06:37 +0000 (21:06 -0800)]
Rename predicate constructor/accessor to tagger/untagger.

7 years agoFix regexp bug in previous change. Add run-time diagnostics.
Chris Hanson [Sat, 28 Jan 2017 04:46:57 +0000 (20:46 -0800)]
Fix regexp bug in previous change.  Add run-time diagnostics.

7 years agoNormalize .gitignore directory patterns.
Chris Hanson [Sat, 28 Jan 2017 04:36:30 +0000 (20:36 -0800)]
Normalize .gitignore directory patterns.

7 years agoFix up STAGE0 handling which failed to use the specified build.
Chris Hanson [Sat, 28 Jan 2017 02:21:48 +0000 (18:21 -0800)]
Fix up STAGE0 handling which failed to use the specified build.

Also add -n arg for testing and generalized n-stages arg.

7 years agoFix compiler crash on SVM with constant that doesn't fit in 32-bit signed.
Chris Hanson [Fri, 27 Jan 2017 21:51:10 +0000 (13:51 -0800)]
Fix compiler crash on SVM with constant that doesn't fit in 32-bit signed.

7 years agoSummarize test results at end of run.
Chris Hanson [Fri, 27 Jan 2017 20:58:56 +0000 (12:58 -0800)]
Summarize test results at end of run.

7 years agoDon't return legacy strings containing UTF-8.
Chris Hanson [Fri, 27 Jan 2017 20:58:39 +0000 (12:58 -0800)]
Don't return legacy strings containing UTF-8.

7 years agoDeprecate symbol-name.
Chris Hanson [Fri, 27 Jan 2017 20:25:05 +0000 (12:25 -0800)]
Deprecate symbol-name.

7 years agoFix bugs: fixnum sizes must be measured at runtime.
Chris Hanson [Fri, 27 Jan 2017 16:17:31 +0000 (08:17 -0800)]
Fix bugs: fixnum sizes must be measured at runtime.

Otherwise cross-compiling on a host that's wider than the target will not work.

7 years agoFix typo.
Chris Hanson [Fri, 27 Jan 2017 10:54:09 +0000 (02:54 -0800)]
Fix typo.

7 years agoMajor refactor to use ustring in important places.
Chris Hanson [Fri, 27 Jan 2017 10:31:37 +0000 (02:31 -0800)]
Major refactor to use ustring in important places.

There is much more work to do but this converts all the textual I/O, parser
buffers, pathnames, URIs, and a bunch of the XML code.  The older Unicode
support in (runtime unicode) is completely gone now.  Outside of Edwin, it
should be fairly safe to assume that legacy strings are *NOT* UTF-8 encoded.

Some specific work items remaining:

* Eliminate symbol-name, which violates the non-utf8-legacy rule.

* Finish converting the XML code to consistently use ustrings.

* Implement real Unicode casing, ordering, and character sets.

* Change the parser to use the R7RS-defined character classes.

* Isolate Edwin from the runtime system's string implementation, since porting
  it to Unicode is not worth the trouble.  It should be frozen to use only
  ASCII, not ISO 8859-1 as at present.

And last of all:

* Once Edwin is isolated, convert the runtime system to use ustrings everywhere,
  then rename them from "ustring" to "string".

7 years agoFix thinko.
Chris Hanson [Fri, 27 Jan 2017 07:09:16 +0000 (23:09 -0800)]
Fix thinko.

7 years agoChange string I/O to use ustrings.
Chris Hanson [Fri, 27 Jan 2017 06:34:23 +0000 (22:34 -0800)]
Change string I/O to use ustrings.

7 years agoConvert generic I/O to support ustring.
Chris Hanson [Fri, 27 Jan 2017 06:34:03 +0000 (22:34 -0800)]
Convert generic I/O to support ustring.

7 years agoImplement converters between utf8-string and ustring.
Chris Hanson [Fri, 27 Jan 2017 06:08:09 +0000 (22:08 -0800)]
Implement converters between utf8-string and ustring.

These are temporary: both utf8-string and wide-string are going to be
eliminated.  Until then, we need some scaffolding to incrementally rewrite code
that uses them.

7 years agoTweak to use bytevector.
Chris Hanson [Fri, 27 Jan 2017 05:53:07 +0000 (21:53 -0800)]
Tweak to use bytevector.

7 years agoTweak to use ustrings.
Chris Hanson [Fri, 27 Jan 2017 05:52:44 +0000 (21:52 -0800)]
Tweak to use ustrings.

7 years agoAdd unicode support to equal?.
Chris Hanson [Fri, 27 Jan 2017 04:36:36 +0000 (20:36 -0800)]
Add unicode support to equal?.

7 years agoChange printer to support unicode.
Chris Hanson [Fri, 27 Jan 2017 04:34:05 +0000 (20:34 -0800)]
Change printer to support unicode.

7 years agoA handful of tweaks.
Chris Hanson [Fri, 27 Jan 2017 04:26:05 +0000 (20:26 -0800)]
A handful of tweaks.

7 years agoChange string hash tables to support unicode strings.
Chris Hanson [Fri, 27 Jan 2017 03:44:32 +0000 (19:44 -0800)]
Change string hash tables to support unicode strings.

7 years agoMake sure that strings being passed to primitives are converted.
Chris Hanson [Fri, 27 Jan 2017 03:40:00 +0000 (19:40 -0800)]
Make sure that strings being passed to primitives are converted.

7 years agoChange pathname abstraction to use unicode strings.
Chris Hanson [Fri, 27 Jan 2017 01:55:57 +0000 (17:55 -0800)]
Change pathname abstraction to use unicode strings.

7 years agoAdd support for running fewer than three stages.
Chris Hanson [Fri, 27 Jan 2017 01:55:17 +0000 (17:55 -0800)]
Add support for running fewer than three stages.

7 years agoFix typo.
Chris Hanson [Fri, 27 Jan 2017 01:45:54 +0000 (17:45 -0800)]
Fix typo.

7 years agoEliminate large swath of unused exports from (runtime unicode) package.
Chris Hanson [Fri, 27 Jan 2017 01:23:49 +0000 (17:23 -0800)]
Eliminate large swath of unused exports from (runtime unicode) package.

7 years agoEliminate use of xstring in IMAIL.
Chris Hanson [Fri, 27 Jan 2017 01:00:18 +0000 (17:00 -0800)]
Eliminate use of xstring in IMAIL.

7 years agoEliminate use of xstring in Edwin.
Chris Hanson [Fri, 27 Jan 2017 00:53:37 +0000 (16:53 -0800)]
Eliminate use of xstring in Edwin.

7 years agoRefactor symbol implementation to use UTF-8 bytevectors for names.
Chris Hanson [Fri, 27 Jan 2017 00:30:33 +0000 (16:30 -0800)]
Refactor symbol implementation to use UTF-8 bytevectors for names.

Primitives handle this correctly since they accept either a legacy string or a
bytevector.  As long as no one peeks behind the abstraction this should be
transparent.

However, symbols with non-ASCII names will produce non-legacy strings when
asked.  AFAIK there are none currently in use.

7 years agoEliminate incorrect registration of legacy-string?.
Chris Hanson [Fri, 27 Jan 2017 00:30:13 +0000 (16:30 -0800)]
Eliminate incorrect registration of legacy-string?.

7 years agoChange bytevectors to use Unicode strings.
Chris Hanson [Thu, 26 Jan 2017 23:51:34 +0000 (15:51 -0800)]
Change bytevectors to use Unicode strings.

7 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Thu, 26 Jan 2017 23:45:25 +0000 (15:45 -0800)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme

7 years agoImplement a Unicode string abstraction.
Chris Hanson [Thu, 26 Jan 2017 23:44:58 +0000 (15:44 -0800)]
Implement a Unicode string abstraction.

7 years agoImplement a Unicode string abstraction.
Chris Hanson [Thu, 26 Jan 2017 23:41:51 +0000 (15:41 -0800)]
Implement a Unicode string abstraction.

7 years agoImplement char=-predicate and char-ci=-predicate.
Chris Hanson [Thu, 26 Jan 2017 23:37:57 +0000 (15:37 -0800)]
Implement char=-predicate and char-ci=-predicate.

7 years agoAdd "legacy" names for standard string operations.
Chris Hanson [Thu, 26 Jan 2017 23:30:13 +0000 (15:30 -0800)]
Add "legacy" names for standard string operations.

Also deprecate "vector-8b" names.

7 years agobytevectors: Implement bytevector-hash; fix a couple of bugs and simplify.
Chris Hanson [Thu, 26 Jan 2017 23:21:55 +0000 (15:21 -0800)]
bytevectors: Implement bytevector-hash; fix a couple of bugs and simplify.

7 years agoImplement fix:end-index and fix:start-index.
Chris Hanson [Thu, 26 Jan 2017 22:57:37 +0000 (14:57 -0800)]
Implement fix:end-index and fix:start-index.

7 years agoRevert "Initial draft of new string implementation."
Chris Hanson [Thu, 26 Jan 2017 22:16:02 +0000 (14:16 -0800)]
Revert "Initial draft of new string implementation."

This reverts commit aafeee81eea3921e043d0332314eb4e44da176fa.

7 years agoEliminate call to now-undefined simple-predicate?.
Chris Hanson [Thu, 26 Jan 2017 21:43:26 +0000 (13:43 -0800)]
Eliminate call to now-undefined simple-predicate?.

7 years agoFix thinko: caller argument in wrong place.
Chris Hanson [Wed, 25 Jan 2017 19:16:23 +0000 (11:16 -0800)]
Fix thinko: caller argument in wrong place.

7 years agoInitial draft of new string implementation.
Chris Hanson [Wed, 25 Jan 2017 08:40:54 +0000 (00:40 -0800)]
Initial draft of new string implementation.

7 years agoTweak pagination.
Chris Hanson [Wed, 25 Jan 2017 05:01:29 +0000 (21:01 -0800)]
Tweak pagination.

7 years agoCreate synchronize-output-port and make it generic over all output ports.
Chris Hanson [Wed, 25 Jan 2017 04:57:16 +0000 (20:57 -0800)]
Create synchronize-output-port and make it generic over all output ports.

7 years agoRestrict most genio exports. A couple of renames.
Chris Hanson [Wed, 25 Jan 2017 04:25:23 +0000 (20:25 -0800)]
Restrict most genio exports.  A couple of renames.

7 years agoPlumb genio to pass caller name down to operations.
Chris Hanson [Wed, 25 Jan 2017 03:54:51 +0000 (19:54 -0800)]
Plumb genio to pass caller name down to operations.

7 years agoMajor refactor of textual I/O ports.
Chris Hanson [Wed, 25 Jan 2017 03:15:03 +0000 (19:15 -0800)]
Major refactor of textual I/O ports.

New design uses a binary port to do actual I/O, so is mostly about coding.

7 years agoExport fix:iota.
Chris Hanson [Wed, 25 Jan 2017 03:14:07 +0000 (19:14 -0800)]
Export fix:iota.

7 years agoImplement fix:iota.
Chris Hanson [Tue, 24 Jan 2017 22:10:30 +0000 (14:10 -0800)]
Implement fix:iota.

7 years agoAdd comment for return value of write-bytevector.
Chris Hanson [Tue, 24 Jan 2017 21:19:40 +0000 (13:19 -0800)]
Add comment for return value of write-bytevector.

7 years agoRemove unused xstring-byte-* procedures.
Chris Hanson [Tue, 24 Jan 2017 20:37:30 +0000 (12:37 -0800)]
Remove unused xstring-byte-* procedures.

7 years agoFix broken indent.
Chris Hanson [Tue, 24 Jan 2017 16:58:23 +0000 (08:58 -0800)]
Fix broken indent.

7 years agoChange reload-save-string/reload-retrieve-string to preserve type.
Chris Hanson [Tue, 24 Jan 2017 16:57:38 +0000 (08:57 -0800)]
Change reload-save-string/reload-retrieve-string to preserve type.

7 years agoImplement find-map.
Chris Hanson [Mon, 23 Jan 2017 05:46:36 +0000 (21:46 -0800)]
Implement find-map.

7 years agoAllow undo in debugger detail buffers.
Chris Hanson [Mon, 23 Jan 2017 05:41:58 +0000 (21:41 -0800)]
Allow undo in debugger detail buffers.

7 years agoAdd new char tests to standard checks.
Chris Hanson [Fri, 20 Jan 2017 09:48:51 +0000 (01:48 -0800)]
Add new char tests to standard checks.

7 years agoImplement tests for characters, particularly UTF-8 codec.
Chris Hanson [Fri, 20 Jan 2017 09:46:10 +0000 (01:46 -0800)]
Implement tests for characters, particularly UTF-8 codec.

7 years agoAllow assert-error to be used without explicit error conditions.
Chris Hanson [Fri, 20 Jan 2017 09:45:51 +0000 (01:45 -0800)]
Allow assert-error to be used without explicit error conditions.

7 years agoImplement #\alarm and change #\u+00 to print as #\null.
Chris Hanson [Fri, 20 Jan 2017 09:44:58 +0000 (01:44 -0800)]
Implement #\alarm and change #\u+00 to print as #\null.

7 years agoMake binary ports work independent of their buffer size.
Chris Hanson [Thu, 19 Jan 2017 08:28:43 +0000 (00:28 -0800)]
Make binary ports work independent of their buffer size.

Although they require a minimum size of 1 so that single-byte ops work.  Also
re-jigger names in preparation for reusing the sources and sinks for textual
ports.

7 years agoImplement UTF-X codecs for chars and strings.
Chris Hanson [Wed, 18 Jan 2017 11:00:08 +0000 (03:00 -0800)]
Implement UTF-X codecs for chars and strings.

7 years agoImplement character encoders for UTF-16 and UTF-32.
Chris Hanson [Wed, 18 Jan 2017 07:47:10 +0000 (23:47 -0800)]
Implement character encoders for UTF-16 and UTF-32.

7 years agoRearrange to put new accessors prior to string converters.
Chris Hanson [Wed, 18 Jan 2017 07:31:33 +0000 (23:31 -0800)]
Rearrange to put new accessors prior to string converters.

7 years agoWrite tests for new u16 and u32 accessors.
Chris Hanson [Wed, 18 Jan 2017 07:30:33 +0000 (23:30 -0800)]
Write tests for new u16 and u32 accessors.

7 years agoImplement u16 and u32 accessors for bytevectors.
Chris Hanson [Wed, 18 Jan 2017 06:56:00 +0000 (22:56 -0800)]
Implement u16 and u32 accessors for bytevectors.

7 years agoMove fixnum-limit code into fixart and rename for consistency.
Chris Hanson [Wed, 18 Jan 2017 06:01:41 +0000 (22:01 -0800)]
Move fixnum-limit code into fixart and rename for consistency.

7 years agoGreatly restrict the exports from utabs.
Chris Hanson [Wed, 18 Jan 2017 05:50:21 +0000 (21:50 -0800)]
Greatly restrict the exports from utabs.

7 years agoA couple of other tweaks.
Chris Hanson [Wed, 18 Jan 2017 04:28:25 +0000 (20:28 -0800)]
A couple of other tweaks.

7 years agoReorder and re-paginate.
Chris Hanson [Wed, 18 Jan 2017 04:10:30 +0000 (20:10 -0800)]
Reorder and re-paginate.

7 years agoFix some pagination.
Chris Hanson [Wed, 18 Jan 2017 00:17:21 +0000 (16:17 -0800)]
Fix some pagination.

7 years agoEliminate simple-predicate?.
Chris Hanson [Wed, 18 Jan 2017 00:17:03 +0000 (16:17 -0800)]
Eliminate simple-predicate?.

7 years agoFix incorrect indentation.
Chris Hanson [Wed, 18 Jan 2017 00:11:44 +0000 (16:11 -0800)]
Fix incorrect indentation.

7 years agoImplement predicate-{element-{constructor,accessor},testing-strategy}.
Chris Hanson [Wed, 18 Jan 2017 00:03:58 +0000 (16:03 -0800)]
Implement predicate-{element-{constructor,accessor},testing-strategy}.

7 years agoChange environment argument to use ->environment.
Chris Hanson [Wed, 18 Jan 2017 00:01:50 +0000 (16:01 -0800)]
Change environment argument to use ->environment.

7 years agoRefactor predicate machinery to use tagging strategies.
Chris Hanson [Tue, 17 Jan 2017 22:29:34 +0000 (14:29 -0800)]
Refactor predicate machinery to use tagging strategies.

Also:
* Rename predicate-template-{instantiator,constructor}.
* Add optional caller args to predicate-template-constructor and
  predicate-template-accessor.

7 years agoFix another typo.
Chris Hanson [Tue, 17 Jan 2017 22:17:48 +0000 (14:17 -0800)]
Fix another typo.

7 years agoFix typo in previous change.
Chris Hanson [Tue, 17 Jan 2017 22:11:58 +0000 (14:11 -0800)]
Fix typo in previous change.

7 years agoChange register-predicate! to accept multiple '<= args.
Chris Hanson [Tue, 17 Jan 2017 21:19:18 +0000 (13:19 -0800)]
Change register-predicate! to accept multiple '<= args.

7 years agoImplement get-keyword-values.
Chris Hanson [Tue, 17 Jan 2017 21:16:18 +0000 (13:16 -0800)]
Implement get-keyword-values.

7 years agoImplement predicate-tagging strategies.
Chris Hanson [Tue, 17 Jan 2017 21:07:19 +0000 (13:07 -0800)]
Implement predicate-tagging strategies.

7 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Mon, 16 Jan 2017 09:52:19 +0000 (01:52 -0800)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme

7 years agoImplement real binary I/O to files.
Chris Hanson [Mon, 16 Jan 2017 09:51:52 +0000 (01:51 -0800)]
Implement real binary I/O to files.

7 years agoRename textual-port-property methods to port-property.
Chris Hanson [Mon, 16 Jan 2017 08:53:48 +0000 (00:53 -0800)]
Rename textual-port-property methods to port-property.

7 years agoGeneralize textual port operations to handle binary ports.
Chris Hanson [Mon, 16 Jan 2017 08:50:43 +0000 (00:50 -0800)]
Generalize textual port operations to handle binary ports.

7 years agoGeneralize metadata tables to support intern!.
Chris Hanson [Mon, 16 Jan 2017 08:22:43 +0000 (00:22 -0800)]
Generalize metadata tables to support intern!.

Also generalize the get method to accept an optional value.

7 years agoInitialize (runtime lambda-abstraction) before (runtime hash-table)
Matt Birkholz [Fri, 13 Jan 2017 20:51:46 +0000 (13:51 -0700)]
Initialize (runtime lambda-abstraction) before (runtime hash-table)

so that the latter can initialize in an interpreted system (at
cross-compile end).  Its initialization uses set-equality-predicate-
hasher! which calls guarantee with binary-procedure? which needs
&lambda-components when the given procedure is not compiled.

7 years agomicrocode/svm1-interp.c: typo
Matt Birkholz [Fri, 13 Jan 2017 20:14:28 +0000 (13:14 -0700)]
microcode/svm1-interp.c: typo

7 years agoRename all binary I/O procedures to "legacy".
Chris Hanson [Fri, 13 Jan 2017 20:11:00 +0000 (12:11 -0800)]
Rename all binary I/O procedures to "legacy".

7 years agoMark up runtime.pkg to identify a bunch of deprecated bindings.
Chris Hanson [Fri, 13 Jan 2017 09:42:42 +0000 (01:42 -0800)]
Mark up runtime.pkg to identify a bunch of deprecated bindings.

The majority of these are guarantee-FOO procedures that are now obsolete.

7 years agoEliminate use of deprecated guarantee-FOO-port procedures.
Chris Hanson [Fri, 13 Jan 2017 09:04:41 +0000 (01:04 -0800)]
Eliminate use of deprecated guarantee-FOO-port procedures.