From: Matt Birkholz Date: Thu, 18 May 2017 03:26:59 +0000 (-0700) Subject: Merge branch 'master' into pucked. X-Git-Tag: mit-scheme-pucked-9.2.12~130 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=1aaf5a69a91ac517df6025a848a5016f37cc1fe8;p=mit-scheme.git Merge branch 'master' into pucked. --- 1aaf5a69a91ac517df6025a848a5016f37cc1fe8 diff --cc doc/user-manual/user.texinfo index eef1a0071,3af2bc3bf..7e5328b8d --- a/doc/user-manual/user.texinfo +++ b/doc/user-manual/user.texinfo @@@ -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 diff --cc src/blowfish/Makefile.am index 0d3643e05,cc67d56f6..afedc8969 --- a/src/blowfish/Makefile.am +++ b/src/blowfish/Makefile.am @@@ -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@ diff --cc src/blowfish/NEWS index 4672e24af,cd0ac9f2a..ff0eac377 --- a/src/blowfish/NEWS +++ b/src/blowfish/NEWS @@@ -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. diff --cc src/blowfish/blowfish.pkg index a29afb5a4,ea43a5647..aad20bcdc --- a/src/blowfish/blowfish.pkg +++ b/src/blowfish/blowfish.pkg @@@ -29,9 -29,8 +29,9 @@@ USA (define-package (blowfish) (files "blowfish") (parent ()) + ;; These are "exported" to (runtime blowfish) during load-option. - ;; (blowfish global) gets them just so that CREF will report any - ;; that go missing. + (export () + import-blowfish) (export (blowfish global) blowfish-cbc blowfish-cfb64 diff --cc src/blowfish/make.scm index 80041e731,7677b3de4..361256f13 --- a/src/blowfish/make.scm +++ b/src/blowfish/make.scm @@@ -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))) diff --cc src/gdbm/Makefile.am index bf4cc1d90,a8625dd2c..f76720244 --- a/src/gdbm/Makefile.am +++ b/src/gdbm/Makefile.am @@@ -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 1e2d24fed,f0bb04453..536987846 --- a/src/gdbm/NEWS +++ b/src/gdbm/NEWS @@@ -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. diff --cc src/gdbm/make.scm index c704d7a19,75f71ebbf..dad660971 --- a/src/gdbm/make.scm +++ b/src/gdbm/make.scm @@@ -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)) diff --cc src/mcrypt/Makefile.am index e337fffbe,12998e7b7..052a5be09 --- a/src/mcrypt/Makefile.am +++ b/src/mcrypt/Makefile.am @@@ -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 81c1032be,02cd5c3b7..7317f6e69 --- a/src/mcrypt/NEWS +++ b/src/mcrypt/NEWS @@@ -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. diff --cc src/mcrypt/make.scm index 4105021bb,61e1c8ad7..ab38da9ce --- a/src/mcrypt/make.scm +++ b/src/mcrypt/make.scm @@@ -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))) diff --cc src/mcrypt/mcrypt.pkg index 13b856460,7f3ae5a8f..aec53811c --- a/src/mcrypt/mcrypt.pkg +++ b/src/mcrypt/mcrypt.pkg @@@ -29,9 -29,8 +29,9 @@@ USA (define-package (mcrypt) (files "mcrypt") (parent ()) + ;; These are "exported" to (runtime crypto) during load-option. - ;; (mcrypt global) gets them just so that CREF will report any that - ;; go missing. + (export () + import-mcrypt) (export (mcrypt global) mcrypt-algorithm-name mcrypt-algorithm-names diff --cc src/mcrypt/mcrypt.scm index 965cded9f,b52411bd4..8c9b6450f --- a/src/mcrypt/mcrypt.scm +++ b/src/mcrypt/mcrypt.scm @@@ -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) diff --cc src/md5/Makefile.am index 76248f24a,ac14a3aac..1e7198073 --- a/src/md5/Makefile.am +++ b/src/md5/Makefile.am @@@ -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 fcb9e96a2,7e07103d5..d0f139fc2 --- a/src/md5/NEWS +++ b/src/md5/NEWS @@@ -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. diff --cc src/md5/make.scm index ce50d16e2,24aa88808..a6e45a056 --- a/src/md5/make.scm +++ b/src/md5/make.scm @@@ -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 ef23d3dae,de847317a..8416f22b9 --- a/src/md5/md5.pkg +++ b/src/md5/md5.pkg @@@ -29,9 -29,8 +29,9 @@@ USA (define-package (md5) (files "md5") (parent ()) + ;; These are "exported" to (runtime crypto) during load-option. - ;; (md5 global) gets them just so that CREF will report any that go - ;; missing. + (export () + import-md5) (export (md5 global) md5-bytevector md5-file diff --cc src/mhash/Makefile.am index ce6c5a9ef,fc33e21d4..94eb1925b --- a/src/mhash/Makefile.am +++ b/src/mhash/Makefile.am @@@ -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 17b4cc198,3af0d8574..558096820 --- a/src/mhash/NEWS +++ b/src/mhash/NEWS @@@ -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. diff --cc src/mhash/make.scm index 2629a3531,e0ab4b163..410b3518d --- a/src/mhash/make.scm +++ b/src/mhash/make.scm @@@ -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))) diff --cc src/mhash/mhash.pkg index e52e84b11,617f7eb7c..34a96d587 --- a/src/mhash/mhash.pkg +++ b/src/mhash/mhash.pkg @@@ -29,10 -29,9 +29,10 @@@ USA (define-package (mhash) (files "mhash") (parent ()) + (export () + import-mhash) (initialization (initialize-package!)) + ;; These are "exported" to (runtime crypto) during load-option. - ;; (mhash global) gets them just so that CREF will report any that - ;; go missing. (export (mhash global) make-mhash-keygen-type mhash-bytevector diff --cc src/x11-screen/Makefile.am index d6812d81e,18b5f8913..8679f919a --- a/src/x11-screen/Makefile.am +++ b/src/x11-screen/Makefile.am @@@ -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 diff --cc src/x11-screen/configure.ac index b1a41513e,ab85defbb..d5ed815e7 --- a/src/x11-screen/configure.ac +++ b/src/x11-screen/configure.ac @@@ -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( diff --cc src/x11/Makefile.am index 03e88cc6b,12e793b11..29ab3245c --- a/src/x11/Makefile.am +++ b/src/x11/Makefile.am @@@ -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@