mit-scheme.git
7 years agoClarify some details about the regsexp implementation.
Chris Hanson [Sat, 6 May 2017 20:55:07 +0000 (13:55 -0700)]
Clarify some details about the regsexp implementation.

7 years agoFix bug: incorrect assumption of mutability.
Chris Hanson [Sat, 6 May 2017 06:18:16 +0000 (23:18 -0700)]
Fix bug: incorrect assumption of mutability.

7 years agoDocument return values from binary write operations.
Chris Hanson [Sat, 6 May 2017 05:27:14 +0000 (22:27 -0700)]
Document return values from binary write operations.

Also add text about non-blocking mode.

7 years agoAdd examples of regsexp patterns.
Chris Hanson [Sat, 6 May 2017 05:04:15 +0000 (22:04 -0700)]
Add examples of regsexp patterns.

7 years agoChange regsexp {,inverse-}char-set to char-{,not-}in.
Chris Hanson [Sat, 6 May 2017 04:28:21 +0000 (21:28 -0700)]
Change regsexp {,inverse-}char-set to char-{,not-}in.

7 years agoRewrite the regular expression section for Unicode-safe implementation.
Chris Hanson [Fri, 5 May 2017 07:09:14 +0000 (00:09 -0700)]
Rewrite the regular expression section for Unicode-safe implementation.

Also a few small updates here and there.

7 years agoDocument named arguments to char-set and char-set*.
Chris Hanson [Fri, 5 May 2017 07:08:47 +0000 (00:08 -0700)]
Document named arguments to char-set and char-set*.

7 years agoFix typo.
Chris Hanson [Fri, 5 May 2017 07:07:35 +0000 (00:07 -0700)]
Fix typo.

7 years agoChange string-trimmer to use general char matcher like string-delimiter.
Chris Hanson [Fri, 5 May 2017 06:50:10 +0000 (23:50 -0700)]
Change string-trimmer to use general char matcher like string-delimiter.

7 years agoFix missed regexp in mime-codec.
Chris Hanson [Wed, 3 May 2017 08:03:24 +0000 (01:03 -0700)]
Fix missed regexp in mime-codec.

7 years agoChange pgsql to use regsexp.
Chris Hanson [Wed, 3 May 2017 07:57:21 +0000 (00:57 -0700)]
Change pgsql to use regsexp.

7 years agoUse named char-set for whitespace.
Chris Hanson [Wed, 3 May 2017 07:56:57 +0000 (00:56 -0700)]
Use named char-set for whitespace.

7 years agoAdd named character sets.
Chris Hanson [Wed, 3 May 2017 07:50:33 +0000 (00:50 -0700)]
Add named character sets.

7 years agoAdd case-insensitive matching.
Chris Hanson [Wed, 3 May 2017 07:50:04 +0000 (00:50 -0700)]
Add case-insensitive matching.

7 years agoChange mime-coded to use regsexp.
Chris Hanson [Wed, 3 May 2017 07:17:18 +0000 (00:17 -0700)]
Change mime-coded to use regsexp.

7 years agoChange regsexp value to have values of groups instead of indices.
Chris Hanson [Wed, 3 May 2017 07:13:56 +0000 (00:13 -0700)]
Change regsexp value to have values of groups instead of indices.

This does weird things when a group is inside a repeat, but that's a bad idea so
DON'T DO THAT!

7 years agoChange groups implementation to segregate started groups from ended groups.
Chris Hanson [Wed, 3 May 2017 06:25:41 +0000 (23:25 -0700)]
Change groups implementation to segregate started groups from ended groups.

7 years agoChange groups abstraction to use message-passing style.
Chris Hanson [Wed, 3 May 2017 06:00:27 +0000 (23:00 -0700)]
Change groups abstraction to use message-passing style.

7 years agoChange position abstraction to use message-passing style.
Chris Hanson [Wed, 3 May 2017 05:16:01 +0000 (22:16 -0700)]
Change position abstraction to use message-passing style.

7 years agoImplement regsexp string search.
Chris Hanson [Tue, 2 May 2017 06:08:04 +0000 (23:08 -0700)]
Implement regsexp string search.

Also change the return value of regsexp match from the end index to a pair of
the start and end indices.

Fix unit tests, which weren't testing anything due to the use of run-sub-test.

7 years agoExport nfc-string?.
Chris Hanson [Tue, 2 May 2017 05:41:05 +0000 (22:41 -0700)]
Export nfc-string?.

7 years agoChange char-syntax rules to emphasize that they are legacy rules.
Chris Hanson [Tue, 2 May 2017 04:08:40 +0000 (21:08 -0700)]
Change char-syntax rules to emphasize that they are legacy rules.

7 years agoFix typo in rule that broke i386 build.
Chris Hanson [Tue, 2 May 2017 04:04:23 +0000 (21:04 -0700)]
Fix typo in rule that broke i386 build.

7 years agoImplement converter from regexp patterns to regsexp forms.
Chris Hanson [Mon, 1 May 2017 06:09:24 +0000 (23:09 -0700)]
Implement converter from regexp patterns to regsexp forms.

7 years agoAdd source files for ISO 8859 mappings and move converter to src/etc/.
Chris Hanson [Mon, 1 May 2017 01:13:02 +0000 (18:13 -0700)]
Add source files for ISO 8859 mappings and move converter to src/etc/.

7 years agoHam-handed elimination of legacy strings from win32 package.
Chris Hanson [Sun, 30 Apr 2017 08:03:51 +0000 (01:03 -0700)]
Ham-handed elimination of legacy strings from win32 package.

This package is probably broken now, but it's not obvious to me how to fix it in
a way consistent with our data types.

7 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Sun, 30 Apr 2017 07:42:36 +0000 (00:42 -0700)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme

7 years agoEliminate last remnants of "octets" ports.
Chris Hanson [Sun, 30 Apr 2017 07:42:18 +0000 (00:42 -0700)]
Eliminate last remnants of "octets" ports.

7 years agoImplement string<->iso8859-1 converters.
Chris Hanson [Sun, 30 Apr 2017 07:23:14 +0000 (00:23 -0700)]
Implement string<->iso8859-1 converters.

7 years agoMinor cleanups to regexp code.
Chris Hanson [Sun, 30 Apr 2017 06:44:37 +0000 (23:44 -0700)]
Minor cleanups to regexp code.

7 years agoFix bugs in char-set->regexp rewrite.
Chris Hanson [Sun, 30 Apr 2017 06:44:01 +0000 (23:44 -0700)]
Fix bugs in char-set->regexp rewrite.

7 years agoAdd load-option to make sure regexp code is loaded for test.
Chris Hanson [Sun, 30 Apr 2017 06:42:09 +0000 (23:42 -0700)]
Add load-option to make sure regexp code is loaded for test.

7 years agoAllow option files to use boot-inits.
Chris Hanson [Sun, 30 Apr 2017 03:51:02 +0000 (20:51 -0700)]
Allow option files to use boot-inits.

7 years agoChange char-set->regexp to use string builder.
Chris Hanson [Sun, 30 Apr 2017 03:28:44 +0000 (20:28 -0700)]
Change char-set->regexp to use string builder.

7 years agoRewrite regexp compiler to use bytevectors. Also add test.
Chris Hanson [Sun, 30 Apr 2017 03:28:20 +0000 (20:28 -0700)]
Rewrite regexp compiler to use bytevectors.  Also add test.

7 years agoruntime/global (write-to-string): missing arg
Matt Birkholz [Sat, 29 Apr 2017 19:06:04 +0000 (12:06 -0700)]
runtime/global (write-to-string): missing arg

7 years agoEliminate legacy-string->bytevector call now primitive returns bytevector.
Chris Hanson [Sat, 29 Apr 2017 08:01:38 +0000 (01:01 -0700)]
Eliminate legacy-string->bytevector call now primitive returns bytevector.

7 years agoRefactor compressor/decompressor to use bytevectors and binary ports.
Chris Hanson [Sat, 29 Apr 2017 08:00:17 +0000 (01:00 -0700)]
Refactor compressor/decompressor to use bytevectors and binary ports.

7 years agoFix bug when calling {flush,synchronized}-output-port on a binary port.
Chris Hanson [Sat, 29 Apr 2017 07:59:20 +0000 (00:59 -0700)]
Fix bug when calling {flush,synchronized}-output-port on a binary port.

7 years agoRefactor host-adapter to detect the changes it needs to make.
Chris Hanson [Sat, 29 Apr 2017 04:12:14 +0000 (21:12 -0700)]
Refactor host-adapter to detect the changes it needs to make.

7 years agoMerge branch 'master' into sketch
Chris Hanson [Fri, 28 Apr 2017 07:10:35 +0000 (00:10 -0700)]
Merge branch 'master' into sketch

7 years agoRevert change to host-adapter that breaks self-build.
Chris Hanson [Fri, 28 Apr 2017 07:06:49 +0000 (00:06 -0700)]
Revert change to host-adapter that breaks self-build.

7 years agoRwrite to use bytevectors instead of strings.
Chris Hanson [Fri, 28 Apr 2017 06:35:10 +0000 (23:35 -0700)]
Rwrite to use bytevectors instead of strings.

7 years agoMove bytevector access macros into "object.h".
Chris Hanson [Fri, 28 Apr 2017 06:34:48 +0000 (23:34 -0700)]
Move bytevector access macros into "object.h".

7 years agoUpdate file encryption to work with binary or textual ports.
Chris Hanson [Fri, 28 Apr 2017 05:43:53 +0000 (22:43 -0700)]
Update file encryption to work with binary or textual ports.

7 years agoFix bug from recent change.
Chris Hanson [Fri, 28 Apr 2017 05:43:29 +0000 (22:43 -0700)]
Fix bug from recent change.

7 years agoFix typo in last change.
Chris Hanson [Fri, 28 Apr 2017 05:43:09 +0000 (22:43 -0700)]
Fix typo in last change.

7 years agoUse index procedures to simplify read-bytevector!.
Chris Hanson [Fri, 28 Apr 2017 05:42:43 +0000 (22:42 -0700)]
Use index procedures to simplify read-bytevector!.

7 years agoFix bug in textual->binary-port.
Chris Hanson [Fri, 28 Apr 2017 05:42:24 +0000 (22:42 -0700)]
Fix bug in textual->binary-port.

7 years agoChange crypto support to use bytevectors.
Chris Hanson [Fri, 28 Apr 2017 04:49:23 +0000 (21:49 -0700)]
Change crypto support to use bytevectors.

Interface changes:

* X-substring eliminated in favor of X-string with optional args.
* Hash codes are now bytevectors.
* Ports are assumed to be binary.

7 years agoBe more careful examining results of I/O operations.
Chris Hanson [Fri, 28 Apr 2017 04:48:43 +0000 (21:48 -0700)]
Be more careful examining results of I/O operations.

7 years agoImplement conversions between integers and bytevectors.
Chris Hanson [Fri, 28 Apr 2017 04:48:09 +0000 (21:48 -0700)]
Implement conversions between integers and bytevectors.

7 years agoChange blowfish support to use bytevectors.
Chris Hanson [Wed, 26 Apr 2017 07:35:00 +0000 (00:35 -0700)]
Change blowfish support to use bytevectors.

7 years agoImplement textual->binary-port.
Chris Hanson [Wed, 26 Apr 2017 07:34:32 +0000 (00:34 -0700)]
Implement textual->binary-port.

7 years agoImplement named char codecs.
Chris Hanson [Wed, 26 Apr 2017 07:34:04 +0000 (00:34 -0700)]
Implement named char codecs.

7 years agoTweak.
Chris Hanson [Wed, 26 Apr 2017 06:33:12 +0000 (23:33 -0700)]
Tweak.

7 years agoImplement bytevector I/O for XML.
Chris Hanson [Wed, 26 Apr 2017 05:52:53 +0000 (22:52 -0700)]
Implement bytevector I/O for XML.

7 years agoEliminate "output-octets" instance.
Chris Hanson [Wed, 26 Apr 2017 05:51:31 +0000 (22:51 -0700)]
Eliminate "output-octets" instance.

7 years agoApply rename.
Chris Hanson [Wed, 26 Apr 2017 05:51:11 +0000 (22:51 -0700)]
Apply rename.

7 years agoChange HTTP message body to be bytevector.
Chris Hanson [Wed, 26 Apr 2017 05:50:24 +0000 (22:50 -0700)]
Change HTTP message body to be bytevector.

7 years agoChange definition of content-md5 header to be a bytevector.
Chris Hanson [Wed, 26 Apr 2017 05:50:02 +0000 (22:50 -0700)]
Change definition of content-md5 header to be a bytevector.

7 years agoEliminate more low-hanging deprecations.
Chris Hanson [Wed, 26 Apr 2017 05:49:26 +0000 (22:49 -0700)]
Eliminate more low-hanging deprecations.

7 years agoImplement binary->textual-port.
Chris Hanson [Wed, 26 Apr 2017 05:46:22 +0000 (22:46 -0700)]
Implement binary->textual-port.

Also change make-generic-i/o-port to take a binary port as argument.

7 years agoImplement accessors for binary-port source/sink.
Chris Hanson [Wed, 26 Apr 2017 05:44:46 +0000 (22:44 -0700)]
Implement accessors for binary-port source/sink.

7 years agoFix typo.
Chris Hanson [Wed, 26 Apr 2017 05:06:25 +0000 (22:06 -0700)]
Fix typo.

7 years agoMore fun (less morbid) Latin valedictions.
Matt Birkholz [Wed, 26 Apr 2017 01:38:51 +0000 (18:38 -0700)]
More fun (less morbid) Latin valedictions.

7 years agomicrocode/uxsig.c: Handle SIGTERM, SIGQUIT and SIGHUP as if a C-g.
Matt Birkholz [Tue, 25 Apr 2017 21:16:06 +0000 (14:16 -0700)]
microcode/uxsig.c: Handle SIGTERM, SIGQUIT and SIGHUP as if a C-g.

Thus Scheme has a chance to clean up after a `kill %mit-scheme` or
disconnect.

7 years agoruntime/load (standard-library-directory-pathname): Simplify.
Matt Birkholz [Tue, 25 Apr 2017 21:10:56 +0000 (14:10 -0700)]
runtime/load (standard-library-directory-pathname): Simplify.

Just use the last directory in the path.  When microcode modules go
away, so will the lib/ subdirectory that previously distinguished the
"standard" options' directory.

7 years agoAdd option-loaded?.
Matt Birkholz [Tue, 25 Apr 2017 23:55:13 +0000 (16:55 -0700)]
Add option-loaded?.

7 years agoAdd with-temporary-file.
Matt Birkholz [Tue, 25 Apr 2017 21:03:38 +0000 (14:03 -0700)]
Add with-temporary-file.

This is basically call-with-temporary-file-pathname except it takes
the pathname and does not touch the file (allowing e.g. open-
exclusive-output-file to create it).  Also, optimize deallocate-
temporary-file for the case when the temporary file is already gone
(e.g. renamed into place).

7 years agocref/make.scm: Increment version for deprecated binding support.
Matt Birkholz [Tue, 25 Apr 2017 20:54:45 +0000 (13:54 -0700)]
cref/make.scm: Increment version for deprecated binding support.

7 years agoAdd close procedure before output bytevectors' custom stuff.
Matt Birkholz [Tue, 25 Apr 2017 23:36:09 +0000 (16:36 -0700)]
Add close procedure before output bytevectors' custom stuff.

7 years agoSet sign bit in DOUBLE-NEGATIVE-INFINITY-IS-INFINITE test.
Matt Birkholz [Tue, 25 Apr 2017 20:55:39 +0000 (13:55 -0700)]
Set sign bit in DOUBLE-NEGATIVE-INFINITY-IS-INFINITE test.

7 years agoffi: Restore casefulness of .cdecl files.
Matt Birkholz [Tue, 25 Apr 2017 21:01:30 +0000 (14:01 -0700)]
ffi: Restore casefulness of .cdecl files.

7 years agoruntime/host-adapter: Add string-foldcase. Train any 9.2 release.
Matt Birkholz [Tue, 25 Apr 2017 20:56:00 +0000 (13:56 -0700)]
runtime/host-adapter: Add string-foldcase.  Train any 9.2 release.

7 years agomicrocode/makegen/makegen.scm: Revert recent change.
Matt Birkholz [Tue, 25 Apr 2017 22:36:58 +0000 (15:36 -0700)]
microcode/makegen/makegen.scm: Revert recent change.

9.2 has a different write-string.  Use the deprecated write-substring
just a little longer.

7 years agoEliminate the low-hangin references to deprecated bindings.
Chris Hanson [Tue, 25 Apr 2017 06:26:29 +0000 (23:26 -0700)]
Eliminate the low-hangin references to deprecated bindings.

7 years agoFix usages of now-binary MIME codecs, by appropriate conversions.
Chris Hanson [Tue, 25 Apr 2017 03:56:02 +0000 (20:56 -0700)]
Fix usages of now-binary MIME codecs, by appropriate conversions.

7 years agoFix previous change to add close operation to non-channel sink.
Chris Hanson [Tue, 25 Apr 2017 03:55:15 +0000 (20:55 -0700)]
Fix previous change to add close operation to non-channel sink.

Also add support for sources.

7 years agoUpdate MIME codecs to use bytevectors rather than legacy strings.
Chris Hanson [Mon, 24 Apr 2017 07:23:47 +0000 (00:23 -0700)]
Update MIME codecs to use bytevectors rather than legacy strings.

**** NOTE ****
Although I modified the tests to pass, they don't test all the codecs.  Please
let me know if I broken something.

7 years agoAdd a "close" operation to non-channel output sinks.
Chris Hanson [Mon, 24 Apr 2017 07:23:22 +0000 (00:23 -0700)]
Add a "close" operation to non-channel output sinks.

7 years agoAdd test for bytevector-builder.
Chris Hanson [Mon, 24 Apr 2017 00:49:25 +0000 (17:49 -0700)]
Add test for bytevector-builder.

7 years agoRefactor make-sequence-builder and add vector-builder.
Chris Hanson [Mon, 24 Apr 2017 00:15:05 +0000 (17:15 -0700)]
Refactor make-sequence-builder and add vector-builder.

7 years agoTweak.
Chris Hanson [Mon, 24 Apr 2017 00:14:28 +0000 (17:14 -0700)]
Tweak.

7 years agoRewrite the strings chapter to account for immutability and normalization.
Chris Hanson [Sun, 23 Apr 2017 06:55:22 +0000 (23:55 -0700)]
Rewrite the strings chapter to account for immutability and normalization.

7 years agoCheck that string-find-X-index args are in NFC?
Chris Hanson [Sun, 23 Apr 2017 06:54:55 +0000 (23:54 -0700)]
Check that string-find-X-index args are in NFC?

7 years agoConvert string to NFC prior to hashing.
Chris Hanson [Sun, 23 Apr 2017 06:06:24 +0000 (23:06 -0700)]
Convert string to NFC prior to hashing.

7 years agoChange symbol->string and symbol-name to return immutable strings.
Chris Hanson [Sun, 23 Apr 2017 05:57:42 +0000 (22:57 -0700)]
Change symbol->string and symbol-name to return immutable strings.

7 years agoUpdate to reflect minor changes to string operations.
Chris Hanson [Sun, 23 Apr 2017 04:18:21 +0000 (21:18 -0700)]
Update to reflect minor changes to string operations.

Much more work is needed to recraft this chapter to cover immutability.

7 years agoExport mutable/immutable predicates.
Chris Hanson [Sun, 23 Apr 2017 04:18:04 +0000 (21:18 -0700)]
Export mutable/immutable predicates.

7 years agoIn substring, only return arg string if it's in NFC.
Chris Hanson [Sun, 23 Apr 2017 04:15:24 +0000 (21:15 -0700)]
In substring, only return arg string if it's in NFC.

7 years agoChange substring? to call string->nfc on its arguments.
Chris Hanson [Sun, 23 Apr 2017 04:12:59 +0000 (21:12 -0700)]
Change substring? to call string->nfc on its arguments.

7 years agoChange string-match and string-search to require NFC inputs.
Chris Hanson [Sun, 23 Apr 2017 04:08:26 +0000 (21:08 -0700)]
Change string-match and string-search to require NFC inputs.

This is because comparison requires that the strings be in the same
normalization form, and these procedures return indices into the strings.  We
can't normalize them after the call, because then the returned indices will
refer to strings that are potentially different from the arguments.

Since nearly all strings are in NFC by default this should not be a serious
drawback.

Additionally, the -ci versions of these procedures have been eliminated,
basically for the same reason.  If the caller needs that functionality they
should call string-foldcase themselves.

Note that this doesn't affect comparisons that don't return indices.

7 years agoChange default result of string-builder to be NFC.
Chris Hanson [Sun, 23 Apr 2017 03:41:11 +0000 (20:41 -0700)]
Change default result of string-builder to be NFC.

* Eliminate string-canonical-foldcase since string-foldcase now returns NFC.
* Don't return NFC strings from list->string and vector->string, instead return
  verbatim strings.

7 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme
Chris Hanson [Sun, 23 Apr 2017 03:01:15 +0000 (20:01 -0700)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mit-scheme

7 years agoRedefine substring as different from string-copy.
Chris Hanson [Sun, 23 Apr 2017 01:45:49 +0000 (18:45 -0700)]
Redefine substring as different from string-copy.

They are different in only one respect: string-copy always returns a mutable
string, while substring always returns an immutable string.

7 years agoConvert list->string, vector->string to use string-builder.
Chris Hanson [Sun, 23 Apr 2017 01:17:37 +0000 (18:17 -0700)]
Convert list->string, vector->string to use string-builder.

7 years agoFix call to string-builder that was missed.
Chris Hanson [Sun, 23 Apr 2017 01:14:39 +0000 (18:14 -0700)]
Fix call to string-builder that was missed.

7 years agoSimplify string, string*, string-append, string-append*.
Chris Hanson [Sun, 23 Apr 2017 00:54:10 +0000 (17:54 -0700)]
Simplify string, string*, string-append, string-append*.

7 years agoFix typo causing memory corruption.
Chris Hanson [Sun, 23 Apr 2017 00:53:53 +0000 (17:53 -0700)]
Fix typo causing memory corruption.