From 7820cf3c4ddfcb9baf4f9de363d2fc00b309360d Mon Sep 17 00:00:00 2001 From: Matt Birkholz Date: Mon, 1 Oct 2018 11:33:38 -0700 Subject: [PATCH] user: Some experimental changes are now simpler proposed changes. --- doc/user-manual/user.texinfo | 76 +++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/doc/user-manual/user.texinfo b/doc/user-manual/user.texinfo index d271b5bea..8cfca5403 100644 --- a/doc/user-manual/user.texinfo +++ b/doc/user-manual/user.texinfo @@ -44,7 +44,7 @@ Documentation License.'' @dircategory Programming Languages @direntry * User: (mit-scheme-pucked/user). - User Manual + User's Manual @end direntry @titlepage @@ -3879,6 +3879,31 @@ strings'' suitable only for ``legacy ports''. Most string operations can handle legacy @emph{or} Unicode strings, but new procedures may only handle Unicode strings, and several old procedures are marked deprecated. + +@item +The microcode no longer has ``modules''. Systems like @code{(runtime +crypto)} now autoload ``plugins'' that are much like the microcode +modules except they use the C/FFI and can be built outside the +microcode source tree. + +@item +The @code{(runtime blowfish)}, @code{(runtime gdbm)} and +@code{(runtime x-graphics)} packages now autoload plugins and are +deprecated. Work-alike replacements @code{(blowfish)}, @code{(gdbm)} +and @code{(x11 graphics)} should be used instead. Thus @code{(runtime +blowfish)} should be replaced with @code{(blowfish)} in package +descriptions, and a @code{(global-definitions blowfish/)} expression +added. + +@item +The @code{(runtime crypto)} package is similarly deprecated. Its +bindings are unassigned until the corresponding plugin is loaded. +When a band is restored these bindings are unassigned again. Thus a +restored thread using them will quickly signal an error and can be +aborted or restarted as appropriate. An @code{mcrypt-available?} +binding is assigned a procedure that autoloads the mcrypt option. A +restarted thread is assumed to begin again with a call to +@code{mcrypt-available?} (or @code{load-option}). @end itemize The proposed changes to the core system are intended to produce a new @@ -3891,9 +3916,9 @@ bindings incrementally. @section Experimental Changes The experimental code in this ``pucked'' version is almost entirely -contained in the plugins. The core was changed only to replace the -microcode modules and hook the Gtk screen into Edwin. Neither change -should be apparent to the casual user. +contained in the plugins. The core was changed only to hook the Gtk +screen into Edwin. This change should not be apparent to the casual +user. If your code does not hack Edwin and you previously said @@ -3924,35 +3949,6 @@ appropriate screen type. If you are launching Edwin some other way, you will probably need to load a screen plugin first, e.g.@: @code{x11-screen}. -@item -The @code{(runtime blowfish)}, @code{(runtime gdbm)} and -@code{(runtime x-graphics)} packages were removed. All of their -bindings can now be found in the @code{(blowfish)}, @code{(gdbm)} and -@code{(x11 graphics)} packages. Thus @code{(runtime blowfish)} should -be replaced with @code{(blowfish)} in package descriptions, and a -@code{(global-definitions blowfish/)} line added. Similar changes are -needed if you are using @code{(runtime gdbm)} or @code{(runtime -x-graphics)}. - -Two original bindings cannot be found in the new packages: -@code{blowfish-available?} and @code{gdbm-available?}. -Generally, @code{-available?} procedures are -not supported. Plugins are unknown (cannot provide such procedures) -until @emph{after} they successfully load (at which point such -procedures are moot). Thus something like -@code{(blowfish-available?)} should be replaced with -@code{(plugin-available? "blowfish")}. - -@item -The @code{(runtime crypto)} package is provided but deprecated. Its -bindings are unassigned until the corresponding plugin is loaded. -When a band is restored these bindings are unassigned again. Thus a -restored thread using them will quickly signal an error and can be -aborted or restarted as appropriate. An @code{mcrypt-available?} -binding is assigned a procedure that autoloads the mcrypt option. A -restarted thread is assumed to begin again with a call to -@code{mcrypt-available?} (or @code{load-option}). - @item Edwin has had a number of screen procedures turned into SOS generic procedures, to support the experimental Gtk screen type. Such changes @@ -4074,13 +4070,23 @@ allows new versions of Scheme and its plugins to be provided for old versions of Ubuntu. (Normally you would upgrade to new versions of Ubuntu to get new versions of Scheme.) However this means there may be @emph{three} packages named @code{mit-scheme-pucked} with the -@emph{same} version, each compiled for Ubuntu 16.04, 17.10 or 18.04. +@emph{same} version, each compiled for Ubuntu 16.04, 18.04 or 18.10. When you upgrade to a new version of Ubuntu you should first remove the @code{mit-scheme-pucked} package (which will remove all of its plugins), then re-install them after changing the source URL (e.g. to @url{http://birchwood-abbey.net/ubuntu/18.04/}). +@example +sudo apt-get remove mit-scheme-pucked +sudo add-apt-repository -r \ + "deb http://birchwood-abbey.net/ubuntu/18.04/ birchwood main" +sudo add-apt-repository \ + "deb http://birchwood-abbey.net/ubuntu/18.10/ birchwood main" +sudo apt-get update +sudo apt-get install mit-scheme-pucked-x11-screen +@end example + You can also download the package files and install them by hand. Links to the available package files are listed on the project home page. @@ -4089,7 +4095,7 @@ page. @uref{https://birchwood-abbey.net/~puck/Scheme/} @end example -You will need to know your Ubuntu version (e.g. 16.10) and Debian +You will need to know your Ubuntu version (e.g. 18.10) and Debian machine architecture (e.g. amd64), then click on the corresponding link. You will need to do this for your chosen plugin, all of the plugins it requires, and Scheme itself (the @code{mit-scheme-pucked} -- 2.25.1