Drop cross-compiling to svm on the build hosts. Fix version<?.
along with this plugin; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+mit-scheme-pucked-devops 0.11 - Matt Birkholz, 2019-01-04
+=========================================================
+
+Build new upstream 10.1 with 10.1 build hosts. Drop cross-compiling
+to svm on the build hosts. Fix version<?.
+
mit-scheme-pucked-devops 0.10 - Matt Birkholz, 2018-11-27
=========================================================
(let ((todo (find-work)))
(log (number->string (length todo) 10)
" binaries to build.\n")
- (flush-output)
+ (flush-output-port)
(if (null? todo)
'done
(begin
(lambda () (for-each (lambda (work) (work)) todo))
release-lock-file)
(log "Looking for more work.\n")
- (flush-output)
+ (flush-output-port)
(loop))))))))
(define (find-work)
(rename-file elogfile logfile))))))
(define (build-core-pkg name vers)
- (let* ((sarch build-scheme-architecture)
- (target (if (string-prefix? "svm" sarch) "svm" sarch))
- (pkgdir (string build-dir"/"name"-"vers))
- (host (shell-output
- "echo \"(display microcode-id/compiled-code-type)\""
- " | ${MIT_SCHEME_EXE=mit-scheme} --batch-mode"))
- (cross (if (string=? target host)
- ""
- " --enable-cross-compiling")))
+ (let ((sarch build-scheme-architecture)
+ (pkgdir (string build-dir"/"name"-"vers))
+ (options (if (string-prefix? "svm1" build-scheme-architecture)
+ " --enable-native-code=svm1"
+ "")))
(run "rm -rf "pkgdir)
(run "cd "build-dir" && tar xzf "name"-"vers".tar.gz")
- (run "cd "pkgdir"/src && ./configure"cross" --enable-native-code="target)
+ (run "cd "pkgdir"/src && ./configure" options)
(run "cd "pkgdir"/src && make")
(run "cd "pkgdir"/src/microcode && make distclean")
(run "cd "pkgdir"/doc && ./configure")
(set-file-modes! (string pkgdir"-"sarch".tar.gz") #o444)
(run "rm -rf "pkgdir)
(run "cd "build-dir" && tar xzf "name"-"vers"-"sarch".tar.gz")
- (run "cd "pkgdir"/src && ./configure"cross" --enable-native-code="target)
- (run "cd "pkgdir"/src && make compile-microcode")
+ (run "cd "pkgdir"/src && ./configure" options)
+ (run "cd "pkgdir"/src && make")
(run "cd "pkgdir"/src && umask 022 && make install")
(run "cd "pkgdir"/doc && ./configure")
(run "cd "pkgdir"/doc && umask 022 && make install install-pdf")
(define (in-batch thunk)
(fresh-line)
(write-string "OK\n")
- (flush-output)
- (%exit
+ (flush-output-port)
+ (exit
(with-output-to-file (string build-dir"/daemon.log")
(lambda ()
(call-with-current-continuation
(log-timestamp)
(write-condition-report condition (current-output-port))
(newline)
- (flush-output)
+ (flush-output-port)
(abort-batch-job 7))
(lambda ()
(log-timestamp)
- (flush-output)
+ (flush-output-port)
(log "Batch job started.\n")
- (flush-output)
+ (flush-output-port)
(thunk)
(log "Batch job succeeded.\n")
0))))))))
(close-port out)
(throw condition))
(lambda ()
- (with-output-to-port out thunk)))))
+ (parameterize ((current-output-port out))
+ (thunk))))))
#f))))
(set-file-modes! filename #o444)
(if (condition? value)
(define (shell* cmdln . options)
(let ((status (apply run-shell-command cmdln
'environment scheme-subprocess-environment
- 'redisplay-hook flush-output
+ 'redisplay-hook flush-output-port
options)))
(if (not (zero? status))
(error "Shell command failed:" status cmdln))
(define (shell*-noerror cmdln . options)
(apply run-shell-command cmdln
'environment scheme-subprocess-environment
- 'redisplay-hook flush-output
+ 'redisplay-hook flush-output-port
options))
(define (with-subprocess-environment-variable name value thunk)
exec dpkg --install "/home/puck/mit-scheme/$1"
@end example
-@emph{Temporarily:} the host Scheme must be the unofficial version
-9.2.2, recently created from the @code{release-9.2} branch of the
-MIT/GNU Scheme project repository on Savannah. Debian packages and
-source and binary distributions for 9.2.2 can be found on the pucked
-project web site. @uref{http://birchwood-abbey.net/~puck/Scheme/}
-
@node Lint Detection
@section Lint Detection
If true, the value of this binding is applied to three arguments.
@enumerate
@item
-@var{version}---A string like @code{"9.2.7"}.
+@var{version}---A string like @code{"10.1.7"}.
@item
@var{changes}---A list of strings, the paths (relative to the root of
the git working directory tree) to files that have changed since the
If there is a change in any file in the core source, the
project version should have incremented.
-@c @item
-@c The version numbers in the documentation (variables named
-@c @code{SCMVERS} in @file{doc/**/*.texinfo}) agree with
-@c @file{src/runtime/version.scm}.
+@c @item The version numbers in the documentation (variables named
+@c @code{SCMVERS} in @file{doc/**/*.texinfo}, and the first line of
+@c mit-scheme-pucked.1) agree with @file{src/runtime/version.scm}.
@c @item
@c All source files should contain a header with the same copyright
dnl Process this file with autoconf to produce a configure script.
AC_INIT([MIT/GNU Scheme Pucked Developer Operations plugin],
- [0.10],
+ [0.11],
[matt@birchwood-abbey.net],
[mit-scheme-pucked-devops])
AC_CONFIG_SRCDIR([devops.pkg])
+mit-scheme-pucked-devops (0.11) birchwood; urgency=low
+
+ * Build new upstream 10.1 with 10.1 build hosts. Drop cross-compiling
+ to svm on the build hosts. Fix version<?.
+
+ -- Matt Birkholz <matt@birchwood-abbey.net> Fri, 04 Jan 2019 00:00:00 -0000
+
mit-scheme-pucked-devops (0.10) birchwood; urgency=low
* New release upstream supporting Unicode and plugins.
(a.v (read-host-arch.version host-exe))
(host-arch (symbol->string (car a.v)))
(host-version (cdr a.v))
- (cross? (or (and target (not (string=? target host-arch)))
- (not (version>? host-version '(9 2)))))
+ (cross? (and target (not (string=? target host-arch))))
(master? (cond ((file-directory? ".git")
(not (file-directory? "debian")))
((file-directory? "../.git")
(trun "cd src/ && make check")
(trun "cd src/ && umask 022 && make install")
- (if (not master?)
- (let ((plugin-errors
- (with-subprocess-environment-variable
- "MIT_SCHEME_EXE" (string prefix"/bin/"(project-name))
- (lambda ()
- (reduce + 0
- (map (lambda (plugin)
- (make-install-plugin plugin prefix master?))
- plugin-list))))))
- (if (not (zero? plugin-errors))
- (error "Plugins failed to build:" plugin-errors))))))
+ (let ((plugin-errors
+ (with-EXE-environment-variables
+ master? (string prefix"/bin/"(project-name))
+ (lambda ()
+ (reduce + 0
+ (map (lambda (plugin)
+ (make-install-plugin plugin prefix master?))
+ plugin-list))))))
+ (if (not (zero? plugin-errors))
+ (error "Plugins failed to build:" plugin-errors)))))
+
+(define (with-EXE-environment-variables master? exe thunk)
+ (with-subprocess-environment-variable
+ "MIT_SCHEME_EXE" exe
+ (lambda ()
+ (if master?
+ (with-subprocess-environment-variable
+ "MIT_SCHEME_TOOLCHAIN_EXE" exe
+ thunk)
+ (thunk)))))
(define (read-host-arch.version exe)
(let ((expr (string "(write-line"
(with-loader-base-uri (system-library-uri "devops/")
(lambda ()
(load-package-set "devops")))
-(add-subsystem-identification! "DevOps" '(0 10))
\ No newline at end of file
+(add-subsystem-identification! "DevOps" '(0 11))
\ No newline at end of file
@node Changes
@chapter How so ``pucked?''
-The user visible differences between MIT/GNU Scheme version 9.2.2 and
-MIT/GNU Scheme Pucked version 9.2.11 are detailed in @ref{Release
+The user visible differences between MIT/GNU Scheme version 10.1.3 and
+MIT/GNU Scheme Pucked version 10.1.7 are detailed in @ref{Release
Notes, , , user, MIT/GNU Scheme Pucked User Manual}. This chapter is
a review of @emph{all} source code changes, with reference to the
output of specific @code{git diff} commands.
@item $cmd doc/
The project name, email and version were changed. The manpage and
-user's manual were renamed and updated. The Imail manual was moved to
-the Imail plugin's source directory. All manuals were changed to fit
-inside a new, top-level @file{mit-scheme-pucked.info} file, the only
-Info file installed in the system Directory node. HTML versions of
-the manuals are installed in @file{htmldir} with an index and style
+user's manual were renamed and updated. All manuals were changed to
+fit inside a new, top-level @file{mit-scheme-pucked.info} file, the
+only Info file installed in the system Directory node. HTML versions
+of the manuals are installed in @file{htmldir} with an index and style
sheet. Plugin manuals are also installed there and added to the
index.
multiple Scheme architectures) was dropped.
@item $cmd src/runtime/
-The @code{pucked} feature was introduced. The @code{--edit} command
-line argument handler was stolen from Edwin as well as the
-@code{edit}, @code{edwin} and @code{spawn-edwin} procedures, which now
-autoload Edwin. And runtime source is now included (installed) so
-runtime options need not be installed specially.
+The @code{pucked} feature was introduced. The runtime source is now
+included (installed) so runtime options need not be installed
+specially.
@item $cmd src/edwin/
-A number of Debian/GNU standard files were added to make this a
-standalone plugin ready for @code{dpkg-buildpackage}. These include a
-@file{Makefile.am} and a @file{configure.ac} as well as @file{NEWS},
-@file{AUTHORS}, @file{COPYING}, etc. Files specific to X11
-(@file{key-x11.scm}, @file{xcom.scm}, @file{xmodef.scm} and
-@file{xterm.scm}) were moved into the X11 Screen plugin. The
-@code{edit}, @code{edwin} and @code{spawn-edwin} procedures were
-stolen by the runtime system.
-
-Edwin also changed to accommodate a new Gtk Screen plugin. The old
+Edwin was changed to accommodate a new Gtk Screen plugin. The old
@code{screen} structure type became the abstract SOS class
@code{<screen>} and the concrete class @code{<tty-screen>}. Most of
the existing, tty-specific screen procedures were renamed with a
The few (20) that handle @emph{any} type of screen became SOS generic
procedures.
-@item $cmd src/imail/
-A number of Debian/GNU standard files were added and the manual
-was moved here from the @file{doc/} directory.
-
@item $cmd src/etc/
The Emacs tutorial was moved to the Edwin plugin's source directory.
-Both Edwin and Imail were removed from @file{optiondb.scm} and scripts
-like @file{build-bands.sh}.
-@item $cmd src/compiler/ src/cref/ src/ffi/ src/sf/ src/star-parser/
+@item $cmd src/imail/
+The IMAIL manual was renamed and edited for installation in a new,
+top-level @file{mit-scheme-pucked.info} file in the
+@verb{|${scmdocdir}/info/|} directory. A few minor changes were needed
+to make this plugin buildable separately from the core.
+
+@item $cmd src/compiler/ src/cref/ src/sf/ src/star-parser/
No changes were made to the rest of the core subsystems except their
@file{Makefile-fragment}s. These now install all source files.
+@item $cmd src/ffi/
+The procedures for updating indices of plugins and their documentation
+needed some adjustment to avoid creating a second list of plugins in
+@code{scmdocdir}. And like the other subsystems above,
+@file{Makefile-fragment} was simplified; it now installs all source
+files.
+
@item $cmd src/6001/ src/sos/ src/ssp/ src/win32/ src/xdoc/ src/xml/
No changes were made to the rest of the standard subsystems except
their @file{Makefile-fragment}s.
@item $cmd tests
-No changes were made to the test suite except to load the synchronous
-subprocess option, which is no longer in the default band (along with
-Edwin).
+No changes were made to the test suites.
@end table