tyson2 has quit [Remote host closed the connection]
Lemniscate is now known as Sauvin
xlarsx has joined #commonlisp
Devon has joined #commonlisp
hineios5 has joined #commonlisp
hineios has quit [Ping timeout: 268 seconds]
hineios5 is now known as hineios
nemkell has left #commonlisp [#commonlisp]
xlarsx has quit [Ping timeout: 260 seconds]
prokhor__ has quit [Remote host closed the connection]
green__ has joined #commonlisp
atgreen has quit [Ping timeout: 265 seconds]
xlarsx has joined #commonlisp
igemnace has joined #commonlisp
Devon has quit [Ping timeout: 265 seconds]
green__ has quit [Ping timeout: 252 seconds]
hineios has quit [Quit: Ping timeout (120 seconds)]
hineios has joined #commonlisp
cosimone has joined #commonlisp
_cymew_ has joined #commonlisp
Lycurgus has joined #commonlisp
Lycurgus has quit [Quit: Exeunt juan@acm.org]
puchacz has joined #commonlisp
cosimone has quit [Ping timeout: 265 seconds]
<beach>
A DEFGENERIC form expands to a call to ENSURE-GENERIC-FUNCTION, but ENSURE-GENERIC-FUNCTION can also be called directly. So let's say we have a DEFGENERIC form with an incorrect function name, say a number. Then the error being signaled should be a subtype of PROGRAM-ERROR since we are dealing with incorrect program syntax.
<beach>
However, if a number were given as the required argument to ENSURE-GENERIC-FUNCTION, then the error being signaled should *not* be a subtype of PROGRAM-ERROR.
<beach>
So we need two separate condition types, one used by the expander of DEFGENERIC and one used by ENSURE-GENERIC-FUNCTION.
<beach>
Of course, when given (DEFGENERIC 234 (A B)), SBCL signals a SIMPLE-ERROR.
<beach>
And when given (ENSURE-GENERIC-FUNCTION 234 :LAMBDA-LIST '(A B)), SBCL signals a different SIMPLE-ERROR.
<beach>
Now if we use scymtym's s-expression-syntax library, most of the PROGRAM-ERRORs would be defined there.
cosimone has joined #commonlisp
attila_lendvai has joined #commonlisp
<beach>
My observation also means that it would not be so good for the DEFGENERIC expander to delegate error checking to ENSURE-GENERIC-FUNCTION.
<jackdaniel>
doesn't the spec only say, that an "error" is signaled if the function name is not valid?
<beach>
I am looking at PROGRAM-ERROR, which says it should be used to signal incorrect program syntax.
gpiero has quit [Quit: Quitting...]
gpiero has joined #commonlisp
<beach>
It doesn't seem that DEFGENERIC is required to indicate an error at all, unless I am missing something.
<jackdaniel>
is the 'incorrect program syntax' defined somewhere? i.e does incorrect argument type constitue the invliad syntax? (the page for program error mention mismatched go and block tags, so it /may/ be clue that incorrect argument type is not that)
<beach>
Yeah, I don't think it is very well defined.
<beach>
But I didn't mean to imply that signaling a PROGRAM-ERROR was required by the standard.
<beach>
Only that it would be desirable to do so.
<jackdaniel>
I see
<jackdaniel>
defgeneric specification mentions a call to fboundp for the name, so that would imply a type-error if the name is not a function name
<beach>
There are certain situation that are clearly incorrect syntax, but I would be unable to enumerate all such situations.
xlarsx has quit [Remote host closed the connection]
<beach>
Yes, that would certainly be conforming.
<beach>
I guess I am leaning toward PROGRAM-ERROR for as many situations as possible that can be detected by the front-end of a compiler. The situation you mention can't be detected until load time in general.
<beach>
And I think the best way of getting there is through scymtym's library.
* scymtym
starts sweating
<beach>
But that library needs documentation, and at last one more person that understands it.
<scymtym>
it needs the eclector treatment: fine-grained specific error conditions, optional error recovery and documentation
random-nick has joined #commonlisp
<scymtym>
but that takes longer since everything related to the s-expression syntax is less clear cut
<beach>
I agree. But the basic abstraction is correct I think.
<scymtym>
i think so too
<beach>
When I think of how much code I can remove from CST-to-AST by using it, that's already great. Then, code for the same purpose exists in every implementation.
Dynom_ has joined #commonlisp
<beach>
And it would have to exist in an IDE too. So there is a lot of potential factoring there.
Dynom_ is now known as Guest3316
<scymtym>
yeah
<beach>
And some implementations would have their error handling improved, like my example from SBCL shows, i.e., that it signals a SIMPLE-ERROR rather than a PROGRAM-ERROR.
<beach>
I mean, working on SICL, I realize that a large amount of work is defining condition types for every possible error situation, and then supply good condition reporters for those conditions.
<beach>
It is tempting to just use a SIMPLE-ERROR from time to time, with the intention of making something better later on.
<scymtym>
same for restarts and their reports, depending on the subsystem
<beach>
Yes, that's often even more work.
<scymtym>
well not same, to a lesser extend
<beach>
It is less important perhaps, but more work to do it right.
<pjb>
beach: I agree that macros should signal program-error (at macro-expansion-time) when indicated, and functions type-error or others. It'd be nicer.
<beach>
Yes, thanks.
<pjb>
I think the key is whether the error is signaled at macroexpansion-time or at run-time.
<beach>
That sounds about right.
xlarsx has joined #commonlisp
<beach>
My dilemma is whether to start using scymtym's library right away, thereby essentially replacing CST-to-AST, or wait until I have taken enough time to understand it.
<beach>
So far, my plan has been the second one. But then, since SICL is not finished yet anyway, it has no users, so if something breaks, that's not a big deal.
causal has joined #commonlisp
xlarsx has quit [Remote host closed the connection]
pve has joined #commonlisp
xlarsx has joined #commonlisp
<beach>
Anyway, time for a lunch break. I'll catch up on further discussions later.
<jcowan>
beach (when you return): I think that in the case of a function like ensure-generic-function whose main purpose is to support a macro, returning PROGRAM-ERROR is legitimate. The definition of P-E says "conditions related to program syntax", which is (to my mind) deliberately weasel-worded. In particular it does not say "conditions of illegal program syntax" or the like.
<jcowan>
s/returning/signaling
hineios has quit [Ping timeout: 265 seconds]
xlarsx has quit [Remote host closed the connection]
hineios has joined #commonlisp
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 260 seconds]
cage has joined #commonlisp
dilated_dinosaur has quit [Remote host closed the connection]
xlarsx has joined #commonlisp
ec has joined #commonlisp
xlarsx has quit [Ping timeout: 250 seconds]
ec has quit [Ping timeout: 258 seconds]
dilated_dinosaur has joined #commonlisp
<pve>
Hi! Can anyone recommend a trie library or similar (for storing strings with common prefixes in memory)? A quick search turned up "cl-trie", but are there any others?
dilated_dinosaur has quit [Remote host closed the connection]
<jackdaniel>
the problem is that this often expands to do { ... } while(fx--) , in finally clause fx may happen to be -1;; afair beach's loop doesn't have this problem
<phantomics>
I see, figured something like that
<jackdaniel>
s/f--/--f/
<phantomics>
I suppose I can just pad the number by 1 and subtract that inside the loop
<phantomics>
I'm working to optimize this as much as possible because it runs for every element of the array it's transforming
cosimone has quit [Ping timeout: 246 seconds]
green__ has joined #commonlisp
<_death>
you can use THE instead of the OF-TYPE
<_death>
or, if you actually do from 1 downto 0, just unroll it
<beach>
jcowan: The problem with that idea is to determine what the "main purpose" of a function is.
<beach>
phantomics: Very perplexing indeed, which is why I didn't do it that way in SICL LOOP.
<phantomics>
_death: The actual count is from an arbitrary number down to 0
<phantomics>
If I do :the (unsigned-byte 8) it doesn't work, says :the is an unknown keyword
<beach>
phantomics: You would have to use the THE special operator in the DO clause.
<beach>
phantomics: There is no THE LOOP keyword.
<phantomics>
Oh I see
<beach>
jcowan: If it were an implementation-specific function, and its name is not exported, and the function is used only by a macro expander, then that would make it clear. But this is a standardized function with its own documentation, and that makes it a lot less clear.
<_death>
phantomics: another option is (loop for fx of-type (unsigned-byte 8) = 1 then (1- fx) do (print fx) (when (zerop fx) (return)))
<beach>
Am I the only one who think this LOOP implementation is defective?
<_death>
it makes sense since the test is at the beginning.. how does your implementation handle it?
<beach>
I don't remember. Sorry.
<jackdaniel>
I think that this is a defect too; but of a low importance (but the of-type case makes it more annoying than I thought before - at least on sbcl and ccl)
<beach>
LOOP was one of the first modules I wrote, and it was a long time ago.
tyson2 has joined #commonlisp
<_death>
also (loop for fx of-type (unsigned-byte 8) = 1 then (1- fx) do (print fx) until (zerop fx)) conforms to loop grammar.. I need to loosen up my loop reflex a bit to only avoid termination-test before variable-clause
<_death>
that restriction is a bigger loop defect in my opinion
<phantomics>
It's certainly a defect if you can run into a type error that shouldn't happen if your program is compiled as written
<beach>
_death: That's not a LOOP defect. It's a restriction in the standard.
<_death>
beach: defect in loop specification
attila_lendvai has quit [Ping timeout: 265 seconds]
<_death>
beach: your question raises the more subtle question of viewpoint: do you think the implementation is defective (but obeying the standard) or the specification is defective (for allowing such an implementation)
<_death>
*your remark
ec has joined #commonlisp
cosimone has joined #commonlisp
<_death>
sicl seems to solve it by using another variable for the counter
skeemer has quit [Remote host closed the connection]
<jackdaniel>
btw, putting aside the type error stuff, is it conforming to use the variable in the finally clause, or it is an undefined behavior?
<_death>
the latter, as I recall
skeemer has joined #commonlisp
<jackdaniel>
I see, thanks
ec has quit [Ping timeout: 258 seconds]
hineios has quit [Read error: Connection reset by peer]
hineios has joined #commonlisp
ec has joined #commonlisp
ec has quit [Ping timeout: 258 seconds]
xlarsx has joined #commonlisp
attila_lendvai has joined #commonlisp
<_death>
the relevant wording in the spec that I can find now is in 6.1.2.2 "These local variables exist until loop iteration terminates, at which point they cease to exist." together with 6.1.7.2 "The finally construct causes the supplied compound-forms to be evaluated in the loop epilogue after normal iteration terminates."
<_death>
though that suggests variables introduced using WITH should also not be referenced.. hmm
<beach>
_death: I am not smart enough to determine whether a restriction in the standard is there for good reasons or not. I am just barely smart enough to implement an existing standard.
<beach>
Otherwise, I might very well make the same mistake that some newbies make, like wanting lexical variables to be available at run time.
<jackdaniel>
that's certainly useful on high debug settings
<phantomics>
Another thing: When I compile the content of https://dpaste.com/2GU7ZUB48, it prints no warnings. However, when it is generated as part of a larger macro output and compiled, I get this note: 'doing unsigned word to integer coercion (cost 20) from OUTPUT to "<return value>"'
<pjb>
_death: that said the accumulation variables are definitely available in the FINALLY. I think the WITH variables should be too.
<pjb>
For the other loop variables, it should be noted that the FINALLY clause may be executed before the end value is reached.
<pjb>
(assert (= 5(loop for i below 10 while (< i 5) finally (return i)))) ; seems to be conforming to me.
<_death>
eh, no need to underestimate yourself :) the standard is not of uniform quality and should be subject to informed critique.. anyone may make mistakes but a group of participants can raise awareness to them
<phantomics>
Why could this be? I'm basically generating a bunch of functions and putting them in a hash table, then building a small function that fetches a function from the hash table based on certain criteria
<jcowan>
beach: Sure, it is not clear at all. I only suggest that its unclarity is strategic (like many unclarities in the ANS and other standards) and further that it is *legitimate* to raise PROGRAM-ERROR in such a situation, since it does have something to do with illegal syntax. Whether you *choose* to do it is outside my scope, but I don't think you can say that the standard prohibits it.
<_death>
pjb: right, see the issue on cliki by Haible.. he talks about returning the result of a collect-into variable for example
<pjb>
On the other hand in (loop for i below 10 while (< i 10) finally (return i)) #| --> 10 |# I think it's not correct to read I in the FINALLY clause.
<beach>
_death: Yes, a group of experienced people would be required.
<_death>
pjb: his proposal to is to only restrict for-as variables
<jcowan>
Speaking of which, the definition of UNWIND-PROTECT does not actually *say* that the cleanup forms are executed as an implicit PROGN (this point has actually just come up on a mailing list), but they are, aren't they?
<pjb>
Exactly.
<pjb>
jcowan: their result is not used.
<pjb>
(unwind-protect 1 2 3) #| --> 1 |#
<jcowan>
True. What I meant is that they are executed in left to right order.
<pjb>
So perhaps there's a progn there, but its result is not used, so it could be something else.
<pjb>
there are other forms that execute subforms from left to right.
<jcowan>
Also true, notably procedure calls. But my concern is with U-P specifically.
<pjb>
the left-to-right evaluation rule is general, it's the default in CL.
<jcowan>
Okay, thanks.
Devon has quit [Ping timeout: 268 seconds]
perrierjouet has quit [Quit: WeeChat 3.6]
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 264 seconds]
hineios has quit [Ping timeout: 252 seconds]
hineios has joined #commonlisp
<jackdaniel>
wow, sicl macroexpansion of loop is kind of hard for a reader
<jackdaniel>
beach: shouldn't (sicl-loop:loop with x of-type (unsigned-byte 8) do (print x) until t finally (print `(ha ,x))) ; a) declare x type, b) supply a default value that adheres to the type (i.e 0) ; ?
<beach>
Sounds plausible.
<jackdaniel>
hm, it does neither, x is bound to nil and the type is not declared
<beach>
Thanks for pointing that out.
<jackdaniel>
sure
<jackdaniel>
s/for a reader/for a human reader/
<beach>
I am still looking to extract the LOOP module to a separate module with a new maintainer.
Devon has joined #commonlisp
igemnace has quit [Remote host closed the connection]
Devon has quit [Ping timeout: 260 seconds]
<jackdaniel>
beach: when running loop 'for x on (list 1 2 3)' and printing x in the finally clause, I get (3), however the spec says that the step is applied at the end of /each/ iteration -- shouldn't it be nil in that case? (looking at the expansion, the same strategy as for downto etc is used here, that is a separate variable that is only conditionally assigned to the user variable)
<jackdaniel>
similar `for x in '(1 2 3)` seems to bind x before the loop prologue, but the spec says that the variable var is bound before each iteration so it should be (possibly) NIL in the initially c lause, not 1
<jackdaniel>
I've got to go now, see you \o
<beach>
Take care.
Devon has joined #commonlisp
fe[nl]ix has quit [Remote host closed the connection]
rogersm has quit [Quit: Leaving...]
perrierjouet has joined #commonlisp
ec has joined #commonlisp
<beach>
jackdaniel: Since I ran the tests in the ANSI test suite for SICL LOOP, your remarks suggest that more test cases could be added to the suite.
igemnace has joined #commonlisp
hineios has quit [Read error: Connection reset by peer]
perrierjouet has quit [Remote host closed the connection]
perrierjouet has joined #commonlisp
dBc has joined #commonlisp
dBc has quit [Client Quit]
dBc has joined #commonlisp
jmdaemon has quit [Ping timeout: 248 seconds]
ay is now known as Andrew
fe[nl]ix has joined #commonlisp
Devon has quit [Ping timeout: 268 seconds]
gateway2000 has quit [Quit: Leaving]
<jackdaniel>
they could, ansi-test is not exhaustive by any means (so they sigbal only particular issues, not correctness)
<beach>
Of course. But it would help many people if they were more complete.
Devon has joined #commonlisp
epony has quit [Remote host closed the connection]
jeffrey has joined #commonlisp
<jackdaniel>
I agree, Raymond Toy is very active participant, and we have other contributors. if I remember the case when I'm at computer then I'll make an issue ticket or a pull request, but feel free to beat me to it ;)
<beach>
Heh!
perrierjouet has quit [Quit: WeeChat 3.6]
gateway2000 has joined #commonlisp
shka has joined #commonlisp
ec has quit [Ping timeout: 258 seconds]
dilated_dinosaur has quit [Read error: Connection reset by peer]
perrierjouet has joined #commonlisp
dilated_dinosaur has joined #commonlisp
azimut has quit [Ping timeout: 258 seconds]
Lycurgus has joined #commonlisp
<jackdaniel>
here: https://gitlab.common-lisp.net/ansi-test/ansi-test/-/issues/36 ; also there is a dispute regarding shiftf.7 test that you've added a long time ago - I think that this test is based on a defect in the standard (relating to the previous discussion)
rgherdt has quit [Ping timeout: 265 seconds]
frgo_ has joined #commonlisp
xlarsx has joined #commonlisp
Demosthe1ex has joined #commonlisp
<beach>
Thanks!
Demosthenex has quit [Ping timeout: 252 seconds]
frgo has quit [Ping timeout: 268 seconds]
frgo has joined #commonlisp
xlarsx has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
Demosthenex has joined #commonlisp
frgo_ has quit [Ping timeout: 268 seconds]
Demosthe1ex has quit [Ping timeout: 265 seconds]
Lycurgus has quit [Quit: Exeunt juan@acm.org]
cosimone has quit [Ping timeout: 265 seconds]
pjb has quit [Read error: Connection reset by peer]
pjb has joined #commonlisp
frgo has quit [Read error: Connection reset by peer]
frgo_ has joined #commonlisp
dBc has quit [Quit: leaving]
green__ has quit [Ping timeout: 265 seconds]
tyson2 has quit [Remote host closed the connection]
_cymew_ has quit [Ping timeout: 265 seconds]
aartaka has quit [Ping timeout: 265 seconds]
aartaka has joined #commonlisp
cosimone has joined #commonlisp
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 252 seconds]
thuna` has joined #commonlisp
Oladon has joined #commonlisp
cosimone` has joined #commonlisp
cosimone has quit [Ping timeout: 260 seconds]
tyson2 has joined #commonlisp
cosimone` has quit [Ping timeout: 268 seconds]
epony has joined #commonlisp
waleee has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
igemnace has quit [Remote host closed the connection]
frgo has joined #commonlisp
frgo__ has joined #commonlisp
frgo_ has quit [Read error: Connection reset by peer]
frgo has quit [Ping timeout: 246 seconds]
tyson2 has joined #commonlisp
cosimone has joined #commonlisp
chipxxx has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 265 seconds]
cage has quit [Quit: rcirc on GNU Emacs 27.1]
tyson2 has quit [Remote host closed the connection]
_cymew_ has joined #commonlisp
lisp123 has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
xlarsx has joined #commonlisp
attila_lendvai has quit [Ping timeout: 260 seconds]
lisp123 has quit [Remote host closed the connection]
xlarsx has quit [Ping timeout: 268 seconds]
chip_x has joined #commonlisp
chipxxx has quit [Ping timeout: 252 seconds]
_cymew_ has quit [Ping timeout: 268 seconds]
xlarsx has joined #commonlisp
Guest3316 has quit [Quit: WeeChat 3.6]
random-nick has quit [Ping timeout: 265 seconds]
xlarsx has quit [Ping timeout: 268 seconds]
ttree has joined #commonlisp
rgherdt has joined #commonlisp
random-nick has joined #commonlisp
perrierjouet has quit [Quit: WeeChat 3.6]
xlarsx has joined #commonlisp
xlarsx has quit [Ping timeout: 268 seconds]
rgherdt has quit [Ping timeout: 265 seconds]
cosimone has quit [Ping timeout: 268 seconds]
perrierjouet has joined #commonlisp
ec has joined #commonlisp
pve has quit [Ping timeout: 246 seconds]
son0p has joined #commonlisp
ec has quit [Ping timeout: 258 seconds]
random-nick has quit [Ping timeout: 268 seconds]
karlosz has quit [Quit: karlosz]
azore has joined #commonlisp
Oladon has quit [Quit: Leaving.]
tyson2 has joined #commonlisp
ec has joined #commonlisp
shka has quit [Ping timeout: 260 seconds]
azore has quit [Read error: Connection reset by peer]
jeffrey has quit [Remote host closed the connection]
jeffrey has joined #commonlisp
jeffrey has quit [Read error: Connection reset by peer]
akoana has joined #commonlisp
jeffrey has joined #commonlisp
son0p has quit [Remote host closed the connection]
jeffrey has quit [Ping timeout: 268 seconds]
ec has quit [Ping timeout: 258 seconds]
son0p has joined #commonlisp
perrierjouet has quit [Quit: WeeChat 3.6]
puchacz has quit [Quit: Client closed]
ec has joined #commonlisp
jmdaemon has joined #commonlisp
thuna` has quit [Remote host closed the connection]
perrierjouet has joined #commonlisp
azimut has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
ec has quit [Ping timeout: 258 seconds]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]