freenode/#lisp - IRC Chatlog
Search
5:15:35
no-defun-allowed
I looked at https://irclog.tymoon.eu/freenode/%23lisp?from=2018-11-26T00%3A14%3A11&to=2019-11-26T12%3A14%3A11&search=Lisp%20System%20Implementation&by#
5:22:04
anlsh
Thanks! Seems like the discussion hasn't been extensive, so I'll have to try to catch beach sometime
5:34:25
ebrasca
aeth: I have installed sbcl on my talos II, but I can't make it work with multithreading.
6:13:45
aeth
I think no-defun-allowed was also involved in the discussion iirc and no-defun-allowed knows the threading libraries.
6:15:21
aeth
me niether, but the benchmark would be simple. 1 thread, n threads (where n is number of cores), n*2 threads, n*4 threads (because power has 4-way SMT)
6:20:03
beach
anlsh: A lot of the book contains C code, and the strategy for implementing memory allocation is very different from what most implementations would do.
6:20:48
beach
I had hoped that it would discuss pros and cons with different implementation strategies, but it is basically just the code of one particular implementation.
6:25:09
anlsh
I see. As to the "too much C" complaint, were you hoping the author would bootstrap earlier?
6:26:17
beach
Well, I was hoping for an insight into different strategies. Among them, a strategy where everything is written in Common Lisp, and the pros and cons of that one.
6:27:39
beach
The title of the book suggested that. But, like I said, it is basically just the commented code of one particular implementation.
6:32:00
beach
anlsh: If the goal is to create a general-purpose Common Lisp implementation, today there is no particular reason to write it in a language other than Common Lisp.
6:33:49
anlsh
Thanks, I think you're right in that we're trying to get different things from the book. Follow-up, how much experience did you have with the topics in the book beforehand? I don't have any experience with compilers, and am wondering how approachable it would be
6:34:42
beach
I think it is fairly easy to understand. But it doesn't give any insight into different ways of creating a Common Lisp system.
6:35:35
beach
I am writing SICL at the moment, so I already have experience with different implementation strategies.
6:36:25
beach
anlsh: You would learn more about the pros and cons of different strategies by asking in #sicl than by reading that book.
6:36:42
anlsh
Yeah, my interest it is definitely from a different perspective. I was hoping to use it as an introduction to language implementation in general
6:37:58
beach
But if you don't have too many budget restrictions, go ahead and buy it just to check it out.
6:41:25
anlsh
Well, if it's not usable as an intro text to implementation stuff then I'll hold off for now
6:42:11
beach
Sure. Again, if you want to discuss different strategies, go ahead and do it here or in #sicl.
6:48:15
beach
anlsh: For example, most existing implementations were started before CLOS was part of the standard, so they all incorporate CLOS very late in the build process. I think that with a new implementation, that strategy is not a good one.
6:49:12
beach
Even SBCL suffers from that problem. The compiler is written without the use of generic functions.
6:53:01
beach
For instance, SICL can use DEFCLASS to define the class SYMBOL, but if you don't have CLOS, you have to define it differently.
8:54:32
lukego
I'm reading the ASDF docs but I'm still not sure what it is I'm supposed to do nowadays instead of pushing a directory onto ASDF:*CENTRAL-REGISTRY* to programmatically add a a directory to be searched for .asd systems?
8:57:40
jackdaniel
asdf looks for some magic config files where you may specify what is put where, afair it is described in a manual (but poorly written)
9:34:51
lukego
Situation is that I've used Quicklisp to create a "bundle" of all my dependencies, and setup the Lisp startup env to find all of those, but now I want to add the *.asd that live in my source tree somehow. These systems aren't really "installed" and so I don't have the linked from standard paths and configuration files. Maybe what I need is a custom lisp.sh that makes them findable at startup and use that as inferior-lisp-p
9:36:11
lukego
... So at runtime I don't have Quicklisp and I also don't want to hack well-known files in ~/ etc.
9:36:38
lukego
but actually the custom startup script will be fine, I'm already doing that anyway and just hadn't thought to plug in my systems there.
9:37:45
lukego
I've gone "full nix" and made a little distro of all the Lisp and Emacs packages that I need, and their configurations, using the nix tooling that grovels Quicklisp and MELPA. Seems to work surprisingly well now.
9:55:53
scymtym
lukego: i didn't catch whether you still it, but something like (asdf:initialize-source-registry '(:source-registry (:tree "/path/to/tree") (:tree "/path/to/directory/") :ignore-inherited-configuration)) configures the source registry programmatically
9:56:56
lukego
I really just want to add a path without disturbing what's already there, since that was painstakingly setup by some cl-wrapper.sh script that I didn't write and am only starting to understand now
10:08:42
jdz
lukego: There is also CL_SOURCE_REGISTRY environment variable (if you have not already seen it).
10:09:46
lukego
Thanks. I'm trying now with NIX_LISP_ASDF_PATHS that the nix common lisp wrapper seems to turn into :TREE paths for asdf. However they don't seem to be getting picked up and I'm not clear on how to ask ASDF exactly what its complete set of search paths is at runtime?
10:10:50
jdz
I remember struggling with this as well, and ended up using CL_SOURCE_REGISTRY, but exact details of my struggles evade me...
10:12:10
lukego
I'm concerned that this variable might be clobbered by the wrapper, but here goes nothing...
11:17:37
lukego
I'm looking for but not finding information about how to make org-babel start SLIME session(s) by itself. I feel like I've seen this on the interwebs before though?