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/> | News: ELS'22 this Monday (2022-03-21), see https://european-lisp-symposium.org
taiju_ has quit [Ping timeout: 240 seconds]
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
<dbotton> how efficient are dynamic variables? I assume it is minimal like a pointer change?
igemnace has quit [Quit: WeeChat 3.5]
<mfiano> Well it's a stack of bindings on the heap, so more than that.
<char[m]> One factor is that the prevent tail call optimization when used in recursion
<mfiano> Probably not noticable in any code you'll ever write, and their convenience far outweighs their cost.
<mfiano> For example, you can patch a function without changing its public API.
<mfiano> The answer to your question probably varies quite a bit in performance-wise, as it depends a lot on how they are implemented.
<char[m]> Optional parameters with extra steps?
<mfiano> Excuse me?
<char[m]> Is that what you mean by patching a function?
<mfiano> No, I mean a function can internally reference a special variable, and it can be bound around other internal functions that call it. That way, the user is none the wiser and their code continues to work without signature changes.
igemnace has joined #commonlisp
<mfiano> .
<mfiano> Oops
occ has joined #commonlisp
<dbotton> thanks!
<dbotton> mfiano I have found them incredibly useful
taiju_ has joined #commonlisp
<dbotton> When I first learned them had no idea, figured something I'd never use
<mfiano> Great. Very few languages have something like them. Schemes and Raku are the only ones I know about anyway.
<dbotton> So far added caching, long polling etc all to CLOG in such elegant simple ways
<dbotton> thanks to them
<mfiano> Just be careful about multiple threads. While threads aren't specified in the standard, all sane implementations will make their bindings thread-local.
<dbotton> I know counting on it :)
<mfiano> Also the fact that their bindings are established at runtime (apart from any "root" binding), means it is more difficult to do things with their values at macro-expansion or compile-time.
<dbotton> thanks for the tip
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #commonlisp
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #commonlisp
zacque has joined #commonlisp
yewscion has quit [Ping timeout: 246 seconds]
Devon has quit [Ping timeout: 250 seconds]
karlosz has joined #commonlisp
pfd has quit [Quit: Client closed]
yauhsien has joined #commonlisp
rgherdt has quit [Read error: Connection reset by peer]
rgherdt has joined #commonlisp
ebrasca has quit [Remote host closed the connection]
karlosz has quit [Ping timeout: 240 seconds]
parjanya has joined #commonlisp
occ has quit [Ping timeout: 248 seconds]
igemnace has quit [Read error: Connection reset by peer]
Inline__ has joined #commonlisp
occ has joined #commonlisp
Inline has quit [Ping timeout: 240 seconds]
cosimone has quit [Remote host closed the connection]
cosimone has joined #commonlisp
Devon has joined #commonlisp
ldb has joined #commonlisp
<ldb> good evening everyone
igemnace has joined #commonlisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #commonlisp
akoana has joined #commonlisp
yauhsien has quit [Ping timeout: 250 seconds]
livoreno has quit [Read error: Connection reset by peer]
livoreno has joined #commonlisp
taiju_ has quit [Ping timeout: 260 seconds]
taiju_ has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #commonlisp
nosolls has left #commonlisp [#commonlisp]
nosolls has joined #commonlisp
sander has quit [Quit: So long! :)]
nosolls has left #commonlisp [ERC 5.4 (IRC client for GNU Emacs 28.1)]
nosolls has joined #commonlisp
sander has joined #commonlisp
yauhsien has joined #commonlisp
pfd has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 246 seconds]
<beach> Good morning everyone!
mon_aaraj has quit [Ping timeout: 240 seconds]
Bike has joined #commonlisp
mon_aaraj has joined #commonlisp
semz_ has joined #commonlisp
semz has quit [Ping timeout: 260 seconds]
occ has quit [Ping timeout: 240 seconds]
<jackdaniel> _death: thanks! re medium for a pixmap, I think that you could make the back-buffer variable escape from with-output-to-pixmap and that should work
ldb has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
<jackdaniel> but you would not be able to resize the pixmap then, so you need to decide on its size
nosolls has left #commonlisp [#commonlisp]
nosolls has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Bike has quit [Quit: Connection closed]
occ has joined #commonlisp
bilegeek has joined #commonlisp
bilegeek has quit [Quit: Leaving]
yauhsien has joined #commonlisp
taiju_ has quit [Ping timeout: 240 seconds]
zeroc00l0 has joined #commonlisp
knusbaum has joined #commonlisp
knusbaum- has quit [Ping timeout: 256 seconds]
epony has joined #commonlisp
nosolls has left #commonlisp [ERC 5.4 (IRC client for GNU Emacs 28.1)]
nosolls has joined #commonlisp
rotateq has quit [Quit: ERC (IRC client for Emacs 27.2)]
aartaka has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
lispy has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
<lispy> hi everyone,
<lispy> I am having some problems with this code : https://plaster.tymoon.eu/view/3031#3031
yauhsien has joined #commonlisp
<lispy> The second let always returns nil but I don't understand why
<beach> Because LOOP returns NIL by default.
<lispy> oh..
<lispy> let me test
<beach> If you want cum-list to be returned, stick that after LOOP, last in the LET form.
<lispy> yeah I added a prog n and its working.. cool
<lispy> quick question
yauhsien has quit [Ping timeout: 240 seconds]
<beach> No need for PROGN. LET has an implicit PROGN.
<lispy> oh ok sec
<lispy> I looked at all the forms for loop in the hyperspec but didn't find what I was looking for
<lispy> is there something to make a loop apply some given function to an accumulator and each element of a list ?
<lispy> I know I could write a function to do so, I am just asking if theres an implicit way I am missing
<zeroc00l0> Like a `reduce` function?
<beach> (loop with accumulator = ... for element in list do (function function accumulator element))
<lispy> kind of but I want the function applied to my accimulator and each element in a list rather than just a given list
<beach> Er, (funcall function...
<beach> Sorry.
<lispy> yep thats basically what I wrote in the code beach, so there is no implicit way to do so
<lispy> unlucky, thanks
<beach> Come on!
<beach> How would that look?
taiju_ has joined #commonlisp
<lispy> hmm smth like
<lispy> loop for x in y applying (fn accimulator list)
<beach> Let's include that in a revised standard.
<zeroc00l0> What is the relationship between x, y and list? Sorry I don't understand it yet.
<lispy> ah it smy mitsake
<lispy> ah its my mistake**
occ has quit [Ping timeout: 240 seconds]
<lispy> meant like this loop for x in y applying (fn accimulator x)
<lispy> but that just seems like the do thing mentioned above
<beach> lispy: How is your suggested clause more expressive than what I wrote?
<beach> Exactly!
<lispy> yeah, I guess it doesn't make much sense
<lispy> oh well, my mistake then :)
<lispy> thanks again though.
<beach> Sure.
<beach> You are given a set of fantastic tools to combine smaller forms into larger ones, in arbitrary ways. Introducing large numbers of special cases would be contrary to that philosophy.
<zeroc00l0> tbf, it's not always obvious to me how to combine the small things into the larger things that I want
notzmv has quit [Ping timeout: 240 seconds]
yauhsien has joined #commonlisp
occ has joined #commonlisp
semz_ is now known as semz
akoana has quit [Quit: leaving]
attila_lendvai has joined #commonlisp
waleee has quit [Ping timeout: 240 seconds]
imjim has joined #commonlisp
Cymew has joined #commonlisp
Spawns_Carpeting has quit [Quit: WeeChat 3.4.1]
taiju_ has quit [Ping timeout: 250 seconds]
taiju_ has joined #commonlisp
<pjb> lispy: you may also write it as: https://termbin.com/h0ky
zeroc00l0 has quit [Ping timeout: 250 seconds]
MajorBiscuit has joined #commonlisp
Major_Biscuit has joined #commonlisp
Inline__ is now known as Inline
shka has joined #commonlisp
MajorBiscuit has quit [Ping timeout: 256 seconds]
makomo has joined #commonlisp
hhdave has quit [Ping timeout: 246 seconds]
dlowe has quit [Ping timeout: 240 seconds]
zacque has quit [Quit: Goodbye :D]
<ecraven> is there a way to not only displace an array but also access for example an underlying array of 8-bit unsigneds as if it were an array of 32-bit unsigneds, without copying?
<beach> Not in the standard.
<pjb> displacement must keep the same element-type.
livoreno has quit [Remote host closed the connection]
livoreno has joined #commonlisp
razetime has joined #commonlisp
s-liao has joined #commonlisp
<semz> Implementations might have this functionality. Worth keeping in mind that this operation is ill-defined without an endianness though.
zeroc00l0 has joined #commonlisp
<semz> could see SBCL or ECL have this
hhdave has joined #commonlisp
notzmv has joined #commonlisp
<jackdaniel> some pre-ansi lisps had such functionality
<jackdaniel> clx can optionally use it with a feature #+clx-overlapping-arrays
<jackdaniel> I'm more interested in conformal displacement though
robin has quit [Read error: Connection reset by peer]
robin_ has joined #commonlisp
wyrd has quit [Remote host closed the connection]
wyrd has joined #commonlisp
jsatk__ has quit [Ping timeout: 240 seconds]
jsatk__ has joined #commonlisp
taiju_ has quit [Ping timeout: 240 seconds]
wmblathe_ has joined #commonlisp
OlCe has joined #commonlisp
pranshukhandal has quit [Quit: the lounge - https://webirc.envs.net]
pranshukhandal has joined #commonlisp
hhdave_ has joined #commonlisp
hhdave has quit [Ping timeout: 256 seconds]
hhdave_ is now known as hhdave
wmblathers has quit [Ping timeout: 272 seconds]
pjstirling123 has joined #commonlisp
<pjstirling123> Is there a recommended library for red-black trees?
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
occ has quit [Ping timeout: 248 seconds]
lisp123 has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
yauhsien has quit [Ping timeout: 248 seconds]
cosimone has quit [Remote host closed the connection]
lisp123 has quit [Remote host closed the connection]
taiju_ has joined #commonlisp
yauhsien has joined #commonlisp
NotThatRPG has quit [Ping timeout: 248 seconds]
NotThatRPG has joined #commonlisp
cosimone has joined #commonlisp
lisp123 has joined #commonlisp
<lisp123> How to implement promises in CL?
razetime has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
razetime has joined #commonlisp
s-liao has quit [Ping timeout: 250 seconds]
<ecraven> conformal displacement?
<ecraven> jackdaniel ^ ?
<ecraven> beach: thanks!
<lisp123> I think async operations are needed for CL?
<lisp123> for promises*
<scymtym> lisp123: a promise can be implemented as a class or structure with slots for value, lock and condition variable. waiting for the promise is waiting on the condition variable, then reading the value slot. fulfilling the promise is taking the lock, writing the value slot, notifying the condition variable. the lparallel library has several variations of promises, for example one which fulfills the promise in a separate thread
<lisp123> scymtym: Thanks!
<lisp123> condition variable is from the lisp condition system?
jeosol has quit [Ping timeout: 250 seconds]
<ecraven> thanks for the link!
<jackdaniel> sure; it contains other junk but the aim of this post is to explain what the conformal displacement is
<lisp123> scymtym: ignore me :)
<jackdaniel> lisp123: the library lparallel has promises: https://lparallel.org/promises/
<scymtym> lisp123: no, a condition variable allows one thread to wait for a condition (in the general sense, not CL:CONDITION) such that a different thread can notify that the condition is fulfilled. BORDEAUX-THREADS:MAKE-CONDITION-VARIABLE is one way to make a condition variable
<ecraven> so a conformally displaced array respects the stride between "lines"?
<lisp123> scymtym: Thanks!
<lisp123> That's really helpful that BT has such a feature
<lisp123> jackdaniel: thanks
<jackdaniel> ecraven: yes
<jackdaniel> or between frames if you work on an array with three dimensions
<beach> jackdaniel: Where did you find that terminology?
<jackdaniel> "conformal displacement"?
<beach> Yes.
<jackdaniel> afaik genera had such extension for arrays
<beach> I can imagine, but is that the term they used for it?
<jackdaniel> I believe so, but I don't have a reference at hand
<beach> OK, not a big deal.
epolanski has quit [Quit: Connection closed for inactivity]
treflip has joined #commonlisp
<jackdaniel> here is Kent Pitman using it re features not getting to CL: https://groups.google.com/g/comp.lang.lisp/c/QfLbsBI-WBc/m/20d8jxXFYfMJ
<beach> Great! Thanks!
<jackdaniel> sure
<jackdaniel> and that's only one step from specifying projected arrays, and that could be used for tixelation ^_^ (I'm half joking)
OlCe has quit [Remote host closed the connection]
<beach> It seems what you might want is an arbitrary function that translates between a list of indices to an offset.
<jackdaniel> I have a strong suspiction that accounting for the array dimensions and the shape of the "slice" could be more performant than an arbitrary function
lisp123 has quit [Remote host closed the connection]
Inline has quit [Quit: Leaving]
<jackdaniel> suspicion*
jeffrey has joined #commonlisp
s-liao has joined #commonlisp
cosimone has quit [Remote host closed the connection]
igemnace has quit [Remote host closed the connection]
zeroc00l0 has quit [Ping timeout: 250 seconds]
Oddity has quit [Ping timeout: 246 seconds]
cosimone has joined #commonlisp
cosimone has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
lisp123 has joined #commonlisp
cosimone has joined #commonlisp
random-nick has joined #commonlisp
lispy has quit [Ping timeout: 250 seconds]
Inline has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 248 seconds]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
dilated_dinosaur has joined #commonlisp
dec0d3r has quit [Quit: Leaving]
aeth has quit [Ping timeout: 240 seconds]
aeth has joined #commonlisp
mon_aaraj has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
yewscion has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
s-liao has quit [Quit: Client closed]
s-liao has joined #commonlisp
yauhsien has quit [Ping timeout: 250 seconds]
mon_aaraj has quit [Ping timeout: 272 seconds]
mon_aaraj has joined #commonlisp
<cross> OA
<cross> (Apologies; wrong window.)
szkl has joined #commonlisp
occ has joined #commonlisp
rotateq has joined #commonlisp
pjstirling123 has joined #commonlisp
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
yauhsien has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
Major_Biscuit has quit [Ping timeout: 248 seconds]
dilated_dinosaur has quit [Ping timeout: 272 seconds]
yauhsien has joined #commonlisp
Major_Biscuit has joined #commonlisp
dilated_dinosaur has joined #commonlisp
Bike has joined #commonlisp
yauhsien has quit [Ping timeout: 250 seconds]
Major_Biscuit has quit [Ping timeout: 240 seconds]
Major_Biscuit has joined #commonlisp
igemnace has joined #commonlisp
occ has quit [Ping timeout: 240 seconds]
occ has joined #commonlisp
razetime has quit [Ping timeout: 248 seconds]
razetime has joined #commonlisp
imjim has quit [Quit: imjim]
treflip has quit [Remote host closed the connection]
cosimone has quit [Read error: Connection reset by peer]
yauhsien has joined #commonlisp
cosimone has joined #commonlisp
yauhsien has quit [Quit: Leaving...]
wmblathe_ is now known as wmblathers
notzmv has quit [Ping timeout: 250 seconds]
pjstirling123 has quit [Quit: This computer has gone to sleep]
<mfiano> Do SLIME/SLY special case the lambda list of #'MAKE-INSTANCE for the eldoc display, or why is it that other generic functions combine all &key arguments from all the methods?
cosimone has quit [Remote host closed the connection]
attila_lendvai has quit [Ping timeout: 256 seconds]
<Bike> i believe make-instance is special cased, yeah
<mfiano> I see.
<Bike> figuring out the applicable methods for a generic function from only the source text is generally impossible. with make-instance it's more possible in certain cases
cosimone has joined #commonlisp
rotateq has quit [Quit: ERC (IRC client for Emacs 26.3)]
cosimone has quit [Remote host closed the connection]
<mfiano> Thanks. I might be nitpicking here, but I'm considering changing my public-facing interface as I have lots of methods with differing keyword arguments and it makes it quite confusing without looking at the docs.
pjstirling123 has joined #commonlisp
igemnace has quit [Quit: WeeChat 3.5]
yauhsien has joined #commonlisp
Bike has quit [Quit: Connection closed]
Bike has joined #commonlisp
mon_aaraj has quit [Read error: Connection reset by peer]
mon_aaraj has joined #commonlisp
lisp123 has joined #commonlisp
s-liao has quit [Quit: Client closed]
lisp123 has quit [Ping timeout: 240 seconds]
Major_Biscuit has quit [Ping timeout: 240 seconds]
<dieggsy> I've definitely asked this before, but is there a special way to save a lisp image from within slime/sly?
<Xach> dieggsy: I don't think there's a straightforward way. sly/slime introduce a lot of threads & connections that must be undone before saving.
<dieggsy> currently when I try i get an image that doesn't actually have a repl prompt and kinda hangs
<Xach> dieggsy: much simpler to load and start less and save from there.
<dieggsy> Xach: start less?
<Xach> dieggsy: yes. like, don't start the swank/slynk server.
<Xach> don't start threads. don't open files. be minimialistic.
<dieggsy> Oh, I see. I guess I can try to put my setup steps into a file and load that from the terminal
<dieggsy> it's very inconvenient that our main tool complicates this though, since i'd expect most people start work in slime, then if you get the idea to save an image you have to redo what you did
<Xach> dieggsy: I guess I'm so accustomed to the limitation that it just seems intuitive to me. I agree that it would be nice if it weren't limited that way, but I don't see an easy way out.
dlowe has joined #commonlisp
<Xach> Because I'm used to it, I arrange things so they can be easily loaded and turned into an image from the CLI.
<Xach> dieggsy: the other complication is the "and die" part of "save lisp and die"
<Xach> usually if you're working interactively you want to keep working interactively
<dieggsy> Xach: allegro has a way of saving an image without dying
<Xach> dieggsy: what is it called?
<dieggsy> though i do use SBCL for my personal projects so you're right there
<Xach> Nice.
<Xach> Though that sounds like it's urging people to "dump lisp". I prefer Save Lisp and Die!
<dieggsy> jajaja, i agree, except i prefer the actual behavior of not dying
<Xach> Save Lisp and Live!
notzmv has joined #commonlisp
<dieggsy> mfiano: oh yeah, i forgot the small detail that we're living in the stone ages at work and running the version of allegro without multiprocessing
Major_Biscuit has joined #commonlisp
<dieggsy> although, i would still thing that behavior is preferrable over dying?
<dieggsy> maybe not, i suppose i haven't had the reason to test in a program where that would apply
xaotuk has quit [Ping timeout: 260 seconds]
<etimmons> If you could get your SBCL image down to a single thread you could presumably (sb-posix:fork) and then save-lisp-and-die in the child.
ebrasca has joined #commonlisp
ebrasca` has joined #commonlisp
Major_Biscuit has quit [Ping timeout: 250 seconds]
ebrasca` has quit [Remote host closed the connection]
beach` has joined #commonlisp
ldb has joined #commonlisp
beach has quit [Killed (NickServ (GHOST command used by beach`!~user@2a01:cb19:150:3400:1dc5:1054:baf7:b23a))]
beach` is now known as beach
attila_lendvai has joined #commonlisp
dlowe has quit [Remote host closed the connection]
dlowe has joined #commonlisp
razetime has quit [Ping timeout: 250 seconds]
razetime has joined #commonlisp
rotateq has joined #commonlisp
lispy has joined #commonlisp
<lispy> pjb I just saw the code you wrote : https://termbin.com/h0ky
<lispy> that looks much nicer but ive never seen this formatting anywhere else, like using :for and :in
<rotateq> lispy: It's useful for syntax highlighting too. :)
OlCe has joined #commonlisp
<pjb> lispy: yes, using keywords for loop key words is nice for the font-locking, but also, to avoid name collisions. Eg I have a package exporting a macro named WHILE. If I write a (loop while nil) and then try to use that package, that gives a collision to be resolved. If I write (loop :while nil) I don't have this problem.
pjstirling123 has quit [Quit: This computer has gone to sleep]
igemnace has joined #commonlisp
razetime has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
razetime has joined #commonlisp
ebrasca has quit [Remote host closed the connection]
ec has joined #commonlisp
igemnace has quit [Remote host closed the connection]
pjstirling123 has joined #commonlisp
makomo has quit [Quit: WeeChat 3.4]
lisp123 has joined #commonlisp
<ldb> I think it is also possible to use #:for and #:in?
ec has quit [Ping timeout: 240 seconds]
<rotateq> ldb: Oh never tried, but some weeks was brave enough (loop :for for :in in :while while :sum sum) with a LET and a SYMBOL-MACROLET form.
<Bike> it is. the macro only pays attention to symbol names
jeosol has joined #commonlisp
<rotateq> okay nice
<pjstirling123> Personally, I always use #: for loop keywords
yewscion has quit [Ping timeout: 256 seconds]
<rotateq> pjstirling123: okay then that's something I didn't see in the wild yet :)
<mfiano> Me neither, and while I don't like the extra character, it seems like a good use for uninterned symbols, if you are the type that doesn't like to intern the world under :KEYWORD
lisp123 has quit [Ping timeout: 256 seconds]
<mfiano> Another plus (or minus?): Scheme people would be more accustomed to your code.
<NotThatRPG> Typing the loop keywords in the keyword package is something that Fare did in ASDF, and I have picked it up. Since the layout of LOOP can be obscure (coders put "DO" in the oddest places!) it can help the reader by making the keywords stand out and giving a skeleton to a loop.
ec has joined #commonlisp
<rotateq> NotThatRPG: Oh you mean DO at the end of a line?
<NotThatRPG> rotateq: Yeah, that makes me bonkers.
<mfiano> Yes it has a few benefits, that being one. Another I can think of, is it helps with your completion system, as to not list needless candidates interned into your package.
<rotateq> As we're not in C land. (okay they have no explicit do for a for-loop)
<rotateq> Better Algol? Does it have DO?
<jackdaniel> (loop (do () (t :spanish-inquisition)))
<jackdaniel> nobody expected that do
<rotateq> I adapted the keyword syntax from a baggers video the first time.
<jackdaniel> in that place ,)
<rotateq> jackdaniel: Nobody expects the spanish inquisition!
<rotateq> "Our weapons are parentheses, macros and ..."
<jackdaniel> lack of humour
<rotateq> oh right
<rotateq> jackdaniel: so bad? :(
<jackdaniel> no, I've meant that the lack of humour is the third weapon - I was making a stab at the channel participants ,)
<rotateq> But my CLIMzüge joke in #clim some days ago worked out well for other German readers.
<rotateq> haha okay
pjstirling123 has quit [Quit: This computer has gone to sleep]
ec has quit [Ping timeout: 240 seconds]
szkl has quit [Quit: Connection closed for inactivity]
Bike has quit [Quit: Connection closed]
Bike has joined #commonlisp
<NotThatRPG> rotateq: I just try to use the iterate macro now. I used to be a big fan of LOOP, but its conditionals are such a horror.
cosimone has joined #commonlisp
cosimone has quit [Remote host closed the connection]
<rotateq> NotThatRPG: Yes, but I think with an extensible LOOP in SICL it gets better. Didn't use iterate yet.
<rotateq> And as LOOP is in the ANSI standard ...
hhdave has quit [Ping timeout: 248 seconds]
NotThatRPG has quit [Ping timeout: 248 seconds]
<jackdaniel> LOOP as it is in the ansi standard is not extensible
Dynom has joined #commonlisp
<jackdaniel> it is not that MIT loop is not extensible, it is that the mechanism for extending it is not part of the standard
treflip has joined #commonlisp
<jackdaniel> and the same non-extensibility property applies to any loop implementation out there
pjstirling123 has joined #commonlisp
<jackdaniel> (that said I don't think that any implementation shipping MIT LOOP actually advertises that it may be extended)
<rotateq> I have to reread the section in PAIP where Norvig shows how to implement a subset or better, how to do it modularly and combining those. Or reading the SICL module code.
<gjvc> rotateq: baggers' videos are great!
<jackdaniel> I think that the main selling point of SICL module code is that it is easier to maintain because it uses more contemprary techniques (like CLOS)
<rotateq> gjvc: Indeed, the short ones and from his long about CFFI I learned first things last year how to work with it.
<rotateq> jackdaniel: Yes and for that needing LOOP before. :)
NotThatRPG has joined #commonlisp
ldb has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
orestarod has joined #commonlisp
mon_aaraj has quit [Ping timeout: 240 seconds]
pjstirling123 has quit [Quit: This computer has gone to sleep]
mon_aaraj has joined #commonlisp
cage has joined #commonlisp
<Guest74> jackdaniel: I've been thinking the same performance wise for conformal arrays, though haven't been able to test it.
<Guest74> I currently use an index function in general to access 1d arrays as if they were 2d, so adding stride wasn't a big step.
<rotateq> so vectors to matrices? or reshaping to 1×n ?
<Guest74> the index function is faster than normal multidimensional array accessing.
<rotateq> ahh now I know what you mean. yes, but that depends again on the implementation's strategy I would say
<Guest74> 1d arrays being access like 2d
<Guest74> the downside is you don't actually get an array you can pass around.
pjstirling123 has joined #commonlisp
<Guest74> it just seems it would be faster if the impl was doing the indexing and presenting.
<rotateq> and you brought me now to the question how i can access the storage vector of a #0A and tried (aref *arr*) for logic consistency reasons and works
ec has joined #commonlisp
yewscion has joined #commonlisp
<rotateq> But yes, in a good four part series on youtube where someone shows how to write a simple raytracer in CL he argues using vectors too for efficiency reasons.
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ec has quit [Quit: ec]
triffid has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
pjstirling123 has joined #commonlisp
<Guest74> It seems everybody and their wife has a ray tracer.  I wonder why we don't have a nice production one.
pjstirling123 has quit [Client Quit]
pjstirling123 has joined #commonlisp
yewscion has quit [Ping timeout: 248 seconds]
cosimone has joined #commonlisp
cosimone has quit [Client Quit]
<rotateq> we can have, especially now that there are new techniques for fast dispatch or projects like petalisp with OpenGL backend and the April compiler
pjstirling123 has quit [Quit: This computer has gone to sleep]
razetime has quit [Remote host closed the connection]
karlosz has joined #commonlisp
jeosol has quit [Quit: Client closed]
cosimone has joined #commonlisp
lispy has quit [Quit: Client closed]
aeth has quit [Ping timeout: 272 seconds]
hhdave has joined #commonlisp
aeth has joined #commonlisp
cosimone has quit [Client Quit]
notzmv has quit [Read error: Connection reset by peer]
<mfiano> _death: What are you hmming about?
cosimone has joined #commonlisp
yewscion has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
pjstirling123 has joined #commonlisp
hhdave has quit [Ping timeout: 256 seconds]
<_death> thinking about whether it (trace output with presentations for args/retvals) is worth pursuing further..
Guest74 has joined #commonlisp
<Xach> _death: i use sly trace for that sometimes.
waleee has joined #commonlisp
<Xach> _death: i'm working with values that get and do get mutated, though, and that has masked some issues when reviewing later...
<mfiano> I tend to use Sly stickers
<_death> slime has a "trace dialog" by the author of sly.. is that similar?
<Xach> I don't know, I didn't ever use it in slime. Only in sly. Yes, it's a dialog and not part of repl output.
lisp123 has joined #commonlisp
karlosz has quit [Ping timeout: 240 seconds]
<Xach> The upside is it gives you inspectable traces, the downside (for me) is the mutation problem: what you see isn't necessarily isn't what you got when the trace was collected. And that's important in my application.
<Xach> Dead text tells no lies
<_death> right
<mfiano> Xach: Have you tried stickers for stepping through recordings of forms?
<Xach> mfiano: Not in a long while. ISTR it also has the mutation issue?
<Xach> I'd like to make stickers part of my workflow, but it hasn't stuck in two or three attempts.
<mfiano> Oh hmm. That is the main selling point of Sly to me.
jeosol has joined #commonlisp
<_death> for a few calls trace with :break option will do, I suppose
mon_aaraj has quit [Ping timeout: 250 seconds]
rgherdt has quit [Remote host closed the connection]
lisp123 has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
Catie has joined #commonlisp
rgherdt has joined #commonlisp
anticomputer has quit [Quit: quit]
anticomputer_ has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
Guest74 has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
NotThatRPG has joined #commonlisp
pjstirling123 has joined #commonlisp
VincentVega has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
Devon has quit [Remote host closed the connection]
pjstirling123 has joined #commonlisp
occ has quit [Ping timeout: 250 seconds]
hhdave has joined #commonlisp
yewscion has quit [Ping timeout: 246 seconds]
morganw has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
pjstirling123 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
pjstirling123 has quit [Quit: This computer has gone to sleep]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
treflip has quit [Quit: Quit]
yewscion has joined #commonlisp
jeosol has quit [Quit: Client closed]
yewscion19 has joined #commonlisp
yewscion is now known as Guest477
Guest477 has quit [Killed (tungsten.libera.chat (Nickname regained by services))]
yewscion19 is now known as yewscion
mon_aaraj has quit [Ping timeout: 248 seconds]
yauhsien has quit [Ping timeout: 240 seconds]
mon_aaraj has joined #commonlisp
pjstirling123 has joined #commonlisp
pfd has quit [Quit: Client closed]
yauhsien has joined #commonlisp
hhdave has quit [Ping timeout: 248 seconds]
Oddity has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
pjstirling123 has joined #commonlisp
tyson2 has joined #commonlisp
xaotuk has joined #commonlisp
ec has joined #commonlisp
szkl has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
robin_ is now known as robin
pjstirling123 has joined #commonlisp
tyson2 has quit [Ping timeout: 240 seconds]
tyson2 has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
mon_aaraj has quit [Ping timeout: 246 seconds]
mon_aaraj has joined #commonlisp
hhdave has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
frgo has quit []
tyson2 has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
lisp123 has joined #commonlisp
yauhsien has quit [Ping timeout: 240 seconds]
lisp123 has quit [Ping timeout: 248 seconds]
Cymew has quit [Ping timeout: 250 seconds]
cage has quit [Quit: rcirc on GNU Emacs 27.1]
epolanski has joined #commonlisp
hhdave has quit [Ping timeout: 248 seconds]
morganw has quit [Remote host closed the connection]
Inline has quit [Quit: Leaving]
attila_lendvai has quit [Ping timeout: 248 seconds]
rgherdt has quit [Remote host closed the connection]
pjstirling123 has joined #commonlisp
rgherdt has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 250 seconds]
Lord_of_Life_ is now known as Lord_of_Life
pjstirling123 has quit [Quit: This computer has gone to sleep]
Dynom has quit [Quit: WeeChat 3.5]
pjstirling123 has joined #commonlisp
hhdave has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
frgo has joined #commonlisp
yewscion has quit [Ping timeout: 248 seconds]
yewscion has joined #commonlisp
Spawns_Carpeting has joined #commonlisp
livoreno has quit [Ping timeout: 240 seconds]
dra has joined #commonlisp
livoreno has joined #commonlisp
hhdave has quit [Ping timeout: 250 seconds]
notzmv has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
zeroc00l0 has joined #commonlisp
Inline has joined #commonlisp
pjstirling123 has joined #commonlisp
tyson2 has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
dra has quit [Quit: Leaving]
igemnace has joined #commonlisp
hhdave has joined #commonlisp
aartaka has quit [Ping timeout: 250 seconds]
karlosz has joined #commonlisp
Bike has quit [Quit: Lost terminal]
karlosz has quit [Quit: karlosz]
yauhsien has joined #commonlisp
pjstirling123 has quit [Quit: This computer has gone to sleep]
NotThatRPG has quit [Ping timeout: 250 seconds]
yauhsien has quit [Ping timeout: 256 seconds]
jeffrey has quit [Quit: Client quit]
pjstirling123 has joined #commonlisp
ec has quit [Ping timeout: 240 seconds]
pjstirling123 has quit [Client Quit]
hhdave has quit [Ping timeout: 256 seconds]
aeth has quit [Ping timeout: 272 seconds]
notzmv has quit [Ping timeout: 240 seconds]
aeth has joined #commonlisp
yewscion has quit [Ping timeout: 246 seconds]
orestarod has quit [Ping timeout: 248 seconds]
zeroc00l0 has quit [Ping timeout: 250 seconds]
xaotuk has quit [Quit: xaotuk]
hhdave has joined #commonlisp
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 260 seconds]
hhdave has quit [Ping timeout: 250 seconds]
shka has quit [Ping timeout: 248 seconds]
NotThatRPG has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
igemnace has quit [Quit: WeeChat 3.5]
epolanski has quit [Quit: Connection closed for inactivity]
zeroc00l0 has joined #commonlisp
greyrat_ has quit [Ping timeout: 240 seconds]
lucerne has quit [Ping timeout: 240 seconds]
pranavats has joined #commonlisp
NotThatRPG has quit [Quit: Textual IRC Client: www.textualapp.com]
hhdave has joined #commonlisp
jdz has quit [Quit: I'm done]
jdz has joined #commonlisp
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp