-- Matt Birkholz <matt@birchwood-abbey.net> Tue, 10 May 2016 23:59:59 -0700
+mit-scheme (9.2.2-1) birchwood; urgency=low
+
+ * New upstream includes microcode-id/operating-system-suffix for
+ plugin Makefile.ams, so that they can "make dist" on hosts with
+ 9.2.2 installed.
+ * debian/mit-scheme.install: Install missing mit-scheme.h.
+ * debian/changelog: Change distribution to "birchwood" so that this
+ version does not find its way into an official repository.
+
+ -- Matt Birkholz <matt@birchwood-abbey.net> Thu, 27 Apr 2016 08:00:00 -0700
+
mit-scheme (9.2.1-1) unstable; urgency=low
* New upstream containing 2 debian patches.
(@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
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301, USA.
-mit-scheme-pucked-blowfish 0.2.1 - Matt Birkholz, 2017-03-18
+mit-scheme-pucked-blowfish 0.2.1 - Matt Birkholz, 2017-05-18
============================================================
-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.
+Upstream now uses byte vectors for binary data instead of strings.
+This changes every global binding except blowfish-file? and perhaps
+compute-blowfish-init-vector IF you don't care whether the init vector
+is a string or something else. 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; md5
+digests are now bytevectors too.
mit-scheme-pucked-blowfish 0.1.1 - Matt Birkholz, 2017-03-01
============================================================
mit-scheme-pucked-gdbm 0.2.1 - Matt Birkholz, 2017-03-18
========================================================
-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.
+New upstream converts 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-pucked-gdbm 0.1.1 - Matt Birkholz, 2017-03-01
========================================================
-* Stole v0.1 from MIT/GNU Scheme.
+Stole v0.1 from MIT/GNU Scheme.
#!/bin/sh
#
-# Test the GDBM2 option.
+# Test the GDBM plugin.
set -e
${MIT_SCHEME_EXE} --prepend-library . <<\EOF
-(load-option 'GDBM2)
+(load-option 'GDBM)
(load "gdbm-check" (->environment '(gdbm)))
EOF
ustring?)
(export ()
import-gdbm2)
- (export (gdbm global)
+ (export ()
gdbm-close
gdbm-delete
gdbm-exists?
#| -*-Scheme-*- |#
-(define-load-option 'GDBM2
+(define-load-option 'GDBM
(standard-system-loader "."))
(further-load-options
((pathname=? again simpler) again)
(else (loop again (fix:1+ count)))))))
+(define (->string object)
+ (if (string? object)
+ object
+ (utf8->string object)))
+
(define (make-g-stream-source gstream)
(let ((open? #t))
(make-non-channel-input-source
(begin
(C->= pointer "* GError" 0)
(C-call "g_error_free" gerror)))
- (utf8->string message)))
+ (->string message)))
(define-integrable (%queue! queue value)
;; The GIO finish callbacks use this procedure to queue a value on a
(cond ((fix:= type (C-enum "G_FILE_ATTRIBUTE_TYPE_INVALID"))
(error "Invalid attribute:" name))
((fix:= type (C-enum "G_FILE_ATTRIBUTE_TYPE_STRING"))
- (utf8->string
+ (->string
(c-peek-cstring
(C-call "g_file_info_get_attribute_string"
(make-alien 'char) alien name-bv))))
((fix:= type (C-enum "G_FILE_ATTRIBUTE_TYPE_BYTE_STRING"))
- (utf8->string
+ (->string
(c-peek-cstring
(C-call "g_file_info_get_attribute_byte_string"
(make-alien 'uchar) alien name-bv))))
(named-lambda (mount-password-callback gmountop message user domain flags)
(%trace-auth ";mount-password-callback "(gfile-uri gfile)
" "gmountop
- " "(utf8->string (c-peek-cstring message))
- " "(utf8->string (c-peek-cstring user))
- " "(utf8->string (c-peek-cstring domain))
+ " "(->string (c-peek-cstring message))
+ " "(->string (c-peek-cstring user))
+ " "(->string (c-peek-cstring domain))
" "(->ask-password-flags flags)"\n")
(let ((old (g-mount-operation-ask-password-flags gmountop))
(new (->ask-password-flags flags)))
(set-g-mount-operation-message! gmountop
- (utf8->string (c-peek-cstring message)))
+ (->string (c-peek-cstring message)))
(set-g-mount-operation-username! gmountop
- (utf8->string (c-peek-cstring user)))
+ (->string (c-peek-cstring user)))
(set-g-mount-operation-domain! gmountop
- (utf8->string (c-peek-cstring domain)))
+ (->string (c-peek-cstring domain)))
(set-g-mount-operation-ask-password-flags! gmountop new)
(cond ((not old)
;; Punt, %queuing "Password dialog cancelled".
(%trace-auth ";make-mount-question-callback"
" "(gfile-uri gfile)
" "gmountop
- " "(utf8->string (c-peek-cstring message))
+ " "(->string (c-peek-cstring message))
" "(peek-gstrv! choices)"\n")
(warn "Unimplemented" 'mount-question-callback)))
(define (peek-gstrv! alien)
(let loop ()
- (let ((str (utf8->string (c-peek-cstringp! alien))))
+ (let ((str (->string (c-peek-cstringp! alien))))
(if (null? str)
'()
(cons str (loop))))))
(%trace-auth ";make-mount-processes-callback"
" "gfile
" "gmountop
- " "(utf8->string (c-peek-cstring message))
+ " "(->string (c-peek-cstring message))
" "processes
" "(peek-gstrv! choices)"\n")
(warn "Unimplemented" 'mount-processes-callback)))
(C-> scan "* uchar" cstr)
(if (alien-null? cstr)
'()
- (let ((str (utf8->string (c-peek-cstring cstr))))
+ (let ((str (->string (c-peek-cstring cstr))))
(alien-byte-increment! scan (C-sizeof "* uchar"))
(cons str (loop)))))))
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301, USA.
-mit-scheme-pucked-mcrypt 0.2.1 - Matt Birkholz, 2017-03-18
+mit-scheme-pucked-mcrypt 0.2.1 - Matt Birkholz, 2017-05-18
==========================================================
-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.
+Upstream now uses 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-pucked-mcrypt 0.1.1 - Matt Birkholz, 2017-03-01
==========================================================
-* Stole v0.1 from MIT/GNU Scheme.
+Stole v0.1 from MIT/GNU Scheme.
(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)
scmlibdir = @MIT_SCHEME_LIBDIR@
scmlib_subdir = $(scmlibdir)md5
scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
-scminfodir = $(scmdocdir)/info
+#scminfodir = $(scmdocdir)/info
scmlib_LTLIBRARIES = md5-shim.la
scmlib_DATA = md5-types.bin md5-const.bin
mit-scheme-pucked-md5 0.2.1 - Matt Birkholz, 2017-03-18
=======================================================
-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.
+Upstream now uses 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-pucked-md5 0.1.1 - Matt Birkholz, 2017-03-01
=======================================================
-* Stole v0.1 from MIT/GNU Scheme.
+Stole v0.1 from MIT/GNU Scheme.
(for-each
(lambda (name)
(environment-assign! crypto name (environment-lookup md5 name)))
- '(md5-file
+ '(md5-bytevector
+ md5-file
md5-string)))
\ No newline at end of file
mit-scheme-pucked-mhash 0.2.1 - Matt Birkholz, 2017-03-18
=========================================================
-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.
+Upstream now uses 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-pucked-mhash 0.1.1 - Matt Birkholz, 2017-03-01
=========================================================
-* Stolen from MIT/GNU Scheme.
+Stole v0.1 from MIT/GNU Scheme.
#| -*-Scheme-*- |#
-;;;; Load the MHASH option.
+;;;; Load the mhash option.
(with-working-directory-pathname (directory-pathname (current-load-pathname))
(lambda ()
(lambda (name)
(environment-assign! crypto name (environment-lookup mhash name)))
'(make-mhash-keygen-type
+ mhash-bytevector
mhash-context?
mhash-end
mhash-file
(define (autoloaded? pkg)
(or (memq pkg autoloaded-options)
- (and (plugin-available? (symbol-name pkg))
+ (and (plugin-available? (symbol->string pkg))
(begin
(load-option pkg)
(with-thread-mutex-lock autoload-mutex
'((COMPRESS (RUNTIME COMPRESS) #F "cpress")
(DOSPROCESS () #F "dosproc")
(FORMAT (RUNTIME FORMAT) (INITIALIZE-PACKAGE!) "format")
- (GDBM (RUNTIME GDBM) #F "gdbm")
(MIME-CODEC (RUNTIME MIME-CODEC) #F "mime-codec")
(ORDERED-VECTOR (RUNTIME ORDERED-VECTOR) #F "ordvec")
- (POSTGRESQL (RUNTIME POSTGRESQL) #F "pgsql")
(RB-TREE (RUNTIME RB-TREE) #F "rbtree")
(STEPPER (RUNTIME STEPPER) #F "ystep")
(SUBPROCESS (RUNTIME SUBPROCESS) (INITIALIZE-PACKAGE!) "process")
MIT_SCHEME_PKD="x11-screen-${os_suffix}.pkd"
-for f in x11-screen; do # x11-key x11-command
+for f in x11-screen x11-key x11-command; do
MIT_SCHEME_SCMs="${MIT_SCHEME_SCMs} ${f}.scm"
MIT_SCHEME_BCIs="${MIT_SCHEME_BCIs} ${f}.bci"
MIT_SCHEME_DEPS="${MIT_SCHEME_DEPS}
bytevector struct))))
(new (c-peek-cstring alien)))
(free alien)
- (utf8->string new)))
+ (if (string? new)
+ new
+ (utf8->string new))))
(let ((a (C-call "test_struct" struct struct)))
(assert-equal a struct)
(assert-equal (C-> a "TestStruct second")