user: Some experimental changes are now simpler proposed changes.
authorMatt Birkholz <matt@birchwood-abbey.net>
Mon, 1 Oct 2018 18:33:38 +0000 (11:33 -0700)
committerMatt Birkholz <matt@birchwood-abbey.net>
Mon, 1 Oct 2018 18:33:38 +0000 (11:33 -0700)
doc/user-manual/user.texinfo

index d271b5bea47c83cf2701324daabaf377c96ee9c9..8cfca540397acd27433103730a9d9c9634813ab4 100644 (file)
@@ -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}