jackdaniel 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/>
<irileas> Since pretty much any amount of values can be returned, doesn't that mean that there needs to be some kind of dynamic memory allocation in the background?
<rigidus> I'm not sure if I can help, but I would like to see a code example
varjagg has quit [Ping timeout: 260 seconds]
<irileas> Sure! (block a (unwind-protect (return-from a (values 1 2 3)) (print 42)))
<irileas> Essentially, the (values ...) expression could return any amount of values, and the print statement could be arbitrarily complex
<irileas> So that would mean that the implementation must be prepared to store a variable amount of values somewhere (where exactly?) until the printing is done
<irileas> If we start nesting expressions, this would mean that there must be some kind of memory allocation going on... but that would be quite slow, so I doubt that that's the actual implementation
<rigidus> I can only assume that the return values can be stored in the environment for this. But I could be wrong.
agent1011001 has joined #commonlisp
aartaka has quit [Ping timeout: 248 seconds]
<irileas> Right... does the environment have space designated for that?
aartaka has joined #commonlisp
<rigidus> It depends on how the environment is organized. Technically, I don't see a big problem in allocating memory to store return values
agent1011001 has quit [Client Quit]
<scymtym> note that the possible number of returned values can be restricted to an implementation defined limit: http://www.lispworks.com/documentation/lw71/CLHS/Body/v_multip.htm
<ixelp> CLHS: Constant Variable MULTIPLE-VALUES-LIMIT
<Nilby> Using (disassemble (lambda () <your code>)) you can see what an implementation does. Most likely multiple values are just on the stack.
<irileas> That would make sense. Does unwind-protect just call the unwinding part "on top" of the return value then?
dlowe has quit [Ping timeout: 252 seconds]
bhall has joined #commonlisp
occ has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
dlowe has joined #commonlisp
irileas has quit [Quit: Leaving]
<rigidus> Not really. When a continuation will be passed outside to code outside the unwind-protect, memory is allocated and parameters and return values are placed in the heap instead of the stack. This allows the continuation to exist outside the scope of the unwind-protect form, so that even after the stack has been unwound, the continuation can still be used. The parameters and return values are stored in a data structure that is allocated
<rigidus> within the heap, and the continuation itself is a pointer to this data structure. When the continuation is called, the heap is searched for the data structure and the parameters and return values are loaded into the appropriate registers or memory locations.
<rigidus> That's my guess, which I haven't really tested yet. I think that if you assign a lambda from within a form UNWIND-PROTECT to a global variable, you can check this point in more detail
ec has quit [Ping timeout: 255 seconds]
MichaelRaskin has quit [Quit: MichaelRaskin]
ttree has joined #commonlisp
dlowe has quit [Ping timeout: 255 seconds]
<Bike> CL continuations do not have indefinite extent. (funcall (block a (lambda () (return-from a)))) has undefined behavior. so you don't need the heap to do this stuff much.
<Bike> you don't need unwind-protect to see the necessity of values storage, anyway. multiple-value-prog1 is enough. for that case it's pretty easy to store a variable amount of values on the stack.
dlowe has joined #commonlisp
yottabyte has joined #commonlisp
<rigidus> Bike, Where I could know about this?
<rigidus> (I mean UB with funcall like it)
<rigidus> May I read this somewhere in CL-standard?
Fare has joined #commonlisp
<Bike> clhs block
<ixelp> CLHS: Special Operator BLOCK
<Bike> "The block named name has lexical scope and dynamic extent." also "Once established, a block may only be exited once"
<Bike> clhs 5.2
<specbot> Transfer of Control to an Exit Point: http://www.lispworks.com/reference/HyperSpec/Body/05_b.htm
<ixelp> CLHS: Section 5.2
<Bike> "The consequences are undefined if an attempt is made to transfer control to an exit point whose dynamic extent has ended."
thonkpod_ has quit [Ping timeout: 248 seconds]
random-nick has quit [Ping timeout: 248 seconds]
thonkpod has joined #commonlisp
thonkpod has quit [Ping timeout: 252 seconds]
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
azimut_ has quit [Quit: ZNC - https://znc.in]
azimut has joined #commonlisp
ec has joined #commonlisp
thonkpod has joined #commonlisp
thonkpod has quit [Ping timeout: 252 seconds]
thonkpod_ has joined #commonlisp
thonkpod_ has quit [Ping timeout: 252 seconds]
<dlowe> that sounds like an extra fun time
tyson2 has quit [Remote host closed the connection]
dlowe has quit [Ping timeout: 260 seconds]
thonkpod has joined #commonlisp
thonkpod has quit [Ping timeout: 252 seconds]
<hayley> Compiling with Continuations gave me opinions on how to handle calls to curried functions internally, but I'm still not sure how to handle Lisp to Coq calls. Might just have the macro take specifications for what functions to extract.
akoana has quit [Quit: leaving]
bilegeek has joined #commonlisp
thonkpod has joined #commonlisp
occ has quit [Ping timeout: 255 seconds]
Lycurgus has joined #commonlisp
beepbooptheory` has quit [Ping timeout: 252 seconds]
Oladon has quit [Quit: Leaving.]
occ has joined #commonlisp
beepbooptheory` has joined #commonlisp
<rigidus> Bike, perfect, thank you!
<Bike> no problem
<Bike> i have spent more time implementing this crap than most people, so feel free to ask questions
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
<beach> Very true!
paulapatience has joined #commonlisp
aulapatiencep has joined #commonlisp
aulapatiencep has quit [Remote host closed the connection]
paulapatience has quit [Quit: Quit]
paulapatience has joined #commonlisp
yottabyte has quit [Quit: Connection closed for inactivity]
beepbooptheory` has quit [Ping timeout: 252 seconds]
beepbooptheory` has joined #commonlisp
jeosol has quit [Ping timeout: 260 seconds]
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
ym has joined #commonlisp
jeosol has joined #commonlisp
Fare has quit [Ping timeout: 260 seconds]
Fare has joined #commonlisp
beepbooptheory` has quit [Ping timeout: 255 seconds]
paulapatience has quit [Remote host closed the connection]
sloanr has joined #commonlisp
bilegeek has quit [Quit: Leaving]
pranavats has quit [Ping timeout: 260 seconds]
Fare has quit [Ping timeout: 260 seconds]
paulapatience has joined #commonlisp
Fare has joined #commonlisp
mingus has joined #commonlisp
Fare has quit [Ping timeout: 248 seconds]
waleee has joined #commonlisp
waleee has quit [Ping timeout: 268 seconds]
igemnace has joined #commonlisp
Inline has quit [Ping timeout: 268 seconds]
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
avocadoist has quit [Client Quit]
avocadoist has joined #commonlisp
avocadoist has quit [Client Quit]
avocadoist has joined #commonlisp
avocadoist has quit [Read error: Connection reset by peer]
avocadoist has joined #commonlisp
avocadoist has quit [Client Quit]
avocadoist has joined #commonlisp
avocadoist has quit [Read error: Connection reset by peer]
avocadoist has joined #commonlisp
aartaka has joined #commonlisp
occ has quit [Ping timeout: 268 seconds]
Cymew has joined #commonlisp
occ has joined #commonlisp
kenran has joined #commonlisp
sloanr has quit [Remote host closed the connection]
pve has joined #commonlisp
rgherdt has joined #commonlisp
attila_lendvai has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 260 seconds]
kenran` has joined #commonlisp
kenran has quit [Ping timeout: 248 seconds]
shka has joined #commonlisp
Brucio-61 has joined #commonlisp
scymtym has joined #commonlisp
OlCe has joined #commonlisp
aartaka has quit [Ping timeout: 255 seconds]
aartaka has joined #commonlisp
beach` has joined #commonlisp
beach has quit [Killed (NickServ (GHOST command used by beach`!~user@2a01:cb19:a62:6300:f643:454d:90b6:4cd0))]
beach` is now known as beach
Helmholtz has quit [Quit: You have been kicked for being idle]
puchacz has joined #commonlisp
pranavats has joined #commonlisp
Nilby has quit [Ping timeout: 255 seconds]
Brucio-61 has quit [Ping timeout: 260 seconds]
Brucio-61 has joined #commonlisp
varjagg has joined #commonlisp
ym has quit [Read error: Connection reset by peer]
occ has quit [Ping timeout: 260 seconds]
OlCe has quit [Ping timeout: 252 seconds]
OlCe has joined #commonlisp
ttree has quit [Ping timeout: 252 seconds]
azimut has quit [Ping timeout: 255 seconds]
ym has joined #commonlisp
jello_pudding has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
OlCe has quit [Ping timeout: 268 seconds]
OlCe has joined #commonlisp
quoosp has joined #commonlisp
pjb has quit [Ping timeout: 248 seconds]
jmdaemon has quit [Ping timeout: 252 seconds]
aartaka has quit [Ping timeout: 252 seconds]
prxq has joined #commonlisp
aartaka has joined #commonlisp
luna-is-here has quit [Quit: luna-is-here]
luna-is-here has joined #commonlisp
occ has joined #commonlisp
prxq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
jmdaemon has joined #commonlisp
mingus has quit [Ping timeout: 252 seconds]
mingus has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
dlowe has joined #commonlisp
Guest6344 has joined #commonlisp
Guest6344 has quit [Excess Flood]
Guest6344 has joined #commonlisp
Guest6344 has quit [Excess Flood]
Guest6344 has joined #commonlisp
Guest6344 has quit [Excess Flood]
aartaka has quit [Ping timeout: 248 seconds]
aartaka has joined #commonlisp
luis7 is now known as luis
prokhor has quit [Ping timeout: 260 seconds]
prokhor has joined #commonlisp
random-nick has joined #commonlisp
dlowe has quit [Ping timeout: 252 seconds]
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
dlowe has joined #commonlisp
tyson2 has joined #commonlisp
pjb has joined #commonlisp
mingus1 has joined #commonlisp
mingus has quit [Ping timeout: 252 seconds]
mingus1 is now known as mingus
jmdaemon has quit [Ping timeout: 252 seconds]
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
occ has quit [Ping timeout: 252 seconds]
shka has quit [Quit: Konversation terminated!]
occ has joined #commonlisp
shka has joined #commonlisp
jeosol has quit [Quit: Client closed]
saturn2 has quit [Ping timeout: 252 seconds]
waleee has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
ldb has joined #commonlisp
tyson2 has joined #commonlisp
amb007 has quit [Ping timeout: 248 seconds]
Fare has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 248 seconds]
quoosp has quit [Ping timeout: 255 seconds]
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
tane has joined #commonlisp
tane has quit [Changing host]
tane has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
mingus has quit [Ping timeout: 260 seconds]
quoosp has joined #commonlisp
kenran` has quit [Remote host closed the connection]
jmes has joined #commonlisp
amb007 has joined #commonlisp
beepbooptheory` has joined #commonlisp
amb007 has quit [Ping timeout: 248 seconds]
tyson2 has quit [Remote host closed the connection]
ldb has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
jmes has quit [Remote host closed the connection]
igemnace has quit [Remote host closed the connection]
fitzsim has joined #commonlisp
karlosz has joined #commonlisp
mantlepro has quit [Ping timeout: 260 seconds]
random-nick has quit [Ping timeout: 260 seconds]
puchacz has quit [Quit: Client closed]
beepbooptheory` has quit [Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.60)]
fitzsim has quit [Ping timeout: 264 seconds]
Cymew has quit [Ping timeout: 248 seconds]
Inline has joined #commonlisp
dlowe has quit [Ping timeout: 252 seconds]
random-nick has joined #commonlisp
jeosol has joined #commonlisp
mantlepro has joined #commonlisp
tyson2 has joined #commonlisp
mantlepro has quit [Quit: cheerio]
ttree has joined #commonlisp
dlowe has joined #commonlisp
puchacz has joined #commonlisp
Oladon has joined #commonlisp
mantlepro has joined #commonlisp
Josh_2 has joined #commonlisp
Josh_2 has quit [Client Quit]
Josh_2 has joined #commonlisp
quoosp has quit [Ping timeout: 252 seconds]
Josh_2 has quit [Quit: Gotta go fast!]
Ap0gee has joined #commonlisp
ym has quit [Ping timeout: 252 seconds]
tyson2 has quit [Ping timeout: 252 seconds]
holycow has quit [Quit: Lost terminal]
azimut has joined #commonlisp
Oladon has quit [Quit: Leaving.]
jeosol has quit [Quit: Client closed]
_cymew_ has joined #commonlisp
bilegeek has joined #commonlisp
clone_of_saturn has joined #commonlisp
clone_of_saturn is now known as saturn2
morganw has joined #commonlisp
karlosz has quit [Quit: karlosz]
jimmy2shoots has joined #commonlisp
amb007 has joined #commonlisp
jeosol has joined #commonlisp
<Bike> mfiano: it was you who knew the conspack author, right? i submitted my PR finally a couple weeks ago but haven't heard anything. if rpav isn't lisping any more i'd be interested in taking over
<mfiano> Yes
<mfiano> I will run it by them.
jimmy2shoots has quit [Changing host]
jimmy2shoots has joined #commonlisp
<mfiano> Bike: They said they will add you to the 'conspack' organization so you can write to it, later tonight.
<mfiano> They were forgetful about the PR, not realizing it had been a couple weeks already. If they forget to add you, I'll ping them again. :)
kenran has joined #commonlisp
<Bike> that's quick. thank you. the delay isn't really a problem, i just wasn't sure that the PR had been seen at all
jimmy2shoots has quit [Quit: WeeChat 3.5]
Josh_2 has joined #commonlisp
tane has quit [Quit: Leaving]
puchacz has quit [Quit: Client closed]
amb007 has quit [Ping timeout: 268 seconds]
<Josh_2> :trumpet:
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 252 seconds]
rigidus has quit [Ping timeout: 260 seconds]
cage has joined #commonlisp
molson has quit [Remote host closed the connection]
jmdaemon has joined #commonlisp
brandflake11 has joined #commonlisp
Brucio-61 has joined #commonlisp
molson has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 28.2]
Lycurgus has joined #commonlisp
molson has quit [Remote host closed the connection]
molson has joined #commonlisp
quoosp has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
epony has quit [Quit: QUIT]
quoosp has quit [Ping timeout: 260 seconds]
brandflake11 has quit [Ping timeout: 248 seconds]
kenran has quit [Remote host closed the connection]
quoosp has joined #commonlisp
Fade has quit [Ping timeout: 260 seconds]
Demosthenex has quit [Ping timeout: 260 seconds]
pdietz has joined #commonlisp
epony has joined #commonlisp
<NotThatRPG_away> I was looking over some of my structures that have indicator fields that are effectively enumeration valued (e.g., this field is filled with one of four keyword symbols). I'm doing this in the context of Monte Carlo Tree Search and generating a ton of data, so I was wondering -- has anyone produced a library for structures like these that would pack them into a small number of bits? Kind of a random question...
NotThatRPG_away is now known as NotThatRPG
<pdietz> I don't know, but it's a reasonable question.  It might differ based on the Common Lisp implementation.
rigidus has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
<_death> maybe https://github.com/marcoheisig/bitfield (I've not used it)
<ixelp> GitHub - marcoheisig/bitfield: Efficiently represent several finite sets or small integers as a single non-negative inte [...]
<random-nick> you can also do it with cffi
<pdietz> cffi has significant overhead
_cymew_ has quit [Ping timeout: 252 seconds]
jeosol has quit [Ping timeout: 260 seconds]
<NotThatRPG> @_death: Thanks!
* NotThatRPG is reading....
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 252 seconds]
<NotThatRPG> Another question, while I have attention -- is there any way to set break on exit before resuming a breakpoint in the SLIME debugger?
Lord_of_Life_ is now known as Lord_of_Life
Nilby has joined #commonlisp
<_death> not that I know of.. with STEP there's a step-out restart, but I don't think I've had good luck with it..
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #commonlisp
<NotThatRPG> I haven't used the stepper at all, TBH.
<NotThatRPG> It's not a huge deal, just that it seems common to stop a function at a possibly interesting point and, if you find that the point *is* interesting, stop again when the function is done to see if it's done what you expect.
<_death> yeah.. there is room for a nice lisp debugger.. I think beach had plans for one
rigidus has quit [Remote host closed the connection]
rigidus has joined #commonlisp
rigidus` has joined #commonlisp
bhall has quit [Ping timeout: 252 seconds]
rigidus has quit [Ping timeout: 260 seconds]
rigidus` has quit [Remote host closed the connection]
rigidus` has joined #commonlisp
morganw has quit [Remote host closed the connection]
dra has quit [Changing host]
dra has joined #commonlisp
Josh_2 has quit [Remote host closed the connection]
rigidus` has quit [Ping timeout: 252 seconds]
rgherdt has quit [Remote host closed the connection]
<NotThatRPG> _death: I got spoiled using the Allegro one, but it's not very compatible with SLIME's sldb...
<mfiano> Bike: You should be all set now
attila_lendvai has quit [Ping timeout: 248 seconds]
shka has quit [Ping timeout: 252 seconds]
marsia` has joined #commonlisp
marsia has quit [Ping timeout: 248 seconds]
marsia` has quit [Read error: Connection reset by peer]
marsia has joined #commonlisp
marsia` has joined #commonlisp
yottabyte has joined #commonlisp
marsia has quit [Ping timeout: 252 seconds]
quoosp has quit [Quit: WeeChat 3.8]
marsia has joined #commonlisp
marsia` has quit [Ping timeout: 252 seconds]
marsia` has joined #commonlisp
marsia has quit [Ping timeout: 252 seconds]
Josh_2 has joined #commonlisp
occ has quit [Ping timeout: 264 seconds]
occ has joined #commonlisp
Fare has quit [Ping timeout: 252 seconds]
bilegeek has quit [Quit: Leaving]
occ has quit [Ping timeout: 248 seconds]
dlowe has quit [Ping timeout: 252 seconds]
marsia` has quit [Read error: Connection reset by peer]
marsia has joined #commonlisp
Fare has joined #commonlisp
marsia` has joined #commonlisp
marsia has quit [Ping timeout: 252 seconds]
dlowe has joined #commonlisp
nij- has joined #commonlisp
<nij-> How to print the info in debugger to standard output?
<nij-> (in a portable way)
pve has quit [Quit: leaving]
marsia has joined #commonlisp
marsia` has quit [Ping timeout: 252 seconds]