Skip to content

Commit

Permalink
mdk 1.2.8 (new formula)
Browse files Browse the repository at this point in the history
Add the GNU MDK suite (an implementation of Don Knuth's MIX computer
from "The Art of Computer Programming."

Closes Homebrew/legacy-homebrew#36180.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
  • Loading branch information
tml authored and MikeMcQuaid committed Jan 25, 2015
1 parent bcd6aa5 commit 51138f4
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions Formula/mdk.rb
@@ -0,0 +1,52 @@
class Mdk < Formula
homepage "https://www.gnu.org/software/mdk/mdk.html"
url "http://ftpmirror.gnu.org/mdk/v1.2.8/mdk-1.2.8.tar.gz"
mirror "https://ftp.gnu.org/gnu/mdk/v1.2.8/mdk-1.2.8.tar.gz"
sha1 "43bd40a48f88b3458c3bb6ccfd62d254b85c5fb8"

depends_on "gtk+3"
depends_on "glib"
depends_on "libglade"
depends_on "flex"
depends_on "guile"
depends_on "intltool" => :build
depends_on "pkg-config" => :build

def install
system "./configure", "--disable-debug",
"--disable-dependency-tracking",
"--disable-silent-rules",
"--prefix=#{prefix}"
system "make", "install"
end

test do
(testpath/"hello.mixal").write <<-EOS.undent
* (1)
* hello.mixal: say "hello world" in MIXAL (2)
* (3)
* label ins operand comment (4)
TERM EQU 19 the MIX console device number (5)
ORIG 1000 start address (6)
START OUT MSG(TERM) output data at address MSG (7)
HLT halt execution (8)
MSG ALF "MIXAL" (9)
ALF " HELL" (10)
ALF "O WOR" (11)
ALF "LD" (12)
END START end of the program (13)
EOS
system "#{bin}/mixasm", "hello"
output = `#{bin}/mixvm -r hello`

expected = <<-EOS.undent
Program loaded. Start address: 1000
Running ...
MIXAL HELLO WORLDXXX
... done
EOS
expected = expected.gsub("XXX", " " *53)

assert_equal expected, output
end
end

0 comments on commit 51138f4

Please sign in to comment.