freenode/#lisp - IRC Chatlog
Search
7:29:50
|3b|
lots of random array accesses at calculated indices, so hard to statically guarantee they are in-bounds
7:36:49
|3b|
ACTION wonders if asdf memoizes/caches results while figuring out how to load a system. loading a system with 4.5k deps, which are nodes of a fairly shallow tree, and wondering if it is recalculating the interior nodes every time it sees them or not
7:38:08
|3b|
probably doesn't help that i'm including some of the intermediate deps twice... i should probably fix that
7:51:32
la_mettrie
which lisp dialect to study? which paperbook about lisp to buy? (i have no particular use for the language, just interested in reading about different languages. i am a linux/unix user, inspired by the traditional hacker culture, emacs user)
7:52:45
minion
la_mettrie: direct your attention towards pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
7:53:23
beach
la_mettrie: If you already know how to program in some other language, then PCL is usually what people here recommend.
8:02:58
beach
la_mettrie: There are some thing that did not exist then, but mostly it is still valid.
8:03:26
beach
la_mettrie: We recommend Quicklisp to install systems, and most people here probably use Emacs with SLIME.
8:03:26
la_mettrie
ok, just wanted to be sure that 2005 is the latest edition so that i do not grab an older one
8:06:27
no-defun-allowed
you can install slime via quicklisp (or emacs's package manager) which may be easier to maintain
8:06:58
Shinmera
la_mettrie: one note is that the book will talk about a "Lisp Box". This is outdated and likely won't work anymore. There is a replacement however, called Portacle. https://portacle.github.io
9:17:08
|3b|
ah, most of the time seems to be quicklisp reading its list of systems to see if it knows about them :/
10:28:57
beach
In a few minutes I need to leave to go pick up drmeister and his family at the airport. I'll deal with it later. Thanks.
10:39:06
jackdaniel
brand new is exaggeration, sicl is brand new in a sense of being build from scratch
10:41:01
pjb
Branding is usually rather instantaneous. Building sicl, some parts get old before others are even designed :-)
11:21:43
makomo
shka_: that's probably not his intention though, but i'm still leaving the possibility
11:26:47
makomo
paule32: take a look at all of the format directives and find what you need http://www.lispworks.com/documentation/lw445/CLHS/Body/22_c.htm
12:03:33
no-defun-allowed
You could hypothetically have no gc, the standard says nothing about requiring one.
12:12:35
pjb
no-defun-allowed: Movitz doesn't have a GC (on purpose, since it's a kernel implementation implementation).
12:21:07
pjb
no-defun-allowed: If only we could make a few clones of ourselves, to take Movitz and fly with it!
12:33:22
phoe
...damn, I just realized that I'm facing a problem that could easily be solved using continuations - if I only could save the stack somewhere and somehow
13:23:56
phoe
shka_: implement a reader for a Lisp-like protocol, except the reader may be interrupted at any point (for example, by NIL returned from READ-CHAR-NO-HANG) and it should be possible for it to remember what it read so far and restart reading when input is available again
13:30:57
phoe
in the worst case, I'll just remember the part of the string that was read so far, save it somewhere, and then start reading again from a concatenated stream
13:31:53
phoe
if we read "(1 2" then we save that string somewhere, so later we may read "3 4 5)" which will give us the resulting (1 23 4 5)
13:33:22
phoe
let's assume that we're reading from a network socket - when a character is read from that socket's stream, it won't be read again from it
13:38:05
pjb
But for a character by character repeatition, it'd be harder, because in your example, the prefix would already be parsed…
13:39:13
phoe
Yep, my issue is that I need to be able to return control any time READ-CHAR-NO-HANG returns NIL, meaning, there's no character available for reading.
13:39:33
phoe
And then I need to be able to rewind the stack and continue reading from the exact same position and state.
13:45:44
shrdlu68
shka_: I tried a tree thing: https://gist.github.com/shrdlu68/117d02da6390d9ff8d45dd719412f17e
14:17:22
asarch
I'm planning to write a web interface for an IRC client written in Common Lisp so I could check all the messages from any PC connected in the LAN
14:18:24
oni-on-ion
asarch: sounds cool. i had a very pleasant time setting up cl-irc for a similar purpose the other day.
14:26:34
phoe
How can I create an output stream that forever blocks? I need it for testing purposes.
14:27:09
phoe
In other words, I want to create a modified string output stream that, for example, outputs "a b" and then hangs indefinitely (READ-CHAR-NO-HANG returns NIL on it).
14:29:18
phoe
sure, but the in-memory flexistream will AFAIK behave the same way a string output stream behaves
14:30:10
shrdlu68
shka_: Interestingly, converting to a vector instead of a class improves performance 2x.
14:30:49
shrdlu68
Actually that might have to do with the fact that each child node is only created when needed.
14:32:21
shka_
if i was you, i would try to introduce bitmask into my tree node and use this to compress vector
14:46:11
dlowe
I'm pretty sure that means you've set the socket to non-blocking mode before connecting
14:54:44
flip214
phoe: you can use a CONCATENATED-STREAM and have first a STRING-OUTPUT-STREAM and then some pipe or socket
14:54:54
Posterdati
mmmh I placed iolib/sockets:socket-error in the thread, but fallen in to the debugger...
15:03:00
_death
it's unlikely that you actually want something that "hangs indefinitely".. you can use gray streams to define a stream that makes sense
15:04:48
Posterdati
people! I founf the problem, I used remote-host and remote-port on the error handler-case on the dead socket :), now I removed them and it worked!
15:04:54
flip214
phoe: if you would be so kind as to create a github project with a stream that outputs _only_ what gets written to it? a "pipe stream"?
17:49:28
phoe
...or rather, wait, it does have two versions - a gray streams one and a non-gray-streams one