freenode/lisp - IRC Chatlog
Search
3:47:50
aeth
If you wanted to use do* instead of do you could (afaik) avoid all of these issues with (defmacro foo (varlist endlist &body body) (let ((gensym (gensym))) `(do* (,@varlist (,gensym ,@body)) ,endlist (declare (ignore ,gensym)) ,@body)))
3:59:48
elderK
When should I use values to return multiple things, instead of just using a cons to return two things?
4:01:00
|3b|
if you always need both things, and usually want to keep them around for a while, it might be worth putting them in some data structure
4:01:35
|3b|
if you usually want 1 of the things, but sometimes need the other and have to calculate it anyway, use VALUES
4:09:44
elderK
Also, out of curiosity, is the "in things" evaluated once at the beginnign of the loop? Like, if I add more things to the list I'm moving over, will loop handle that?
4:10:38
|3b|
there are some specific modifications you are allowed to do, so check specs if it matters
4:11:28
|3b|
usually if i want to iterate a changing list i do something like (loop with tmp = list for x = (pop tmp) while tmp ...) or similar
4:13:47
|3b|
modifying the car of a cons doesn't change the structure of any lists it is part of, i think that is allowed while iterating a list
5:04:58
|3b|
you can destructure result of multiple-value-list though, at the expense of probably consing
5:05:44
|3b|
(not sure if any of the loop implementations in general usage optimize that out or not, i think sacla LOOP does)
5:26:38
beach
It is important to read those Common Lisp HyperSpec entries, because the Common Lisp language is not defined by what an implementation accepts.
5:32:20
|3b|
ACTION hadn't thought about it previously, but i guess you could put loop-finish in a for = clause to terminate early for some of the cases where mixing them would be convenient
5:34:55
elderK
So it's okay to use a loop without actually like, doing any looping? It's ability to like, destructure stuff is very, very useful.
6:08:54
elderK
:) Are there any like, libraries or something worth studying to see how to do binary-IO well in CL? Say, parsing image formats and stuff?
6:09:31
elderK
I've been pestering you all a lot today, so, I just wanted to say thanks. You guys have helped me so much, and have made jumping into Lisp much more enjoyable than it would be otherwise.
6:10:21
on_ion
this one -> https://www.reddit.com/r/lisp/comments/6uc0s2/pngload_fast_and_fully_conforming_png_decoder_in/
7:33:10
flip214
help, please. slime git HEAD, sbcl git HEAD, and I get a message "invalid number of arguments: 5" but with an unusable stack trace.
8:05:21
flip214
well, the CREATE-REPL seems to cause it in some way. don't think that vlime is at fault per se
8:08:20
flip214
sadly, (TRACE "SWANK") or similar only leads to Help! 11 nested errors. SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded.
8:21:02
flip214
even a (sleep 3600) or (loop) in close-connection% (I planned to attach via GDB) doesn't work as expected
8:24:33
flip214
hmmm, #+(or) before (defun monkey-patch-stream-printing ...) makes it look okay again
8:29:44
flip214
luis: contrib/swank-presentation-streams.lisp (defun monkey-patch-stream-printing) for sbcl
8:41:28
flip214
minion: memo for dougk: Hi Doug, your SBCL change 14c8a92609 breaks current SLIME. JFI. basic workaround in https://github.com/phmarek/slime/commit/7c3a4c48f6804510c1bd26f97ff09f58f2bfe85a.
8:47:49
flip214
any SLIME maintainers (luis?): basic workaround for https://github.com/sbcl/sbcl/commit/14c8a92609 in https://github.com/phmarek/slime/commit/7c3a4c48f6804510c1bd26f97ff09f58f2bfe85a
8:54:59
luis
flip214: swank-presentation-streams has been very problematic in the past so it's basically unsupported at this point. We need a proper API from SBCL for this to ever work reliably
8:58:34
elderK
Guys, how do you do the equivalent of (define x (let ((stuff.)) (lambda (....) ....))) in CL?
9:11:15
luis
flip214: what could we do? Rename it to something scary? Did you notice that there was some even fishier monkey patching going on? (#+#:disable-dangerous-patching) I thought that at that point the contrib had stopped doing anything interesting on SBCL
9:28:17
elderK
At least, as far as I care to go with it. I don't really need to read stuff from file.
10:17:34
elderK
The idea is, you are given a world of some configuration. Find out how to add to that such that after simulation, the entire world is infected. The goal is to use the minimum number of infected individuals.
11:11:30
flip214
luis: https://github.com/phmarek/slime/commit/e3c3540786a000d7afee1cd420b99c3ba3c5f7f7 instead of the old version
11:11:42
flip214
minion: memo for dougk: https://github.com/phmarek/slime/commit/e3c3540786a000d7afee1cd420b99c3ba3c5f7f7 is a newer version
11:59:05
luis
flip214: found the e-mail where Stas outlines what a proper API should look like: https://sourceforge.net/p/sbcl/mailman/message/33102884/
13:58:50
beach
I think I may have gotten Quicklisp confused with an incorrect ASDF file. Is there a way to clear the idea that Quicklisp has of local projects, so that I can do the register-local-projects from scratch?
13:59:45
jdz
beach: have you tried removing the system-index.txt from local-projects? Or is it something else you're after?
14:27:41
ecraven
RFC 1459: Because of IRC's scandanavian origin, the characters {}| are considered to be the lower case equivalents of the characters []\, respectively. This is a critical issue when determining the equivalence of two nicknames.
14:36:45
ecraven
luis: I've found comments that imply that freenode did implement this years back, but that might have changed