mit-scheme.git
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.

7 years agoAdd tests for bytevector output, and fix some bugs in write-bytevector.
Chris Hanson [Fri, 13 Jan 2017 08:51:13 +0000 (00:51 -0800)]
Add tests for bytevector output, and fix some bugs in write-bytevector.

7 years agoFix bug: get-output-bytevector must flush the buffer.
Chris Hanson [Fri, 13 Jan 2017 08:50:19 +0000 (00:50 -0800)]
Fix bug: get-output-bytevector must flush the buffer.

Actually this is kind of a bug: output to bytevectors shouldn't be buffered at
all.

7 years agoEliminate guarantee-X.
Chris Hanson [Fri, 13 Jan 2017 08:38:57 +0000 (00:38 -0800)]
Eliminate guarantee-X.

7 years agoFix bug: guarantee-X doesn't return a useful value when compiled with 9.2.
Chris Hanson [Fri, 13 Jan 2017 08:37:18 +0000 (00:37 -0800)]
Fix bug: guarantee-X doesn't return a useful value when compiled with 9.2.

7 years agoFix bug: guarantee-X doesn't return a useful value when compiled with 9.2.
Chris Hanson [Fri, 13 Jan 2017 00:30:36 +0000 (16:30 -0800)]
Fix bug: guarantee-X doesn't return a useful value when compiled with 9.2.

7 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Fri, 13 Jan 2017 00:18:23 +0000 (16:18 -0800)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme

7 years agoSuppress microcode error reports during tests.
Matt Birkholz [Thu, 12 Jan 2017 22:12:10 +0000 (15:12 -0700)]
Suppress microcode error reports during tests.

Many such reports clutter `make check's output when the mirocode was
built with --enable-debugging.

7 years agox11 plugin: Fix handling of property-notify events from unknown windows.
Matt Birkholz [Thu, 12 Jan 2017 22:09:54 +0000 (15:09 -0700)]
x11 plugin: Fix handling of property-notify events from unknown windows.

7 years agoFix name of channel operation in textual-input-port-channel.
Matt Birkholz [Thu, 12 Jan 2017 22:07:10 +0000 (15:07 -0700)]
Fix name of channel operation in textual-input-port-channel.

And textual-output-port-channel.

7 years agoFix other references to the old flonum-unparser-cutoff.
Matt Birkholz [Thu, 12 Jan 2017 22:05:14 +0000 (15:05 -0700)]
Fix other references to the old flonum-unparser-cutoff.

7 years agoEliminate unnecessary integrate-external declaration.
Chris Hanson [Thu, 12 Jan 2017 20:11:31 +0000 (12:11 -0800)]
Eliminate unnecessary integrate-external declaration.

7 years agoFix missed parameterization reference.
Chris Hanson [Thu, 12 Jan 2017 19:54:31 +0000 (11:54 -0800)]
Fix missed parameterization reference.

7 years agoEliminate use of read-substring! in favor of read-string!.
Chris Hanson [Thu, 12 Jan 2017 09:37:19 +0000 (01:37 -0800)]
Eliminate use of read-substring! in favor of read-string!.

7 years agoUpdate calls of read-string to read-delimited-string.
Chris Hanson [Thu, 12 Jan 2017 09:30:15 +0000 (01:30 -0800)]
Update calls of read-string to read-delimited-string.

7 years agoAnother round of I/O documentation changes.
Chris Hanson [Thu, 12 Jan 2017 09:23:12 +0000 (01:23 -0800)]
Another round of I/O documentation changes.

7 years agoAdd aliases for write-shared and write-simple.
Chris Hanson [Thu, 12 Jan 2017 09:02:33 +0000 (01:02 -0800)]
Add aliases for write-shared and write-simple.

This is in lieu of a correct implementation.

7 years agoChange read-string to match R7RS.
Chris Hanson [Thu, 12 Jan 2017 08:41:46 +0000 (00:41 -0800)]
Change read-string to match R7RS.

Rename previous definition to read-delimited-string.
Also tweak read-string! to have optional arguments like read-bytevector!.

7 years agoChange write-string to match R7RS.
Chris Hanson [Thu, 12 Jan 2017 08:25:44 +0000 (00:25 -0800)]
Change write-string to match R7RS.

7 years agoFix incorrect caller names.
Chris Hanson [Thu, 12 Jan 2017 08:19:47 +0000 (00:19 -0800)]
Fix incorrect caller names.

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