Chris Hanson [Sun, 29 Jan 2017 04:26:35 +0000 (20:26 -0800)]
Simplify logic for printing generic I/O ports.
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.
Chris Hanson [Sat, 28 Jan 2017 22:36:55 +0000 (14:36 -0800)]
Move tests from test-predicate-lattice -> test-compound-predicate.
Chris Hanson [Sat, 28 Jan 2017 11:20:29 +0000 (03:20 -0800)]
Eliminate use of obsolete get-if-available method.
Chris Hanson [Sat, 28 Jan 2017 11:19:45 +0000 (03:19 -0800)]
Move non-{top,bottom}-tag? to be near {top,bottom}-tag?.
Chris Hanson [Sat, 28 Jan 2017 11:19:02 +0000 (03:19 -0800)]
Implement simple-{list,lset}-memoizer to capture common pattern.
Chris Hanson [Sat, 28 Jan 2017 11:18:09 +0000 (03:18 -0800)]
Some tests had undefined assertions; use new assertions instead.
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.
Chris Hanson [Sat, 28 Jan 2017 05:06:37 +0000 (21:06 -0800)]
Rename predicate constructor/accessor to tagger/untagger.
Chris Hanson [Sat, 28 Jan 2017 04:46:57 +0000 (20:46 -0800)]
Fix regexp bug in previous change. Add run-time diagnostics.
Chris Hanson [Sat, 28 Jan 2017 04:36:30 +0000 (20:36 -0800)]
Normalize .gitignore directory patterns.
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.
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.
Chris Hanson [Fri, 27 Jan 2017 20:58:56 +0000 (12:58 -0800)]
Summarize test results at end of run.
Chris Hanson [Fri, 27 Jan 2017 20:58:39 +0000 (12:58 -0800)]
Don't return legacy strings containing UTF-8.
Chris Hanson [Fri, 27 Jan 2017 20:25:05 +0000 (12:25 -0800)]
Deprecate symbol-name.
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.
Chris Hanson [Fri, 27 Jan 2017 10:54:09 +0000 (02:54 -0800)]
Fix typo.
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".
Chris Hanson [Fri, 27 Jan 2017 07:09:16 +0000 (23:09 -0800)]
Fix thinko.
Chris Hanson [Fri, 27 Jan 2017 06:34:23 +0000 (22:34 -0800)]
Change string I/O to use ustrings.
Chris Hanson [Fri, 27 Jan 2017 06:34:03 +0000 (22:34 -0800)]
Convert generic I/O to support 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.
Chris Hanson [Fri, 27 Jan 2017 05:53:07 +0000 (21:53 -0800)]
Tweak to use bytevector.
Chris Hanson [Fri, 27 Jan 2017 05:52:44 +0000 (21:52 -0800)]
Tweak to use ustrings.
Chris Hanson [Fri, 27 Jan 2017 04:36:36 +0000 (20:36 -0800)]
Add unicode support to equal?.
Chris Hanson [Fri, 27 Jan 2017 04:34:05 +0000 (20:34 -0800)]
Change printer to support unicode.
Chris Hanson [Fri, 27 Jan 2017 04:26:05 +0000 (20:26 -0800)]
A handful of tweaks.
Chris Hanson [Fri, 27 Jan 2017 03:44:32 +0000 (19:44 -0800)]
Change string hash tables to support unicode strings.
Chris Hanson [Fri, 27 Jan 2017 03:40:00 +0000 (19:40 -0800)]
Make sure that strings being passed to primitives are converted.
Chris Hanson [Fri, 27 Jan 2017 01:55:57 +0000 (17:55 -0800)]
Change pathname abstraction to use unicode strings.
Chris Hanson [Fri, 27 Jan 2017 01:55:17 +0000 (17:55 -0800)]
Add support for running fewer than three stages.
Chris Hanson [Fri, 27 Jan 2017 01:45:54 +0000 (17:45 -0800)]
Fix typo.
Chris Hanson [Fri, 27 Jan 2017 01:23:49 +0000 (17:23 -0800)]
Eliminate large swath of unused exports from (runtime unicode) package.
Chris Hanson [Fri, 27 Jan 2017 01:00:18 +0000 (17:00 -0800)]
Eliminate use of xstring in IMAIL.
Chris Hanson [Fri, 27 Jan 2017 00:53:37 +0000 (16:53 -0800)]
Eliminate use of xstring in Edwin.
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.
Chris Hanson [Fri, 27 Jan 2017 00:30:13 +0000 (16:30 -0800)]
Eliminate incorrect registration of legacy-string?.
Chris Hanson [Thu, 26 Jan 2017 23:51:34 +0000 (15:51 -0800)]
Change bytevectors to use Unicode strings.
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
Chris Hanson [Thu, 26 Jan 2017 23:44:58 +0000 (15:44 -0800)]
Implement a Unicode string abstraction.
Chris Hanson [Thu, 26 Jan 2017 23:41:51 +0000 (15:41 -0800)]
Implement a Unicode string abstraction.
Chris Hanson [Thu, 26 Jan 2017 23:37:57 +0000 (15:37 -0800)]
Implement char=-predicate and char-ci=-predicate.
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.
Chris Hanson [Thu, 26 Jan 2017 23:21:55 +0000 (15:21 -0800)]
bytevectors: Implement bytevector-hash; fix a couple of bugs and simplify.
Chris Hanson [Thu, 26 Jan 2017 22:57:37 +0000 (14:57 -0800)]
Implement fix:end-index and fix:start-index.
Chris Hanson [Thu, 26 Jan 2017 22:16:02 +0000 (14:16 -0800)]
Revert "Initial draft of new string implementation."
This reverts commit
aafeee81eea3921e043d0332314eb4e44da176fa.
Chris Hanson [Thu, 26 Jan 2017 21:43:26 +0000 (13:43 -0800)]
Eliminate call to now-undefined simple-predicate?.
Chris Hanson [Wed, 25 Jan 2017 19:16:23 +0000 (11:16 -0800)]
Fix thinko: caller argument in wrong place.
Chris Hanson [Wed, 25 Jan 2017 08:40:54 +0000 (00:40 -0800)]
Initial draft of new string implementation.
Chris Hanson [Wed, 25 Jan 2017 05:01:29 +0000 (21:01 -0800)]
Tweak pagination.
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.
Chris Hanson [Wed, 25 Jan 2017 04:25:23 +0000 (20:25 -0800)]
Restrict most genio exports. A couple of renames.
Chris Hanson [Wed, 25 Jan 2017 03:54:51 +0000 (19:54 -0800)]
Plumb genio to pass caller name down to operations.
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.
Chris Hanson [Wed, 25 Jan 2017 03:14:07 +0000 (19:14 -0800)]
Export fix:iota.
Chris Hanson [Tue, 24 Jan 2017 22:10:30 +0000 (14:10 -0800)]
Implement fix:iota.
Chris Hanson [Tue, 24 Jan 2017 21:19:40 +0000 (13:19 -0800)]
Add comment for return value of write-bytevector.
Chris Hanson [Tue, 24 Jan 2017 20:37:30 +0000 (12:37 -0800)]
Remove unused xstring-byte-* procedures.
Chris Hanson [Tue, 24 Jan 2017 16:58:23 +0000 (08:58 -0800)]
Fix broken indent.
Chris Hanson [Tue, 24 Jan 2017 16:57:38 +0000 (08:57 -0800)]
Change reload-save-string/reload-retrieve-string to preserve type.
Chris Hanson [Mon, 23 Jan 2017 05:46:36 +0000 (21:46 -0800)]
Implement find-map.
Chris Hanson [Mon, 23 Jan 2017 05:41:58 +0000 (21:41 -0800)]
Allow undo in debugger detail buffers.
Chris Hanson [Fri, 20 Jan 2017 09:48:51 +0000 (01:48 -0800)]
Add new char tests to standard checks.
Chris Hanson [Fri, 20 Jan 2017 09:46:10 +0000 (01:46 -0800)]
Implement tests for characters, particularly UTF-8 codec.
Chris Hanson [Fri, 20 Jan 2017 09:45:51 +0000 (01:45 -0800)]
Allow assert-error to be used without explicit error conditions.
Chris Hanson [Fri, 20 Jan 2017 09:44:58 +0000 (01:44 -0800)]
Implement #\alarm and change #\u+00 to print as #\null.
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.
Chris Hanson [Wed, 18 Jan 2017 11:00:08 +0000 (03:00 -0800)]
Implement UTF-X codecs for chars and strings.
Chris Hanson [Wed, 18 Jan 2017 07:47:10 +0000 (23:47 -0800)]
Implement character encoders for UTF-16 and UTF-32.
Chris Hanson [Wed, 18 Jan 2017 07:31:33 +0000 (23:31 -0800)]
Rearrange to put new accessors prior to string converters.
Chris Hanson [Wed, 18 Jan 2017 07:30:33 +0000 (23:30 -0800)]
Write tests for new u16 and u32 accessors.
Chris Hanson [Wed, 18 Jan 2017 06:56:00 +0000 (22:56 -0800)]
Implement u16 and u32 accessors for bytevectors.
Chris Hanson [Wed, 18 Jan 2017 06:01:41 +0000 (22:01 -0800)]
Move fixnum-limit code into fixart and rename for consistency.
Chris Hanson [Wed, 18 Jan 2017 05:50:21 +0000 (21:50 -0800)]
Greatly restrict the exports from utabs.
Chris Hanson [Wed, 18 Jan 2017 04:28:25 +0000 (20:28 -0800)]
A couple of other tweaks.
Chris Hanson [Wed, 18 Jan 2017 04:10:30 +0000 (20:10 -0800)]
Reorder and re-paginate.
Chris Hanson [Wed, 18 Jan 2017 00:17:21 +0000 (16:17 -0800)]
Fix some pagination.
Chris Hanson [Wed, 18 Jan 2017 00:17:03 +0000 (16:17 -0800)]
Eliminate simple-predicate?.
Chris Hanson [Wed, 18 Jan 2017 00:11:44 +0000 (16:11 -0800)]
Fix incorrect indentation.
Chris Hanson [Wed, 18 Jan 2017 00:03:58 +0000 (16:03 -0800)]
Implement predicate-{element-{constructor,accessor},testing-strategy}.
Chris Hanson [Wed, 18 Jan 2017 00:01:50 +0000 (16:01 -0800)]
Change environment argument to use ->environment.
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.
Chris Hanson [Tue, 17 Jan 2017 22:17:48 +0000 (14:17 -0800)]
Fix another typo.
Chris Hanson [Tue, 17 Jan 2017 22:11:58 +0000 (14:11 -0800)]
Fix typo in previous change.
Chris Hanson [Tue, 17 Jan 2017 21:19:18 +0000 (13:19 -0800)]
Change register-predicate! to accept multiple '<= args.
Chris Hanson [Tue, 17 Jan 2017 21:16:18 +0000 (13:16 -0800)]
Implement get-keyword-values.
Chris Hanson [Tue, 17 Jan 2017 21:07:19 +0000 (13:07 -0800)]
Implement predicate-tagging strategies.
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
Chris Hanson [Mon, 16 Jan 2017 09:51:52 +0000 (01:51 -0800)]
Implement real binary I/O to files.
Chris Hanson [Mon, 16 Jan 2017 08:53:48 +0000 (00:53 -0800)]
Rename textual-port-property methods to port-property.
Chris Hanson [Mon, 16 Jan 2017 08:50:43 +0000 (00:50 -0800)]
Generalize textual port operations to handle binary ports.
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.
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.
Matt Birkholz [Fri, 13 Jan 2017 20:14:28 +0000 (13:14 -0700)]
microcode/svm1-interp.c: typo
Chris Hanson [Fri, 13 Jan 2017 20:11:00 +0000 (12:11 -0800)]
Rename all binary I/O procedures to "legacy".
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.
Chris Hanson [Fri, 13 Jan 2017 09:04:41 +0000 (01:04 -0800)]
Eliminate use of deprecated guarantee-FOO-port procedures.
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.
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.