libera/#clasp - IRC Chatlog
Search
1:04:50
mixotricha
Hello everyone. Question. In the clasp how are special functions handled? Has ( for example ) mapcar been rewritten somewhere in lisp?
1:16:32
drmeister
mixotricha: bike can answer that tomorrow. Some are functions and some are compiler macros.
1:53:29
Bike
mixotricha: nothing is really special about mapcar. like meister said we do have some functions implemented in C++ for bootstrapping reasons, and sometimes we redefine them once a good lisp compiler is available.
1:57:05
mixotricha
yeah I just picked mapcar out of the hat. I am just curious about how much of lisp being implemented in lisp was involved in clasp.
1:59:27
Bike
if we didn't happen to need mapcar for our boot process, we could just implement it in terms of loop or a map1 or what have you
2:08:51
mixotricha
I asked about this in the clschool yesterday. Mostly just as a mental exercise. What is going on is I am building an L-Machine and so a lot of pondering about lisp making more lisp. One then has to think for a moment about special functions. Seemed natural to ask, 'What would foo look like in lisp?" ...
2:10:20
mixotricha
Do you know where in the clasp source I might go to see how the map functions were implemented. As I have thought about in any language this has been a bit of a habit of mine. To go interrogate objects and look at code for how things were done.
2:16:33
Bike
https://github.com/clasp-developers/clasp/blob/main/src/lisp/kernel/lsp/seq.lisp#L417-L442 here's map, https://github.com/clasp-developers/clasp/blob/main/src/lisp/kernel/cmp/opt/opt-sequence.lisp#L140-L177 compiler macro
2:16:43
Bike
if you have a running clasp you can just use slime M-. to jump to the source of a function
2:20:34
mixotricha
Ah lovely. Thank you once again for the help. I've got the emacs+slime configured but it is taking me a bit to get used to it.
5:52:33
drmeister
::notify yitzi I got ext:run-program working and I've made changes to asdf and submitted a merge request.