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/>
masinter has quit [Ping timeout: 244 seconds]
masinter has joined #commonlisp
Alfr is now known as Guest4311
Guest4311 has quit [Killed (calcium.libera.chat (Nickname regained by services))]
Alfr has joined #commonlisp
jmdaemon has quit [Ping timeout: 244 seconds]
Oladon has quit [Quit: Leaving.]
ec has quit [Quit: ec]
<fitzsim> Ober: unix-opts is pretty good, but from what I can tell, unmaintained
jolby has quit [Quit: Client closed]
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
cowboy8625 has joined #commonlisp
jmdaemon has joined #commonlisp
jolby has joined #commonlisp
ec has joined #commonlisp
yottabyte has joined #commonlisp
jolby has quit [Quit: Client closed]
asarch has joined #commonlisp
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
avocadoist has joined #commonlisp
azimut has quit [Ping timeout: 258 seconds]
asarch has quit [Quit: Leaving]
rgherdt_ has joined #commonlisp
cowboy8625 has quit [Quit: WeeChat 3.5]
Spawns_carpeting is now known as Spawns_Carpeting
rgherdt has quit [Read error: Connection reset by peer]
defaultxr has quit [Ping timeout: 244 seconds]
jmdaemon has quit [Quit: ZNC 1.8.2 - https://znc.in]
defaultxr has joined #commonlisp
sjl has joined #commonlisp
<mathrick> so I have this custom method combination: (define-method-combination first-successful () ((providers (:provider . *))) ...)
<mathrick> oooh, I think I just answered my own question as I was typing it
<mathrick> nevermind, I didn't
<mathrick> so then I have this GF: (defgeneric load-audio-file (loader file-or-stream) (:method-combination first-successful) ...)
<mathrick> and a method: (defmethod load-audio-file first-successful :provider :openal ((loader audio-loader) file-or-stream) ...)
<mathrick> but when I try to use it, I get an error:
tyson2 has quit [Remote host closed the connection]
<mathrick> invalid method error for #<STANDARD-METHOD CLUTCH-AUDIO:LOAD-AUDIO-FILE CLUTCH-AUDIO-OPENAL::FIRST-SUCCESSFUL :PROVIDER :OPENAL (AUDIO-LOADER T) {1004B355D3}>
<mathrick> method: is applicable, but does not belong to any method group
<mathrick> I expect that I made a mistake in the method group specifiers with (:provider . *), but based on my reading of CLHS, that's what the syntax should be
masinter has quit [Remote host closed the connection]
<bitspook[m]> Good morning!
frodef_ has joined #commonlisp
frodef has quit [Ping timeout: 252 seconds]
jmdaemon has joined #commonlisp
igemnace has joined #commonlisp
<dbotton> someone asked me if my code uses SLIME or SLY and I guess I am a bit confused. You can start the clog builder from a slime REPL, you can start it from a sly REPL. you can start it directly from sbcl, you can build an exe at use the REPL I wrote that runs in the browser. I guess I am confused as to how to properly understand and answer the question, any one can shed better light on what the relationship is of slime and sly and
<dbotton> the lisp image?
euandreh has quit [Ping timeout: 252 seconds]
SR-71 has joined #commonlisp
<SR-71> What do you guys think about https://github.com/rabbibotton/clog ?
livoreno has joined #commonlisp
lips123mob has joined #commonlisp
nij_ has quit [Ping timeout: 255 seconds]
lips123mob has quit [Remote host closed the connection]
<dbotton> SR-71: I think it's great ;)
<SR-71> I had been working on Bootstrap 5 for common lisp.
<dbotton> Bootstrap works well with clog
<dbotton> The builder currently has an issue with the elements of bootstrap that use data attributes
<SR-71> I see
<dbotton> But clog itself works well with it
<saturn2> dbotton: the CL half of slime is called swank, maybe they meant to ask whether it uses that to interact with the debugger and such
<dbotton> I plan on a fix in the builder in the future that will handle the data attributes for bootstrap when using then builder but may be a month or so
<dbotton> I'll add then a bootstrap plugin for the controls
<dbotton> saturn2: could be
<SR-71> I think, I should check Clog's source.
<dbotton> Any questions feel free to open a ticket
<dbotton> If you like clog I am happy to help you with how to make plugins and maybe you can do the bootstrap plugin for clog
<dbotton> I have a tutorial on bootstrap with clog number 16
<SR-71> I'll check it out.
<SR-71> Thanks
<dbotton> saturn2: I was also thinking maybe something to do with using a remote lisp image
rgherdt_ is now known as rgherdt
<saturn2> anyway, the relationship is that slime runs in emacs, and swank runs in the lisp image, and they communicate over a socket
<dbotton> So slime is just the emacs side?
avocadoist has quit [Read error: Connection reset by peer]
dre has quit [Ping timeout: 264 seconds]
<saturn2> yeah, although they're developed together as part of the same project, so it's a bit confusing
<edgar-rft> dbotton: slime and sly *both* are Emacs Lisp code an therefore can only be used by Emacs
avocadoist has joined #commonlisp
<dbotton> So I guess then technically I am not using slime or sly
<dbotton> Swank I do use directly
<edgar-rft> boigahs: true, but probably they wanted to ask something different :-)
<edgar-rft> umm, I meant dbotton ^^
eddof13 has joined #commonlisp
aartaka has joined #commonlisp
<dbotton> Thanks
shka has joined #commonlisp
SR-71 has quit [Ping timeout: 255 seconds]
aartaka has quit [Ping timeout: 260 seconds]
dre has joined #commonlisp
ttree has quit [Ping timeout: 260 seconds]
lottaquestions_ has quit [Remote host closed the connection]
lottaquestions_ has joined #commonlisp
aartaka has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
euandreh has joined #commonlisp
attila_lendvai has joined #commonlisp
<neominimum> Anyone used the local-time library recently. Doing `adjust-timestamp` with`(set part value)` doesn't seem to work for me. Instead of returning a timestamp with the `part` component set to the value, it's returning the epoch with the `part` component offset by the provided value (`part` being one of :day, :month, :year, etc.).
Brucio-61 has joined #commonlisp
<neominimum> Never mind, I was trying to set the day using :day but instead it needs :day-of-month
Cymew has joined #commonlisp
<Shinmera> mathrick: I'm afraid I may not remember if I've asked this before, but: any reason you're not using Harmony?
lottaquestions has joined #commonlisp
lottaquestions has quit [Client Quit]
ec has quit [Ping timeout: 258 seconds]
lottaquestions_ has quit [Ping timeout: 244 seconds]
ec has joined #commonlisp
<mathrick> Shinmera: yeah, it's simply because it's useful to wrap a couple things at this stage simply to inform the design, I intend to switch over to Harmony afterwards
gpiero has quit [Quit: Quitting...]
<Shinmera> Ok. Have you looked at how allocation and stuff works with Harmony, to ensure your design can actually switch over?
Brucio-61 has quit [Ping timeout: 244 seconds]
scymtym has quit [Ping timeout: 252 seconds]
makomo has quit [Quit: WeeChat 3.5]
gpiero has joined #commonlisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #commonlisp
Brucio-61 has joined #commonlisp
m5zs7k has quit [Ping timeout: 264 seconds]
m5zs7k has joined #commonlisp
cosimone has joined #commonlisp
avocadoist has quit [Read error: Connection reset by peer]
cosimone has quit [Remote host closed the connection]
scymtym has joined #commonlisp
cosimone has joined #commonlisp
avocadoist has joined #commonlisp
comatory_ has quit [Ping timeout: 268 seconds]
comatory_ has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
Brucio-61 has quit [Ping timeout: 255 seconds]
makomo has joined #commonlisp
nature has joined #commonlisp
nature has left #commonlisp [#commonlisp]
glaucon has joined #commonlisp
glaucon has quit [Client Quit]
jmdaemon has quit [Ping timeout: 252 seconds]
makomo has quit [Quit: WeeChat 3.5]
makomo has joined #commonlisp
dre has quit [Ping timeout: 260 seconds]
Brucio-61 has joined #commonlisp
<skeemer> is anybody commonlisping from netbsd?
Brucio-61 has quit [Remote host closed the connection]
Brucio-61 has joined #commonlisp
nyx_land_ has joined #commonlisp
nyx_land has quit [Ping timeout: 268 seconds]
nyx_land_ is now known as nyx_land
<beach> skeemer: What is it that you need to know?
glaucon has joined #commonlisp
glaucon has quit [Ping timeout: 244 seconds]
glaucon has joined #commonlisp
dre has joined #commonlisp
nij- has quit [Ping timeout: 244 seconds]
<skeemer> beach how well are lisp implementations supported in netbsd
<skeemer> lisp/scheme
<skeemer> like sbcl/chicken and other major impl
<Gnuxie> bitspook: Mrtn the bridge for this room seems to be broken
<beach> skempf: It looks like SBCL is still on 1.2 for NetBSD.
<beach> Er, skeemer I mean.
<beach> skeemer: But you can probably build the latest version from the sources.
glaucon has quit [Ping timeout: 268 seconds]
glaucon has joined #commonlisp
glaucon has quit [Client Quit]
<skeemer> beach, it's on version 2.2.5
<skeemer> what is the current version beach ?
<beach> You can check it on sbcl.org.
<beach> 2.2.8 seems to be the latest.
SR-71 has joined #commonlisp
analogsalad has joined #commonlisp
random-nick has joined #commonlisp
bitspook has joined #commonlisp
<bitspook> Testing matrix bridge.
<bitspook[m]> It shows new user joining but not the messages sent on irc side.
<beach> Hmm.
lisp123 has joined #commonlisp
bitspook has quit [Changing host]
bitspook has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
pve has joined #commonlisp
<kakuhen> Sucks, because some channels are working, but a lot aren't.
<lisp123> kakuhen: irc down?
<lisp123> is there a channel for doclang
SR-71 has quit [Read error: Connection reset by peer]
thuna` has joined #commonlisp
lisp123 has quit [Quit: Leaving...]
tyson2 has joined #commonlisp
jolby has joined #commonlisp
azimut has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
<edgar-rft> lisp123: there's ##cooking if that's what you're looking for
jolby has quit [Quit: Client closed]
<Helmholtz> What is application is CL particularly good at?
<Helmholtz> s/is//
<Shinmera> Whichever ones I make because I like using it.
<Shinmera> At least I consider "how often am I annoyed by the language/environment" to be probably the most important factor when making stuff.
<Gnuxie> kakuhen: the messages are one way, our messages can be seen but we can't see theirs.
jeosol has quit [Quit: Client closed]
<Gnuxie> i don't think it will be fixed https://github.com/matrix-org/matrix-appservice-irc/issues
<kakuhen> Gnuxie: well, I guess that will help cure my IRC addiction and get back to work on projects...
Brucio-61 has quit [Ping timeout: 255 seconds]
<kakuhen> thankfully #macports still works so I can still bug easye and others about all of the CL impls they maintain there :P
jeosol has joined #commonlisp
causal has quit [Quit: WeeChat 3.6]
<jcowan> and thankfully irc clients still work too
* jcowan predicts that in the end everyone else will drop support for IRC as too minority and too finicky, and leave us all alone, "Iarwain Ben-adar, last as he was first"
<jcowan> And this will be a Bad Thing
<Shinmera> Who is "everyone else"
<edgar-rft> everyone who is *not* everyone
mrcom has quit [Ping timeout: 252 seconds]
avocadoist has quit [Read error: Connection reset by peer]
mrcom has joined #commonlisp
makomo has quit [Ping timeout: 260 seconds]
Brucio-61 has joined #commonlisp
avocadoist has joined #commonlisp
mrcom has quit [Ping timeout: 252 seconds]
pranavats has left #commonlisp [Error from remote client]
avocadoist has quit [Read error: Connection reset by peer]
mrcom has joined #commonlisp
avocadoist has joined #commonlisp
ec has quit [Ping timeout: 258 seconds]
ec has joined #commonlisp
pranavats has joined #commonlisp
bitspook has quit [Ping timeout: 260 seconds]
makomo has joined #commonlisp
Brucio-61 has quit [Ping timeout: 244 seconds]
bitspook has joined #commonlisp
Brucio-61 has joined #commonlisp
Brucio-61 has quit [Ping timeout: 244 seconds]
mrcom has quit [Read error: Connection reset by peer]
mrcom has joined #commonlisp
mrcom_ has joined #commonlisp
jolby has joined #commonlisp
Dynom_ has joined #commonlisp
mrcom has quit [Ping timeout: 268 seconds]
Dynom_ is now known as Guest4969
bitspook has quit [Ping timeout: 268 seconds]
mrcom_ has quit [Ping timeout: 268 seconds]
Noisytoot has quit [Ping timeout: 252 seconds]
jolby has quit [Quit: Client closed]
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
jolby has joined #commonlisp
Noisytoot has joined #commonlisp
someguylolol has joined #commonlisp
<someguylolol> hello
<beach> Hello someguylolol.
<beach> someguylolol: Are you new here? I don't recognize your nick.
<someguylolol> yes i am
<someguylolol> first time logging on
<beach> Great! Welcome!
<someguylolol> anyone with vulkan experience in lisp here?
<beach> It is probably better to state your problem directly.
cage has joined #commonlisp
analogsalad has quit [Quit: bye]
<Helmholtz> So in short, I have to become emacs-pilled before CL-pilled
<Helmholtz> I see no other way...
<someguylolol> i'm looking for suggestions on how to get started with CL + vulkan. I'm a noob and want to be able to sort out rendering pipelines in different threads, and use  vertex, fragment + compute shaders. Looking for a decent starting point or pointers on how to find it myself
nij- has joined #commonlisp
cognemo has joined #commonlisp
<Shinmera> Afaik there isn't much yet. Some people started working on bindings, but nothing really exists yet.
<Shinmera> Most rely on OpenGL still, instead.
<yottabyte> up until now I've only written single file programs in emacs, how does working on a large project look like in practice? can I go to the definition of functions defined in other files easily, like in IDEs for other languages, or do I need to install some emacs package to help me out?
<yottabyte> I haven't done much debugging either, stuff like breakpoints, I just try different things in the repl and edit my functions to have prints in them
<random-nick> if you're already using SLIME, you should be able to use its jump to definition command if the function whose definition you want to jump to is loaded in the lisp image SLIME is connected to
<someguylolol> Shinmera if anyone interested in that stuff is here I'd love to team up - it's something my company want to seriously look into
<Shinmera> Well, I run #shirakumo and several people hang out there that are generally interested in graphics and games and such.
cognemo has quit [Quit: ZNC 1.8.2 - https://znc.in]
cognemo has joined #commonlisp
<Shinmera> There's also #lispgames, I think? I'm not there, though. The channel tends to be too noisy for my liking.
makomo has quit [Ping timeout: 252 seconds]
someguylolol has quit [Ping timeout: 252 seconds]
SAL9000 has quit [Ping timeout: 252 seconds]
<Shinmera> I personally can't commit any resources to it, I already have enough on my plate with sound system, ui toolkit, engine, and game.
karlosz has joined #commonlisp
<Shinmera> Switching to Vulkan at this point would also be extremely costly for no, to me, perceptible benefit
SAL9000 has joined #commonlisp
makomo has joined #commonlisp
<random-nick> hmm, vulkan seems to have an official and normative xml specification of the API
<random-nick> but it features CPP directives in some definitions
mrcom has joined #commonlisp
mrcom has quit [Read error: Connection reset by peer]
mrcom has joined #commonlisp
ec has quit [Ping timeout: 258 seconds]
someguylolol has joined #commonlisp
analogsalad has joined #commonlisp
thuna` has quit [Remote host closed the connection]
someguylolol has quit [Ping timeout: 252 seconds]
makomo has quit [Ping timeout: 244 seconds]
cosimone` has joined #commonlisp
cosimone has quit [Ping timeout: 244 seconds]
ec has joined #commonlisp
ec has quit [Remote host closed the connection]
<|3b|> there are vulkan bindings, and at least a few people actively using them i think
* |3b| is still using opengl as well though, not enough time for caring about 3d APIs at the moment :/
makomo has joined #commonlisp
NotThatRPG_ has joined #commonlisp
scymtym has quit [Remote host closed the connection]
eddof13 has joined #commonlisp
NotThatRPG has quit [Ping timeout: 244 seconds]
scymtym has joined #commonlisp
attila_lendvai has quit [Ping timeout: 260 seconds]
jolby has quit [Quit: Client closed]
NotThatRPG_ has quit [Ping timeout: 252 seconds]
Cymew has quit [Ping timeout: 252 seconds]
kuao has joined #commonlisp
<ober> fitzsim: thanks
nij- has quit [Remote host closed the connection]
jmdaemon has joined #commonlisp
thuna` has joined #commonlisp
orestarod has joined #commonlisp
<jeosol> good morning all!
<beach> Hello jeosol.
<jeosol> hi beach!
<jeosol> have you been on vacation or away a bit. I haven't seen you in these parts (though I haven't been here regularly myself)
<beach> I have been here every day as usual, but I make fewer utterances. I had some bad exchanges that made me feel quite bad, so I am protecting my health.
<jeosol> oh really. Sorry to hear that. Hmm interesting. I come here to pick the brain of guys/gals like your self and others
<beach> Go ahead.
<jeosol> with no intention to take you back, what was the general topic about SICL, CLOS, ...? that caused the issue
<beach> I don't remember, and I would rather not check the logs.
<jeosol> well, what I wanted to ask, related to one I posed yesterday was what is the recommended way to include and enforce "type" information in function signatures. I think it was recommended to use declaim/declare with ftype
<jeosol> beach: no worries then, forget it
<beach> Yes, that's what I do. DECLAIM with FTYPE.
<jeosol> and then the other part related to it was any overhead with defgenerics/defmethods
<mathrick> <Shinmera> Ok. Have you looked at how allocation and stuff works with Harmony, to ensure your design can actually switch over? <-- No, cause I'm doing a really dumb thing that is certainly not production ready and I fully expect to have to throw it out. It's not really the point of the exercise at this point :)
<Shinmera> Aighty
<jeosol> beach: thanks. I had that in critical parts of the code and want to use it in other parts
bitspook has joined #commonlisp
<beach> jeosol: It depends on the implementation. But most existing implementations probably use some version of what PCL invented, which is table based. That was good at the time, but I invented (and published) a method that we think is faster.
NotThatRPG has joined #commonlisp
<jeosol> beach: I think I remember we had this discussion before. Is the method related to your "call optimization " (?) paper.
<jeosol> not sure if i got the title right
<jeosol> also I use SBCL
<beach> There is a recent paper about call-site optimization, but that's not the one I am referring to. There is an older one about better generic dispatch. SBCL has not changed its dispatch technique as far as I know. And I don't think they will.
<jeosol> beach: call-site ..., that is what was
<jeosol> is it a lot of effort to change/update?
<beach> I think scymtym has an experimental implementation for SBCL, but it is a lot more complicated for SBCL, given the significantly more complex ways in which objects are represented.
<jeosol> beach: I see. I guess that's probably why it's not proritized yet.
<beach> I am not following SBCL maintenance, so I have no idea what their priorities are.
<beach> I have enough on my plate as it is, so someone else would have to change SBCL. But I suspect it won't happen. At least not any time soon.
<beach> Anyway, time to go fix dinner for my (admittedly small) family. I'll be back tomorrow.
frgo has joined #commonlisp
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
frgo has quit [Read error: Connection reset by peer]
frgo has joined #commonlisp
ec has joined #commonlisp
razetime has joined #commonlisp
ttree has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
jolby has joined #commonlisp
<Josh_2> Good Morning :sunglasses:
igemnace has quit [Remote host closed the connection]
azimut_ has joined #commonlisp
azimut has quit [Ping timeout: 258 seconds]
gxt has quit [Ping timeout: 258 seconds]
gxt has joined #commonlisp
eddof13 has joined #commonlisp
Josh_2 has quit [Ping timeout: 252 seconds]
jolby has quit [Ping timeout: 252 seconds]
azimut_ has quit [Ping timeout: 258 seconds]
azimut has joined #commonlisp
analogsalad has quit [Read error: Connection reset by peer]
jolby has joined #commonlisp
<jcowan> When is the right time, given a conventional AOT compiler, to inline methods into a generic function? Should it be done whenever DEFINE-METHOD is evaluated?
morganw has joined #commonlisp
<Bike> it's "defmethod", and there's more than one way you could do it
<Bike> but it would probably be later than defmethod
<Bike> it's pretty usual to have a bunch of defmethods, so recompiling the discriminating function over and over again as new defmethods come in would be pointless
jeosol has quit [Quit: Client closed]
<jcowan> defmethod, yes, of course
<jcowan> I suppose during a compile-file you'd want to wait, but at the REPL you probably wouldn't, at least if your REPL is a RCPL
<jcowan> (read-compile-print loop)
<Bike> part of the trick is that the methods alone don't really tell you every way the generic function will shake out. there may be a lot of technically possible effective methods, i.e. combinations of methods with call-next-method and etc., that never actually occur
<Bike> and it's a little hard (but not impossible, i think) to figure out every combination in advance anyway
<jcowan> Right
<jcowan> so you are saying they are not usually inlined after all?
<jcowan> I suppose I should go to #sbcl or sumpn
<Bike> not usually. i tried doing it in clasp for a while but mostly saw code size bloat without any huge improvement.
<Bike> partly because of all the repetition. even if you coalesce all sets of arguments that go to the same effective method, you have distinct effective methods with shared code, e.g. if A <: B and there are methods on A and B, the methods on B need to be included in both the B effective method(s) and the A
<Bike> you could counteract that with some clever jumping around, somewhat, but you're pretty much doing function calls in general, and then what's the point of "inlining"
<Bike> might make more sense for those generic functions that don't have any call-next-method use
* jcowan nods
comatory has joined #commonlisp
razetime has quit [Ping timeout: 244 seconds]
<jcowan> personally I am not a fan of c-n-m
comatory_ has quit [Ping timeout: 268 seconds]
<Bike> it is a pain in the ass to implement, but very useful practically
<jcowan> first of all, there is the ability to supply new arguments, and even if you agree not to do that, there is the problem of figuring out the linearization of a complex graph
<jcowan> which arguably CL does the wrong way, but it can't be changed
<Bike> huh? yeah it can
<Bike> people don't do it much, but there's this whole baroque custom method combination mechanism for doing exactly that
<Bike> changing arguments is useful for supplying new keyword arguments and stuff... beyond that i don't think i've ever done it, though
<Bike> and if that's not enough you can arrange things basically however you want with op, though that's even more baroque
<Bike> mop*
<jcowan> Oh yes, MOP.
<jcowan> I don't know much about it, really
<jcowan> I know what it's *for*, certainly, but not the details of what can be done, never mind how to do those things
<Bike> you and most lispers
<jcowan> MOP is about as far from Scheme as you can get, really
cosimone` has quit [Ping timeout: 244 seconds]
<jcowan> (in philosophy, not in details)
<Bike> the method combination stuff is in just the standard and not mop, though. just not used much. basically for your generic functions you write a function that computes a form that calls the methods. you can specify what the next methods will be, like (call-method a b c) would call the A method such that the next method is B, and then the B's next method is C
* jcowan nods
ebrasca has joined #commonlisp
<Bike> definitely very rarely used though. i've only ever used the "simple" custom method combinations, and that's already way more than most people use
<jcowan> I can see that
<Shinmera> MOP is cool, and good, and my friend.
<Shinmera> as is C-N-M. Supplying new args to C-N-M can't change the method order though, so that part isn't a big deal.
Lord_of_Life has quit [Ping timeout: 252 seconds]
<Bike> it does cause complications for the implementation, like technically it has to check that the methods are the same in safe code, which is nontrivial in general
<Bike> but very convenient to the end programmer, so hey
jolby has quit [Quit: Client closed]
<scymtym> that said, catching C-N-M calls with arguments that /would/ change the applicable methods in order bonk the user is non-trivial
Noisytoot has quit [Excess Flood]
<mathrick> I don't think you can even *not* have C-N-M, because there are things you can't achieve otherwise
Lord_of_Life has joined #commonlisp
Noisytoot has joined #commonlisp
<Shinmera> Indeed.
<Shinmera> What's also fun though, is that you can pass #'call-next-method into other functions.
<mathrick> as long as it's within the dynamic extent though, IIRC
<Shinmera> sure.
bitspook has quit [Ping timeout: 260 seconds]
cage has quit [Quit: rcirc on GNU Emacs 27.1]
<NotThatRPG> Bike, jcowan : A lot of my use of around methods and changing arguments come from type canonicalization. If you have a canonical argument type, but a bunch of equivalent forms (e.g., strings for pathnames, etc), then you can use around methods and argument-chaining to handle that for the caller.
<jcowan> Oh, nice.
<jcowan> Well, c-n-m couldl be replaced by something like call-method, that specifies the exact signature and calls that very method
<NotThatRPG> This seems like something that could be handled using a less general-purpose mechanism, if you had a compiler that would take advantage of said LGPM or even some genius macrology.
cosimone has joined #commonlisp
jolby has joined #commonlisp
<NotThatRPG> Reading CL code that's out there in the wild, I often find it quite difficult to guess what programming language type a given function is supposed to accept. As a slob, instead of trying to remember the answer, I often find it's easier just to set up a few methods to render arguments into the right form before calling the "real" function
<aeth> weird, I never get that impression unless it's using lists or whatever (can be anything at that point).
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
<Bike> jcowan: that would not work for, for example, an :around method on very abstract classes (that perhaps the programmer is expected to subclass and write primary methods for) that checks something and only call-next-method-s if it's true
* jcowan nods
<jcowan> OTOH, c-n-m will not work if you want to invoke some method further down the list than the very next one
<jcowan> everything has its limits
<jcowan> arguably c-n-m for :around and c-n-m for :primary are different beasts
<Bike> also, that could introduce its own stragenesses, like skipping the normal subclassing hierarchy. something you can do in systems that do have you explicitly notate such things, like in C++
<Bike> (you sometimes might want to do/allow that too, of course)
<mathrick> So I think my method combinations problems I asked about last night were a bug in SBCL: https://plaster.tymoon.eu/view/3409#3409
<mathrick> it doesn't properly consider * to be a wildcard in the method group specifier list unless it's the dotted tail
<jcowan> Bike: Are you familiar with INNER in the Beta language? It's a truly different kind of method combination
<Bike> i am not
<Bike> i assume it is different from the common "super" stuff
<jcowan> In Beta, a call invokes the most general method, which has a call INNER that invokes the next less general method and so on
<jcowan> so it is the inverse of SUPER
<jcowan> s/less/most
<jcowan> I wonder if that is achievablle as a CL method combination type
<Bike> yeah, the "simple" method combinations let you specify most-specific-last
<Bike> you'd have to write your own for the standard combination, but it's doable
<Bike> (at least i think you would. i have never personally had a use for this reordering)
<Bike> mathrick: wow, now that's an obscure one
dlowe has joined #commonlisp
<mathrick> also, the anagram-based captcha on plaster is awful. It's often really hard to solve for humans, the question is in a placeholder text, so you can't copy it and have to retype a jumble of letters exactly to use an automated anagram solver, the contrast is low so it's very hard to read, and I'm pretty sure it's nigh-impossible to solve for blind users and people whose English isn't very strong
comatory has quit [Ping timeout: 244 seconds]
<jcowan> mathrick: no audio mode?
<mathrick> not that I can see, and a screen-reader will struggle reading out a jumbled mess of letters that you're supposed to unscramble
<jcowan> the idea is that less general methods specialize the most general method
<jcowan> every gf has an implicit method whose signature is "all T"
<mathrick> if it had a link to a page with the answer, that would make it way, way better, and unlikely to be any less effective against automated attackers
comatory has joined #commonlisp
waleee has joined #commonlisp
<_death> you can write an extension to fill it
<NotThatRPG> aeth: I see a lot of cases where there are arguments that are symbol-like (symbol designator) but only want a string or a symbol; pathnames or namestrings, and for data structures that have s-expression forms, functions that want either the s-expression or the data structure, but not both
<NotThatRPG> mathrick: Right -- a screen-reader is just the tech that they are trying to guard against!
<NotThatRPG> jcowan: ?? If that was the case we would never get a no-such-method error...
dlowe has quit [Remote host closed the connection]
orestarod has quit [Ping timeout: 244 seconds]
<mathrick> <_death> you can write an extension to fill it <-- you mean the captcha? If so, that solves absolutely none of the issues with it
elderK has joined #commonlisp
<mathrick> captcha are a massive accessibility barrier and this a bad one
<_death> it solves the issue named "captcha".. but I feel this discussion is off topic anyway.. later
<mathrick> asking users to fix it does not solve the issue, no
<mathrick> and writing an extension is a user-side fix
slyrus has quit [Ping timeout: 260 seconds]
<Shinmera> mathrick: you can register an account and that will get rid of the captcha.
<Shinmera> you can also submit a pr to include a better captcha that's just as effective, instead of complaining here.
<mathrick> where's the code?
<Shinmera> it's linked in the footer.
<mathrick> oh, the "Running on Plaster" thing?
<Shinmera> it is a link.
<mathrick> yes, I see it now
tyson2 has quit [Ping timeout: 268 seconds]
<ober> hmm no trivial-lru in quicklisp
<mathrick> it's probably in Ultralisp
<mathrick> huh, apparently not
<ober> thanks pickle^Wmathrick
orestarod has joined #commonlisp
<ober> cool will add that
<mathrick> where does it live anyway? Google doesn't seem to be aware of it
<jcowan> NotThatRPG: Yes, that was a brain fart on my part
<NotThatRPG> Happens to the best of us...
<ober> mathrick: to be written it seems. :P
<jcowan> what I meant was this: if there is no less-general method, then (inner) does nothing and returns nothing
Guest4969 has quit [Quit: WeeChat 3.6]
cowboy8625 has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jolby has quit [Quit: Client closed]
scymtym has quit [Ping timeout: 260 seconds]
comatory has quit [Ping timeout: 252 seconds]
cosimone has quit [Ping timeout: 260 seconds]
comatory has joined #commonlisp
jolby has joined #commonlisp
waleee has quit [Ping timeout: 268 seconds]
Gnuxie_ has joined #commonlisp
scymtym has joined #commonlisp
jolby has quit [Quit: Client closed]
shka has quit [Ping timeout: 244 seconds]
rgherdt has quit [Remote host closed the connection]
aartaka has quit [Ping timeout: 252 seconds]
waleee has joined #commonlisp
nij- has joined #commonlisp
euandreh has quit [Ping timeout: 252 seconds]
euandreh has joined #commonlisp
livoreno has quit [Ping timeout: 260 seconds]
livoreno has joined #commonlisp
morganw has quit [Remote host closed the connection]
pve has quit [Quit: leaving]
Noisytoot has quit [Excess Flood]
Noisytoot has joined #commonlisp
thuna` has quit [Remote host closed the connection]
NotThatRPG has joined #commonlisp
Gnuxie_ has quit [Quit: Leaving]
causal has joined #commonlisp
notzmv has quit [Ping timeout: 268 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
NotThatRPG has joined #commonlisp
jeosol has joined #commonlisp
pieguy128 has quit [Ping timeout: 260 seconds]
kuao has quit [Quit: elton john found alive]
luna-is-here has quit [Read error: Connection reset by peer]
scymtym has quit [Ping timeout: 252 seconds]
scymtym_ has joined #commonlisp
luna-is-here has joined #commonlisp
edgar-rft has quit [Ping timeout: 252 seconds]
edgar-rft has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
orestarod has quit [Ping timeout: 244 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
waleee has quit [Quit: WeeChat 3.6]
pieguy128 has joined #commonlisp
waleee has joined #commonlisp
pieguy128 has quit [Ping timeout: 244 seconds]
eddof13 has joined #commonlisp
<mathrick> Bike: oh bummer, it turns out that SBCL won't allow multiple methods with the same specialisers, even if their qualifiers differ, so aside from finding a bug, this was kind of a big waste of time
<mathrick> this is apparently something of a known deficiency in CLOS/MOP. but I didn't know until now: http://www.european-lisp-workshop.org/archives/07.rhodes.pdf
pieguy128 has joined #commonlisp
pieguy128_ has joined #commonlisp
pieguy128 has quit [Ping timeout: 260 seconds]
anticomputer has quit [Quit: quit]
anticomputer has joined #commonlisp
jmdaemon has quit [Quit: ZNC 1.8.2 - https://znc.in]
random-nick has quit [Ping timeout: 268 seconds]
<Bike> i don't understand. i do that all the time with before/after etc
<Bike> is it that they can't go into the same method group in the combination?
<mathrick> Bike: yes, that's what it seems to be
<mathrick> not sure why that is, but the paper does mention that as the strict reading of the spec
<Bike> i see. well, sorry for misleading you, i did not know that
<mathrick> no worries, we've learnt now!
<waleee> did the sly dev change something (somewhat) recently? It keept polling forever in emacs
<waleee> -e
<Bike> if i had to guess why, it's because there's o way to order the methods
<Bike> for your application you don't care (i assume) but it matters a lot for the conventional combinations
<mathrick> that is my guess
<Bike> no way*
comatory has quit [Ping timeout: 244 seconds]
<mathrick> also, I was not aware of the restriction, and I still haven't found the part of the spec that says it, but apparently components of the qualifier lists are only allowed to be symbols , characters (?), or strings
<waleee> must be something in a recent sbcl commit, the latest sly change was in july
<mathrick> so doing something like (defmethod foo :ordered 10 (args) ...) is not an option
comatory has joined #commonlisp
<Bike> mathrick: that would kind of surprise me. the glossary just says qualifiers are objects, and clhs defmethod only says they're non-lists
<Bike> and i can't think of any reason to exclude any object, really... lists are only excluded because of how defmethod's syntax works
<Bike> i can totally believe some implementation messing this up, because this doesn't come up much
<mathrick> Bike: CCL very explicitly states that it only accepts those 3 types if you try anything else
<mathrick> SBCL seems more willing to accept it
<mathrick> so between all the implementations, there's just no way for me to make it work, sadly
<Bike> weird
<Bike> i can't think of a reason to reject them even out of implementation laziness
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cercopith_ has joined #commonlisp
cercopith has quit [Ping timeout: 244 seconds]
jello_pudding has quit [Ping timeout: 248 seconds]