aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/scheme.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/scheme.scm')
-rw-r--r--gnu/packages/scheme.scm172
1 files changed, 0 insertions, 172 deletions
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 9dbb3713ee..3e5ab72f20 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -620,178 +620,6 @@ an isolated heap allowing multiple VMs to run simultaneously in different OS
threads.")
(license bsd-3)))
-(define-public scmutils
- (let ()
- (define (system-suffix)
- (cond
- ((string-prefix? "x86_64" (or (%current-target-system)
- (%current-system)))
- "x86-64")
- (else "i386")))
-
- (package
- (name "scmutils")
- (version "20160827")
- (source
- (origin
- (method url-fetch/tarbomb)
- (modules '((guix build utils)))
- (snippet '(begin
- ;; Remove binary code
- (delete-file-recursively "scmutils/mit-scheme")
- #t))
- (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/6946"
- "/scmutils-tarballs/" name "-" version
- "-x86-64-gnu-linux.tar.gz"))
- (sha256
- (base32 "00ly5m0s4dy5kxravjaqlpii5zcnr6b9nqm0607lr7xcs52i4j8b"))))
- (build-system gnu-build-system)
- (inputs
- `(("mit-scheme" ,mit-scheme)
- ("emacs" ,emacs-minimal)))
- (arguments
- `(#:tests? #f ;; no tests-suite
- #:modules ((guix build gnu-build-system)
- (guix build utils)
- (guix build emacs-utils))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build emacs-utils))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- ;; No standard build procedure is used. We set the correct
- ;; runtime path in the custom build system.
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; Required to find .bci files at runtime.
- (with-directory-excursion "scmutils"
- (rename-file "src" "scmutils"))
- (substitute* "scmutils/scmutils/load.scm"
- (("/usr/local/scmutils/")
- (string-append out "/lib/mit-scheme-"
- ,(system-suffix) "/")))
- #t)))
- (replace 'build
- ;; Compile the code and build a band.
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (make-img (string-append
- "echo '(load \"load\") "
- "(disk-save \"edwin-mechanics.com\")'"
- "| mit-scheme")))
- (with-directory-excursion "scmutils/scmutils"
- (and (zero? (system "mit-scheme < compile.scm"))
- (zero? (system make-img))))
- #t)))
- (add-before 'install 'fix-directory-names
- ;; Correct directory names in the startup script.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (scm-root (assoc-ref inputs "mit-scheme")))
- (substitute* "bin/mechanics"
- (("ROOT=\"\\$\\{SCMUTILS_ROOT:-/.*\\}\"")
- (string-append
- "ROOT=\"${SCMUTILS_ROOT:-" scm-root "}\"\n"
- "LIB=\"${ROOT}/lib/mit-scheme-"
- ,(system-suffix) ":"
- out "/lib/mit-scheme-" ,(system-suffix) "\""))
- (("EDWIN_INFO_DIRECTORY=.*\n") "")
- (("SCHEME=.*\n")
- (string-append "SCHEME=\"${ROOT}/bin/scheme "
- "--library ${LIB}\"\n"))
- (("export EDWIN_INFO_DIRECTORY") ""))
- #t)))
- (add-before 'install 'emacs-tags
- ;; Generate Emacs's tags for easy reference to source
- ;; code.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (with-directory-excursion "scmutils/scmutils"
- (apply invoke "etags" (find-files "." "\\.scm")))
- #t))
- (replace 'install
- ;; Copy files to the store.
- (lambda* (#:key outputs #:allow-other-keys)
- (define* (copy-files-to-directory files dir
- #:optional (delete? #f))
- (for-each (lambda (f)
- (copy-file f (string-append dir "/" f))
- (when delete? (delete-file f)))
- files))
-
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (doc (string-append out "/share/doc/"
- ,name "-" ,version))
- (lib (string-append out "/lib/mit-scheme-"
- ,(system-suffix)
- "/scmutils")))
- (for-each mkdir-p (list lib doc bin))
- (with-directory-excursion "scmutils/scmutils"
- (copy-files-to-directory '("COPYING" "LICENSE")
- doc #t)
- (for-each delete-file (find-files "." "\\.bin"))
- (copy-files-to-directory '("edwin-mechanics.com")
- (string-append lib "/..") #t)
- (copy-recursively "." lib))
- (with-directory-excursion "bin"
- (copy-files-to-directory (find-files ".") bin))
- (with-directory-excursion "scmutils/manual"
- (copy-files-to-directory (find-files ".") doc))
- #t)))
- (add-after 'install 'emacs-helpers
- ;; Add convenience Emacs commands to easily load the
- ;; Scmutils band in an MIT-Scheme buffer inside of Emacs
- ;; and to easily load code tags.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (mit-root (assoc-ref inputs "mit-scheme"))
- (emacs-lisp-dir
- (string-append out "/share/emacs/site-lisp"
- "/guix.d/" ,name "-" ,version))
- (el-file (string-append emacs-lisp-dir
- "/scmutils.el"))
- (lib-relative-path
- (string-append "/lib/mit-scheme-"
- ,(system-suffix))))
- (mkdir-p emacs-lisp-dir)
- (call-with-output-file el-file
- (lambda (p)
- (format p
- ";;;###autoload
-(defun scmutils-load ()
- (interactive)
- (require 'xscheme)
- (let ((mit-root \"~a\")
- (scmutils \"~a\"))
- (run-scheme
- (concat mit-root \"/bin/scheme --library \"
- mit-root \"~a:\" scmutils \"~a\"
- \" --band edwin-mechanics.com\"
- \" --emacs\"))))
-
-;;;###autoload
-(defun scmutils-load-tags ()
- (interactive)
- (let ((scmutils \"~a\"))
- (visit-tags-table (concat scmutils \"/TAGS\"))))
-"
- mit-root out
- lib-relative-path
- lib-relative-path
- (string-append out lib-relative-path
- "/scmutils"))))
- (emacs-generate-autoloads ,name emacs-lisp-dir)
- (emacs-byte-compile-directory emacs-lisp-dir)
- #t))))))
- (home-page
- "http://groups.csail.mit.edu/mac/users/gjs/6946/linux-install.htm")
- (synopsis "Scmutils library for MIT Scheme")
- (description "The Scmutils system is an integrated library of
-procedures, embedded in the programming language Scheme, and intended to
-support teaching and research in mathematical physics and electrical
-engineering.")
- (license gpl2+))))
-
(define-public sicp
(let ((commit "225c172f9b859902a64a3c5dd5e1f9ac1a7382de"))
(package