Subject: scmutils fails to build

From: Ricardo Wurmus <[email-masked]>
Date: Fri, 25 Jan 2019 23:15:02 +0100

scmutils fails to build with the current MIT Scheme.  I first thought it
might just be minor problems, so I applied some patches in build phases:

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index bcaccb452..bb2a9f9fb 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -680,8 +680,25 @@ threads.")
                                  "(disk-save \"edwin-mechanics.com\")'"
                                  "| mit-scheme")))
                  (with-directory-excursion "scmutils/scmutils"
-                   (and (zero? (system "mit-scheme < compile.scm"))
-                        (zero? (system make-img))))
+                   ;; Case seems to be important.
+                   (substitute* "kernel/utils.scm"
+                     (("#F") "#f"))
+                   (substitute* "display/exdisplay.scm"
+                     (("SPACE") "space"))
+                   (substitute* "enclose/jinx-utils.scm"
+                     (("Space") "space"))
+                   ;; These files only contain comments, so don't compile them
+                   ;; or else we get an error.
+                   (substitute* "mechanics/compile.scm"
+                     (("\"Lagrangian-evolution\"") "")
+                     (("\"Hamiltonian-evolution\"") "")
+                     (("\"generating-functions\"") ""))
+                   (substitute* "compile.scm"
+                     (("\\(cf \"./patch\"\\)") "(display \"skipping\")"))
+
+                   (invoke "mit-scheme" "--load" "compile.scm")
+                   (unless (zero? (system make-img))
+                     (error "could not build scmutils")))
                  #t)))
            (add-before 'install 'fix-directory-names
              ;; Correct directory names in the startup script.
--8<---------------cut here---------------end--------------->8---

Unfortunately, this is not enough as some procedure bindings have
disappeared, such as “guarantee-procedure-arity”.

The compilation results in a lot of warnings; I’m not sure if they are
harmless.  There is no more recent release of scmutils.  There is a port
to Guile 2.0, but it is not obvious how to compile it:

    https://www.cs.rochester.edu/~gildea/guile-scmutils/

--
Ricardo