<jcowan>
Which is the more common use case: adding methods to existing generic functions, or defining all methods of a generic function at the same time?
akoana has joined #commonlisp
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
wonko-the-sane has joined #commonlisp
masinter has quit [Ping timeout: 246 seconds]
masinter has joined #commonlisp
doyougnu has quit [Ping timeout: 246 seconds]
notzmv has quit [Ping timeout: 245 seconds]
zaymington has joined #commonlisp
akoana has quit [Quit: leaving]
zaymington has quit [Remote host closed the connection]
zaymington has joined #commonlisp
zaymington has quit [Remote host closed the connection]
<beach>
The former.
<beach>
The very purpose of a generic function is to allow "physical" ("spatial"?) separation between different methods. If the latter were the norm, then an ordinary function with a TYPCASE would do just as well.
<qhong>
Is it possible to have a non-thread-local dynamic variable?
<beach>
Do you mean that if you bind it in one thread, the binding would be visible in all other threads? I know of no Common Lisp system that could do that.
<mfiano>
That is implementation-dependent as the language doesn't mention threads at all.
<qhong>
i.e. (let ((*var* value)) body) should be visible to all threads when evaluating BODY. ofc I can define my own GLOBAL-LET which use SETF under the hood but I wonder if it's possible with CL:LET
<mfiano>
But, probably not.
<qhong>
mfiano: yes I only care about SBCL
<mfiano>
No, each thread has its own call stack
<beach>
qhong: It would be very hard to implement correctly.
<mfiano>
Special variables are dynamic in nature. How would you even implement that?
<qhong>
sounds like I can just expand it into (unwind-protect (progn (setq *var* value) body) (setq *var* old-value))?
<jcowan>
Represent each such variable as its own little stack (possibly a list)
waleee has quit [Ping timeout: 246 seconds]
<qhong>
I think I might come up with a way to do it with standard CL:LET with symbol macro actually
<qhong>
Just use standard CL:LET, then let *VAR* expand into sb-thread:symbol-value-in-thread in non main thread
<qhong>
I only need to bind it in main thread btw, then I want worker threads to access it
<mfiano>
Then use lparallel's worker contexts to propagate them.
<mfiano>
Or initial-bindings to bt
<qhong>
mfiano: I think those are bound to worker/threads rather than tasks? Unless I restart workers everytime I submit tasks, which sounds wrong
doyougnu has joined #commonlisp
<mfiano>
lparallel allows for dynamic variables to be bound both per task and per thread, and bt can do the latter.
<qhong>
how to do it for lparallel task? I didn't see it in the documentation
<qhong>
or do you mean I make a closure myself like (let ((var *var*)) (submit-task c (lambda () (let ((*var var)) ...))))
<mfiano>
Anyway, with any of this and a bit of code you could do any fancy thread variable binding policies you need, if your implementation supports threads, and sanely in a way that bt can translate.
notzmv has joined #commonlisp
parjanya has joined #commonlisp
shka has joined #commonlisp
parjanya has quit [Remote host closed the connection]
parjanya has joined #commonlisp
habamax has joined #commonlisp
zxcvz has joined #commonlisp
lucasta_ has quit [Quit: Quit]
<jcowan>
I note that () is a valid generic function lambda list, which seems weird given that only one method can exist.
<aeth>
(defmethod foo :before () (print "Hello, world!")) => NIL, but now with a side effect.
<aeth>
or, rather, the next (foo) is NIL with a side effect
wonko-the-sane has quit [Quit: leaving]
<jcowan>
Point.
<jcowan>
So this serves as a way of adding advice to an ordinary niladic function
dcb has quit [Quit: MSN Messenger 4.0.4]
rtypo has quit [Ping timeout: 248 seconds]
pfdietz has quit [Quit: Client closed]
<aeth>
It wouldn't be immediately obvious that that's what you're supposed to do in such an API, though
zxcvz has quit [Quit: zxcvz]
nullus has joined #commonlisp
Pixel_Outlaw has quit [Remote host closed the connection]
kenran has joined #commonlisp
Colleen has quit [Excess Flood]
Colleen has joined #commonlisp
Cymew has joined #commonlisp
<jcowan>
It's still bounded: it allows 4 methods instead of just one, but it isn't much like a polyadic gf.
nullus has quit [Ping timeout: 250 seconds]
rgherdt has joined #commonlisp
gxt has quit [Remote host closed the connection]
_cymew_ has joined #commonlisp
gxt has joined #commonlisp
Inline has joined #commonlisp
Brucio-61 has quit [Read error: Connection reset by peer]
Brucio-61 has joined #commonlisp
easye has quit [Ping timeout: 240 seconds]
msavoritias has joined #commonlisp
easye has joined #commonlisp
igemnace has joined #commonlisp
fosskers has quit [Ping timeout: 246 seconds]
jello_pudding has quit [Ping timeout: 246 seconds]
varjag has joined #commonlisp
jello_pudding has joined #commonlisp
thuna` has joined #commonlisp
igemnace has quit [Quit: WeeChat 4.0.4]
pve has joined #commonlisp
dino_tutter has joined #commonlisp
dnhester26 has joined #commonlisp
attila_lendvai has joined #commonlisp
ec_ has quit [Remote host closed the connection]
ec_ has joined #commonlisp
kuao has joined #commonlisp
jonatack2 has joined #commonlisp
jonatack1 has quit [Ping timeout: 246 seconds]
xmachina has joined #commonlisp
habamax has quit [Ping timeout: 248 seconds]
msavoritias has quit [Ping timeout: 246 seconds]
habamax has joined #commonlisp
msavoritias has joined #commonlisp
grawlinson has quit [Quit: SIGTERM]
grawlinson has joined #commonlisp
habamax has quit [Remote host closed the connection]
habamax has joined #commonlisp
rgherdt_ has joined #commonlisp
qiduo has joined #commonlisp
rgherdt has quit [Ping timeout: 246 seconds]
rgherdt_ is now known as rgherdt
dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
dnhester26 has quit [Read error: Connection reset by peer]
random-nick has joined #commonlisp
qiduo has quit [Remote host closed the connection]
qiduo has joined #commonlisp
puke has quit [Quit: puke]
qiduo has quit [Client Quit]
puke has joined #commonlisp
Inline has quit [Quit: Leaving]
aartaka has joined #commonlisp
blop has joined #commonlisp
dnhester26 has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
dnhester26 has quit [Ping timeout: 246 seconds]
wonko-the-sane has joined #commonlisp
dnhester26 has joined #commonlisp
karlosz has joined #commonlisp
yosef` has joined #commonlisp
rgherdt_ has joined #commonlisp
rgherdt has quit [Ping timeout: 240 seconds]
wonko-the-sane has quit [Remote host closed the connection]
wonko-the-sane has joined #commonlisp
yosef` has quit [Quit: Client closed]
avocadoist has joined #commonlisp
Brucio-61 has quit [Read error: Connection reset by peer]
Brucio-61 has joined #commonlisp
jmdaemon has quit [Ping timeout: 248 seconds]
yosef`84 has joined #commonlisp
yosef`97 has joined #commonlisp
yosef`84 has quit [Write error: Broken pipe]
yosef` has joined #commonlisp
kamafam has joined #commonlisp
yosef`97 has quit [Quit: Client closed]
igemnace has joined #commonlisp
yosef` has quit [Remote host closed the connection]
yosef` has joined #commonlisp
wonko-the-sane has quit [Remote host closed the connection]
wonko-the-sane has joined #commonlisp
kamafam has quit [Read error: Connection reset by peer]
kamafam has joined #commonlisp
jeosol has quit [Ping timeout: 246 seconds]
dnhester has joined #commonlisp
yitzi has joined #commonlisp
Inline has joined #commonlisp
yosef` has quit [Remote host closed the connection]
habamax has quit [Remote host closed the connection]
msavoritias has quit [Ping timeout: 246 seconds]
msavoritias has joined #commonlisp
yosef` has joined #commonlisp
rgherdt_ is now known as rgherdt
eddof13 has joined #commonlisp
waleee has joined #commonlisp
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
pranavats has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
igemnace has quit [Quit: WeeChat 4.0.4]
eddof13 has joined #commonlisp
notzmv has quit [Ping timeout: 240 seconds]
pranavats has left #commonlisp [Error from remote client]
zxcvz has joined #commonlisp
pranavats has joined #commonlisp
yosef` has quit [Ping timeout: 246 seconds]
pfdietz has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dnhester26 has quit [Remote host closed the connection]
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
dnhester has quit [Ping timeout: 246 seconds]
yitzi has quit [Remote host closed the connection]
<Shinmera>
woop, hayley's GC is officially out in SBCL 2.3.8 now :)
ym has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
<beach>
Great!
<White_Flame>
cool
wonko-the-sane has quit [Ping timeout: 246 seconds]
kuao has quit [Quit: Connection closed for inactivity]
msavoritias has quit [Ping timeout: 246 seconds]
wonko-the-sane has joined #commonlisp
hrberg has joined #commonlisp
wonko-the-sane has quit [Ping timeout: 246 seconds]
tibfulv has quit [Remote host closed the connection]
varjag has quit [Quit: ERC (IRC client for Emacs 27.1)]
wonko-the-sane has joined #commonlisp
tibfulv has joined #commonlisp
eddof13 has joined #commonlisp
<nytpu>
neat!
rtypo has joined #commonlisp
<nytpu>
does the "build time option" mean when compiling SBCL itself or when bulding something using SBCL? (and if the latter, is there a way to enable it with ASDF instead of CLI flags?)
Cymew has quit [Ping timeout: 245 seconds]
<Shinmera>
the former
pfdietz has quit [Quit: Client closed]
pranavats has joined #commonlisp
dino_tutter has quit [Ping timeout: 240 seconds]
kamafam has quit [Read error: Connection reset by peer]
kamafam has joined #commonlisp
<NotThatRPG>
Are FASLs compatible across the 2 GCs?
<nytpu>
also, are there any plans to make it the default gc in the future or are there too many compatibility concerns? (both with old code, unusual compile-time options, and more obscure hardware, i imagine)
kamafam has quit [Remote host closed the connection]
zxcvz has quit [Quit: zxcvz]
splatt990 has joined #commonlisp
yitzi has joined #commonlisp
sloanr has joined #commonlisp
<NotThatRPG>
(just found out that single- and multi-threaded SBCL fasls are not consistent, so ASDF needs to refine how it stores FASLS. Thanks to pmarek!)
<bike>
huh, really? that kind of surprises me
<bike>
although i guess sbcl is pretty restrictive about moving fasls from build to build
pve has quit [Ping timeout: 255 seconds]
johnjaye has quit [Ping timeout: 246 seconds]
dcb has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
ezakimak_ has joined #commonlisp
ezakimak has quit [Read error: Connection reset by peer]
kenran has quit [Quit: ERC 5.6-git (IRC client for GNU Emacs 30.0.50)]
<nytpu>
NotThatRPG, bike: their guarantees seem to be "there is zero compatibility of FASLs between any two SBCL installations", mostly because they don't want to do all the testing needed to ensure capatibility it seems (i.e. there *may* be compatibility but they don't take care to ensure there is)
<NotThatRPG>
nytpu, bike Just got an issue reported that single- and multi-threaded builds can't share FASLs. Philipp is apparently testing threaded and unthreaded builds against each other and finding fasl incompatibilities, so asked for ASDF to distinguish (which seems reasonable)
<bike>
interesting.
<NotThatRPG>
It would be nice to know a set of feature flags that would cause fasl format changes.
<NotThatRPG>
bike: Have not even tried to verify (since it's not a huge ask to keep them apart)
<NotThatRPG>
Have to go for a while -- back later
NotThatRPG is now known as NotThatRPG_away
NotThatRPG_away has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jello_pudding has quit [Ping timeout: 244 seconds]
dino_tutter has joined #commonlisp
jello_pudding has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dcb has quit [Quit: MSN Messenger 4.0.4]
ezakimak_ has quit []
tyson2 has joined #commonlisp
ezakimak has joined #commonlisp
dcb has joined #commonlisp
gxt has quit [Remote host closed the connection]
eddof13 has joined #commonlisp
gxt has joined #commonlisp
johnjaye has joined #commonlisp
azimut has quit [Ping timeout: 246 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dino_tutter has quit [Ping timeout: 244 seconds]
eddof13 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
ronald has quit [Ping timeout: 250 seconds]
ronald has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #commonlisp
NotThatRPG has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ryanbw has joined #commonlisp
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
robin_ has joined #commonlisp
robin has quit [Read error: Connection reset by peer]
<ixelp>
Steel Bank Common Lisp 2.3.8 released: “a mark-region parallel GC is available” | Hacker News
ym has quit [Ping timeout: 260 seconds]
sloanr has quit [Ping timeout: 246 seconds]
pfdietz has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
dino_tutter has joined #commonlisp
skin has left #commonlisp [#commonlisp]
skin has joined #commonlisp
skin has left #commonlisp [#commonlisp]
attila_lendvai has quit [Remote host closed the connection]
attila_lendvai has joined #commonlisp
skin has joined #commonlisp
skin has left #commonlisp [#commonlisp]
jeosol has joined #commonlisp
skin has joined #commonlisp
attila_lendvai has quit [Remote host closed the connection]
attila_lendvai has joined #commonlisp
son0p has quit [Quit: Bye]
wonko-the-sane has quit [Ping timeout: 246 seconds]
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
yitzi has quit [Remote host closed the connection]
Perflosopher0 has joined #commonlisp
Perflosopher has quit [Ping timeout: 246 seconds]
Perflosopher0 is now known as Perflosopher
eddof13 has joined #commonlisp
shka has quit [Ping timeout: 246 seconds]
sjl has joined #commonlisp
Grauwolf has quit [Quit: WeeChat 3.8]
Grauwolf has joined #commonlisp
rgherdt has quit [Quit: Leaving]
_cymew_ has quit [Ping timeout: 246 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
azimut has joined #commonlisp
eddof13 has joined #commonlisp
bike has quit [Ping timeout: 245 seconds]
jmdaemon has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
skin has left #commonlisp [#commonlisp]
pfdietz has quit [Quit: Client closed]
tyson2 has joined #commonlisp
tyson2` has joined #commonlisp
son0p has joined #commonlisp
pfdietz has joined #commonlisp
thuna` has quit [Remote host closed the connection]
matt` has joined #commonlisp
selfish has quit [Ping timeout: 245 seconds]
attila_lendvai has quit [Ping timeout: 246 seconds]
dino_tutter has quit [Ping timeout: 260 seconds]
eddof13 has joined #commonlisp
Inline has quit [Ping timeout: 255 seconds]
eddof13 has quit [Client Quit]
matt` has quit [Remote host closed the connection]
hineios2 has joined #commonlisp
hineios has quit [Ping timeout: 245 seconds]
hineios2 is now known as hineios
robin_ is now known as robin
tevo has joined #commonlisp
nullus has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 245 seconds]
Lord_of_Life has joined #commonlisp
<hayley>
nytpu: Compatibility per se shouldn't be an issue at all, the performance profile might be. And it seems there are still some bugs, though I've been able to run a few big apps without issues.
<hayley>
Indeed FASLs are not compatible; they contain compiled code, and the write barrier for the mark-region GC is very slightly different.