Lacking Natural Simplicity

Random musings on books, code, and tabletop games.

Playing with Hashlife

C.P. found Robert Smith's implementation of Bill Gosper's HASHLIFE algorithm and wanted my help with running it. I cloned the repo it was in and ran sbcl in the hashlife directory. Then I entered:

(asdf:operate 'asdf:load-op 'charmlife)

That resulted in a Component CHARMLIFE not found error in sbcl. I thought that was odd — it was right there in the current directory. I looked at asdf:*central-registry*, and the only thing in it was the quicklisp directory. The ASDF howto showed an example of setting asdf:*central-registry*:

(setf asdf:*central-registry*
  ;; Default directories, usually just the ``current directory''
  '(*default-pathname-defaults*

    ;; Additional places where ASDF can find
    ;; system definition files
    #p"/home/foo/lisp/systems/"
    #p"/usr/share/common-lisp/systems/"))

Noticing that it had the symbol *default-pathname-defaults* in the new value, I guessed that it being missing from mine caused ASDF to not find the system in the current directory. So I added it and tried again. This time ASDF couldn't find cl-charms. I guessed and used Quicklisp to load it. That worked. Then I looked at charmlife.lisp and looked at the main function and figured out how to run it and how to interact with the program when it was running.

Here's what I had to do:

(setf asdf:*central-registry*
      (cons '*default-pathname-defaults*
            asdf:*central-registry*))
(ql:quickload "cl-charms")
(asdf:operate 'asdf:load-op 'charmlife)
(charmlife:main)
Print Friendly and PDF

Comments

Comments powered by Disqus