phoe changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
tophullyte has joined #commonlisp
Bike has quit [Quit: Connection closed]
thegreatcatadore has joined #commonlisp
random-nick has quit [Ping timeout: 272 seconds]
<hashfunc569> i'm having trouble with UIOP:WITH-TEMPORARY-FILE. i want to WRITE something to the file. then i want to UIOP:READ-FILE-STRING. but when i UIOP:READ-FILE-STRING, i get an empty string "". here's the minimal reproducible example:
<hashfunc569> (uiop:with-temporary-file (:stream s :pathname p :keep t) (write 'yo :stream s) (uiop:read-file-string (namestring p)))
<markasoftware> Need to flush it maybe
<markasoftware> Try (finish-output s) before read
<jmes> pjb: Thanks, it's not exactly what I'm looking for, but I've been exploring some options.
<Xach> hashfunc569: out of curiosity, why are you using an intermediary temporary file?
<jmes> Question: how can I have name conflicts with COMMON-LISP when I don't :USE it in my DEFPACKAGE form? Details here https://dpaste.com/HETRVSJPS
<etimmons> hashfunc569: using an intermediate file does seem weird. But I think adding :close-stream after you write should fix it (assuming you no longer want to write to the stream)
<Guest74> jmes: seems cl+qt is exactly that.
<Guest74> oops, misread.
triffid has quit [Remote host closed the connection]
<Xach> jmes: looks weird to me. i don't see an obvious reason in what you shared.
<jmes> I restarted my lisp image and it works. I think it was because I was using COMMON-LISP in the previous DEFPACKAGE, then I fixed it and tried to re-run QL:QUICKLOAD but that remembered the old symbols
s-liao has joined #commonlisp
<Xach> ah. delete-package can help there.
triffid has joined #commonlisp
<hashfunc569> markasoftware: ok i'll give that a go when i get back
<hashfunc569> Xach: the cli tool that i'm using requires that i use a file & i reallyyy don't feel like learning a new library. i'm just gonna use this approach to get it up-and-running, and then i'll refactor the code and whatnot
<hashfunc569> etimmons: i tried adding :close-stream earlier and to no avail, but i'll try again when i get back
<jmes> Xach: ty, I didn't know about delete-package
gjvc has quit [Quit: leaving]
gjvc has joined #commonlisp
lottaquestions has joined #commonlisp
tophullyte has quit [Ping timeout: 272 seconds]
lucerne has quit [Read error: Connection reset by peer]
lucerne has joined #commonlisp
razetime has joined #commonlisp
karlosz has quit [Ping timeout: 256 seconds]
wyrd has quit [Remote host closed the connection]
wyrd has joined #commonlisp
<hashfunc569> markasoftware: etimmons: (FINISH-OUTPUT s) and :CLOSE-STREAM both work after i'm done writing to the stream. thanks
<char[m]> Is there some rules about what macros can expand into? Are there certain macros that are not allowed to expand into implementation specific functions?
Bike has joined #commonlisp
<Bike> there are not really any general rules about what standard macros expand into, if that's what you're asking
<Bike> sometimes it's defined that a macro expansion involves a call to some function, as with the MOP macros for example, but that's not a guarantee that the function call is directly in the expansion; e.g. sbcl's defclass expands into a call to something like load-defclass, which is a function that calls ensure-class as specified
<char[m]> Just to clarify, I am talking about only macros defined in ansi. the load-class you refer to is implementation specific.
<char[m]> s/load-class/load-defclass/
Inline__ has joined #commonlisp
Inline has quit [Ping timeout: 240 seconds]
<Bike> yes, but i mean, defclass is part of ansi
<Bike> and it can expand into load-defclass, which is not, even though mop defines that the expansion of defclass needs to call the generic function ensure-class
orestarod has quit [Ping timeout: 268 seconds]
thegreatcatadore has quit [Quit: thegreatcatadore]
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
jmes has quit [Remote host closed the connection]
<hashfunc569> how can transform everything in a form like how MAPCAR does, but instead for a tree?
<hashfunc569> i've tried SUBST-IF but it doesn't give me access to the form itself
<hashfunc569> or does it?
<Bike> what form?
<hashfunc569> i think an example is better suited for this question
<hashfunc569> (mapcar (lambda (x) (+ x 10)) '(1 2 3)) --> (11 12 13)
<hashfunc569> ^ that's what i expect
<hashfunc569> (subst-if (lambda (x) (+ x 10)) #'integerp '(1 2 3)) --> (#<FUNCTION (LAMBDA (X)) {536963CB}> #<FUNCTION (LAMBDA (X)) {536963CB}> #<FUNCTION (LAMBDA (X)) {536963CB}>)
<hashfunc569> ^ that's not what i want
<hashfunc569> (subst-if (lambda (x) (+ x 10)) #'integerp '(1 2 3)) -- > (11 12 13)
<hashfunc569> ^ that's what i want
<Bike> oh, you want a transformation
<Bike> yeah, subst-if doesn't do that
<hashfunc569> is there a function that does do that?
<Bike> not in the standard
<hashfunc569> so there isn't like a MAPCAR equivalent for trees?
<Bike> no. and it would have to be a bit more complicated, since you don't want to substitute everything
<Bike> since you have the test, and separately, the transformation
<hashfunc569> there has to be something simple available
<hashfunc569> or a simple strategy
Oladon has joined #commonlisp
<hashfunc569> all i can think of is using a recursive mapcar
<Oladon> I'm attempting to override a defsetf from another package, and it works when I manually evaluate it in SLIME, but not when I quickload the package -- anyone have any ideas as to what I might be missing?
<hashfunc569> is there any way to iterator over a tree
<markasoftware> Not in the standard.
<hashfunc569> markasoftware: but subst essentially does it
<markasoftware> Oh interesting
<Bike> (defun maptree (function test tree &key (key #'identity)) (cond ((funcall test (funcall key tree)) (funcall function tree)) ((consp tree) (cons (maptree function test (car tree) :key key) (maptree function test (cdr tree) :key key))) (t tree)))
<hashfunc569> Bike: thanks, i'll probably use that if i can't figure out how to mold subst to the way i need it
<hashfunc569> SUBST is clearly accessing the elements, because it can compare the elements
<hashfunc569> all i want is the element that SUBST is currently looking at
<Bike> you cannot do what you want with subst
<Bike> Oladon: not sure i understand what you're doing, but maybe the problem is a symbol being read in a different package than what you expect?
<hashfunc569> Bike: truth
<Oladon> Bike: Hmm... I've in-package'd to the package of the original defsetf, but perhaps you're on to something... I'd assumed #:package the same as :package, but is it not?
<Bike> it is the same for your purpose
<Oladon> Hrm.
<Bike> so what's the scenario here? you have a system that includes a setf definition that overrides a setf definition in another system?
<Oladon> Correct -- I'm overriding hunchentoot's session-value setf with my own.
<Oladon> (I suspect it's an ugly thing to do and that I'm doing it in an ugly way, but I'll deal with that later)
<Bike> maybe the problem has to do with recompiling hunchentoot? if you're using defsetf, you will have to recompile any previously compiled (setf (session-value ...) ...) to put the new definition in
<Oladon> Hmm...
<Oladon> I didn't realize that, but it makes sense... let's see...
<Bike> (ditto define-setf-expander)j
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
<Oladon> That doesn't seem like the issue... the setf comes after the definition (same file)
terrorjack has joined #commonlisp
<Oladon> The thing that's weird to me though is that if I run a setf in the SLIME REPL, it calls my override... but if I just quickload the package (still in SLIME) and call an applicable method through localhost, it'll still run Hunchentoot's default one
<Bike> that really sounds like there's an old setf form that needs recompilation
razetime has quit [Read error: Connection reset by peer]
<Oladon> It does, doesn't it...
<Oladon> hrm.
<Oladon> Is there a way to specify in my asd that a particular package dependency should be recompiled after a component is loaded?
<Oladon> Or what would be the best way to handle that?
dre has quit [Ping timeout: 252 seconds]
luis has quit [Quit: The Lounge - https://thelounge.chat]
<beach> Good morning everyone!
<Oladon> Morning beach!
luis has joined #commonlisp
<beach> ::notify kpoeck Thanks, fixed!
<Colleen> beach: Got it. I'll let kpoeck know as soon as possible.
lucerne has quit [Remote host closed the connection]
razetime has joined #commonlisp
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
lucerne has joined #commonlisp
semz_ has joined #commonlisp
Lord_Nightmare has joined #commonlisp
akoana has quit [Quit: leaving]
semz has quit [Ping timeout: 260 seconds]
mfiano has quit [Quit: WeeChat 3.4]
Bike has quit [Quit: Connection closed]
s-liao has quit [Quit: Client closed]
pranavats has left #commonlisp [Error from remote client]
tyson2 has quit [Remote host closed the connection]
dre has joined #commonlisp
s-liao has joined #commonlisp
s-liao has quit [Client Quit]
waleee has quit [Ping timeout: 240 seconds]
Guest74 has quit [Quit: Connection closed]
dre has quit [Ping timeout: 240 seconds]
<contrapunctus> Uhm...I'm trying to help a first-time programmer install SBCL on their Windows machine.
<contrapunctus> Ah, they had accidentally installed the source tarball rather than the MSI installer.
Oladon has quit [Quit: Leaving.]
Guest74 has joined #commonlisp
masinter has joined #commonlisp
zacque has joined #commonlisp
mfiano has joined #commonlisp
dre has joined #commonlisp
<contrapunctus> s/installed/downloaded/
aartaka has joined #commonlisp
mfiano has quit [Read error: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac]
mfiano has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
splatt990 has quit [Ping timeout: 240 seconds]
lisp123 has joined #commonlisp
hashfunc569 has quit [Ping timeout: 240 seconds]
s-liao has joined #commonlisp
aartaka has quit [Ping timeout: 250 seconds]
lucerne has quit [Remote host closed the connection]
aartaka has joined #commonlisp
lucerne has joined #commonlisp
pranavats has joined #commonlisp
mfiano has quit [Ping timeout: 250 seconds]
Nselm has joined #commonlisp
mfiano has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
mfiano has quit [Ping timeout: 272 seconds]
mfiano has joined #commonlisp
lisp123 has joined #commonlisp
mfiano has quit [Ping timeout: 252 seconds]
razetime has quit [Ping timeout: 256 seconds]
razetime has joined #commonlisp
zbrown[m] has quit [Quit: You have been kicked for being idle]
lisp123 has quit [Remote host closed the connection]
wacki has joined #commonlisp
lisp123 has joined #commonlisp
karlosz has joined #commonlisp
gaqwas has joined #commonlisp
notzmv has quit [Ping timeout: 240 seconds]
karlosz has quit [Ping timeout: 250 seconds]
gaqwas has quit [Remote host closed the connection]
aartaka has quit [Ping timeout: 250 seconds]
aartaka has joined #commonlisp
dickbar__ has joined #commonlisp
ahammer has joined #commonlisp
ahammer has quit [Client Quit]
ahammer has joined #commonlisp
ahammer has quit [Ping timeout: 252 seconds]
ahammer has joined #commonlisp
ahammer has quit [Remote host closed the connection]
s-liao has quit [Ping timeout: 256 seconds]
mon_aaraj has quit [Ping timeout: 252 seconds]
mon_aaraj has joined #commonlisp
cosimone has joined #commonlisp
shka has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
mfiano has joined #commonlisp
mgl has joined #commonlisp
Dynom has joined #commonlisp
semz_ is now known as semz
mfiano has quit [Quit: WeeChat 3.4]
Inline__ is now known as Inline
lisp123 has quit [Remote host closed the connection]
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
mgl has quit [Ping timeout: 256 seconds]
lisp123 has joined #commonlisp
X-Scale` has joined #commonlisp
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
VincentVega has joined #commonlisp
lisp123 has quit [Ping timeout: 240 seconds]
s-liao has joined #commonlisp
igemnace has joined #commonlisp
cage has joined #commonlisp
notzmv has joined #commonlisp
aartaka has quit [Ping timeout: 256 seconds]
tyson2 has joined #commonlisp
mon_aaraj has quit [Ping timeout: 252 seconds]
mon_aaraj has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
aartaka has joined #commonlisp
lisp123 has joined #commonlisp
igemnace has quit [Remote host closed the connection]
lisp123 has quit [Ping timeout: 250 seconds]
thegreatcatadore has joined #commonlisp
orestarod has joined #commonlisp
mgl has joined #commonlisp
Inline has quit [Quit: Leaving]
lucerne has quit [Read error: Connection reset by peer]
razetime has quit [Ping timeout: 272 seconds]
random-nick has joined #commonlisp
orestarod has quit [Quit: Leaving]
Nselm has quit [Quit: Client closed]
<gin> learning hunchentoot from http://edicl.github.io/hunchentoot/ . how does the function header-in* name &optional request => header avoid race condition? if two requests lands very close to each other, wouldn't the header-in* call while handling the first request end up reading the headers of the second request?
Inline has joined #commonlisp
d4ryus has quit [Quit: WeeChat 3.4]
Inline has quit [Client Quit]
Inline has joined #commonlisp
d4ryus has joined #commonlisp
orestarod has joined #commonlisp
s-liao has joined #commonlisp
<semz> gin: You should probably read up on dynamic variables. Hunchentoot (likely) rebinds *request* with (let ((*request* ...)) ...) for each handler. The rebindings for different requests don't observe each other.
perrierjouet has quit [Quit: WeeChat 3.4]
perrierjouet has joined #commonlisp
lucerne has joined #commonlisp
razetime has joined #commonlisp
<gin> semz: thanks
zachel_ has quit [Quit: DIsconnected: v7+nano]
zachel has joined #commonlisp
dirtcastle_ is now known as dirtcastle
splatt990 has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
Bike has joined #commonlisp
Bike has quit [Client Quit]
Bike has joined #commonlisp
amb007 has quit [Ping timeout: 268 seconds]
qhong has quit [Read error: Connection reset by peer]
qhong has joined #commonlisp
Guest74 has quit [Quit: Ping timeout (120 seconds)]
amb007 has joined #commonlisp
zachel has quit [Quit: DIsconnected: v7+nano]
mayuresh has joined #commonlisp
<mayuresh> hello. :)
mayuresh has quit [Client Quit]
zachel has joined #commonlisp
mfiano has joined #commonlisp
zacque has quit [Quit: Goodbye :D]
nature has joined #commonlisp
s-liao has quit [Quit: Client closed]
sterni has quit [Quit: WeeChat 3.3]
Guest74 has joined #commonlisp
NotThatRPG_ has joined #commonlisp
sterni has joined #commonlisp
NotThatRPG has quit [Ping timeout: 252 seconds]
psf has quit [Ping timeout: 272 seconds]
psf has joined #commonlisp
<drbluefall> ' ')/
mgl has quit [Ping timeout: 256 seconds]
<beach> drbluefall: Are you new here? I don't recognize your nick. And I completely failed to interpret your message.
<drbluefall> I've been lurking for a while, and it's a wave!
<beach> Ah, got it!
<beach> So, welcome!
<drbluefall> danke ^~^
* drbluefall goes back to searching for a half-decent mysql lib
lucerne has quit [Remote host closed the connection]
lucerne has joined #commonlisp
razetime has quit [Ping timeout: 240 seconds]
amb007 has quit [Read error: Connection reset by peer]
razetime has joined #commonlisp
amb007 has joined #commonlisp
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 250 seconds]
robin has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
robin has joined #commonlisp
lisp123 has quit [Ping timeout: 250 seconds]
Everything has joined #commonlisp
aartaka has quit [Ping timeout: 240 seconds]
tyson2 has quit [Remote host closed the connection]
robin has quit [Remote host closed the connection]
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
mfiano has quit [Quit: WeeChat 3.4]
mfiano has joined #commonlisp
nature has quit [Ping timeout: 256 seconds]
mfiano has quit [Client Quit]
mfiano has joined #commonlisp
masinter has quit [Quit: ~ Trillian - www.trillian.im ~]
lisp123 has joined #commonlisp
tyson2 has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
waleee has joined #commonlisp
razetime has quit [Ping timeout: 252 seconds]
Bike has quit [Quit: Connection closed]
thegreatcatadore has quit [Quit: thegreatcatadore]
perrierjouet has quit [Quit: WeeChat 3.4]
perrierjouet has joined #commonlisp
amb007 has quit [Ping timeout: 250 seconds]
masinter has joined #commonlisp
amb007 has joined #commonlisp
Oladon has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
thegreatcatadore has joined #commonlisp
robin has joined #commonlisp
<jmercouris> Is there some kind of append that can accept both single elements and lists?
<jmercouris> Something in Alexandria that does not distinguish?
<jmercouris> When I say “single elements”, I mean atoms of course
<jmercouris> I guess I could mapcar ensure list or something
<jmercouris> Or make a macro of my own
<jmercouris> But this seems a common enough practice that there should be something you know
nature has joined #commonlisp
<yitzi> Maybe use mapcan.
_whitelogger_ has joined #commonlisp
Guest74 has joined #commonlisp
Bike has joined #commonlisp
<jackdaniel> mapcant ;)
<jackdaniel> this function name always sounds funny to me
<drakonis> mapcar?
<jackdaniel> mapcan
<drakonis> ha, i havent used that yet
<edgar-rft> 𝄞 ♩ ♫ mapchant ♪ ♬ ...
<jackdaniel> jmercouris: (mappend 'ensure-list lists)
tyson2 has quit [Read error: Connection reset by peer]
tyson2 has joined #commonlisp
<yitzi> jackdaniel: mapwecandoit
<jackdaniel> (yes-we-can-p ...)
VincentVega has quit [Remote host closed the connection]
tyson2 has quit [Remote host closed the connection]
thegreatcatadore has quit [Quit: thegreatcatadore]
thegreatcatadore has joined #commonlisp
Bike has quit [Quit: Connection closed]
edgar-rft has quit [Remote host closed the connection]
edgar-rft has joined #commonlisp
Brucio-61 has quit [Ping timeout: 240 seconds]
<yitzi> 5
<drbluefall> can't seem to figure out how to define a root route with snooze...
cosimone has joined #commonlisp
<drbluefall> either it's painfully obvious and I'm missing it or it's not possible
tane has joined #commonlisp
tane has quit [Changing host]
tane has joined #commonlisp
d4ryus has quit [Quit: WeeChat 3.4]
Bike has joined #commonlisp
d4ryus has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
mon_aaraj has quit [Ping timeout: 272 seconds]
Everything has quit [Quit: leaving]
mon_aaraj has joined #commonlisp
thegreatcatadore has quit [Quit: thegreatcatadore]
karlosz has joined #commonlisp
Brucio-61 has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<jmercouris> yitzi: of course I can write a function, just don’t want to reinvent the wheel for my codebase if there is some sort of “idiomatic” example
<jmercouris> jackdaniel: perhaps this is the way
<Bike> if the wheel is simple enough it can be faster to reinvent it than to find an existing one
<Bike> or something. metaphor: overextended
karlosz has quit [Ping timeout: 250 seconds]
<yitzi> I would argue that writing your own simple "wheels" is idiomatic in CL versus including bloated libraries that attempt to solve all problems but end up doing it badly ... IMHO.
Alfr has quit [Quit: Leaving]
<jackdaniel> yitzi: I second that opinion :)
<jackdaniel> jmercouris: you are perhaps welcome ,)
<yitzi> jackdaniel: consider the motion passed! ;)
gaqwas has joined #commonlisp
<Oladon> drbluefall: What're you trying to do with a root route? I just append to *api-dispatch-table* for my root route.
<Oladon> Or you may be able to get by just by setting snooze:*home-resource*
<drbluefall> I'm just trying to get my bearings
<Oladon> Gotcha
<Oladon> I can show you an example from mine if you'd like
<drbluefall> My language before this was Rust, and I used a lot of actix-web
<drbluefall> That would be appreciated, yes.
<Oladon> It's a bit messy, but: https://pastebin.com/TyEHkyy0
<Oladon> Let me know if you have any questions -- I left line 3 in there so you can see the most basic root route setup
notzmv has quit [Ping timeout: 240 seconds]
tane has quit [Quit: Leaving]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
<drbluefall> interesting
<drbluefall> question is... how do I adapt that to Clack ?
<drbluefall> op
<drbluefall> nvm
<drbluefall> setting `snooze:*home-resource*` works
<Oladon> :)
Bike has quit [Quit: Connection closed]
Alfr has joined #commonlisp
Dynom has quit [Quit: WeeChat 3.4]
wyrd has quit [Ping timeout: 240 seconds]
wyrd has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
thegreatcatadore has joined #commonlisp
<drbluefall> ^~^
<drbluefall> (sidenote)
<drbluefall> I really, *really* wish there was an equivalent of `docs.rs` for CL
<sterni> https://quickref.common-lisp.net/index-per-library.html is the closest you can get, I suppose
wacki has quit [Quit: Leaving.]
masinter has quit [Ping timeout: 240 seconds]
hashfunc569 has joined #commonlisp
Bike has joined #commonlisp
brocolis has joined #commonlisp
Oladon has quit [Quit: Leaving.]
shka has quit [Ping timeout: 252 seconds]
gaqwas has quit [Ping timeout: 272 seconds]
nature has quit [Ping timeout: 272 seconds]
szkl has joined #commonlisp
christos has joined #commonlisp
christos has quit [Quit: Client closed]
christos has joined #commonlisp
christos has quit [Client Quit]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 250 seconds]
hashfunc569 has quit [Ping timeout: 240 seconds]
christos has joined #commonlisp
cosimone has quit [Quit: ERC (IRC client for Emacs 27.1)]
<christos> hello, I am trying to load an asdf package for which the .asd file is in the current directory.
Bike has quit [Quit: Connection closed]
<christos> but when I do (asdf:load-system '#:my-package) I get "Component #:MY-PACKAGE not found"
<yitzi> You probably need to tell asdf to search that folder. https://asdf.common-lisp.dev/asdf.html#Configuring-ASDF
notzmv has joined #commonlisp
eddof13 has joined #commonlisp
Giovanni has joined #commonlisp
random-nick has quit [Ping timeout: 240 seconds]
<yitzi> Or if you use quicklisp then you can put your project in `~/quicklisp/local-projects/` ... I personally make config file `~/.config/common-lisp/source-registry.conf` and put something like this in it https://plaster.tymoon.eu/view/2984#2984
eddof13 has quit [Client Quit]
lisper29 has joined #commonlisp
christos has quit [Quit: Client closed]
thegreatcatadore has quit [Ping timeout: 272 seconds]
wmblathe_ is now known as wmblathers
hashfuncadb has joined #commonlisp
lisper29 has quit [Quit: Leaving]
hashfuncadb has quit [Remote host closed the connection]
hashfuncf39 has joined #commonlisp
christos has joined #commonlisp
<christos> yitzi I am looking through the asdf docs but I can't find anything
<christos> (regarding how to check the asdf configuration)
Bike has joined #commonlisp
christos has quit [Quit: Client closed]