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/>
quoosp has quit [Ping timeout: 246 seconds]
nij- has joined #commonlisp
utis has quit [Ping timeout: 260 seconds]
<nij-> Hi! Is it possible to handle a condition by popping out the choice panel to the user for N seconds, and close the panel to do something else if no choice is provided?
KvL has joined #commonlisp
RayquazaBoladao has joined #commonlisp
dlowe has quit [Ping timeout: 260 seconds]
<Bike> nij-: that would have to be a feature of the debugger. i do not know of any debuggers that do that, but you could write one.
Fare has quit [Ping timeout: 252 seconds]
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
dlowe has joined #commonlisp
occ has joined #commonlisp
<nij-> Oh I see.
<nij-> Perhaps this is an XY problem. I want to let a lot of threads running in the background. But I find it annoying to have a debugger popping out everytime a condition is met.
<nij-> Not sure if there's a better way than hacking the debugger..
Oladon has joined #commonlisp
<Bike> Can you not jusst handle the conditions
<Bike> for example by logging the error and continuing?
<Bike> having a debugger disappear while while i'm deciding what to do would probably just piss me off
<nij-> I will do that. Thanks :)
karlosz has quit [Remote host closed the connection]
Josh_2 has joined #commonlisp
Josh_2 has quit [Client Quit]
Josh_2 has joined #commonlisp
Fare has joined #commonlisp
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
random-nick has quit [Ping timeout: 260 seconds]
Fare has quit [Ping timeout: 260 seconds]
Josh_2 has quit [Quit: Gotta go fast!]
Josh_2 has joined #commonlisp
epony has quit [Remote host closed the connection]
epony has joined #commonlisp
<hayley> stylewarning: For no good reason whatsoever, here is Coq compiled to CL <https://plaster.tymoon.eu/view/3637>
jimmy2shoots has joined #commonlisp
Josh_2 has quit [Quit: Gotta go fast!]
jimmy2shoots has quit [Remote host closed the connection]
Josh_2 has joined #commonlisp
<stylewarning> :)))))
Josh_2 has quit [Quit: Gotta go fast!]
<stylewarning> hayley: what for and how
<stylewarning> we just got pattern exhaustiveness checking in Coalton (:
<stylewarning> it's sort of par for the course but it's a good achievement anyway
<hayley> By doing really crappy compilation of the JSON output of the Coq Extraction module. I suspect Coalton would generate much better code (mostly around munging Lisp-1/2 and FFI'ing curried functions to Lisp uncurried functions).
<hayley> As for why, because one course this semester involves "using static analysis tools" for cloud stuffs, for which they probably mean a linter.
Josh_2 has joined #commonlisp
<stylewarning> haha
<hayley> Then I had the terrible thought last night to feed verified code to CL. Not that my compiler is sound, or even close to working for anything other than ADD.
dlowe has quit [Ping timeout: 260 seconds]
Josh_2 has quit [Quit: Gotta go fast!]
Josh_2 has joined #commonlisp
bilegeek has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Oladon has quit [Quit: Leaving.]
marsia` has quit [Ping timeout: 252 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
occ has quit [Ping timeout: 248 seconds]
holycow has joined #commonlisp
occ has joined #commonlisp
Fare has joined #commonlisp
prxq_ has quit [Ping timeout: 248 seconds]
pranavats has joined #commonlisp
JoshYoshi has joined #commonlisp
Josh_2 has quit [Ping timeout: 260 seconds]
bilegeek has quit [Quit: Leaving]
JoshYoshi has quit [Ping timeout: 246 seconds]
Fare has quit [Ping timeout: 260 seconds]
akoana has joined #commonlisp
Fare has joined #commonlisp
hefner has quit [Ping timeout: 255 seconds]
krjst has quit [Ping timeout: 260 seconds]
energizer has quit [Ping timeout: 252 seconds]
boigahs has quit [Ping timeout: 252 seconds]
pranavats has left #commonlisp [Disconnected: Hibernating too long]
pranavats has joined #commonlisp
krjst has joined #commonlisp
energizer has joined #commonlisp
boigahs has joined #commonlisp
boigahs has left #commonlisp [#commonlisp]
hefner has joined #commonlisp
boigahs has joined #commonlisp
boigahs has left #commonlisp [#commonlisp]
boigahs has joined #commonlisp
waleee has quit [Ping timeout: 252 seconds]
Fare has quit [Ping timeout: 255 seconds]
beepbooptheory` has joined #commonlisp
akoana has quit [Quit: leaving]
Fare has joined #commonlisp
Fare has quit [Ping timeout: 260 seconds]
prokhor has joined #commonlisp
dtman34 has joined #commonlisp
anticomputer has quit [Remote host closed the connection]
aartaka has joined #commonlisp
<hayley> stylewarning: Do you have any opinions on if/how to expose curried functions to CL? I think I can glean how much to uncurry from the Coq JSON dump, but the idea of gleaning it puts me off a bit.
anticomputer has joined #commonlisp
zachel has quit [Remote host closed the connection]
beepbooptheory` has quit [Ping timeout: 248 seconds]
jelewis2 has quit [Ping timeout: 264 seconds]
RayquazaBoladao has quit [Ping timeout: 264 seconds]
dtman34 has quit [Ping timeout: 260 seconds]
dtman34 has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
semarie has quit [Quit: WeeChat 3.8]
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
pve has joined #commonlisp
jmdaemon has quit [Ping timeout: 260 seconds]
semarie has joined #commonlisp
semarie has quit [Remote host closed the connection]
semarie has joined #commonlisp
occ has quit [Ping timeout: 268 seconds]
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
azimut has quit [Ping timeout: 255 seconds]
ttree has quit [Ping timeout: 248 seconds]
varjagg has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Inline has quit [Quit: Leaving]
OlCe has quit [Ping timeout: 248 seconds]
dino_tutter has quit [Quit: Leaving]
dino_tutter has joined #commonlisp
puchacz has joined #commonlisp
anticomputer has quit [Ping timeout: 255 seconds]
anticomputer has joined #commonlisp
quoosp has joined #commonlisp
quoosp has quit [Quit: WeeChat 3.8]
tom has joined #commonlisp
tom has quit [Client Quit]
tom has joined #commonlisp
tom has quit [Client Quit]
Inline has joined #commonlisp
tom has joined #commonlisp
tom has quit [Client Quit]
<puchacz> hi, is there a lisp-to-lisp communication library that would be suitable for interactive REPL development? e.g. from SBCL sly, evaluate (with-another-lisp *abcl-connection* (do-something)) ?
<puchacz> the reason is that my main Lisp is sbcl, but abcl has potentially access to many libraries based on java.
karlosz has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
prokhor_ has joined #commonlisp
<beach> You would not be able to do much with such a thing. Objects would lose their identity, and most objects would not be possible to replicate on the other side.
ym has joined #commonlisp
quoosp has joined #commonlisp
<puchacz> right. so best to start 2 REPLs, and pass data via strings then.
<puchacz> either plain/copy paste in emacs, or open socket
<beach> Even with strings, there is not much you can do with a string such as "#<SOME-CLASS ...>"
<puchacz> yes. only lists, actual strings, keywords, symbols used as string designators, numbers. like JSON really
<puchacz> or EDN in clojure
dlowe has joined #commonlisp
random-nick has joined #commonlisp
mariari has quit [Ping timeout: 260 seconds]
mariari has joined #commonlisp
mariari has quit [Ping timeout: 248 seconds]
mariari has joined #commonlisp
rgherdt has joined #commonlisp
<Shinmera> lfarm may be of interest
mariari has quit [Ping timeout: 255 seconds]
<puchacz> I wi ll have a look how it is done, but I think design goal is different - rather than have 2 lisps or more tightly coupled, sending a task to any of lisp server instances that are interchangeable
Gleefre has joined #commonlisp
<puchacz> systems I have in mind are like cl4py/py4cl or Rich Hickey's thingy for java<->lisp comm (was the name leaf? I can't remember now)
<puchacz> H
<puchacz> Riich' library uses weak hash map to tell the server when it is ok to garbage collect object on java, and it either sends around self evaluating objects like strings or numbers, or creates proxies for everything on lisp side
<puchacz> not terribly convenient but it works
<puchacz> can't do better IU think
dlowe has quit [Ping timeout: 256 seconds]
karlosz has quit [Quit: karlosz]
karlosz has joined #commonlisp
RayquazaBoladao has joined #commonlisp
mariari has joined #commonlisp
beepbooptheory` has joined #commonlisp
dlowe has joined #commonlisp
tyson2 has joined #commonlisp
Noisytoot has quit [Quit: ZNC 1.8.2 - https://znc.in]
Noisytoot has joined #commonlisp
<puchacz> yes, foil. https://foil.sourceforge.net/ I used it but not much and not for interactivity, but to generate specific java calls that returned strings...
<ixelp> Foil - a Foreign Object Interface for Lisp
quoosp has quit [Ping timeout: 246 seconds]
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
dlowe has quit [Ping timeout: 248 seconds]
beepbooptheory` has quit [Ping timeout: 248 seconds]
dlowe has joined #commonlisp
prokhor_ has quit [Ping timeout: 252 seconds]
simendsjo has joined #commonlisp
amb007 has quit [Ping timeout: 246 seconds]
amb007 has joined #commonlisp
attila_lendvai has joined #commonlisp
Fare has joined #commonlisp
dlowe has quit [Ping timeout: 255 seconds]
karlosz has quit [Quit: karlosz]
jrm has quit [Read error: Connection reset by peer]
jrm2 has joined #commonlisp
jrm2 is now known as jrm
dlowe has joined #commonlisp
rigidus has joined #commonlisp
marsia has joined #commonlisp
shka has joined #commonlisp
simendsjo has quit [Ping timeout: 252 seconds]
aartaka has quit [Ping timeout: 248 seconds]
aartaka has joined #commonlisp
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
dlowe has quit [Ping timeout: 260 seconds]
quoosp has joined #commonlisp
dlowe has joined #commonlisp
Inline has quit [Quit: Leaving]
Inline has joined #commonlisp
Fare has quit [Ping timeout: 260 seconds]
tyson2 has quit [Remote host closed the connection]
karlosz has joined #commonlisp
azimut has joined #commonlisp
dlowe has quit [Ping timeout: 248 seconds]
cage has joined #commonlisp
infra_red[m] has joined #commonlisp
dlowe has joined #commonlisp
karlosz has quit [Quit: karlosz]
sjl has joined #commonlisp
mingus has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
Inline has quit [Quit: Leaving]
Oladon has joined #commonlisp
<NotThatRPG_away> Does anyone have a link to a page that lists all the forms that are evaluated at compile time? My google fu is too weak to find this.
hineios has quit [Read error: Connection reset by peer]
hineios has joined #commonlisp
tyson2 has joined #commonlisp
hineios has quit [Quit: The Lounge - https://thelounge.chat]
prokhor_ has joined #commonlisp
hineios has joined #commonlisp
mingus1 has joined #commonlisp
mingus has quit [Ping timeout: 248 seconds]
mingus1 is now known as mingus
quoosp has quit [Ping timeout: 260 seconds]
Lycurgus has joined #commonlisp
dlowe has quit [Ping timeout: 255 seconds]
epony has quit [Quit: QUIT]
dlowe has joined #commonlisp
mingus has quit [Ping timeout: 252 seconds]
tyson2 has quit [Remote host closed the connection]
ttree has joined #commonlisp
ym has quit [Ping timeout: 246 seconds]
Inline has joined #commonlisp
quoosp has joined #commonlisp
kenran has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
beepbooptheory` has joined #commonlisp
<kenran> When do I use a defclass in Common Lisp as opposed to, say, a defstruct to group data together? From what I've read about CLOS so far it seems like I should use a class only if I want inheritance. Is that correct?
mariari has quit [Ping timeout: 268 seconds]
<aeth> there are two approaches
<aeth> One is to use defclass for everything and to treat structs as a legacy format. This is the majority approach on this IRC channel.
<aeth> Overwhelmingly so.
<aeth> The other is to use defstructs in certain circumstances, usually for performance and/or simplicity. After all, you can still defmethod on them if you need to. Technically, they can have their own form of inheritance, but by the time you need inheritance, you're probably in a place where standard classes are better
beepbooptheory` has quit [Ping timeout: 248 seconds]
_cymew_ has quit [Ping timeout: 246 seconds]
<aeth> Runtime struct redefinition doesn't work on every implementation, either.
aartaka has quit [Ping timeout: 252 seconds]
<kenran> From my more FP-like view (where I rarely if ever need or want inheritance), it seems so "strange" to use `defclass' to just define simple product types, given that defmethods are not coupled to classes.
aartaka has joined #commonlisp
<aeth> My personal rule of thumb is to use defstruct when :type in slots is an important factor, especially for performance, because it gives the implementation more information, even if the implemntation can choose to ignore it.
<aeth> Yes, you can make product types, or even custom typed cons cells, from structs.
<kenran> Thanks for this comprehensive answer :)
<aeth> But I also have a way to force typechecks on defclass via the metaobject protocol, so it's not even a case of 'every time I have typed slots I use a struct'.
<kenran> Every winter for some reason the Common Lisp virus latches onto me, but this time it feels like it's gonna stick for a while :D
<aeth> e.g. defclass is very OOP, dynamic OOP, high level, slower, redefinable, etc. While defstruct is great for hot loops in high-performance stuff.
<kenran> Ah yeah, that's the way I'm used to from other languages. I was especially wondering if there's anything else they could be useful for if I don't plan on using inheritance.
<aeth> I guess you could say that the most functional (who needs inheritance?) and least functional (you can write Fortran in any language) code might use structs while the majority in the middle can ignore them.
<aeth> Standard classes are incredibly dynamic so you can force some fancy things on them with the metaobject protocol.
<kenran> Haha, that's a nice take :D
azimut_ has joined #commonlisp
azimut has quit [Ping timeout: 255 seconds]
<kenran> The MOP still eludes me, as I have not spent any time on it. I'm looking for a fun language for hobby projects, and so far CL is quickly rising up in rank for me :) I'm working exclusively in FP for my job, so I thought using something that's more pragmatic and mostly paradigm-agnostic would make it more fun.
mariari has joined #commonlisp
<aeth> Structs are simple (static) containers, hash tables are simple containers in the complete opposite direction (no real structure), and defclass has a lot of mostly-hidden power.
<aeth> It's actually kind of hard to decide which one if you overthink things, and that's before getting into alists/plists (largely interchangeable), fancy arrays, etc.
<kenran> That kind of sums up my whole experience with CL so far: I can never decide between all the different ways to do things.
<kenran> It's bad in Haskell for me already, but CL is a couple more powers of flexible.
dlowe has quit [Ping timeout: 256 seconds]
ttree has quit [Ping timeout: 255 seconds]
_cymew_ has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 28.2]
_cymew_ has quit [Ping timeout: 248 seconds]
dlowe has joined #commonlisp
jmdaemon has joined #commonlisp
<Shinmera> the short answer is: use structs as an optimisation strategy
pve has quit [Quit: leaving]
epony has joined #commonlisp
Sauvin has quit [Quit: Leaving]
Sauvin has joined #commonlisp
kg7ski has quit [Read error: Connection reset by peer]
kenran has quit [Remote host closed the connection]
kg7ski has joined #commonlisp
ec has quit [Ping timeout: 255 seconds]
ec has joined #commonlisp
hineios has quit [Read error: Connection reset by peer]
hineios has joined #commonlisp
Fare has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 268 seconds]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life_ is now known as Lord_of_Life
<phoe> is it legal for *DEFAULT-PATHNAME-DEFAULTS* to be a relative pathname?
<phoe> I can't see anything forbidding it on http://www.lispworks.com/documentation/lw71/CLHS/Body/v_defaul.htm but it sort of tickles my instincts in the wrong way
<ixelp> CLHS: Variable *DEFAULT-PATHNAME-DEFAULTS*
pranavats has left #commonlisp [Disconnected: Hibernating too long]
pranavats has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
aartaka has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
karlosz has joined #commonlisp
attila_lendvai has quit [Ping timeout: 246 seconds]
igemnace has joined #commonlisp
shka has quit [Ping timeout: 252 seconds]
RayquazaBoladao has quit [Ping timeout: 248 seconds]
tyson2 has joined #commonlisp
beepbooptheory` has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
puchacz has quit [Quit: Client closed]
quoosp has quit [Ping timeout: 248 seconds]
akoana has joined #commonlisp
Fare has quit [Ping timeout: 252 seconds]
igemnace has quit [Remote host closed the connection]
irileas has joined #commonlisp
xaltsc has joined #commonlisp
karlosz has quit [Remote host closed the connection]
<irileas> Hope I'm not off-topic with my question... I was looking at the implementation of Common Lisps recently and found that if you return multiple values, they need to be stored somewhere during an unwind-protect clause... how does this happen exactly?