4 ms·
It would be possible to have manually-managed Lisp. I think there is actually nothing in the standard which explicitly asks for a GC being present - just that t
by _ph_ 5y ago
It would be possible to have manually-managed Lisp. I think there is actually nothing in the standard which explicitly asks for a GC being present - just that there is no "free" function in the standard either. The GC of SBCL is to my knowledge written in Lisp itself. Carefully so, that no heap allocations are caused by the code.
- tgbugs 5y agoThis is not accurate. The SBCL runtime and GC are written in C because there are better tools in C for debugging the kinds of errors that one encounters at that level of the system. I can't find the note in the SBCL source repo but if you dig around a bit you will find it.
- pjmlp 5y agoWhich is anyway just one implementation. Many tend to mix the choice of implementation language, with other criteria that the authors cared more about.
- pjmlp 5y agoCommon Lisp allows for manual memory management on the low level layers. That is after all how Lisp workstations like Interlisp-D or Lisp Machines were implemented, and those features carried on into Common Lisp.