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/>
wyrd has joined #commonlisp
semz_ has quit [Ping timeout: 260 seconds]
semz has joined #commonlisp
attila_lendvai has quit [Ping timeout: 252 seconds]
karlosz has joined #commonlisp
leo_song has quit [Read error: Connection reset by peer]
leo_song has joined #commonlisp
linfocito has joined #commonlisp
karlosz has quit [Quit: karlosz]
waleee has quit [Ping timeout: 240 seconds]
ec has joined #commonlisp
waleee has joined #commonlisp
s-liao has joined #commonlisp
Devon has quit [Remote host closed the connection]
morganw has quit [Remote host closed the connection]
gxt has quit [Ping timeout: 276 seconds]
gxt has joined #commonlisp
random-nick has quit [Ping timeout: 256 seconds]
IPmonger has joined #commonlisp
IPmonger has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
lisp123 has quit [Ping timeout: 250 seconds]
wyrd has quit [Ping timeout: 276 seconds]
Guest74 has quit [Quit: Connection closed]
<AeroNotix> opinions: what is "the best" (your interpretation of) package to look at for good cffi API/bindings.. something which goes beyond just providing symbols for the raw functions to a bound library
<AeroNotix> I've wrote a few packages like this and have never felt fully satisfied with the end product
s-liao has joined #commonlisp
Brucio-61 has joined #commonlisp
karlosz has joined #commonlisp
Brucio-61 has quit [Ping timeout: 256 seconds]
Brucio-61 has joined #commonlisp
aartaka has quit [Ping timeout: 240 seconds]
aartaka has joined #commonlisp
Rue has joined #commonlisp
hineios has quit [Quit: The Lounge - https://thelounge.chat]
<jcowan> I use ex/vi for essentially all editing, including Lisp stuff.
linfocito has left #commonlisp [#commonlisp]
Brucio-61 has quit [Remote host closed the connection]
IPmonger has joined #commonlisp
IPmonger has quit [Remote host closed the connection]
Brucio-61 has joined #commonlisp
karlosz has quit [Ping timeout: 240 seconds]
Josh_2 has joined #commonlisp
masinter has quit [Ping timeout: 256 seconds]
<Josh_2> With Jonathan how do I encode a <val>:false ?
<Josh_2> nil is encoded as []
wyrd has joined #commonlisp
lottaquestions has joined #commonlisp
<Josh_2> Seems to encode as "false" rather than false
<Josh_2> Weird how t encodes as <val>:true while false <val>:"false"
<Josh_2> nil as*
<waleee> is jonathan in quicklisp?
<Josh_2> Hmm perhaps I am just missing something
<mfiano> See (3)
<mfiano> Seems you can dynamically bind *false-value* too
<mfiano> Which you probably want to also change the empty array and nil bindings too.
<mfiano> Welcome to the world of json, and why there are so many libraries.
<Josh_2> *false-value* is for parsing
pillton has joined #commonlisp
<mfiano> Then yeah, write methods if you don't mind it screwing other things up, or use another library if you don't mind it screwing other things up.
razetime has joined #commonlisp
<pillton> Has anyone seen/read any material which develops abstractions for probabilistic inference?
<Bike> like bayesian stuff? dunno if i've seen software for that
<mfiano> _death may have some interesting code laying around for that sort of thing.
<pillton> Bike: Yeah. MIT has a probabilistic computing page but the paper list is huge.
<Bike> i liked "An Introduction to Kolmogorov Complexity and Its Applications", but it's mostly theory and i don't know if that's what you want
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
masinter has joined #commonlisp
masinter has quit [Client Quit]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #commonlisp
mon_aaraj has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
Krystof has quit [Ping timeout: 240 seconds]
<Josh_2> Is there a base36 library?
<pillton> Bike: Thanks. I'll take a look.
<pillton> Bike: I am more interested in modelling the computations rather than the theory.
<Bike> not something i have practical experience with, i'm afraid
AeroNotix has quit [Quit: WeeChat 3.4]
<pillton> Bike: No problem. I only ask here because of the wide range of backgrounds.
<pillton> Sorry for the off-topic discussion. I didn't where else to ask.
<pillton> I didn't know where else to ask*
mon_aaraj has quit [Ping timeout: 240 seconds]
<Bike> not a problem
mon_aaraj has joined #commonlisp
<beach> Good morning everyone!
waleee has quit [Ping timeout: 240 seconds]
Jing has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
Bike has quit [Quit: Lost terminal]
sloanr has joined #commonlisp
lisp123 has joined #commonlisp
s-liao has joined #commonlisp
lisp123 has quit [Ping timeout: 240 seconds]
semz_ has joined #commonlisp
semz has quit [Ping timeout: 260 seconds]
pingpongball has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
wyrd has quit [Ping timeout: 276 seconds]
s-liao has joined #commonlisp
lisp123 has joined #commonlisp
wyrd has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
wacki has joined #commonlisp
aartaka has quit [Ping timeout: 240 seconds]
semz_ is now known as semz
aartaka has joined #commonlisp
pingpongball has quit [Quit: pingpongball]
tyson2 has quit [Remote host closed the connection]
Oddity has joined #commonlisp
jealousmonk has quit [Quit: ERC 5.4.1 (IRC client for GNU Emacs 27.1)]
sloanr has quit [Ping timeout: 256 seconds]
Jing has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
occ has joined #commonlisp
s-liao has quit [Quit: Client closed]
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
kathe has joined #commonlisp
<kathe> good morning everyone. :)
pingpongball has joined #commonlisp
pingpongball has quit [Quit: Client closed]
kathe has quit [Quit: Leaving]
<qhong> what does the entry "foreign function __select" from sb-sprof mean? I don't think my code do any threading/asynchronous stuff
Cymew has joined #commonlisp
lisp123 has joined #commonlisp
rain3 has joined #commonlisp
lisp123 has quit [Ping timeout: 240 seconds]
shka has joined #commonlisp
dre has quit [Quit: Leaving]
rotateq has joined #commonlisp
karlosz has joined #commonlisp
ahlk` has quit [Remote host closed the connection]
occ has quit [Ping timeout: 256 seconds]
pranavats has left #commonlisp [Error from remote client]
gaqwas has joined #commonlisp
cosimone has joined #commonlisp
Algernon69 has joined #commonlisp
pingpongball has joined #commonlisp
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
foxfromabyss has joined #commonlisp
foxfromabyss has quit [Client Quit]
borodust has quit [Remote host closed the connection]
pranavats has joined #commonlisp
ebrasca has joined #commonlisp
szkl has joined #commonlisp
cosimone has quit [Read error: Connection reset by peer]
Krystof has joined #commonlisp
<pingpongball> epony
pve has joined #commonlisp
ogamita has joined #commonlisp
phantomics has quit [Ping timeout: 256 seconds]
silasfox has joined #commonlisp
lisp123 has joined #commonlisp
pingpongball has quit [Ping timeout: 256 seconds]
occ has joined #commonlisp
cosimone has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
amb007 has quit [Ping timeout: 260 seconds]
pingpongball has joined #commonlisp
amb007 has joined #commonlisp
borodust has joined #commonlisp
knusbaum has quit [Quit: ZNC 1.8.2 - https://znc.in]
phantomics has joined #commonlisp
knusbaum has joined #commonlisp
aartaka has quit [Ping timeout: 256 seconds]
aartaka has joined #commonlisp
Brucio-61 has quit [Ping timeout: 240 seconds]
scymtym has quit [Ping timeout: 256 seconds]
borodust has quit [Remote host closed the connection]
borodust has joined #commonlisp
borodust has quit [Remote host closed the connection]
MajorBiscuit has joined #commonlisp
borodust has joined #commonlisp
Dynom has joined #commonlisp
gaqwas has quit [Ping timeout: 256 seconds]
scymtym has joined #commonlisp
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
occ has quit [Read error: Connection reset by peer]
karlosz has quit [Ping timeout: 240 seconds]
dre has joined #commonlisp
s-liao has joined #commonlisp
xsperry has quit [Ping timeout: 250 seconds]
pingpongball has quit [Ping timeout: 256 seconds]
mon_aaraj has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
Cymew has quit [Ping timeout: 240 seconds]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
<mfiano> Hello all.
<mfiano> In a function of mine, I have an #'equal hash table, and I am checking if some key (a list) is present, if so, returning the value, and if not performing an expensive operation to calculate the value, before storing it and returning it...
cosimone has quit [Remote host closed the connection]
kathe has joined #commonlisp
<kathe> hello everyone. :)
<mfiano> A simple cache if you will. The key to test for is bound to a lexical variable stored with (list ...), and I would like to declare this variable as dynamic-extent for optimization purposes. In the second branch, the part that stores the key and calculated value if it doesn't exist, should I #'copy-list or #'copy-tree, and is this enough to not have any stack-allocated memory escape the
<mfiano> function?
pingpongball has joined #commonlisp
treflip has joined #commonlisp
<saturn2> mfiano: you have to copy all otherwise inaccessible parts of your list
<mfiano> Luckily they are not aggregate elements.
<mfiano> Just symbols
<saturn2> if they're interned symbols then copying the list structure should be enough
<mfiano> Ok, thanks.
kathe has left #commonlisp [#commonlisp]
rain3 has quit [Ping timeout: 240 seconds]
notzmv has quit [Ping timeout: 250 seconds]
Guest4430 has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
<pingpongball> is there any package system like pip for python , npm-yarn for js, cargo for rust,
<pingpongball> what is for common list?
<pingpongball> p
<jackdaniel> it is quicklisp, see quicklisp.org
<pingpongball> oh ok.
<pingpongball> thanks
<jackdaniel> mind that in common lisp we call such libraries "systems" while a "package" denotes a namespace
<jackdaniel> i.e a single system may have multiple packages
<pingpongball> oh ok :)
m5zs7k has quit [Ping timeout: 256 seconds]
<jackdaniel> quite unfortunate name given that it introduces plenty of confusion, but it is what it is
m5zs7k has joined #commonlisp
jack_rabbit has joined #commonlisp
mgxm has joined #commonlisp
ebrasca` has joined #commonlisp
Noisytoot_ has joined #commonlisp
ASau` has joined #commonlisp
boro has joined #commonlisp
attila_lendvai has joined #commonlisp
jmpeax_ has joined #commonlisp
gjvc_ has joined #commonlisp
jackdani1l has joined #commonlisp
utis_ has joined #commonlisp
Dynom_ has joined #commonlisp
igemnace has quit [Quit: WeeChat 3.4]
jackdaniel has quit [Killed (NickServ (GHOST command used by jackdani1l!~jack@turtleware.eu))]
jackdani1l is now known as jackdaniel
jackdaniel has quit [Changing host]
jackdaniel has joined #commonlisp
borodust has quit [*.net *.split]
Dynom has quit [*.net *.split]
knusbaum has quit [*.net *.split]
aartaka has quit [*.net *.split]
amb007 has quit [*.net *.split]
phantomics has quit [*.net *.split]
ebrasca has quit [*.net *.split]
alvaro121 has quit [*.net *.split]
Noisytoot has quit [*.net *.split]
mister_m has quit [*.net *.split]
gjvc has quit [*.net *.split]
ullbeking_ has quit [*.net *.split]
Posterdati has quit [*.net *.split]
utis has quit [*.net *.split]
Colleen has quit [*.net *.split]
dbotton has quit [*.net *.split]
froggey has quit [*.net *.split]
mgxm_ has quit [*.net *.split]
ASau has quit [*.net *.split]
contrapunctus has quit [*.net *.split]
stack1 has quit [*.net *.split]
cross_ has quit [*.net *.split]
danieli has quit [*.net *.split]
Shinmera has quit [*.net *.split]
jmpeax has quit [*.net *.split]
russe has quit [*.net *.split]
les_ has quit [*.net *.split]
TMA has quit [*.net *.split]
hubvu_ has quit [*.net *.split]
skyl4rk has quit [*.net *.split]
materialfuture has quit [*.net *.split]
aartaka has joined #commonlisp
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
Posterdati has joined #commonlisp
amb007 has joined #commonlisp
ullbeking_ has joined #commonlisp
russe has joined #commonlisp
stack1 has joined #commonlisp
dbotton has joined #commonlisp
Colleen has joined #commonlisp
danieli has joined #commonlisp
cross_ has joined #commonlisp
TMA has joined #commonlisp
froggey has joined #commonlisp
Shinmera has joined #commonlisp
alvaro121 has joined #commonlisp
mister_m has joined #commonlisp
hubvu_ has joined #commonlisp
les_ has joined #commonlisp
skyl4rk has joined #commonlisp
materialfuture has joined #commonlisp
phantomics has joined #commonlisp
contrapunctus has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life has joined #commonlisp
specbot has quit [Remote host closed the connection]
minion has quit [Read error: Connection reset by peer]
specbot has joined #commonlisp
taiju has quit [Ping timeout: 245 seconds]
minion has joined #commonlisp
Brucio-61 has joined #commonlisp
cosimone has joined #commonlisp
Jing has joined #commonlisp
frgo has joined #commonlisp
Algernon69 has quit [Ping timeout: 240 seconds]
Algernon69 has joined #commonlisp
<pingpongball> i was thinking what if someone replaced parens with indentation
<phoe> pingpongball: you aren't the first
<phoe> there was a recent fosdem talk by the lemweb duo at https://fosdem.org/2022/schedule/event/lispforeveryone/ that describes exactly the idea
<pingpongball> :D
<phoe> not strictly #commonlisp though, so #lisp might be a better place to discuss it
<jackdaniel> pingpongball: suposedly the python author was so much dissatisfied with lisp that he designed python
lisp123 has joined #commonlisp
<pingpongball> oh Why did MIT replace the Lisp programming class with Python in their undergraduate CS curriculum? on quora i was on
OlCe has quit [Ping timeout: 256 seconds]
lisp123 has quit [Ping timeout: 260 seconds]
<phoe> pingpongball: #lisp or #lispcafe might be good discussion spots for that
<phoe> #commonlisp is strictly on-topic with regard to Common Lisp the language
random-nick has joined #commonlisp
Guest4430 has quit [Ping timeout: 256 seconds]
occ has joined #commonlisp
<phoe> pingpongball: #commonlisp is strictly on-topic with regard to Common Lisp the language
<beach> pingpongball: Please don't post links without a description of what we might expect if we follow it.
<pingpongball> oh fav programming langauge :)
<beach> pingpongball: Then, what phoe said (twice).
<pingpongball> yes i'll not post :)
<pingpongball> only talk common lisp
<rotateq> pingpongball: And one day you can also not just speak but think in it. :)
<pingpongball> :)
<pingpongball> i'm currently learning  this lisp :)
<pingpongball> pcl
<pingpongball> rotateq , lets say if i finished basic common lisp, whats next?
<pingpongball> it would be cool if i build something out of lisp
<beach> pingpongball: Next, you learn idiomatic Common Lisp. This can be done from more books like PAIP, Keene, etc., or it can be done by reading existing code.
<pingpongball> example
<jackdaniel> minion: tell pingpongball about paip
<minion> pingpongball: paip: Paradigms of Artificial Intelligence Programming. More about Common Lisp than Artificial Intelligence. Now freely available at https://github.com/norvig/paip-lisp
<pingpongball> oh ok thanks
<pingpongball> i was interested and written so many things in python+pytorch, it would be cool there
<rotateq> Oh this is one of those wonderful timeless books. :)
lisp123 has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
mon_aaraj has quit [Ping timeout: 250 seconds]
mon_aaraj has joined #commonlisp
OlCe has joined #commonlisp
pingpongball has quit [Quit: "bye :* "]
notzmv has joined #commonlisp
mon_aaraj has quit [Remote host closed the connection]
mon_aaraj has joined #commonlisp
skeemer has joined #commonlisp
ec has quit [Ping timeout: 276 seconds]
ec has joined #commonlisp
mon_aaraj has quit [Ping timeout: 245 seconds]
monaaraj has joined #commonlisp
boro is now known as borodust
silasfox has quit [Quit: WeeChat 3.4]
occ has quit [Ping timeout: 245 seconds]
VincentVega has joined #commonlisp
vcarvalho has joined #commonlisp
<vcarvalho> Greetings! I'm new using common lisp, and was trying to use the cl-glfw3 system when i stumbled onto a problem with window-hint. There is also an issue in the repo https://github.com/AlexCharlton/cl-glfw3/issues/33, but when trying to use something of the form of %glfw:window-hint, my window doesn't open up. What am i doing wrong?
<jackdaniel> perhaps someone could point out what you are doing wrong if they had seen the code in question
<jackdaniel> sometimes when you minimize the code to show to others the crux of the issue you may find the problem yourself
Cymew has joined #commonlisp
Guest4427 has joined #commonlisp
OlCe has quit [Remote host closed the connection]
Bike has joined #commonlisp
<Guest4427> f
<Guest4427> Sorry, that was just a misclick
<vcarvalho> That's my bad, jackdaniel, here is the code in question https://pastebin.com/XfuU5NSF. I'm sure the issue is a gap in my knowledge
aartaka has quit [Ping timeout: 252 seconds]
s-liao has joined #commonlisp
monaaraj has quit [Remote host closed the connection]
<jackdaniel> vcarvalho: the problem is that window-hint is declared to accept as the second argument an int, so it doesn't recognize the keyword :opengl-core-profile
monaaraj has joined #commonlisp
<jackdaniel> you may either put there verbatim #x00032001
<jackdaniel> or (cffi:foreign-enum-value '%glfw::opengl-profile :opengl-core-profile)
<jackdaniel> also you should probably pull window hints into with-init-window
<jackdaniel> otherwise you may have no context and error is waiting to hatch
cosimone has quit [Remote host closed the connection]
cosimone has joined #commonlisp
kevingal has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
tyson2 has joined #commonlisp
lisp123 has joined #commonlisp
xsperry has joined #commonlisp
razetime has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<vcarvalho> Yep, that was it! Thanks for the help jackdaniel
parjanya has joined #commonlisp
<parjanya> mornings! is there any usual way of defining a function to be called just before delete-package-ing its package? so it can finish off its processes, close connections etc
<Bike> no. packages are just namespaces, not systems.
<jackdaniel> sure
<jackdaniel> parjanya: you may define your own function (defun delete-package* (package) (do-cleanup package) (delete-package package))
<jackdaniel> ("sure" was directed to vcarvalho)
<jackdaniel> alternatively you could register a finalizer to the package, but there is no telling when it will be executed (if at all)
epony has quit [Read error: Connection reset by peer]
<parjanya> jackdaniel: thanks, I was afraid so, but perhaps there were some hidden sorcery available : o )
<jackdaniel> some implementations offer the "advice" abstraction that allows you to define :before and :after functions
<jackdaniel> that said 1) it is not portable; 2) I'm not sure if it'd work with functions in CL package (due to the package lock)
occ has joined #commonlisp
<lisp123> To add, it is relatively easy to add advices
<lisp123> redefine DEFUN for your package where it looks up potential advice beforehand
cosimone has quit [Quit: ERC (IRC client for Emacs 27.1)]
<lisp123> Now to get the exact same level of flexibility as CLOS will take much more work, although maybe theres a way to piggy back off generic functions
cosimone has joined #commonlisp
gamaliel has joined #commonlisp
<phoe> lisp123: 404
gamaliel has quit [Client Quit]
<jackdaniel> not really
<jackdaniel> (not really 404)
silasfox has joined #commonlisp
<jackdaniel> ah, link behind the reddit one
<lisp123> phoe: thanks
<jackdaniel> also, that's confusing: "portable" and then only four implementations mentioned
<lisp123> jackdaniel: lol that's true
<lisp123> and not everyones favourite Lisp in C ;)
<lisp123> Although I wonder if there is much that DEFADVICE can do that generic functions can't
<jackdaniel> define multiple after / before advices against the same class set
<jackdaniel> (if we talk about the ordinary use, of course you may define a single before method that calls functions from the list)
<jackdaniel> and the prime promise is that you may attach advices to non-generic functions
<jackdaniel> s/promise/premise/
<rotateq> jackdaniel: and then thinking about all those implementations that don't exist yet or are used on other planets :)
<jackdaniel> I think that it was either a braino in reddit title or it just hints tested implementations
<jackdaniel> because there doesn't seem to be some implementation-specific parts in the repository
Guest4427 has quit [Ping timeout: 256 seconds]
<etimmons> I think the Reddit post was actually for this library: https://github.com/lisp-mirror/budden-tools/tree/master/cl-advice
rotateq has quit [Remote host closed the connection]
aeth has quit [Ping timeout: 240 seconds]
aeth has joined #commonlisp
cross_ is now known as cross
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #commonlisp
AeroNotix has joined #commonlisp
<clos-encounters> If I maphash over a synchronized hash table (in sbcl) is the lock held for the whole map or just for individual remhash / setf operations?
<AeroNotix> clos-encounters: which synchronized hash table?
<AeroNotix> I doubt it though, no matter what
<Bike> an sbcl hash table with :synchronized, presumably
silasfox has quit [Quit: WeeChat 3.4]
<clos-encounters> ya, in sbcl
<AeroNotix> in that case I'd suggest reading the docs
<AeroNotix> the :synchronized arg seems to has some 'interesting' clauses
<Bike> yeah the docstring on maphash explains
<Bike> "Consequences are undefined if HASH-TABLE is mutated during the call to MAPHASH [except for the current key]. This applies to all threads [...] even for synchronized hash-tables"
<AeroNotix> http://clhs.lisp.se/Body/03_f.htm see this also
<clos-encounters> the docstring for sbcl's implementation of maphash has the answer I needed
<AeroNotix> clos-encounters: the way I see it, the docstring is a rewording of the spec
<Bike> it's not. the spec does not contemplate concurrency.
<AeroNotix> Bike: it can't
<AeroNotix> Bike: so it's an interesting dilemma for implementations, that
<AeroNotix> where they add things like :synchronized
<clos-encounters> right. I had to look to the more specific docs
<AeroNotix> since the spec was created without thought to things like concurrency
<clos-encounters> implementation* specific
lisp123 has quit [Remote host closed the connection]
<jackdaniel> :synchronized :rollback-on-conflict ,)
<AeroNotix> clos-encounters: I think if it were me I'd avoid things like :synchronized
<AeroNotix> reasoning is that 1) it's implementation-specific and 2) it feels much safer to wrap entire blocks of operations with a mutex
<AeroNotix> but ultimately up to you, of course
<AeroNotix> clos-encounters: bordeaux-threads has rw-locks, too
<AeroNotix> hmm I may be wrong about RW locks, looking now
_73 has joined #commonlisp
<clos-encounters> AeroNotix: Yeah I agree. I'm already in the middle of switching to an unsynchronized table and managing concurrent access more expliclty.
<AeroNotix> I'd be interested to see why SBCL added that :synchronized option
<jackdaniel> synchronization of hash table access may be more robust than "slap a mutex over it"
<AeroNotix> jackdaniel: for some definition of robust?
<clos-encounters> I thought, hey, if maphash already locks the table, then I might as well use it. But I see that holding a lock for a whole map is a much less sensible default.
<clos-encounters> I see that as of last month :sychronized is no longer marked as an experimental option.
<jackdaniel> AeroNotix: locking is usually quite slow
<jackdaniel> you may explore the topic with https://en.wikipedia.org/wiki/Concurrent_hash_table as a starting point
<AeroNotix> jackdaniel: I can't imagine that :synchronized tables are much faster though
<jackdaniel> well, imagination is something that can be trained I believe
<AeroNotix> clos-encounters: there is sb-ext:with-locked-hash-table too
<Bike> there are lock free hash table implementations, though sbcl's is not one
<AeroNotix> right.. if it were lock-free they'd have called it out - 'synchronized' (to me) implies a big fat mutex
<_73> Say I have a class slot that only makes sense if it is of a certain type is there any reason not to specify a :TYPE in the slots specifier? I ask because I have seen a lot of other peoples code where they don't specify a :TYPE in this situation.
<jackdaniel> Bike: ccl offers a lockfree synchronization
<Bike> oh, really? that's cool
lambdart has joined #commonlisp
<mfiano> _73: It is not guaranteed to be checked, as with most type declarations, it is implementation-dependent.
<mfiano> _73: Some implementations, like SBCL, will check it at runtime, others, will not.
<jackdaniel> (you may still use a lock or nothing at all - depending on parameters)
<AeroNotix> sbcl uses sb-thread:mutex
<jdz> mfiano: I think CCL does check, SBCL might need some specific safety level (that's more than 1) to do that.
<mfiano> _73: I think it would be better to define auxiliary methods on initialize-instance or similar generic functions to do the type checking yourself.
<mfiano> Why rely on some or most implementation's behaviors when you can do it for all quite easily?
<_73> mfiano: Ok that makes sense
<mfiano> via check-type, assert, or your own thing
<jackdaniel> well, that should be checked also on (setf slot-value)
<jackdaniel> (and that could be implemented with mop too - given that you subclass standard-effective-slot-definition and specialize on that)
<mfiano> If you are exporting slots to your public interface, you have other problems, as they are implementation details...unless you really know what you're doing I guess.
<jackdaniel> accessors resolve to (setf slot-value) underneath
<beach> Are you sure about that?
<mfiano> Depends on the class
<mfiano> slot-value is undefined on instances of structure-class.
Guest4494 has joined #commonlisp
<beach> Also, in some cases it is possible to use a faster path by doing STANDARD-INSTANCE-ACCESS directly.
<mfiano> Yes, I have a metaclass for this. I feel dirty whenever I bring standard-class closer to structure-class semantics though, as I am giving up some interactivity in the process.
<fe[nl]ix> AeroNotix: adding RW locks is on the roadmap, but I can't give you a timeline
waleee has joined #commonlisp
<jackdaniel> 1) I've assumed standard-class, 2) using standard-instance-access will work on standard-efficient-slot-definition but is not guaranteed to work on its subclasses (that's why slot-value-using-class is specified I believe)
<beach> *effective
<jackdaniel> and yes, if you do low level access, then I wouldn't expect type checks
<jackdaniel> yes, effective*
Guest74 has joined #commonlisp
<jackdaniel> and, without certainity but with a strong conviction I believe that accessor defined by the defclass form on a subclass of standard-effective-slot-definition will call slot-value-using-class
<jackdaniel> s/ I believe/, I believe/
<jackdaniel> (possibly indirectly via slot-value)
Devon has joined #commonlisp
amk has quit [Remote host closed the connection]
amk has joined #commonlisp
aeth has quit [Ping timeout: 240 seconds]
<jcowan> Lock-free is all very well, but it doesn't solve the problem of transactions. I would use it only when the transaction size is 1 operation, now and forever. Its utility also depends on whether contention is actually commonplace: if not, you might as well pay the price for a mutex given that you won't be paying it often
<jcowan> It's considerations like these that caused Sun/Oralce to deprecate (almost?) all of its locking classes like Vector and Hashtable.
aeth has joined #commonlisp
<jackdaniel> it seems that when the slot type is not T, then a portable program can't use standard-instance-access, because the slot is not "directly accessible"
<jackdaniel> according to the section "instance structure protocol" in amop
Noisytoot_ is now known as Noisytoot
epony has joined #commonlisp
lisp123 has joined #commonlisp
_73 has left #commonlisp [ERC (IRC client for Emacs 27.2)]
lisp123 has quit [Ping timeout: 256 seconds]
pingpongball has joined #commonlisp
<luis> AeroNotix: yes
aeth_ has joined #commonlisp
<luis> I've just come across https://github.com/m2ym/trivial-types which seems neat and useful. No one appears to have stepped up to maintain it. fe[nl]ix et al: any objections to forking this into the sharplispers github?
Cymew has quit [Ping timeout: 256 seconds]
NotThatRPG has joined #commonlisp
aeth has quit [Killed (NickServ (GHOST command used by aeth_))]
aeth_ is now known as aeth
<luis> Actually, I'm confused by https://github.com/quicklisp/quicklisp-projects/blob/master/projects/trivial-types/source.txt How come there are two sources?
<AeroNotix> luis: seems like the digikar99 is a fork, which has additional work on it
<AeroNotix> as of ~3 months ago, which in CL terms is extremely recent
<AeroNotix> seems like it's 'maintained' to me, at least there
<luis> Better than maintained than CFFI possibly! I'm still confused by the two sources, though.
<AeroNotix> I'm quickloading it to see which source it actually pulls in
<AeroNotix> luis: seems potentially like it pulls in the m2ym source
<edgar-rft> the first link (m2ym) says: This repository has been archived by the owner. It is now read-only.
<luis> edgar-rft: yes, indeed, which is why I'm trying to find out if anybody's stepped in to maintain the project. Seems like digikar99 may have, but quicklisp is apparently not picking it up.
<AeroNotix> luis: oh I dunno, this actually looks like the digikar99 source
<AeroNotix> luis: no, I was wrong -- the source I have locally is the digikar99 fork
<AeroNotix> after pulling in w/ quicklisp
<AeroNotix> luis: seems like digikar99 requested this as of last year
<phoe> luis: want to see some inception?
<AeroNotix> luis: additionally came across lisp-maintainers... what's the / is there a relationship between lisp-maintainers and sharplispers?
<phoe> oh right, this
<luis> AeroNotix: not that I know of
<phoe> AeroNotix: I do not think there is any
<AeroNotix> seems like there could be some useful collaboration
<phoe> I think lisp-maintainers is digikar's invention for forking projects that are abandoned elsewhere
<phoe> not unlike sharplispers
<AeroNotix> lisp-maintainers at least reports more users which are associated it
<AeroNotix> including yourself michal
<phoe> wait
<phoe> lisp-maintainers?...
<phoe> or do you mean sharplispers
<AeroNotix> no, lisp-maintainers
<phoe> gasp
<luis> lisp-maintainers says it's an "open org" but it doesn't have any public members
<edgar-rft> luis: to me it looks as if problems had been found with the original code which was unmaintained, so digikar99 forked the project an added some bugfixes (but Xach prpbably knows better than me).
<AeroNotix> is where the digikar99 fork was placed into quicklisp
<phoe> AeroNotix: I don't think it's a list of people actively participating in that github org, more just another list of lispers that can be donated to
<luis> AeroNotix: yes, but this commit adds m2ym's repo not digikar99's: https://github.com/quicklisp/quicklisp-projects/commit/4c733f7cf65fa757cd7f2756083b0839ed252da0
<Guest74> maybe sharplispers would like to take over this https://github.com/JMC-design/clx-cursor . Another of mikhail's deleted repositories. I don't do any maintenance on it.
<phoe> Guest74: how much software depends on it?
<Guest74> no idea. I don't maintain it.  I just fork repositories that may disappear.
<etimmons> this looks relevant as well: https://github.com/quicklisp/quicklisp-projects/issues/1983
<etimmons> Looks like QL went from m2ym -> digikar -> m2ym
nature has joined #commonlisp
<AeroNotix> well that doesn't make sense as the source that quicklisp pulled in appears to be the digikar99 fork
<AeroNotix> is there no thing in quicklisp to tell me the _actual_ coordinates of what it pulled in?
<AeroNotix> e.g. metadata about a system
<AeroNotix> I'm saying it's digikar99's fork because of the presence of a .gitignore which is not in the m2ym source
<AeroNotix> uh yes it is
<AeroNotix> nvm
<AeroNotix> Xach: ^
<AeroNotix> how do you determine the original source location of a system installed through quicklisp?
<AeroNotix> seems like that information is not available
<AeroNotix> (which would be a nice addition)
<phoe> AeroNotix: (ql-dist:archive-url (slot-value (ql-dist:find-system "trivial-types") 'ql-dist::release))
<AeroNotix> thanks
<AeroNotix> phoe: still no
<AeroNotix> that's still not good enough
<pingpongball> oh it sucks
<AeroNotix> that just gives the tar.gz of the quicklisp package
<phoe> huh
<phoe> no idea then
<AeroNotix> I want the original git repo
<phoe> minion: tell pingpongball about pcl
<minion> pingpongball: look at pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<pingpongball> yes i'm on my way:)
<AeroNotix> phoe: even grepping all files within the quickisp dir doesn't reference the repo itself, I think it literally just isn't included alongside the source code.
<AeroNotix> etimmons: cool
<Guest74> anybody who uses multilanguage input have any links to an informative read on how to do that on linux?  I'm trying to add support and can't find relevant stuff in the kernel.
<etimmons> I opened that issue, but have not had any time to poke at it
<etimmons> But looking at the source code, it seems to only read the first line in any source.txt: https://github.com/quicklisp/quicklisp-controller/blob/5608e75ec9c4e1f33438c204d37f4d4ca2b21ff6/upstream.lisp#L139
<AeroNotix> etimmons: I'm already 3 forks deep, not working on what I originally wanted to work on ... .soooo :)
monaaraj has quit [Ping timeout: 268 seconds]
monaaraj has joined #commonlisp
<AeroNotix> etimmons: 4 years old with zero input from others
<AeroNotix> etimmons: out of interest did you ever run the quicklisp-controller locally?
<AeroNotix> wondering if it's feasible to do, how much data is it, what are the required non-lisp system dependencies, etc
<etimmons> yes
<AeroNotix> in the case of e.g. cffi bindings
<etimmons> Well, sort of
<AeroNotix> seems ripe for containerizing tbh
<etimmons> I ran it locally while testing https://github.com/quicklisp/quicklisp-controller/pull/21 , but I think I may have limited it to only systems I was interested in
<AeroNotix> e.g. this
<etimmons> I maintain this: https://gitlab.common-lisp.net/cl-docker-images/cl-devel A docker image that has many implementations and foreign deps already installed.
<AeroNotix> neat
<AeroNotix> so that + jamming in the bootstrap.sh script should get some reproducible environment for quicklisp-controller, perhaps
<etimmons> When I first started, I based the list of packages off https://github.com/quicklisp/quicklisp-controller/blob/master/debian-setup/debian-8-packages.txt
<AeroNotix> I'll give it a go just using your container image + running the bootstra.sh script directly, I'm interested if it Just Works
<AeroNotix> otherwise I entirely cannot be bothered to even poke at this
<etimmons> I've been trying to keep package names up to date between Debian versions, but given that the debian-9 package list is four years old at this point, there's almost certainly foreign deps missing for new QL systems
<etimmons> (the debian-9 package list in the ql-controller repo, that is)
<AeroNotix> I wonder how Xach maintains it all
<AeroNotix> I do truly feel sorry for them that likely this is a bunch of unpaid and underappreciated work that is mostly done solo
<AeroNotix> whereas it provides incredible, modern features to the CL ecosystem
<etimmons> I wanna say I've seen him mention Docker at some point. But that could have just been a fever dream
<AeroNotix> I think ql single-handedly brought the CL ecosystem lightyears ahead, in terms of dependency management
<AeroNotix> which is a huge part of the development lifecycle
<etimmons> Yep. I started using CL after QL was already on the scene. So I have not first-hand experience, but from what I can gather, things were not pretty beforehand
<etimmons> * no
<AeroNotix> the wild west
<AeroNotix> etimmons: your docker image is a chunky monkey
<etimmons> 6 implementations and a crapload of foreign deps will do that
monaaraj has quit [Quit: WeeChat 3.4]
<AeroNotix> luis: I put up a couple of cffi PRs, if you have time to take a gander
mon_aaraj has joined #commonlisp
<etimmons> I also have much more streamlined ones that contain a single impl and only common foreign deps
Algernon69 has quit [Quit: Leaving]
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
cage has joined #commonlisp
pingpongball has quit [Quit: Client closed]
Rue has quit [Quit: WeeChat 3.4]
<AeroNotix> etimmons: the boostrap script fails
<AeroNotix> https://gist.github.com/AeroNotix/de2a07a312e875b7afe01a3cb717d2fe not difficult to fix... but... $TIME
lisp123 has joined #commonlisp
<AeroNotix> any way this all seems extremely ripe to just containerize it all for reproducibility
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
Jing has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<lisp123> Bike: Thanks for your help a couple of days ago, I finally got it and and putting the final touches on my ordinary lambda list to function call macro
<Bike> happy to help
* phoe orders ELS tickets
<lisp123> phoe: Attending in person?
<phoe> lisp123: t, I will want to help organize the streaming on-site
<lisp123> Nice, jealous - you will have a great time
<Shinmera> oh, it's finally up?
<phoe> Shinmera: what is finally up?
<Shinmera> the registration
<phoe> nope
Everything has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
<Shinmera> then what tickets are you ordering
<phoe> the big steel bird ones
<Shinmera> ah.
<phoe> well, okay, they are not ELS tickets, right
<phoe> they are metatickets in a way
<etimmons> AeroNotix: You might be able to get pretty far by just commenting out this line: https://github.com/quicklisp/quicklisp-controller/blob/master/debian-setup/bootstrap.sh#L23 Most, if not all, of those packages should already be in the image
<Xach> etimmons: i have a way to dump all foreign dependencies, expressed as pathnames to shared libraries, i just don't do anything with that data (yet)
<Xach> partly because pathnames to shared libraries is extremely os- and distro-specific
<Xach> but it could be used to map back go package names on my specific os and distro
<jackdaniel> Xach: do you have any opinion about this patch? https://github.com/xach/zpb-ttf/pull/13
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
<Xach> jackdaniel: i don't like it much that ccl requires it, but it's not so offensive that i would reject it
<Xach> I will get it merged "soon"
<jackdaniel> right, the fact that it defaults to thread-private streams is annoying
MajorBiscuit has quit [Ping timeout: 256 seconds]
<jackdaniel> OK, thanks
<Xach> you should make a patch that lets it load OTF files that wrap a single TTF file!
<Xach> and for extra credit, Type1 font support
<Xach> (with otf wrapper support)
<jackdaniel> is that the one with 3 postscript-like virtual machines?
<Xach> I don't know
Guest4494 has quit [Ping timeout: 256 seconds]
<jackdaniel> apparently fonts in XXI century must be turing complete
<etimmons> Xach: That could be cool to have. Do you use Debian to build still or another OS these days?
<Xach> etimmons: debian 10, i think.
<Shinmera> I have now also booked the flights (and soon lodging)
ldb has joined #commonlisp
<fe[nl]ix> luis: no objection from me
unyu has quit [Quit: brb]
unyu has joined #commonlisp
rain3 has joined #commonlisp
amb007 has quit [Ping timeout: 250 seconds]
mon_aaraj has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
mon_aaraj has joined #commonlisp
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
lottaquestions has quit [Ping timeout: 240 seconds]
<Xach> etimmons: https://www.quicklisp.org/tmp/fl-alist.sexp approximately
Brucio-61 has quit [Ping timeout: 268 seconds]
Everything has quit [Quit: leaving]
Devon has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 256 seconds]
Devon has joined #commonlisp
<jasom> AeroNotix: agreed about quicklisp; prior to quicklisp if a system depended on any other systems, I would just write the 20% of it that I needed for myself as by experience that was faster than getting it to work. If the words "ASDF-INSTALL" appeared anywhere on the homepage, I backed away slowly without looking it in the eyes.
lottaquestions has joined #commonlisp
amb007 has joined #commonlisp
vcarvalho has quit [Ping timeout: 256 seconds]
mon_aaraj has quit [Ping timeout: 256 seconds]
karlosz has joined #commonlisp
Devon has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
* NotThatRPG wishes he was going to ELS
mepy has quit [Quit: Leaving]
monaaraj has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
mon_aaraj has quit [Remote host closed the connection]
treflip has quit [Quit: good night!]
<ldb> this year's?
monaaraj has quit [Ping timeout: 260 seconds]
monaaraj has joined #commonlisp
<NotThatRPG> ldb: Yes.
Brucio-61 has joined #commonlisp
lottaquestions has quit [Ping timeout: 240 seconds]
<jcowan> jackdaniel: Yes, otherwise they are not copyrightable (mere glyphs are not, in the U.S. at least)
wyrd has quit [Remote host closed the connection]
unyu has quit [Quit: WeeChat 3.4]
OlCe has joined #commonlisp
lottaquestions has joined #commonlisp
kevingal has quit [Remote host closed the connection]
OlCe has quit [Ping timeout: 256 seconds]
ldb has quit [Quit: ERC (IRC client for Emacs 27.2)]
<jackdaniel> that's a very poor reason for that
unyu has joined #commonlisp
aeth_ has joined #commonlisp
aeth has quit [Killed (NickServ (GHOST command used by aeth_))]
aeth_ is now known as aeth
amb007 has quit [Ping timeout: 250 seconds]
<jackdaniel> text rendering is already ridiculus even without purposeful obfuscation
amb007 has joined #commonlisp
vcarvalho has joined #commonlisp
mepy_ has joined #commonlisp
<dbotton> Is there any general document anyone knows concerning thread safety in lists and hashes (at the least) on SBCL and ECL?
<jackdaniel> I don't think so, but both have: a) threading primitives (mutexes etc), 2) synchronized hash tables (both through locks), 3) extensible cas operators (i.e atomic-push, atomic-pop)
hineios has joined #commonlisp
<AeroNotix> I'd also look at what (if anything) the spec says regarding these types of things, vs any implementation-specific details
<phoe> the spec doesn't
<jackdaniel> the standard doesn't concern itself with concurrency at all
<phoe> it ignores the multiprocessing aspect completely
<AeroNotix> shame
<dbotton> time when it was done
<dbotton> I was looking for something written up in general to know if to write one
<lisp123> quick question
<jackdaniel> Bike works on a memory model document for common lisp, but I don't know how advanced it is
<jackdaniel> and whether it is the thing you are looking for
<lisp123> I can't do (defgeneric abcd (xyz &optional (something default))) right?
<Bike> nobody claims to conform to it anyway, so
<lisp123> Does it go into the defmethod?
<Bike> lisp123: nope. defaults are per method.
<AeroNotix> Bike: you got a link to that document
<lisp123> Bike: thanks
<dbotton> CLOG makes heavy use of multiprocessing so looking to introduce people to issues and solutions that are unfamiliar
<Bike> lemme dig through my gists here...
<dbotton> maybe a multiprocessing in lisp for beginners
<jackdaniel> dbotton: for concurrency primitives the facto standard is a library bordeaux-threads that works on most implementations
<Bike> keep in mind this is supposed to be a standard, rather than a description of what implementations actually do
<jackdaniel> for atomic operations - manuals of each implementation
<Bike> as far as i know, for example, no implementation actually defines how concurrent reads and writes work
<jackdaniel> for parallel primitives (promises and such) check out the library lparallel
karlosz has quit [Ping timeout: 256 seconds]
<Bike> sbcl's manual kind of suggests reading the linux kernel's guide to fences
<AeroNotix> Bike: thanks
<dbotton> I am using bordeaux-threads
<Bike> "concurrent reads and writes" other than CAS which is a read-write-modify, i mean
karlosz has joined #commonlisp
<dbotton> I don't recall bordeaux-threads having hashes
<AeroNotix> not to beat a dead horse but concurrency specifically is something I think that should be standardized for CL
<dbotton> bike, neat thanks
<jackdaniel> AeroNotix: how many languages have concurrency in the standard?
<dbotton> agreed (but I am coming from Ada that had it in its standard from start)
<AeroNotix> jackdaniel: how many languages are standardized?
<Bike> java, C++, uhhhhh ada apparently
<karlosz> when is registration for els supposed to open? also hoping to get my metal tube tickets soon
lisp123 has quit [Remote host closed the connection]
<dbotton> Ada had it since '80s
<AeroNotix> Go, too
<Bike> what are ada's semantics for operating outside of mutual exclusion?
<AeroNotix> as well as a memory model
<AeroNotix> (somewhat)
<dbotton> Tasks and Task types were in from the first standard and memory models
<dbotton> 95 standard then added protected types
<dbotton> Mutual exclusion was not added till later, the Rendezvous was its semantics
<AeroNotix> Looks like Fortran, might, too
<dbotton> maybe now
<Bike> hm, i see. looks like in ada 83 you can use "pragma SHARED" to accesses acquire-release (or maybe sequentially consistent?). neat.
<Bike> to make accesses*
<Bike> and a rendezvous is kind of an acquire-release as well
pranavats has left #commonlisp [Error from remote client]
<Bike> the explanation i found is phrased in terms of preemptive multitasking, but whatever
<dbotton> Is there a cross platform version of hashes using locks?
<AeroNotix> dbotton: aside from bordeaux-threads + hashes?
<dbotton> I didn't see that in bordeaux-threads
<AeroNotix> well I just mean using a lock around a hashtable
<dbotton> ah, well one that us already canned
<AeroNotix> canned?
<dbotton> that does exactly that
<dbotton> an existing system in quicklisp
<dbotton> I don't like rolling my own if something exists (and is tested)
kpoeck has joined #commonlisp
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
lisp123 has joined #commonlisp
mon_aaraj has joined #commonlisp
monaaraj has quit [Ping timeout: 260 seconds]
<jackdaniel> dbotton: sbcl and ecl have an extension :synchronized t
<jackdaniel> ccl has :shared key that defaults to a synchronized hash table
<AeroNotix> they appear to be asking for a library which provides a cross-platform interface to those
kpoeck has quit [Client Quit]
karlosz has quit [Ping timeout: 240 seconds]
<Bike> oh, and there actually is a very brief mention of concurrency in the standard: the description of the abort restart mentions that "in some [...] multi-processing situations" it should maybe just kill the process instead of returning to the REPL or whatever
<Bike> problem solved
<jackdaniel> (defun make-hash-table* (&rest args) #+(or sbcl ecl) (apply #'make-hash-table :synchronized t args) #-(or sbcl ecl) (make-hash-table)) here
<jackdaniel> a portability library
<AeroNotix> jackdaniel: doesn't work on acl
<AeroNotix> ;)
amb007 has quit [Ping timeout: 240 seconds]
lisp123 has quit [Ping timeout: 256 seconds]
<jackdaniel> so?
<random-nick> you can also add mezzano to that list
phantomics has quit [Quit: Ex-Chat]
<dbotton> perfect thanks
mon_aaraj has quit [Remote host closed the connection]
mon_aaraj has joined #commonlisp
<random-nick> also, wouldn't you want to use a mutex in case of unknown implementation support?
<Bike> you might have an application where mutexes are actually too slow
rain3 has quit [Ping timeout: 245 seconds]
cage has quit [Quit: rcirc on GNU Emacs 27.1]
Dynom_ has quit [Quit: WeeChat 3.4]
gaqwas has joined #commonlisp
vcarvalho has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
karlosz has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
gaqwas has quit [Remote host closed the connection]
<Josh_2> Rip didn't realize that dex:delete didn't handle the :content key, guess thats a problem of using apply, no warning :(
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
<Bike> should still have been signaled unless allow-other-keys is also involved
amb007 has quit [Ping timeout: 240 seconds]
amb007 has joined #commonlisp
mon_aaraj has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
ASau` has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
ASau has joined #commonlisp
<phoe> or unless your safety is zero for some miraculous reason
hashfunc102e has joined #commonlisp
<Josh_2> Yep safety 0
OlCe has joined #commonlisp
<Bike> i would recommend not doing that.
<phoe> guess whose fault it is then!
<Josh_2> I think dex:request is safety 2 actually
<phoe> oh, yes
<phoe> at least on usocket
<phoe> ...why did it not fail on &key valiation then?
<phoe> dex:delete does not have &allow-other-keys on its own, maybe it's something that calls it?
triffid has quit [Quit: triffid]
<Josh_2> Well I was using dex:delete with apply, and the args list contained a :content key, I received no errors
<Josh_2> I only just realized that the :content was not being used
<phoe> very weird
amb007 has quit [Ping timeout: 240 seconds]
triffid has joined #commonlisp
<phoe> does your arg list contain :allow-other-keys?
amb007 has joined #commonlisp
<Josh_2> Nope
<Josh_2> It is '(:headers ... :content ...))
Brucio-61 has quit [Ping timeout: 250 seconds]
<phoe> (sb-ext:describe-compiler-policy) ?
scymtym has quit [Ping timeout: 250 seconds]
<phoe> what is your safety/debug?
<hashfunc102e> I have one SBCL process running on my machine. I have one Emacs process running on my machine. I have one Slime-REPL running on my one Emacs process. I want to open another Emacs process/Slime-REPL on my machine, and connect it to the one SBCL process running on my machine. Is this possible?
<phoe> hashfunc102e: yes
<phoe> create a new Swank server and M-x slime-conect to it
<Josh_2> phoe: I haven't changed the default for SBCL
<hashfunc102e> phoe: oh ok, maybe that's what I'm doing wrong. I didn't create the Swank server
<phoe> Josh_2: so the default, 1
<Josh_2> I guess so, safety 1 speed 1
<phoe> hmmmm
<Josh_2> I didn't realize that was the default, think I'd rather have safety 3, speed 1 :facepalm:
wacki has quit [Quit: Leaving.]
<phoe> Josh_2: sb-ext:restrict-compiler-policy
<phoe> I cannot reproduce this
dre has quit [Ping timeout: 240 seconds]
epolanski has joined #commonlisp
<Josh_2> Oh, I think its my fault
<Josh_2> dw
<Josh_2> How do I set the safety and speed for an entire project? Declaim?
<phoe> sb-ext:restrict-compiler-policy
<phoe> declaim has undefined consequences and can leak out of the file
<Josh_2> Right okay
<phoe> I guess you could perform some witchcraft and use asdf's around-compile hook
amb007 has quit [Ping timeout: 250 seconds]
amb007 has joined #commonlisp
<phoe> query the current policy, restrict the policy, unrestrict it back on exit
<phoe> but that would be a bit overkill - I think it's better to restrict safety to something nonzero so you can e.g. load jonathan or jsown into your image without remorse
<phoe> especially jsown
<hashfunc102e> phoe: can you have more than one Emacs processes connect to the same Swank server?
<hashfunc102e> *more than one Emacs process
<hashfunc102e> *multiple Emacs processes
<phoe> hashfunc102e: yes, but the server needs to be created with :dont-close t AFAIR
<phoe> otherwise it will stop listening after a single connection
<hashfunc102e> phoe: ahh, that must be what I'm running into
<NotThatRPG> The around compile hook would give a portable solution instead of an sb-ext one....
<phoe> NotThatRPG: portable, as in?
<Josh_2> Safety and debug jammed at 3 now, thanks phoe :)
<NotThatRPG> Using standard declarations.
<phoe> AFAIK a DECLAIM inside the file can still leak out
<phoe> and I don't think a portable solution would work
<NotThatRPG> phoe: Can't we use the hook wrapper to wrap a normal declaration around compilation
<NotThatRPG> ?
<phoe> a DECLAIM inside the compile hook will be overwritten by any toplevel DECLAIM in the source file
<phoe> that's the problem
<NotThatRPG> phoe: Yeah, if someone puts a declaim in the source file, then they presumably know why they did that.
<phoe> RESTRICT-COMPILER-POLICY is stronger than DECLAIM - if safety is restricted to 3 then no (declaim (safety 0)) will have any effect
<phoe> but, as long as you don't mind it - yes, that would work
<NotThatRPG> Any declaration in the source code will shadow anything around.
<phoe> the only issue is querying current compiler policy
<phoe> as in, checking the current values of the stadard OPTIMIZE declarations
<phoe> and you need implementation support for that
<NotThatRPG> phoe: Why do you need to if you are going to just set them?
<phoe> NotThatRPG: so that you can set them back after the file is done being compiled
<phoe> so that a toplevel DECLAIM does not leak out of that file and everywhere else, like it does e.g. on Allegro IIRC
<phoe> AFAIR luis had a horror story regarding this
<skeemer> is there any place where i can learn tricks with higher order functions?
<NotThatRPG> phoe: We don't need declaim, do we?
<phoe> skeemer: I think Practical Common Lisp has some materials for that
<skeemer> like the (select (where ( ...))) shown in practical common lisp?
<phoe> NotThatRPG: "need", as in? some projects will do exactly this
<skeemer> phoe, i only found that example
<Josh_2> functions that take functions as arguments :smirk:
<Josh_2> cool functions
<phoe> skeemer: hmmmmm
<NotThatRPG> phoe: Isn't this what we need: :around-compile-hook (lambda (thunk) (locally (declare (optimize ...)) (funcall thunk)))
<NotThatRPG> ?
<phoe> you are right, they are only mentioned in a few places
<phoe> NotThatRPG: I don't think that will work, these are declarations and not proclamations
<phoe> and declarations only affect lexical scope
<phoe> so only the funcall will be affected, but not the thunk itself
<NotThatRPG> phoe: Ah, right...
<phoe> we'd need something like (let ((policy (sb-ext:restrict-compiler-policy))) (unwind-protect (funcall thunk) (restore-policy policy)))
<phoe> where RESTORE-POLICY does some alist stuff to PROCLAIM all the stuff again
scymtym has joined #commonlisp
<NotThatRPG> so the compile-file call is not in the lexical environment of the declarations.
lisp123 has joined #commonlisp
Brucio-61 has joined #commonlisp
<NotThatRPG> Pretty sure there is no ANSI method to query compiler settings.
<NotThatRPG> But I think there's a library that tries to do it portably over a known set of implemenations.
<phoe> yes
<phoe> there is only CLtL2 stuff, DECLARATION-INFORMATION et al
<NotThatRPG> Can't remember the library, unfortunately.
amb007 has quit [Ping timeout: 250 seconds]
<phoe> (sb-cltl2:declaration-information 'optimize)
<phoe> (trivial-cltl2:declaration-information 'optimize)
amb007 has joined #commonlisp
<phoe> you can call this, grab the values from runtime, then PROCLAIM them again
<phoe> like, loop over each list and apply #'proclaim to it
mon_aaraj has quit [Ping timeout: 268 seconds]
lisp123 has quit [Ping timeout: 260 seconds]
<NotThatRPG> phoe: Thanks, that's good.
mon_aaraj has joined #commonlisp
<phoe> yes
nature has quit [Quit: leaving]
<phoe> I assume it could sound like an ASDF feature - on implementations that have any sort of support for cltl2'a DECLARATION-INFORMATION, or any other sort of informing at runtime about the optimization policy, make sure to save the compiler policy before compiling a system and then restore it via PROCLAIM afterwards
<phoe> no idea if it is going to break anything in practice, but hey, I'll accept *any* solution that works around jsown's madness
<phoe> and we'll be finally able to say that ASDF systems on some implementations have file-local OPTIMIZE settings or something
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
<fe[nl]ix> phoe: ASDF3 is at the end of its journey, you can't stretch it much further
<fe[nl]ix> I want better isolation, but it's getting harder and harder to shoehorn that into the ASDF3 model
<phoe> fe[nl]ix: sure
<fe[nl]ix> if you're interested, I could write down a design doc about a purely functional build system (similar to Bazel), but I can't implement it all myself
<phoe> I'm interested, but I'll be somewhat free in 2023 earliest - CLR2 is gonna keep me busy
<phoe> so, sure
<fe[nl]ix> it could even perhaps accept most of ASDF3 syntax, except the imperative stuff
<fe[nl]ix> what's CLR2 ?
<phoe> Common Lisp Recipes, 2nd Edi(tion)
ebrasca` has quit [Remote host closed the connection]
<phoe> ;; sorry for the pun
<fe[nl]ix> ah, książka
<phoe> dokładnie
ebrasca has joined #commonlisp
<fe[nl]ix> perhaps if I have a written doc I can find a gang to implement it
<fe[nl]ix> i.e. students with way more free time than me
<fe[nl]ix> :D
<phoe> :D
<phoe> either that or it's ASDF4 time to shine™
<phoe> or both mayhaps
<phoe> we'll see
wyrd has joined #commonlisp
<Josh_2> Ooops, turning on safety 3 showed quite a few typing mistakes with defclass
<Josh_2> ooppps
<phoe> :D
ogamita has quit [Ping timeout: 256 seconds]
wmblathers has quit [Quit: Leaving...]
dec0d3r has joined #commonlisp
epony has quit [Ping timeout: 240 seconds]
lambdart has quit [Remote host closed the connection]
aartaka has joined #commonlisp
cosimone has quit [Quit: ERC (IRC client for Emacs 27.1)]
shka has quit [Ping timeout: 240 seconds]
jpl01 has joined #commonlisp
dre has joined #commonlisp
hashfunc102e has quit [Ping timeout: 268 seconds]
karlosz has quit [Ping timeout: 240 seconds]
occ has quit [Ping timeout: 250 seconds]
aartaka has quit [Ping timeout: 240 seconds]
Oddity has quit [Ping timeout: 240 seconds]
semz_ has joined #commonlisp
OlCe has quit [Ping timeout: 256 seconds]
semz has quit [Ping timeout: 250 seconds]
hashfunc11c4 has joined #commonlisp
pve has quit [Quit: leaving]
epony has joined #commonlisp
igemnace has joined #commonlisp
waleee has quit [Ping timeout: 260 seconds]
attila_lendvai has quit [Ping timeout: 256 seconds]
semz_ is now known as semz
tyson2 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
ec has quit [Ping timeout: 276 seconds]
ec has joined #commonlisp
hashfunc11c4 has quit [Remote host closed the connection]