libera/#commonlisp - IRC Chatlog
Search
7:18:25
beach
pjb: I think I have taken steps to make myself as replaceable as possible. Most of the techniques are documented in the form of published papers or in the specification. Much of the code has been extracted to independent repositories, usually well documented and including tests. Remaining code is often highly modular and often well commented.
7:20:43
beach
pjb: Bike and karlosz know the compiler fairly well. heisig knows a lot about HIR because he wrote the HIR evaluator. The register allocator was largely written by hayley. The reader is Eclector, so scymtym knows about it. heisig also wrote the entire implementation fo the sequence functions.
7:21:08
beach
pjb: That leaves the details of the bootstrapping technique that I am currently the only one who understands.
7:21:36
beach
Plus, the bootstrapping procedure not being entirely finished, the documentation is not accurate at this point.
7:30:06
beach
Gnuxie knows the assembler and the disassembler. lonjil did a large part of the printer.
7:31:41
beach
I would love to have someone else work on bootstrapping, because that aspect is essential for a final system.
7:33:33
mfiano
Make sure you are using the latest release of SBCL and the Quicklisp dist, and then probably a question for #sbcl
7:43:19
flip214
CodeBitCookie[m]: you need to have some libraries available - in this case, OpenSSL.
14:13:38
akater[m]
IIUC, it means, the implementation must define a method with specializers (standard-generic-function t). SBCL only has (STANDARD-GENERIC-FUNCTION METHOD). Is it my misunderstanding of CLHS, or is it SBCL?
14:16:48
akater[m]
Also CLHS: > remove-method must not signal an error if the method is not one of the
14:17:53
akater[m]
I mean, it could be interpreted as “when the second arg is not a method at all, there should be no error”.
14:19:43
specbot
The ``Arguments and Values'' Section of a Dictionary Entry: http://www.lispworks.com/reference/HyperSpec/Body/01_ddc.htm
14:20:06
beach
Which means that the consequences are undefined if a method is not given to REMOVE-METHOD.
14:20:32
beach
So SBCL just defines those consequences to be that there is no applicable method in that case.
14:21:27
minion
akater[m]: WSCL: Well-Specified Common Lisp. Pronounce it as "whistle". A project to revise the Common Lisp standard in a non-controversial way. See https://github.com/s-expressionists/wscl
14:35:38
lcao201
Hi I am a LISP newbie and reading Practical Common LISP book but have trouble with one of the examples. Could someone help me? The book is at https://gigamonkeys.com/book/
14:36:46
hexology
lcao201: go ahead and ask your question, someone will answer if they have an answer. as they say, "don't ask to ask"
14:37:14
lcao201
Under the heading "Updating Existing Records--Another Use for WHERE", I typed the snippet but the code never updates the *db* global var
14:40:00
Jach
lcao201: did you type the following snippet, (update (where :artist "Dixie Chicks") :rating 11) ?
14:41:03
lcao201
The WHERE is another function in earlier part of the page. Seee https://pastebin.com/XarzeDdM
14:47:01
Jach
lcao201: Maybe start at the beginning of the chapter's snippets and type them in, I just did that and it works fine (updates the ratings from 9 and 8 to 11).
14:51:52
lcao201
Jack, thank you for confirming this! Must be something in the code then. Here is my whole file. https://pastebin.com/gbgrt6ts
15:17:34
lisp123
Any good resources on the theory of testing in interactive languages like Common Lisp?
15:18:02
lisp123
(not testing frameworks, but reasoning / thoughts /etc as it applies to interactive development)
15:27:22
beach
lisp123: It seems to me you always want to start with a fresh image so that everything is in a well defined state that can be repeated.
15:28:14
beach
lisp123: If this were SICL, I would say "fresh global environment" instead, but the only option you have in current Common Lisp implementations to get a fresh global environment is to start a fresh image.
15:34:21
beach
Indeed. And lately I have been thinking that they are a necessity for a single-image IDE.
15:35:09
mariari
beach: there could be a lot of refactoring improvements with first class environments, at least I envision having tools akin to what unison has in regards to refactoring images
15:35:27
beach
With current Common Lisp implementations, it is just too easy to destroy the (single) global environment, and thereby the IDE too.
15:36:01
beach
mariari: You mean using first-class global environments to help with refactoring? How would that work?
15:36:21
lisp123
Yes (at least for me, I do M-x slime-restart-inferior-lisp a lot, which I think is a fair precaution)
15:36:51
beach
lisp123: It is an "unfortunate necessity" rather than "a fair precaution" in my opinion.
15:37:24
mariari
yeah! From what I've seen on Unison they do this at a type level so when types change and changes cascade, you can commit back the changes after everything fits together. For CL in particular we could recompile parts that we know has to play together in a new environment, and then merge the changes when we are more confident the whole system works together, maybe a swap replacement of the old
15:40:46
mariari
I think there is a lot of very cool ideas that can be had once first class environments become more common
15:40:54
lisp123
rotateq: I don't have a list on me, sometimes its running a computation that exceeds the stack, sometimes its clashing symbols after recompiling certain parts of code (the latter I could probably solve without restarting - but I have an easy workflow - restart lisp -> asdf:load-system)
15:42:03
etimmons
I would love to have first class environments. The lack of them is largely what drove me to implement my dependency manager as a second process
15:42:52
lisp123
rotateq: Sorry, I'm not 100% clear on terminology, just when my computation is too big (since I work a lot with permutations and factorials can get big fast)
15:43:52
lisp123
beach: Maybe you read it, maybe its too old, but this seemed interesting http://www.softwarepreservation.org/projects/interactive_c/bib/Sandewall-1978.pdf
15:44:21
beach
rotateq: I restart often when I run SICL bootstrapping with SBCL as a host, simply because each execution of the bootstrapping procedure adds methods to some Common Lisp generic functions, and that results in a gradual slowdown of the entire computation. It is much easier to restart than to remove those methods.
15:45:46
beach
lisp123: Erik Sandewall was THE professor of computer science where I went to university. He was in fact the first such professor in Sweden. I was very lucky to have him (and his other group members) as a teacher.
15:46:39
lisp123
beach: Small World! That must have been a great experience. Well I will definitely read it in depth now
15:52:34
beach
rotateq: After my death, every second you spend still being alive, you will catch up.
15:58:24
jeosol
lisp123: Thanks for linking that paper about, should be a good read. Will definitely be reading it sometime
16:07:09
rotateq
beach: There is a myth that Donald Knuth will die in the moment he finishes book 7 (Compilers) of The Art of Computer Programming.
17:19:35
lisp123
jeosol: You are welcome :) P.S. I subscribed to ACM to read some of their papers, if anybody wants an article from there, ping me and hopefully I will have access