Merge branch 'master' into pucked.
authorMatt Birkholz <matt@birchwood-abbey.net>
Thu, 18 May 2017 03:26:59 +0000 (20:26 -0700)
committerMatt Birkholz <matt@birchwood-abbey.net>
Thu, 18 May 2017 03:26:59 +0000 (20:26 -0700)
33 files changed:
1  2 
doc/Makefile.in
doc/ffi/ffi.texinfo
doc/make-common.in
doc/ref-manual/scheme.texinfo
doc/user-manual/user.texinfo
src/blowfish/Makefile.am
src/blowfish/NEWS
src/blowfish/blowfish.pkg
src/blowfish/make.scm
src/gdbm/Makefile.am
src/gdbm/NEWS
src/gdbm/gdbm.pkg
src/gdbm/make.scm
src/mcrypt/Makefile.am
src/mcrypt/NEWS
src/mcrypt/make.scm
src/mcrypt/mcrypt.pkg
src/mcrypt/mcrypt.scm
src/md5/Makefile.am
src/md5/NEWS
src/md5/make.scm
src/md5/md5.pkg
src/mhash/Makefile.am
src/mhash/NEWS
src/mhash/make.scm
src/mhash/mhash.pkg
src/mhash/mhash.scm
src/pgsql/pgsql.scm
src/runtime/runtime.pkg
src/x11-screen/Makefile.am
src/x11-screen/configure.ac
src/x11/Makefile.am
tests/check.scm

diff --cc doc/Makefile.in
Simple merge
Simple merge
Simple merge
Simple merge
index eef1a00710d2c3a96aac256f4f62d9a5a28aea76,3af2bc3bf14d5ae3e4206a8c0af83622a2096f85..7e5328b8d1ec303869f19f46d32653bf212f40e0
@@@ -108,22 -112,269 +108,263 @@@ list of user-visible changes is provide
  
  @cindex Web site
  The primary distribution site for this software is
 -
  @example
 -@uref{http://www.gnu.org/software/mit-scheme/}
 +@uref{http://birchwood-abbey.net/~matt/Scheme/}
  @end example
  
 -@noindent
 -Although our software is distributed from other sites and in other
 -media, the complete distribution and the most recent release is always
 -available at our site.
 -
  @cindex bugs, reporting
  @cindex reporting bugs
 -To report bugs, use the bug-reporting tool at
 +To report bugs, send email to
  
  @example
 -@uref{http://savannah.gnu.org/projects/mit-scheme/}
 +@uref{puck@@birchwood-abbey.net}
  @end example
  
 -@noindent
  Please include the output of the @code{identify-world} procedure
 -(@pxref{Basics of Starting Scheme}), so we know what version of the
 -system you are using.
 +(@pxref{Basics of Starting Scheme}), so Puck knows what versions you
 +are using.
  
+ @node Installation
+ @chapter Installation
+ This chapter describes how to install MIT/GNU Scheme.  The release is
+ supported under various unix and Windows operating systems.  Read the
+ section detailing the installation for the operating system that you are
+ using.
+ @menu
+ * Unix Installation::
+ * Windows Installation::
+ * Portable C Installation::
+ @end menu
+ @node Unix Installation
+ @section Unix Installation
+ We will use as an example the installation for GNU/Linux.  The
+ installation for other unix systems is similar.  There are several
+ references to @var{ARCH} below; these refer to the computer
+ architecture that Scheme is compiled for, either @samp{i386} or
+ @samp{x86-64}.
+ MIT/GNU Scheme is distributed as a compressed `tar' file.  The tar
+ file contains both source and binary files; the binary files are
+ pre-compiled Scheme code for a particular computer architecture.
+ In order to install the software, it's necessary to configure and
+ compile the C code, then to install the combined C and Scheme
+ binaries.  This is done in the following steps:
+ @enumerate
+ @item
+ Unpack the tar file,
+ @file{mit-scheme-@var{VERSION}-@var{ARCH}.tar.gz}, into the directory
+ @file{mit-scheme-@var{VERSION}}.  For example,
+ @example
+ tar xzf mit-scheme-@var{VERSION}-i386.tar.gz
+ @end example
+ will create a new directory @file{mit-scheme-@var{VERSION}}.
+ @item
+ Move into the @file{src} subdirectory of the new directory:
+ @example
+ cd mit-scheme-@var{VERSION}/src
+ @end example
+ @item
+ Configure the software:
+ @example
+ ./configure
+ @end example
+ By default, the software will be installed in @file{/usr/local}, in
+ the subdirectories @file{bin} and @file{lib}.  If you want it
+ installed somewhere else, for example @file{/opt/mit-scheme}, pass the
+ @option{--prefix} option to the configure script, as in
+ @kbd{./configure --prefix=/opt/mit-scheme}.
+ The configure script accepts all the normal arguments for such
+ scripts, and additionally accepts some that are specific to MIT/GNU
+ Scheme.  To see all the possible arguments and their meanings, run the
+ command @kbd{./configure --help}.
+ @item
+ Build the software:
+ @example
+ make compile-microcode
+ @end example
+ @item
+ Install the software:
+ @example
+ make install
+ @end example
+ Depending on configuration options and file-system permissions, you
+ may need super-user privileges to do the installation steps.
+ @item
+ Build the documentation:
+ @example
+ cd ../doc
+ ./configure
+ make
+ @end example
+ @item
+ Install the documentation:
+ @example
+ make install-info install-html install-pdf
+ @end example
+ Depending on configuration options and file-system permissions, you
+ may need super-user privileges to do the installation step.
+ @end enumerate
+ @emph{After} you have installed Scheme, you can install a few
+ dynamically loadable options.  These are configured, built and
+ installed in the customary way.  To install the @code{GDBM2} and
+ @code{MHASH} options:
+ @smallexample
+ (cd gdbm && make && make install)
+ (cd mhash && ./configure && make && make install)
+ @end smallexample
+ The @code{make install} command will attempt to create a subdirectory
+ in the first directory on the host Scheme's library path.  If that
+ directory is not writable by you, super-user privileges may be
+ required.
+ You can put a writable directory at the front of your host Scheme's
+ library path by setting the @code{MITSCHEME_LIBRARY_PATH} environment
+ variable
+ @smallexample
+ export MITSCHEME_LIBRARY_PATH=\
+       ~/mit-scheme-plugins:/usr/local/lib/mit-scheme-x86-64
+ @end smallexample
+ or including the @code{--library} option on the command line.
+ @smallexample
+ mit-scheme --library ~/mit-scheme-plugins:/usr/local/lib/mit-scheme-svm
+ @end smallexample
+ A few of the included options wrap popular Unix libraries.  To compile
+ and link them you often need ``developers' packages'' installed first.
+ The following table lists the included options and an example
+ developers' package name (and shared library name).  The package names
+ can vary quite a bit among Unix distributions; the library names less
+ so.  Please see the @file{README} file in each option's subdirectory
+ for more information.
+ @table @option
+ @item BLOWFISH
+ libssl-dev (-lcrypto)
+ @item GDBM2
+ libgdbm-dev (-lgdbm)
+ @item MD5
+ libssl-dev (-lcrypto)
+ @item MHASH
+ libmhash-dev (-lmhash)
+ @end table
+ After installing the software and any options, you can delete the
+ unpacked directory:
+ @example
+ cd ../..
+ rm -rf mit-scheme-@var{VERSION}
+ @end example
+ @node Windows Installation
+ @section Windows Installation
+ This section describes how to install MIT/GNU Scheme on Windows 2000,
+ Windows XP, Windows Vista, or Windows 7.
+ MIT/GNU Scheme is distributed as a self-installing executable.
+ Installation of the software is straightforward.  Simply execute the
+ downloaded file and answer the installer's questions.  The installer
+ will allow you to choose the directory in which MIT/GNU Scheme is
+ to be installed, and the name of the folder in which the shortcuts are
+ to be placed.
+ To uninstall the software, open up the @samp{Control Panel}, run
+ @samp{Add/Remove Programs}, and double-click on @samp{MIT/GNU Scheme}.
+ @node Portable C Installation
+ @section Portable C Installation
+ This section describes how to generate binaries from the portable C
+ distribution. These binaries should run with little or no trouble on most
+ modern architectures and operating systems.  It will probably require
+ tweaking for systems that haven't been tested.
+ When built this way, the system runs slower than when it is built
+ using the native-code compiler. For this reason, you will usually want
+ to use native-code binaries when running on a 32-bit Intel
+ architecture machine.  However, the portable-code binaries can address
+ larger amounts of virtual memory than the native-code binaries, so it
+ is reasonable (and supported) to use both kinds on the same machine.
+ @enumerate
+ @item
+ Unpack the tar file,
+ @file{mit-scheme-c-@var{VERSION}.tar.gz}, into the directory
+ @file{mit-scheme-c-@var{VERSION}}.  For example,
+ @example
+ tar xzf mit-scheme-c-@var{VERSION}.tar.gz
+ @end example
+ will create a new directory @file{mit-scheme-c-@var{VERSION}}.
+ @item
+ Move into the new directory:
+ @example
+ cd mit-scheme-c-@var{VERSION}/src
+ @end example
+ @item
+ Build the program:
+ @example
+ ./etc/make-liarc.sh
+ @end example
+ This will take a long time; on fairly fast machines with lots of RAM
+ it takes about an hour.  On older machines it will take longer or fail
+ altogether, at which point you should ask for help.  Note that you can
+ pass configure options to the script.
+ @example
+ ./etc/make-liarc.sh --help
+ ./etc/make-liarc.sh --prefix=/usr
+ @end example
+ @item
+ Install the program:
+ @example
+ make install
+ @end example
+ Depending on configuration options and file-system permissions, you
+ may need super-user privileges to do the installation step.
+ @end enumerate
++>>>>>>> 172084bf5a47158805fa0efb4bfb31569d784ec7
  @node Running Scheme
  @chapter Running Scheme
  
index 0d3643e05c29538124178c21dd3e96e13640760d,cc67d56f681173351fa454956b8154fcbbf13377..afedc8969ac578d65561207be3dffd8b1481635a
@@@ -42,10 -41,8 +42,8 @@@ binaries = @MIT_SCHEME_BCIs@ @MIT_SCHEM
  scmlib_sub_DATA = $(sources) $(binaries)
  scmlib_sub_DATA += make.scm @MIT_SCHEME_PKD@
  
 -#info_TEXINFOS = mit-scheme-blowfish.texi
 +#scminfo_DATA = blowfish.info
- #info_TEXINFOS = blowfish.texi
  #AM_MAKEINFOHTMLFLAGS = --no-split
- #AM_UPDATE_INFO_DIR = no
  
  AM_CPPFLAGS = -I@MIT_SCHEME_INCLUDEDIR@
  AM_CFLAGS = @MIT_CFLAGS@
index 4672e24af2529b26597830b712203d67e68dc45c,cd0ac9f2acbd820056c9528c23ae665d0e5823e8..ff0eac37728997d9dd569a0c817dd1a650c1c694
@@@ -26,19 -22,19 +26,19 @@@ along with MIT/GNU Scheme; if not, writ
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301, USA.
  
 -mit-scheme-blowfish 0.2 - Matt Birkholz, 2017-05-18
 -===================================================
 +mit-scheme-pucked-blowfish 0.2.1 - Matt Birkholz, 2017-03-18
 +============================================================
  
- * Changed *everything* except perhaps compute-blowfish-init-vector;
-   you weren't supposed to care whether the init vector was a string or
  soemthing else, like a bytevector.  Every procedure that previously
-   accepted/returned strings now requires/produces bytevectors.  If it
-   accepted/returned generic ports it now requires/produces binary
-   ports.  If you are using the md5 plugin to produce a digest for
-   blowfish-set-key, you're winning, with blowfish-set-key at least;
  the md5 plugin returns digests in bytevectors instead of strings.
+ Use byte vectors for binary data instead of strings.  This changes
+ every export except blowfish-file? and perhaps compute-blowfish-init-
vector IF you don't care whether the init vector is a string.  Every
+ procedure that previously accepted/returned strings now
+ requires/produces byte vectors.  If it accepted/returned generic ports
+ it now requires/produces binary ports.  If you are using the md5
+ plugin to produce a digest for blowfish-set-key, you're winning, with
blowfish-set-key at least; md5 digests are now byte vectors too.
  
 -mit-scheme-blowfish 0.1 - Matt Birkholz, 2016-02-19
 -===================================================
 +mit-scheme-pucked-blowfish 0.1.1 - Matt Birkholz, 2017-03-01
 +============================================================
  
- * Stolen from MIT/GNU Scheme.
 -Use libtool and automake.
++Stole v0.1 from MIT/GNU Scheme.
index a29afb5a46928735bd5ed38905023c82d416aa74,ea43a5647a1c7ff673aa234eb5abb1ab8833de25..aad20bcdc5be2dcff9abf1ec25cf0ba2bbd47668
@@@ -29,9 -29,8 +29,9 @@@ USA
  (define-package (blowfish)
    (files "blowfish")
    (parent ())
-   ;; (blowfish global) gets them just so that CREF will report any
-   ;; that go missing.
 +  ;; These are "exported" to (runtime blowfish) during load-option.
+   (export ()
+         import-blowfish)
    (export (blowfish global)
          blowfish-cbc
          blowfish-cfb64
index 80041e7313a9a02fe666209a1117d94542de21ea,7677b3de4813912cc0ddb042418d544864032578..361256f13d701c9cea843e5efd8c7d3a2b91e268
@@@ -6,21 -6,4 +6,21 @@@
    (lambda ()
      (load-package-set "blowfish")))
  
- (add-subsystem-identification! "Blowfish" '(0 1))
 -(add-subsystem-identification! "Blowfish" '(0 2))
++(add-subsystem-identification! "Blowfish" '(0 2 1))
 +
 +;; "Export" these to the (runtime blowfish) package bindings.
 +(let ((runtime (->environment '(runtime blowfish)))
 +      (blowfish (->environment '(blowfish))))
 +  (for-each
 +    (lambda (name)
 +       (environment-assign! runtime name (environment-lookup blowfish name)))
 +    '(blowfish-cbc
 +      blowfish-cfb64
 +      blowfish-ecb
 +      blowfish-encrypt-port
 +      blowfish-file?
 +      blowfish-ofb64
 +      blowfish-set-key
 +      compute-blowfish-init-vector
 +      read-blowfish-file-header
 +      write-blowfish-file-header)))
index bf4cc1d90cca3a73908f4c63a82217f6d6d92f05,a8625dd2c97fafb9b60df1f72dac5e786239e55e..f76720244c7a81bfd2a938bae2ab923cab5f37dd
@@@ -42,10 -41,8 +42,8 @@@ binaries = @MIT_SCHEME_BCIs@ @MIT_SCHEM
  scmlib_sub_DATA = $(sources) $(binaries)
  scmlib_sub_DATA += make.scm @MIT_SCHEME_PKD@
  
 -#info_TEXINFOS = mit-scheme-gdbm.texi
 +#scminfo_DATA = gdbm.info
- #info_TEXINFOS = gdbm.texi
  #AM_MAKEINFOHTMLFLAGS = --no-split
- #AM_UPDATE_INFO_DIR = no
  
  AM_CPPFLAGS = -I@MIT_SCHEME_INCLUDEDIR@
  AM_CFLAGS = @MIT_CFLAGS@
diff --cc src/gdbm/NEWS
index 1e2d24fed55196cd32699a48aea0be64affc9b6f,f0bb044533cab25bf83b8adb544125bcaa18f60b..536987846be6e9a0bce51d515df58feaa825e8d6
@@@ -26,14 -22,14 +26,14 @@@ along with MIT/GNU Scheme; if not, writ
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301, USA.
  
 -mit-scheme-gdbm 0.2 - Matt Birkholz, 2017-05-18
 -===============================================
 +mit-scheme-pucked-gdbm 0.2.1 - Matt Birkholz, 2017-03-18
 +========================================================
  
- * New upstream converts Unicode strings (keys and data) to UTF8
  bytevectors.  This assumes any other program adding keys or data is
  using the same encoding.
+ Use new Unicode support.  Convert non-ASCII strings (keys and data) to
UTF8.  This assumes any other program adding non-ASCII keys or data is
+ using the same encoding.
  
 -mit-scheme-gdbm 0.1 - Matt Birkholz, 2016-02-19
 -===============================================
 +mit-scheme-pucked-gdbm 0.1.1 - Matt Birkholz, 2017-03-01
 +========================================================
  
- * Stolen from MIT/GNU Scheme.
 -Use libtool and automake.
++* Stole v0.1 from MIT/GNU Scheme.
Simple merge
index c704d7a1990f188ecc26cc8d011ac0961cd4ca98,75f71ebbff929e008df029e2ef4e4f6923b7b13b..dad66097100ecc27951a624c61ab86ffcf7aec65
@@@ -6,4 -6,4 +6,4 @@@
    (lambda ()
      (load-package-set "gdbm")))
  
- (add-subsystem-identification! "GDBM" '(0 1))
 -(add-subsystem-identification! "GDBM2" '(0 2))
++(add-subsystem-identification! "GDBM" '(0 2 1))
index e337fffbe19dc70c7994d52b4d10916295f927ad,12998e7b7792694f17271b7e7a89dd8620ad3016..052a5be09162994431fa02bb7afbb7c0ab35c858
@@@ -42,10 -41,8 +42,8 @@@ binaries = @MIT_SCHEME_BCIs@ @MIT_SCHEM
  scmlib_sub_DATA = $(sources) $(binaries)
  scmlib_sub_DATA += make.scm @MIT_SCHEME_PKD@
  
 -#info_TEXINFOS = mit-scheme-mcrypt.texi
 +#scminfo_DATA = mcrypt.info
- #info_TEXINFOS = mcrypt.texi
  #AM_MAKEINFOHTMLFLAGS = --no-split
- #AM_UPDATE_INFO_DIR = no
  
  AM_CPPFLAGS = -I@MIT_SCHEME_INCLUDEDIR@
  AM_CFLAGS = @MIT_CFLAGS@
diff --cc src/mcrypt/NEWS
index 81c1032be7723901dc2c64a53592afde48b05679,02cd5c3b7a4309ebf175cf45e9439691bba1a417..7317f6e69add0c0e01d8e0d3b254b63e5dbf06d8
@@@ -26,23 -22,18 +26,18 @@@ along with MIT/GNU Scheme; if not, writ
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301, USA.
  
 -mit-scheme-mcrypt 0.2 - Matt Birkholz, 2017-05-18
 -=================================================
 +mit-scheme-pucked-mcrypt 0.2.1 - Matt Birkholz, 2017-03-18
 +==========================================================
  
- New upstream with significant changes per the move to Unicode strings.
- * mcrypt-init: The key and init vector must be byte vectors of the
-   appropriate length (per mcrypt-supported-key-sizes and
-   mcrypt-init-vector-size respectively).
- * mcrypt-encrypt: The input and output strings must now be
-   bytevectors.
- * mcrypt-encrypt-port: The input and output ports must now be binary
-   ports.  The key and init vector must be byte vectors of the
-   appropriate length.
+ Use byte vectors for binary data instead of strings.  Thus all keys
+ and init vectors now must be byte vectors of the appropriate length
+ (per mcrypt-supported-key-sizes or mcrypt-init-vector-size
+ respectively).  The input and output arguments to mcrypt-encrypt
+ should now be byte vectors, and the input and output arguments to
+ mcrypt-encrypt-port must now be binary ports.  Other changes: mcrypt-
+ encrypt! and mcrypt-decrypt! were added.
  
 -mit-scheme-mcrypt 0.1 - Matt Birkholz, 2016-02-19
 -=================================================
 +mit-scheme-pucked-mcrypt 0.1.1 - Matt Birkholz, 2017-03-01
 +==========================================================
  
- * Stolen from MIT/GNU Scheme.
 -Use libtool and automake.
++* Stole v0.1 from MIT/GNU Scheme.
index 4105021bbbbdea72e04148105bca3a4db1bdcb8f,61e1c8ad7c71c5593f3eaeb483bd4f41bf30afd1..ab38da9ce941956ff74112fff160196ab9513e4d
@@@ -6,28 -6,4 +6,28 @@@
    (lambda ()
      (load-package-set "mcrypt")))
  
- (add-subsystem-identification! "mcrypt" '(0 1))
 -(add-subsystem-identification! "mcrypt" '(0 2))
++(add-subsystem-identification! "mcrypt" '(0 2 1))
 +
 +;; "Export" these to the (runtime crypto) package bindings.
 +(let ((crypto (->environment '(runtime crypto)))
 +      (mcrypt (->environment '(mcrypt))))
 +  (for-each
 +    (lambda (name)
 +      (environment-assign! crypto name (environment-lookup mcrypt name)))
 +    '(mcrypt-algorithm-name
 +      mcrypt-algorithm-names
 +      mcrypt-block-algorithm-mode?
 +      mcrypt-block-algorithm?
 +      mcrypt-block-mode?
 +      mcrypt-context?
 +      mcrypt-encrypt
 +      mcrypt-encrypt-port
 +      mcrypt-end
 +      mcrypt-init
 +      mcrypt-init-vector-size
 +      mcrypt-key-size
 +      mcrypt-mode-name
 +      mcrypt-mode-names
 +      mcrypt-open-module
 +      mcrypt-self-test
 +      mcrypt-supported-key-sizes)))
index 13b85646046d8aff7a33290250a9e85cc031aa4d,7f3ae5a8fef8e97ca9cb7eee0938d5334d740087..aec53811c83bf2421b0a6c97611ac56bfb46c5ac
@@@ -29,9 -29,8 +29,9 @@@ USA
  (define-package (mcrypt)
    (files "mcrypt")
    (parent ())
-   ;; (mcrypt global) gets them just so that CREF will report any that
-   ;; go missing.
 +  ;; These are "exported" to (runtime crypto) during load-option.
+   (export ()
+         import-mcrypt)
    (export (mcrypt global)
          mcrypt-algorithm-name
          mcrypt-algorithm-names
index 965cded9ffea8ce84d1373dcb19875f3b81b6a25,b52411bd47922445f23891859424bdcd9e91f63d..8c9b6450f3933d1232ab18c97a5eba14ab0666a4
@@@ -160,33 -196,32 +196,54 @@@ USA
                  key (bytevector-length key) init-vector)))
      (if (< code 0)
        (error "Error code signalled by mcrypt_generic_init:"
-              (utf8->string
-               (C-peek-cstring (C-call "mcrypt_strerror"
-                                       (make-alien '(const (* char)))
-                                       code)))))))
+              (C-peek-cstring (C-call "mcrypt_strerror"
+                                      (make-alien '(const (* char)))
+                                      code))))))
+ (define-integrable (make-mcrypt-transform! name procedure)
+   (lambda (context bytes start end)
+     (guarantee-mcrypt-context context name)
+     (guarantee-subbytevector bytes start end name)
+     (let ((code (procedure context bytes start end)))
+       (if (< code 0)
+         (error (string "Error code signalled by "name":") code)))))
+ (define mcrypt-encrypt!
+   (make-mcrypt-transform!
+    'mcrypt-encrypt!
+    (named-lambda (mcrypt_generic context bytes start end)
+      (C-call "scmcrypt_generic" (mcrypt-context-alien context)
+            bytes start end))))
+ (define mcrypt-decrypt!
+   (make-mcrypt-transform!
+    'mcrypt-decrypt!
+    (named-lambda (mdecrypt_generic context bytes start end)
+      (C-call "scmdecrypt_generic" (mcrypt-context-alien context)
+            bytes start end))))
  
 +(define-integrable (make-mcrypt-transform! name fname procedure)
 +  (lambda (context bytes start end)
 +    (guarantee-mcrypt-context context name)
 +    (let ((code (procedure context bytes start end)))
 +      (if (< code 0)
 +        (error (string-append "Error code signalled by "fname":")
 +               code)))))
 +
 +(define mcrypt-encrypt!
 +  (make-mcrypt-transform!
 +   'mcrypt-encrypt! "mcrypt_generic"
 +   (lambda (context bytes start end)
 +     (let ((alien (mcrypt-context-alien context)))
 +       (C-call "scmcrypt_generic" alien bytes start end)))))
 +
 +(define mcrypt-decrypt!
 +  (make-mcrypt-transform!
 +   'mcrypt-decrypt! "mdecrypt_generic"
 +   (lambda (context bytes start end)
 +     (let ((alien (mcrypt-context-alien context)))
 +       (C-call "scmdecrypt_generic" alien bytes start end)))))
 +
  (define (mcrypt-encrypt context input input-start input-end
                        output output-start encrypt?)
    (guarantee-mcrypt-context context 'mcrypt-encrypt)
index 76248f24a892b777191729de5ff8442ca8fbee8c,ac14a3aacd90e2dd4ebd02626436e0414f3e4c0c..1e719807343ae8750f9a029ff7155eddb9e8a30d
@@@ -42,10 -41,8 +42,8 @@@ binaries = @MIT_SCHEME_BCIs@ @MIT_SCHEM
  scmlib_sub_DATA = $(sources) $(binaries)
  scmlib_sub_DATA += make.scm @MIT_SCHEME_PKD@
  
 -#info_TEXINFOS = mit-scheme-md5.texi
 +#scminfo_DATA = md5.info
- #info_TEXINFOS = md5.texi
  #AM_MAKEINFOHTMLFLAGS = --no-split
- #AM_UPDATE_INFO_DIR = no
  
  AM_CPPFLAGS = -I@MIT_SCHEME_INCLUDEDIR@
  AM_CFLAGS = @MIT_CFLAGS@
diff --cc src/md5/NEWS
index fcb9e96a2711aff6908730e8f6630b051c070a8e,7e07103d5507f6f620142c3b1dead99b70492e2d..d0f139fc25ae361d43464baa9e3d5ddddf3eaa85
@@@ -26,17 -22,17 +26,17 @@@ along with MIT/GNU Scheme; if not, writ
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301, USA.
  
 -mit-scheme-md5 0.2 - Matt Birkholz, 2017-05-18
 -==============================================
 +mit-scheme-pucked-md5 0.2.1 - Matt Birkholz, 2017-03-18
 +=======================================================
  
- New upstream with significant changes per the move to Unicode strings.
- * The returned digests are now bytevectors, and md5-sum->number and
-   md5-sum->hexadecimal now require bytevectors.  If you treated the
-   digests as opaque objects except for those converters, then you
  continue to win.
+ Use byte vectors for binary data instead of strings.  Thus all digests
+ are now byte vectors.  Other changes: md5-bytevector was added,
+ md5-string takes optional start and end indices, so md5-substring was
+ removed, and md5-sum->hexadecimal and md5-sum->number were removed.
+ The latter can be replaced by bytevector->hexadecimal and bytevector->
exact-nonnegative-integer respectively.
  
 -mit-scheme-md5 0.1 - Matt Birkholz, 2016-02-19
 -==============================================
 +mit-scheme-pucked-md5 0.1.1 - Matt Birkholz, 2017-03-01
 +=======================================================
  
- * Stolen from MIT/GNU Scheme.
 -Use libtool and automake.
++* Stole v0.1 from MIT/GNU Scheme.
index ce50d16e23c37336bedb7c298507c48a178ab0b2,24aa88808ca9f05e4f514870729d2195ceff53ec..a6e45a056c1bc53bb80786e822ff263f67b3ae19
@@@ -6,13 -6,4 +6,13 @@@
    (lambda ()
      (load-package-set "md5")))
  
- (add-subsystem-identification! "MD5" '(0 1))
 -(add-subsystem-identification! "MD5" '(0 2))
++(add-subsystem-identification! "MD5" '(0 2 1))
 +
 +;; "Export" these to the (runtime crypto) package bindings.
 +(let ((crypto (->environment '(runtime crypto)))
 +      (md5 (->environment '(md5))))
 +  (for-each
 +    (lambda (name)
 +      (environment-assign! crypto name (environment-lookup md5 name)))
 +    '(md5-file
 +      md5-string)))
diff --cc src/md5/md5.pkg
index ef23d3daef54c1eb343494f8833889d836149828,de847317adf6752aab8dd7e9d93d76f2c8fede77..8416f22b94f67659d6ad86a3664dc37dde2681c9
@@@ -29,9 -29,8 +29,9 @@@ USA
  (define-package (md5)
    (files "md5")
    (parent ())
-   ;; (md5 global) gets them just so that CREF will report any that go
-   ;; missing.
 +  ;; These are "exported" to (runtime crypto) during load-option.
+   (export ()
+         import-md5)
    (export (md5 global)
          md5-bytevector
          md5-file
index ce6c5a9ef9aac1c88a14719d33df80924a5476a4,fc33e21d4c878a64ee65449c95c3cddb7b0da902..94eb1925b2fd8a8b8fae20dd3ce5dccd80dcc9f7
@@@ -42,10 -41,8 +42,8 @@@ binaries = @MIT_SCHEME_BCIs@ @MIT_SCHEM
  scmlib_sub_DATA = $(sources) $(binaries)
  scmlib_sub_DATA += make.scm @MIT_SCHEME_PKD@
  
 -#info_TEXINFOS = mit-scheme-mhash.texi
 +#scminfo_DATA = mhash.info
- #info_TEXINFOS = mhash.texi
  #AM_MAKEINFOHTMLFLAGS = --no-split
- #AM_UPDATE_INFO_DIR = no
  
  AM_CPPFLAGS = -I@MIT_SCHEME_INCLUDEDIR@
  AM_CFLAGS = @MIT_CFLAGS@
diff --cc src/mhash/NEWS
index 17b4cc198b4de5003047914529339583214d5189,3af0d8574e31ecc47f925c763df55dcee2837c79..55809682008f4634ad7fcd7973f6f800742efbb1
@@@ -26,25 -22,18 +26,18 @@@ along with MIT/GNU Scheme; if not, writ
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  02110-1301, USA.
  
 -mit-scheme-mhash 0.2 - Matt Birkholz, 2017-05-18
 -================================================
 +mit-scheme-pucked-mhash 0.2.1 - Matt Birkholz, 2017-03-18
 +=========================================================
  
- New upstream with significant changes per the move to Unicode strings.
- * All digests and salts are now bytevectors, not strings.  Affected
-   procedures: mhash-end, mhash-file, mhash-hmac-end, mhash-keygen,
-   mhash-string and mhash-substring.
- * The -update procedures must be fed with (sub)bytevectors, not
-   (sub)strings.  Affected procedures: mhash-update and mhash-hmac-
-   update.
- * mhash-sum->hexadecimal and mhash-sum->number now require
-   bytevectors.  If you treated the digests as opaque objects except
-   for those converters (and did not use salt nor an -update
-   procedure), then you continue to win.
+ Use byte vectors for binary data instead of strings.  Thus all digests
+ and salts now must be byte vectors; the -update procedures must be fed
+ byte subvectors, not substrings.  Other changes: mhash-bytevector was
+ added, mhash-string takes optional start and end indices, so mhash-
+ substring was removed, and mhash-sum->hexadecimal and mhash-sum->
+ number were removed.  The latter can be replaced by bytevector->
+ hexadecimal and bytevector->exact-nonnegative-integer respectively.
  
 -mit-scheme-mhash 0.1 - Matt Birkholz, 2016-02-19
 -================================================
 +mit-scheme-pucked-mhash 0.1.1 - Matt Birkholz, 2017-03-01
 +=========================================================
  
 -Use libtool and automake.
 +* Stolen from MIT/GNU Scheme.
index 2629a3531dcb563f27ac752e3b2135c4fbac8117,e0ab4b16302dc8a46e6278e42ea76a70421d021a..410b3518d22507e62dae086521aad1db32f5dbbb
@@@ -6,31 -6,4 +6,31 @@@
    (lambda ()
      (load-package-set "mhash")))
  
- (add-subsystem-identification! "mhash" '(0 1))
 -(add-subsystem-identification! "mhash" '(0 2))
++(add-subsystem-identification! "mhash" '(0 2 1))
 +
 +;; "Export" these to the (runtime crypto) package bindings.
 +(let ((crypto (->environment '(runtime crypto)))
 +      (mhash (->environment '(mhash))))
 +  (for-each
 +    (lambda (name)
 +      (environment-assign! crypto name (environment-lookup mhash name)))
 +    '(make-mhash-keygen-type
 +      mhash-context?
 +      mhash-end
 +      mhash-file
 +      mhash-get-block-size
 +      mhash-hmac-end
 +      mhash-hmac-init
 +      mhash-hmac-update
 +      mhash-init
 +      mhash-keygen
 +      mhash-keygen-max-key-size
 +      mhash-keygen-salt-size
 +      mhash-keygen-type-names
 +      mhash-keygen-type?
 +      mhash-keygen-uses-count?
 +      mhash-keygen-uses-hash-algorithm
 +      mhash-keygen-uses-salt?
 +      mhash-string
 +      mhash-type-names
 +      mhash-update)))
index e52e84b11c305f8664a325937b000ed1ec0507d9,617f7eb7c601028a2e601a4a03211737aed36e9a..34a96d58702a3e236d0e2711c953eda943abb345
@@@ -29,10 -29,9 +29,10 @@@ USA
  (define-package (mhash)
    (files "mhash")
    (parent ())
+   (export ()
+         import-mhash)
    (initialization (initialize-package!))
-   ;; (mhash global) gets them just so that CREF will report any that
-   ;; go missing.
 +  ;; These are "exported" to (runtime crypto) during load-option.
    (export (mhash global)
          make-mhash-keygen-type
          mhash-bytevector
Simple merge
Simple merge
Simple merge
index d6812d81e263f8dfb570d5614aac78b33902ba6f,18b5f891343d273a292734b192baeff6fe16a874..8679f919a727e97a7ac1fd0adc75f9106431432a
@@@ -37,10 -36,8 +37,8 @@@ binaries = @MIT_SCHEME_BCIs@ @MIT_SCHEM
  scmlib_sub_DATA = $(sources) $(binaries)
  scmlib_sub_DATA += make.scm @MIT_SCHEME_PKD@
  
 -#info_TEXINFOS = mit-scheme-x11-screen.texi
 +#scminfo_DATA = x11-screen.info
- #info_TEXINFOS = x11-screen.texi
  #AM_MAKEINFOHTMLFLAGS = --no-split
- #AM_UPDATE_INFO_DIR = no
  
  @MIT_SCHEME_DEPS@
  stamp-scheme: $(sources) x11-screen.pkg
index b1a41513eb4cc07d050d188839b8d3f4296cfd29,ab85defbbacaca6ab36d8a5ae2f6e650cc531be9..d5ed815e72573b3d1d6bbedfc23bf183b3fb6805
@@@ -1,9 -1,9 +1,9 @@@
  dnl Process this file with autoconf to produce a configure script.
  
- AC_INIT([MIT/GNU Scheme Pucked x11-screen plugin],
 -AC_INIT([MIT/GNU Scheme Edwin X11 Screen plugin],
 -        [0.1],
 -        [bug-mit-scheme@gnu.org],
 -        [mit-scheme-x11-screen])
++AC_INIT([MIT/GNU Scheme Pucked Edwin X11 Screen plugin],
 +        [0.1.1],
 +        [matt@birchwood-abbey.net],
 +        [mit-scheme-pucked-x11-screen])
  AC_CONFIG_SRCDIR([x11-screen.pkg])
  
  AC_COPYRIGHT(
index 03e88cc6b7b2c7f4db84940d130e4cfdb05b3f8a,12e793b114a0680c484f88c1b0063d6bd4ab6149..29ab3245ce596ce2008cb21a3201c48ea6a4b311
@@@ -42,10 -41,8 +42,8 @@@ binaries = @MIT_SCHEME_BCIs@ @MIT_SCHEM
  scmlib_sub_DATA = $(sources) $(binaries)
  scmlib_sub_DATA += make.scm @MIT_SCHEME_PKD@
  
 -#info_TEXINFOS = mit-scheme-x11.texi
 +#scminfo_DATA = x11.info
- #info_TEXINFOS = x11.texi
  #AM_MAKEINFOHTMLFLAGS = --no-split
- #AM_UPDATE_INFO_DIR = no
  
  AM_CPPFLAGS = -I@MIT_SCHEME_INCLUDEDIR@
  AM_CFLAGS = @MIT_CFLAGS@
diff --cc tests/check.scm
Simple merge