summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/lisp.scm46
1 files changed, 46 insertions, 0 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 720ac070cc..f9e03b18b6 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -62,6 +63,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages perl)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
@@ -1442,3 +1444,47 @@ compressor.  It works on data produced by @code{parse-js} to generate a
      `(("sbcl" ,sbcl)
        ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
     (synopsis "JavaScript compressor")))
+
+(define-public confusion-mdl
+  (let* ((commit "12a055581fc262225272df43287dae48281900f5"))
+    (package
+      (name "confusion-mdl")
+      (version "0.2")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url (string-append "https://gitlab.com/emacsomancer/" name))
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1zi8kflzvwqg97ha1sa5xjisbjs5z1mvbpa772vfxiv5ksnpxp0d"))
+                (file-name (git-file-name name version))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ; there are no tests
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (replace 'build
+             (lambda* (#:key (make-flags '()) #:allow-other-keys)
+               (apply invoke "make" "CC=gcc" make-flags)))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin")))
+                 (install-file "mdli" bin)
+                 #t))))))
+      (native-inputs
+       `(("perl" ,perl)))
+      (inputs
+       `(("libgc" ,libgc)))
+      (synopsis "Interpreter for the MIT Design Language (MDL)")
+      (description "MDL (the MIT Design Language) is a descendant of Lisp.  It
+was originally developed in 1971 on the PDP-10 computer under the Incompatible
+Timesharing System (ITS) to provide high level language support for the
+Dynamic Modeling Group at MIT's Project MAC.  Infocom built the original
+PDP-10 Zork in MDL and their later ZIL (Zork Implementation Language) was
+based on a subset of MDL.  Confusion is a MDL interpreter that works just well
+enough to play the original mainframe Zork all the way through.")
+      (home-page "http://www.russotto.net/git/mrussotto/confusion/src/master/src/README")
+      (license license:gpl3+))))