Xach 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>
taiju has joined #commonlisp
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
thomaslewis has joined #commonlisp
taiju has quit [Ping timeout: 256 seconds]
akoana has quit [Quit: leaving]
Mandus_ has quit [Ping timeout: 256 seconds]
Mandus_ has joined #commonlisp
<mfiano> Heh, it seems McCLIM doesn't even build anymore.
<mfiano> It depends on some SLIME system expecting a swank package, even when loaded from terminal repl or Sly
horar has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life_ is now known as Lord_of_Life
horar has quit [Client Quit]
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
yodudd has joined #commonlisp
<yodudd> can anyone see this?
<hayley> No.
<yodudd> Good
Mandus_ has quit [Remote host closed the connection]
Mandus_ has joined #commonlisp
<random-nick> mcclim builds fine for me (from quicklisp)
<mfiano> Probably because you have that read-time dependency
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
igemnace has quit [Remote host closed the connection]
<random-nick> I think it's something on your end, because I just tried it with a fresh quicklisp in a fake home directory and it quickloaded without any errors
thomaslewis has joined #commonlisp
dec0d3r has joined #commonlisp
karlosz has joined #commonlisp
BonnieT100 has quit [Remote host closed the connection]
rgherdt has quit [Remote host closed the connection]
random-nick has quit [Ping timeout: 245 seconds]
pjb has quit [Ping timeout: 245 seconds]
Lycurgus has joined #commonlisp
Mandus_ has quit [Ping timeout: 256 seconds]
Guest74 has joined #commonlisp
<Guest74> mfiano: what kind of things are you looking for in a graphics/animation package?
Mandus_ has joined #commonlisp
<Guest74> I'm thinking I need an animation schedular, that handles animations for the whole system.
<Guest74> currently I just launch individual threads for each animation, which is just made generating the animation through templates, i.e. backquote forms.
<Guest74> I tried using my stuff to visualize your code but your fn to generate output didn't seem to be giving me the correct sized array for the first pass and then it kept hanging on the second pass.
<Guest74> I think I should probably clean up my surface/draw/vector-graphic/raster/image protocols since it seems to be something that keeps coming up.
<Guest74> and maybe reuse cl-svg to render svg.
<Guest74> I just wish I had a lisp only way to turn off screen updates on the console. The framebuffer stuff is usable but a bit annoying when emacs repaints parts of the screen.
<Guest74> it's not really that slow either, here's some turtle graphics on the console. https://www.youtube.com/watch?v=KXOhVNbECDc
Oladon has quit [Quit: Leaving.]
Catie has quit [Quit: rcirc on GNU Emacs 29.0.50]
Inline has quit [Ping timeout: 245 seconds]
<copec> You have n layers of nested hash-table's, for instance n=2: (gethash key1 hash-table1) => hash-table2 and (gethash key2 hash-table2) => end object; Can you iterate over all the end objects using LOOP, without knowing n ahead of time?
s-liao has joined #commonlisp
<copec> I used a recursive algorithm with function calls, it just got me thinking. I can see generating a function with n nested loops and then funcall'ing it, and memozing the function for each n
<Guest74> Wouldn't you have to know N beforehand because you know the keys?
dec0d3r has quit [Remote host closed the connection]
<copec> Oh sorry, I mean writing something that iterates over all the end objects
Guest74 has quit [Ping timeout: 256 seconds]
s-liao has quit [Ping timeout: 256 seconds]
s-liao has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
pranavats has left #commonlisp [#commonlisp]
Oladon has joined #commonlisp
vats has quit [Ping timeout: 264 seconds]
taiju has joined #commonlisp
lisp123 has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
Lycurgus has quit [Ping timeout: 256 seconds]
<beach> Good morning everyone!
<lisp123> Good morning!
<yodudd> Hello
<beach> yodudd: Are you new here? I don't recognize your nick.
semz has quit [Ping timeout: 268 seconds]
ym has joined #commonlisp
semz has joined #commonlisp
guthur has quit [Quit: Client closed]
Alfr has quit [Quit: Leaving]
<lisp123> TIL: The word "mixin" comes from Steve's Ice Cream, a favorite ice cream shop of MIT students located in Somerville, Mass., in the late '70s. Steve's made its own (very rich) ice cream in a motorized old-fashioned ice cream maker in the window of the shop. Sometimes the line for an ice cream cone was out the door and down the block! You would order a cone or dish, and specify the base flavor and any mixins you wanted.
<beach> Right, and that's also why we use "vanilla" to mean something basic, like "vanilla Linux".
pranavats has joined #commonlisp
<lisp123> That's interesting - thanks
<beach> Sure.
namasteaks has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
<Nilby> When all the ice cream shops in Boston started doing mixins everybody's ice cream became highly customized. Also Lisp OO stuff before CLOS was called Flavors.
<yodudd> Yes I'm new here beach
<yodudd> thomaslewis sent me over here
<holycow> lisp123_win: have you plaged with CLOG yet? just curious if you have any thought.
nature has quit [Ping timeout: 260 seconds]
<beach> yodudd: Welcome!
<beach> yodudd: Are you new to Common Lisp?
s-liao has joined #commonlisp
Alfr has joined #commonlisp
Everything has joined #commonlisp
<yodudd> Yup, never used it
<beach> Feel free to ask questions. If they become numerous and truly trivial, you may get redirected to #clschool.
taiju has quit [Ping timeout: 245 seconds]
s-liao has quit [Ping timeout: 256 seconds]
ym has quit [Ping timeout: 268 seconds]
<yodudd> Okay thanks!
ebrasca has joined #commonlisp
lisp123_win has left #commonlisp [ERC (IRC client for Emacs 26.3)]
<beach> yodudd: Have you programmed in other languages before?
taiju has joined #commonlisp
lisp123w has joined #commonlisp
<lisp123w> holycow: No, I hadn't heard of that until now. But I had a look and it looks pretty cool! Will definitely check it out when I start some GUI work
<lisp123w> Have you started using it?
<holycow> a bit here and there
<holycow> i remember seeing your web tests on reddit
<lisp123w> Nilby: Yes, thought of you when I saw that post :) To think the most powerful object oriented system came from a love of ice cream ;)
<holycow> would be interesting to see what you think of clog
<lisp123w> Will let you know! Web GUI / Apps fit CL like a hand in a glove ;)
<lisp123w> Nilby: Did you ever frequent that shop?
<Nilby> Yes. It was pretty good. I like CLOS mixin's too, but I never got the hang of Flavors.
<Nilby> But stealth mixins in non-CLOS ice cream aren't usually so good. There's also the "make a sundae" example in CLHS.
<lisp123w> Great - will check it out! I just did my first mixin today (not tested)
taiju has quit [Ping timeout: 256 seconds]
s-liao has joined #commonlisp
waleee has quit [Quit: WeeChat 3.3]
johnjay has quit [Ping timeout: 260 seconds]
gaqwas has joined #commonlisp
johnjay has joined #commonlisp
johnjay has quit [Ping timeout: 260 seconds]
johnjay has joined #commonlisp
<White_Flame> beach: yeah, and it's funny when you learn that vanilla is the second most expensive spice in the world, next to saffron
<White_Flame> so vanilla really should be some sort of compliment :)
<beach> Good point.
guthur has joined #commonlisp
<yodudd> No not really beach. I have edited code in other languages, and made games with scratch 2.
<beach> I see. Then you have an advantage over others when it comes to learning Common Lisp. :)
taiju has joined #commonlisp
dre has quit [Ping timeout: 268 seconds]
Lycurgus has joined #commonlisp
Lycurgus has quit [Client Quit]
rain3 has joined #commonlisp
shka has joined #commonlisp
pve has joined #commonlisp
aartaka has joined #commonlisp
Oladon has quit [Quit: Leaving.]
<yodudd> Lol, good to know that :-)
taiju has quit [Ping timeout: 256 seconds]
Spawns_Carpeting has quit [Ping timeout: 264 seconds]
s-liao has quit [Ping timeout: 256 seconds]
Spawns_Carpeting has joined #commonlisp
rgherdt has joined #commonlisp
Lycurgus has joined #commonlisp
namasteaks has quit [Ping timeout: 245 seconds]
Spawns_Carpeting has quit [Ping timeout: 260 seconds]
Spawns_Carpeting has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 245 seconds]
Spawns_Carpeting has joined #commonlisp
dec0d3r has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 256 seconds]
Spawns_Carpeting has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 256 seconds]
Spawns_Carpeting has joined #commonlisp
dec0d3r has quit [Remote host closed the connection]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 245 seconds]
Lord_of_Life_ is now known as Lord_of_Life
taiju has joined #commonlisp
cage has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 245 seconds]
lisp123 has joined #commonlisp
Spawns_Carpeting has joined #commonlisp
hendursa1 has joined #commonlisp
Devon has quit [Ping timeout: 256 seconds]
hendursaga has quit [Ping timeout: 276 seconds]
rgherdt has quit [Remote host closed the connection]
Spawns_Carpeting has quit [Ping timeout: 260 seconds]
Spawns_Carpeting has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 260 seconds]
Spawns_Carpeting has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 256 seconds]
Spawns_Carpeting has joined #commonlisp
ec has quit [Ping timeout: 276 seconds]
ec has joined #commonlisp
Lycurgus has quit [Quit: Exeunt]
Spawns_Carpeting has quit [Ping timeout: 245 seconds]
cosimone has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
Spawns_Carpeting has joined #commonlisp
dre has joined #commonlisp
pve has quit [Ping timeout: 264 seconds]
pve has joined #commonlisp
dre has quit [Ping timeout: 260 seconds]
Spawns_Carpeting has quit [Ping timeout: 260 seconds]
Nselm has joined #commonlisp
Spawns_Carpeting has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 256 seconds]
Spawns_Carpeting has joined #commonlisp
<Jing> I'm quite new to Emacs and found that Ivy is recommended with Emacs. Would it conflict with, say, Sly and some other Lisp related packages?
<Jing> I meant Ivy, counsel, and swiper
s-liao has joined #commonlisp
<contrapunctus> Jing: not at all. It enhances some completion mechanisms, and you can turn them off if you don't like them.
<Jing> Thank you, contrapunctus. I was worried that its key-bindings may cause conflict...
MumblyFoo has joined #commonlisp
<jackdaniel> welcome to the emacs game: first to configure to their satisfaction wins
<jackdaniel> the most promising contender plays 23y and has 20kloc of configuration, but we don't know when they'll reach satisfaction
MumblyFoo has quit [Remote host closed the connection]
random-nick has joined #commonlisp
MumblyFoo has joined #commonlisp
paule32 has joined #commonlisp
zacque has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 268 seconds]
Spawns_Carpeting has joined #commonlisp
gaqwas has quit [Remote host closed the connection]
<Jing> I try to keep it simple :)
* shka can't get no satisfaction
utis has joined #commonlisp
aartaka has quit [Ping timeout: 264 seconds]
aartaka has joined #commonlisp
<jackdaniel> and we don't need no education
<hayley> We don't need no CONS control...
tyson2 has joined #commonlisp
pjb has joined #commonlisp
Nselm has quit [Quit: Client closed]
pjb has quit [Remote host closed the connection]
ogamita has joined #commonlisp
guthur has quit [Quit: Client closed]
ogamita has quit [Client Quit]
ogamita has joined #commonlisp
ldb has joined #commonlisp
ldb has quit [Remote host closed the connection]
ldb has joined #commonlisp
Guest74 has joined #commonlisp
ogamita is now known as Guest2347
<pve> The Emacs game is a bit like Nethack. First you fight your way to the deepest levels of hell and then all the way back up. And if you did everything exactly right, you get to ascend to the heavens :)
pjb has joined #commonlisp
Guest2347 has quit [Ping timeout: 268 seconds]
<ldb> and emacs crashes when I use tls to connect irc :D
pjb is now known as Guest641
pjb has joined #commonlisp
<jackdaniel> emacs exploits both the stockholm syndrome and the sunk cost syndrome at the same time
<Guest74> possible diffusion of responsibility.
Guest641 has quit [Ping timeout: 268 seconds]
McParen has joined #commonlisp
<Guest74> s/possible/possibly/
<Guest74> as well
pjb has quit [Ping timeout: 268 seconds]
Nselm has joined #commonlisp
gaqwas has joined #commonlisp
pjb has joined #commonlisp
pjb has quit [Ping timeout: 268 seconds]
cage has quit [Remote host closed the connection]
cage has joined #commonlisp
gaqwas has quit [Remote host closed the connection]
gaqwas has joined #commonlisp
<edgar-rft> ldb: tls detected emacs as a security risk and killed it
ym has joined #commonlisp
Guest74 has quit [Remote host closed the connection]
Guest74 has joined #commonlisp
<Guest74> I've written some basic documentation that i'm hoping to get some feedback on. I'm not quite sure what is expected. This package is meant to be mainly used by frontend implementors.
zacque has quit [Quit: Goodbye :D]
yewscion has joined #commonlisp
<beach> I would be more consistent with upper/lower case.
<Guest74> yes, where is it expected?
<Guest74> or is that now passe
<beach> I think when you write "a sane network daemon", you probably mean "a SANE network daemon", no?
<mfiano> You should be using ~@ for end of line docstrings in this case.
<beach> The two are very different.
<beach> And Common Lisp is spelled with a capital C and a capital L.
<Guest74> yes, hopefully, it does have both quality.
<Guest74> I like the idea of capitalized function names in docstrings, but what about function args?
<Guest74> mfiano: for all the docstrings? or the package one?
<mfiano> For any time you align the next line to a different column other than 0
<mfiano> Which seems to be everywhere.
<Guest74> what's the difference? It seems to work as is. first time doing it.
<Guest74> is there an emacs binding to change case?
<jackdaniel> if I can suggest something - the system should be named insane :-)
<Guest74> that'll be the name of my frontend
<jackdaniel> (based on my experience with scanners)
<jackdaniel> ah!
<Guest74> yes, it did drive me quite mad.
<Guest74> took me 4 days just to get the scanner served by sane.
<Guest74> pushed the suggested fixes.
<Guest74> No, i think i definitely want ~ . I prefer to leave formatting of docstrings to your documentation viewer. Was useful to learn about ~@ though.
Nselm has quit [Quit: Client closed]
nature has joined #commonlisp
Everything has quit [Quit: leaving]
s-liao has quit [Ping timeout: 256 seconds]
<Guest74> are there any good tutorials on compiler macros?
<Guest74> Is it possible to use them to replace calls to generic functions?
<beach> Sure.
<Guest74> is it sufficient to have declarations of the object type at the call site to 'activate' the compiler macro?
<beach> Er, what?
<shka> little to do with types, actually
<beach> The compiler macro, if invoked at all, is invoked on the call form, no matter what the function does.
<Guest74> so what invokes it? Or do you know of a good tutorial?
<beach> But the standard says that a conforming implementation does not have to invoke compiler macros at all.
<beach> The compiler invokes it, just as it invokes ordinary macro functions.
<beach> There is nothing special with compiler macros. They work almost like ordinary macros. They take a form an produce another form. They return the original form to indicate that it declined to do anything.
<beach> Guest74: Why do you feel you need a compiler macro?
<shka> that is actually a very good question
<beach> They can be a bit tricky to do right, especially if the callee has keyword arguments.
<shka> because compiler macros have a very limited use case
<beach> s/has/takes/ or s/arguments/parameters/
<Guest74> I have this protocol for adding tags to objects and I use it in some graphics operations where it takes substantially longer than just doing something like getf.
ldb has quit [Remote host closed the connection]
ldb has joined #commonlisp
<Guest74> for getting things like backbuffers, contexts, etc...
<beach> It's a bit strange to have a protocol generic function and then stick a compiler macro to it. Then, it wold seems that client code would no longer be able to put auxiliary methods on those functions and expect them to work as advertised.
<shka> Guest74: this does not sound like a compiler macro use case
<beach> *would seem
* beach can't type today for some reason.
<shka> maybe you want to share your code, we can figure why it is going slow
<shka> also, use profiler
<shka> profile is your help
<Guest74> ok, so it would affect additional methods, but wouldn't it just not be invoked in that case.
makomo has joined #commonlisp
<beach> "that case"?
<Guest74> shka: I mention this because I have profiled it and I know that it is substantially slower.
<Guest74> if you do not think a compiler macro would help what do you think would help?
<beach> The compiler sees a function-call form (FOO ARG1 ARG2 ...) and if it is so inclined, it calls the compiler-macro function for FOO without checking whether it is generic, whether it has methods, or anything like that.
<Guest74> I'd really an editor macro.
<Guest74> ah, i see
<shka> well, there has to be the reason behind poor performance?
hendursa1 has quit [Remote host closed the connection]
<shka> compiler macros from my experience are most useful when you are trying to optimize for literal values
hendursa1 has joined #commonlisp
<shka> and what you describe does not appear to be conducive toward that
<beach> shka: You could use them to avoid keyword parsing or checking for optional arguments.
rgherdt has joined #commonlisp
<shka> well... ok
<Guest74> beach: that sounds interesting!
<shka> those are not that costly... and sufficiently smart compiler could optimize that anyway (in the future)
<beach> shka: Check the call site for optional and keyword arguments, and call a specialized function for the particular constellation of the call site.
<beach> shka: Sure, my paper on call-site optimization shows how it can be done in a lot of such cases.
<Guest74> well, I've got some vector graphic calls that can have a dozen or more keywords.
<shka> yeah, that's what i meant ;)
<beach> Heh, OK.
<shka> Guest74: and sb-sprof (or anything else) clearly points to those as being the most costly calls?
waleee has joined #commonlisp
<beach> Guest74: That could be a problem for performance. But I think you should check whether that is the case before spending a lot of effort.
<shka> also
<Guest74> yes, small things add up, especially if you're making millions of calls.
<beach> Guest74: It is particularly tricky to do keyword arguments, because they still have to be evaluated left-to-right according to how they appear at the call site, and independently of the order of the arguments in your specialized function(s).
<shka> would those tags be critical part of the application anyway?
<Guest74> beach: do you know of any code that does so that I can read?
Bike has joined #commonlisp
<beach> Guest74: Let me check. It is likely I deleted much of such code, given that call-site optimization according to my paper will make many compiler macros obsolete.
<Guest74> yes, I can't wait for that!
<Guest74> ever since i read your paper i've been drooling.
<Bike> you want compiler macro code that deals with keywords correctly?
X-Scale` has joined #commonlisp
X-Scale has quit [Ping timeout: 260 seconds]
<Guest74> yes, mainly for education. Any compiler macro stuff would be appreciated. I usually need plenty of examples.
<Bike> i wrote https://github.com/clasp-developers/clasp/blob/main/src/lisp/kernel/clos/static-gfs/compiler-macros.lisp#L24-L56 for clasp. you'd have to switch out constantp and constant-form-value to be completely portable
X-Scale` is now known as X-Scale
<Bike> it takes the keyword portion of a function call and returns bindings and variable to use
<Bike> like, you give it (:stream x :foo y) and it returns (:stream :foo) (#:stream1 #:foo1) ((#:stream1 x) (#:foo1 y)) t. the third value works as let* bindings
<Bike> you will note that this is kind of annoying and complicated
<beach> Yes, that's my recollection too.
<beach> I think I deleted all compiler macros for functions with keyword parameters.
<beach> ... in SICL, I mean.
<Bike> you'd have to do some kind of processing like this with a call site manager too, wouldn't you?
<Guest74> It does look complicated.
<beach> Bike: Not really. The call site manager receives the arguments already evaluated.
<beach> Or, rather, it receives locations where those arguments are located, but they have already been evaluated in the order determined by the call site.
<Bike> so it would receive all the arguments, including the keywords?
<beach> No, not quite.
<beach> The keywords would be associated with a description indicating that they are literals.
<Bike> you'd need to process the arguments at compile time to know that, right?
akoana has joined #commonlisp
<beach> Not sure what you mean.
<Guest74> so I'm guessing since you don't know what order a person uses the keywords or if all keywords are used this is where the difficulty comes in.
<beach> Yes, the order is the problem.
<Bike> well, i mean, so what's the call site manager doing, here? i figured the idea was you'd have a (foo :x w :z y) call, and you want it to end up doing (%foo y w), so it doesn't do all the expensive keyword argument processing at runtime
<beach> Right.
<beach> So the call-site manager does the argument parsing.
<beach> The callee has an entry point where it needs the value of w and z.
pranavats has left #commonlisp [#commonlisp]
karlosz has quit [Quit: karlosz]
<beach> So the call-site manager identifies :x and :z as keywords, and it knows the places where w and y are expected by the callee.
<beach> So it accesses the second argument location in the caller and puts it where the callee wants the value of :x etc.
<Guest74> this certainly elucidates things. thanks beach: bike:
<beach> Pleasure.
<Guest74> also confirms I should work on other things first :)
<beach> Guest74: The complication is this: Say you have a function (defun f (&key x y)) and a specialized version of it (defun ff (x y) that takes only required parameters.
<Bike> okay, so i mean, you'd need to have the compiler look at (foo :x w :z y) and go, okay, this is looks like a keyword arguments call, since :x and :z are literal. i should compile it to use a call site manager that can deal with those keywords. i'll just pass the call site two arguments, w and y, and it can do what it will. right?
euandreh has quit [Ping timeout: 268 seconds]
<beach> Guest74: Now you see (f :y <form1> :x <form2>), you can't turn that into (ff <form2> <form1>). You need to do (let ((y <form1>) (x <form2>)) (ff x y)).
rain3 has quit [Ping timeout: 268 seconds]
Inline has joined #commonlisp
engblom has joined #commonlisp
<Guest74> got it, makes sense.
<engblom> In what situation do you prefer alist and when do you prefer plist?
<beach> Bike: No, the compiler just emits a JUMP and there is an associated description that says first argument is a literal :x, second argument is to be found in <location>, third argument is the literal :z, fourth argument is to be found in <location>.
Nilby has quit [Remote host closed the connection]
<beach> engblom: A plist is preferable if you want to APPLY a function with keyword parameters to it. And it is also what you have in your &REST parameter in a function that has keyword parameters.
<Guest74> I certainly hope Shinmera get's that grant so he can hire someone to implement fast dispatch in sbcl. While it would be nice to have all my generic graphic functions getting replaced by calls to the backend specific functions it sounds like a ton of work.
tyson2 has quit [Remote host closed the connection]
<Bike> so the call site manager looks at that description and looks at the lambda list of the function and the entry point and works out what to pass
<random-nick> a literal plist might also be easier to write than a literal alist
<Shinmera> Hmm, unfortunately the grant only pays half of what we need to finish the game at all, without any extra spending on improving the ecosystem overall.
<beach> Bike: Yes.
igemnace has joined #commonlisp
<beach> Bike: Perhaps not the raw lambda list, but some description of it.
<beach> Bike: Like the massaged one we have in Cleavir with only lexical variables.
Nilby has joined #commonlisp
<Bike> right...
Inline has quit [Quit: Leaving]
<beach> The calls-site manager can of course give up and just use the default entry point.
<beach> Like if the function is (defun f (&key a b c d) ...) and the call is (f <form> <form> <form> <form> <form> <form> <form> <form> <form> )
<beach> It could then either generate code to check whether odd arguments are keywords, or it can let the default entry point of f do the work.
<beach> Such situations are not frequent, so it probably doesn't matter what it does.
<beach> But the general idea is that the trampoline snippet is in charge of argument parsing.
<engblom> beach: Then I will continue to use plists. I have never used alists and I was thinking if I do something wrong.
Inline has joined #commonlisp
<engblom> What would be a typical usage of alists?
<Guest74> I don't know about typical, but I use them to store ui/wm layouts.
<Bike> simple key value map
<Bike> the difference between alists and plists probably isn't worth stressing over. neither of them is performant if you have a big map, and if you have a small map the differences shouldn't matter much regardless
<Guest74> you can have multiple values mapped to a key without containing them in a list.
<Guest74> that might not make sense.
pranavats has joined #commonlisp
minu99 has joined #commonlisp
minu99 is now known as slimbook
slimbook is now known as minu99
minu99 is now known as slimbook
slimbook is now known as minu99
<edgar-rft> engblom: alists were something like the predecessors of hashtables, they most often were used as key-value databases, in alists key-value pairs can be easier added and removed than in plists
<engblom> Thanks
tyson2 has joined #commonlisp
rain3 has joined #commonlisp
<beach> engblom: What Bike said. Alists can be used to implement a simple "dictionary" abstract data type, i.e., map keys to values.
minu99 has quit [Quit: minu99]
cosimone has quit [Quit: ERC (IRC client for Emacs 27.1)]
cosimone has joined #commonlisp
<jcowan> And alists are also the simplest possible persistent dictionaries.
<jackdaniel> hurrey for alists
kadir has joined #commonlisp
<jackdaniel> I've derived a separate internals note from command parsing for command parsing (still incomplete but allowed me to pinpoint a few more edge cases): https://gist.github.com/dkochmanski/afaab9bf890e7b27d68892a41c8604cc
<jackdaniel> oups, that was meant for #clim
minu99 has joined #commonlisp
minu99 has quit [Client Quit]
kadir has left #commonlisp [WeeChat 3.3]
tyson2 has quit [Remote host closed the connection]
Spawns_Carpeting has quit [Ping timeout: 256 seconds]
Spawns_Carpeting has joined #commonlisp
gaqwas has quit [Remote host closed the connection]
McParen has left #commonlisp [#commonlisp]
Inline has quit [Remote host closed the connection]
Inline has joined #commonlisp
Spawns_Carpeting has quit [Ping timeout: 244 seconds]
gaqwas has joined #commonlisp
gaqwas has quit [Remote host closed the connection]
Inline has quit [Read error: Connection reset by peer]
<Guest74> Shinmera: didn't even see you comment. Glad you at least got some grant money to help with your project.
ldb has quit [Quit: ERC (IRC client for Emacs 27.2)]
Bike has quit [Quit: Connection closed]
Inline has joined #commonlisp
karlosz has joined #commonlisp
Inline has quit [Read error: Connection reset by peer]
Inline_ has joined #commonlisp
Inline_ has quit [Remote host closed the connection]
Inline has joined #commonlisp
ec has quit [Remote host closed the connection]
Devon has joined #commonlisp
bcasiello has joined #commonlisp
gaqwas has joined #commonlisp
gaqwas has quit [Remote host closed the connection]
gaqwas has joined #commonlisp
lisp123 has joined #commonlisp
Oladon has joined #commonlisp
attila_lendvai has joined #commonlisp
tyson2 has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
bcasiello has quit [Read error: Connection reset by peer]
Bike has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Jing_ has joined #commonlisp
Jing has quit [Ping timeout: 245 seconds]
ym has quit [Ping timeout: 256 seconds]
Inline has quit [Remote host closed the connection]
Inline has joined #commonlisp
Inline_ has joined #commonlisp
Inline_ has quit [Remote host closed the connection]
Inline_ has joined #commonlisp
Inline has quit [Ping timeout: 268 seconds]
ec_ has joined #commonlisp
Nselm has joined #commonlisp
ebrasca has quit [Remote host closed the connection]
lisp123 has quit [Quit: Leaving...]
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #commonlisp
ec_ has quit [Ping timeout: 276 seconds]
rain3 has quit [Ping timeout: 268 seconds]
ec_ has joined #commonlisp
ec_ has quit [Remote host closed the connection]
ec_ has joined #commonlisp
Nselm has quit [Quit: Client closed]
rogersm has quit [Quit: Leaving...]
Guest74 has quit [Quit: Connection closed]
ec_ has quit [Ping timeout: 276 seconds]
ec_ has joined #commonlisp
MumblyFoo has quit [Ping timeout: 256 seconds]
ec_ has quit [Ping timeout: 276 seconds]
pranavats has left #commonlisp [#commonlisp]
ec_ has joined #commonlisp
brettgilio has quit [Quit: Leaving...]
herlocksholmes has quit [Quit: Leaving...]
herlocksholmes has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
brettgilio has joined #commonlisp
mingus has quit [Ping timeout: 260 seconds]
MumblyFoo has joined #commonlisp
lisp123 has joined #commonlisp
<lisp123> pjb: Thanks again for https://termbin.com/y8zs (saving partial images), I'm working through it and it will take some time as they are advanced topics, but its going to be super useful for dynamic programming
aartaka has quit [Ping timeout: 260 seconds]
guthur has joined #commonlisp
ec_ has quit [Ping timeout: 276 seconds]
Inline_ is now known as Inline
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #commonlisp
lisp123 has quit [Quit: Leaving...]
<shka> good evening
cjb has joined #commonlisp
<shka> anybody knows how can i generate flamegraphs from sprof using recent version of sbcl?
yodudd has left #commonlisp [#commonlisp]
yodudd has joined #commonlisp
cjb has quit []
cjb has joined #commonlisp
nature has quit [Remote host closed the connection]
kevingal has joined #commonlisp
nature has joined #commonlisp
attila_lendvai has quit [Ping timeout: 244 seconds]
makomo has quit [Ping timeout: 256 seconds]
<mfiano> scymtym has a McCLIM system for that
<mfiano> It requires his McCLIM fork iirc
<shka> mmm
<shka> any form of visualization would be helpful here, really
karlosz has quit [Ping timeout: 256 seconds]
dre has joined #commonlisp
namasteaks has joined #commonlisp
dec0d3r has joined #commonlisp
pve has quit [Quit: leaving]
igemnace has quit [Remote host closed the connection]
pieguy128 has quit [Quit: ZNC 1.8.2 - https://znc.in]
pieguy128 has joined #commonlisp
igemnace has joined #commonlisp
slyrus has joined #commonlisp
lagash has joined #commonlisp
rgherdt has quit [Ping timeout: 260 seconds]
namasteaks has quit [Ping timeout: 256 seconds]
shka has quit [Ping timeout: 260 seconds]
waleee has quit [Quit: WeeChat 3.3]
waleee has joined #commonlisp
namasteaks has joined #commonlisp
waleee has quit [Quit: WeeChat 3.3]
waleee has joined #commonlisp
pjb has joined #commonlisp
random-nick has quit [Ping timeout: 245 seconds]
yodudd has left #commonlisp [#commonlisp]
yodudd has joined #commonlisp
hendursaga has quit [Quit: hendursaga]
yewscion has quit [Ping timeout: 256 seconds]
LoopMacro has quit [Ping timeout: 264 seconds]
jealousmonk has joined #commonlisp
<White_Flame> not sure if it's in the scrollback, but why is there a symbol-plist instead of a symbol-alist?
namasteaks has quit [Ping timeout: 256 seconds]
<edgar-rft> White_Flame: historical reasons, plists are older than alists
<pjb> White_Flame: obviously, for historical reasons.
<White_Flame> edgar-rft: huh
<White_Flame> pjb: obviously, hence the question being about what the historical reasons are :-P
<pjb> White_Flame: in LISP 1.5, symbols were implemented using a plist.
namasteaks has joined #commonlisp
igemnace has quit [Quit: WeeChat 3.3]
Jing_ has quit [Remote host closed the connection]
Jing has joined #commonlisp
namasteaks has quit [Ping timeout: 256 seconds]
s-liao has joined #commonlisp