libera/#commonlisp - IRC Chatlog
Search
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
0:27:26
Psybur
char, i dont know if a highschooler with little or no programming is going to enjoy the beauty of sexp
0:29:01
char
Psybur: perhaps not. I was thinking more from a practical prespective under the premise "people with program software in the langauge that they know".
0:36:22
phantomics
CL can get you fast results in many areas, if they're learning web dev it could be good, start by giving them a set of very simple macros to build a web page that expand to cl-who invocations, then move from those simple macros to more customizable ones, revealing how the simple macros expand
3:06:41
Josh_2
Am I allowed to change-class a slot with my metaclass? I'd like to have slots of different classes depending on some of the values of initargs
3:08:12
beach
Maybe it's the fact that I haven't had my morning coffee yet, but I can't understand from what you said what it is that you are trying to do.
3:12:22
Josh_2
basically I want to have a receive slot when :category :receive and a send slot when :category :send
3:14:11
Bike
okay, so in that case you don't really want to change the class of a slot definition - you just want the slot definition to have your class to begin with.
3:14:46
Bike
in which case you want direct-slot-definition-class and effective-slot-definition-class methods.
3:14:58
Bike
i don't remember how the initargs are canonicalized off the top of my head, but it might work
3:19:38
Bike
if i remember correctly there may be a bit of a problem because there is some underspecification about what those initargs actually are, for an effective slot
3:20:57
Bike
sbcl has compute-effective-slot-definition-initargs for that, but it's not standard or even exported