M

Metamodular

metamodular.com · Personal blog · on HN since 2014

Metamodular is Robert Strandh's site on Common Lisp, covering the SICL implementation, fast generic dispatch, and Lisp operating system designs.

What HN saysHN links it for Lisp OS specifications and CLOS dispatch papers, and commenters discuss them in terms of Lisp machines and Lisp performance.
22HN people shared it
14linked it in comments
12stories submitted
512story points
1 year agolast shared
2014people per year2026

Most-shared posts

  1. 1
  2. 2
    Lisp Operating System (2015)
    3 people · 173 points · first shared 2019 · 61 comments on HN
  3. 3
    Call site optimization.pdf
    3 people · first shared 2021
  4. 4
    What is wrong with Lisp?
    2 people · 4 points · first shared 2017 · 1 comments on HN
  5. 5
  6. 6
    Land of lisp
    2 people · first shared 2022
  7. 7
    Generic dispatch.pdf
    2 people · first shared 2015
  8. 8
  9. 9
  10. 10
    Developer Productivity Differences
    1 people · 3 points · first shared 2019 · discussion on HN
  11. 11
  12. 12
    The Psychology of Learning
    1 people · 1 points · first shared 2014 · discussion on HN
  13. 13
    Common lisp semantics
    1 people · first shared 2022
  14. 14
    Clostrum.pdf
    1 people · first shared 2021
  15. 15
    Sicl related libraries
    1 people · first shared 2025

What HN people wrote when they linked it

pfdietz · 2022-11-23
CLOS is currently slower, but there are some cool ideas floating around to greatly speed it up. The roadblock has been CLOS's dynamism: everything needs to be redefinable at run time, even the classes. But it's possible for an implementation to get high efficiency even with that, using separate code snippets that are reached by a single branch (although I don't know if any CL implementation does this yet): http://metamodular.com/SICL/call-site-optimization.pdf (I think a modern version of Common Lisp would take this idea and run with it, making most or all built-in functions generic.) CLOS really shines when it comes to problems that benefit from method combination, which allows one to decompose computations into reusable nuggets that can be reassembled using multiple inheritance.
flavio81 · 2017-10-13
>Does this roughly offer the same benefits that the old lisp machines provided? This project is cool, but, in short, no. Please take a look at this paper, which answers the questions of which benefits could be obtained with a Lisp OS. This goes regardless of if such OS has or does not has a nice IDE. http://metamodular.com/lispos.pdf This is a really good paper, recommended lecture.
drmeister · 2019-02-10
A growing group of us are implementing Clasp (https://github.com/clasp-developers/clasp) - a new Common Lisp that uses Robert Strandh's Cleavir compiler, interoperates with C++ and uses LLVM as the backend. Clasp is the foundation of Cando - a programming environment for the development of molecular devices (https://www.youtube.com/watch?v=mbdXeRBbgDM&feature=youtu.be). Robert Strandh is an exceptionally clear thinker and a fantastic programmer. I can't count the times that Robert has implemented changes to the Cleavir compiler source code and without him being able to test it (long story) passed it to me and it ran flawlessly in Clasp. I implemented his fast generic function solution within Clasp based on another of his papers (http://metamodular.com/generic-dispatch.pdf). Edit: Basically - if Robert writes it up in a paper - I want to have the implementation. Once we develop molecular robots - they are going to implement LispOS. :-)
v9v · 2025-08-29
Maybe not applicable for the XR platform here, but you could add introspection capabilities not present in Linux, a la Genera letting the developer hotpatch driver-level code, or get all processes running on a shared address space which lets processes pass pointers around instead of the Unix model of serializing/deserializing data for communication (http://metamodular.com/Common-Lisp/lispos.html)
moonchild · 2022-09-14
Python is not call-by-reference. If it were, we would expect 2 to be printed below, but it is not: >>> def f(x): ... x = 2 >>> x = 1 >>> f(x) >>> x 1 One might refer to r as being referentially transparent, or immutable (I don't know if it is--I am assuming). I would refer to python as using uniform reference semantics - http://metamodular.com/common-lisp-semantics.html
joserr · 2022-06-07
"This book should not have been published in its current form. It contains many instances of incorrect and inconsistent terminology, as well as many other errors."[1] [1]http://metamodular.com/Books/land-of-lisp.html
hayley-patton · 2022-01-01
The suggested approach of generating stubs is exactly how late binding in the SICL Common Lisp implementation works, as described in [0]. The scheme also allows generating specialised entry points to avoid keyword argument parsing, and the stub/snippet code can also be used for inline caching for generic dispatch. [0] http://metamodular.com/SICL/call-site-optimization.pdf
louai · 2021-05-27
Macro expansion is done in the host environment, not the target environment. You can compile the macro definition to a function taking a form and an environment. This would be something you arrange for within your compiler. CLTL2 specifies a function `parse-macro ` which is available in most implementations. Portably you can call it using the `trivial-cltl2` package: https://github.com/Zulu-Inuoe/trivial-cltl2 Robert Strandh has written both papers and code for handling environments: http://metamodular.com/SICL/environments.pdf http://metamodular.com/clostrum.pdf
ollran · 2021-05-02
Thanks for sharing this. Call-site optimization for Common Lisp seems quite interesting after looking at the article. http://metamodular.com/SICL/call-site-optimization.pdf
fiddlerwoaroof · 2021-02-09
Almost all of them have something like that: Robert Strandh has a technique that looks promising[1] and is being implemented as a library, I believe. CLOS’s customization hooks allow you to switch out the implementation of “generic function” on a case-by-case basis which can be used to implement this sort of optimization. [1]: http://metamodular.com/SICL/generic-dispatch.pdf
pcr910303 · 2019-12-19
The original link[0] disappeared (which I found while reading about an article of LispOS[1]), so I'm posting the archive version. :-( [0] http://www.shirky.com/writings/ontology_overrated.html [1] http://metamodular.com/Common-Lisp/lispos.html
tokenrove · 2015-05-26
Features like generic dispatch in Common Lisp result in similar amounts of dynamism; methods and classes can be defined and redefined at any time so a lot of work goes into making that fast; see for example http://metamodular.com/generic-dispatch.pdf Also similar to Kernel#set_trace_func, CL has TRACE (http://www.lispworks.com/documentation/lw61/CLHS/Body/m_tracec.htm) but unlike generic dispatch, that's not expected to be fast.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close