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>
euandreh has quit [Ping timeout: 260 seconds]
s-liao has quit [Ping timeout: 256 seconds]
etiago has quit [Ping timeout: 260 seconds]
Noisytoot has quit [Ping timeout: 245 seconds]
rgherdt has quit [Ping timeout: 256 seconds]
dra_ has joined #commonlisp
dra has quit [Ping timeout: 268 seconds]
etiago has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life has joined #commonlisp
s-liao has joined #commonlisp
Noisytoot has joined #commonlisp
euandreh has joined #commonlisp
perrierjouet has quit [Quit: WeeChat 3.3]
random-nick has quit [Ping timeout: 260 seconds]
s-liao has quit [Ping timeout: 256 seconds]
<hexology> does anyone remember a blog post with content to the effect of "lisp macros are so much deeper than i thought", where it demonstrated some funky behavior related to binding a function with `let` inside the macro body before interpolating it into a quasiquote
<hexology> i remember skimming the post and then not saving it
Bike has quit [Quit: Connection closed]
dra_ has quit [Quit: Leaving]
Bike has joined #commonlisp
bort has joined #commonlisp
bort has left #commonlisp [#commonlisp]
azimut has quit [Ping timeout: 276 seconds]
azimut has joined #commonlisp
perrierjouet has joined #commonlisp
akoana has quit [Ping timeout: 268 seconds]
akoana has joined #commonlisp
abrantesasf has quit [Remote host closed the connection]
Oladon has joined #commonlisp
Psybur has quit [Remote host closed the connection]
igemnace has quit [Ping timeout: 256 seconds]
taiju has quit [Ping timeout: 260 seconds]
perrierjouet has quit [Remote host closed the connection]
perrierjouet has joined #commonlisp
<Xach> borodust: how do you feel about changing cl-muth to work with new sbcl?
igemnace has joined #commonlisp
s-liao has joined #commonlisp
taiju has joined #commonlisp
Devon7 has joined #commonlisp
Krystof has quit [Ping timeout: 260 seconds]
Devon has quit [Ping timeout: 260 seconds]
Mandus_ has quit [Ping timeout: 268 seconds]
micro has quit [Ping timeout: 260 seconds]
micro has joined #commonlisp
Fade has quit [Ping timeout: 260 seconds]
Mandus_ has joined #commonlisp
Fade has joined #commonlisp
energizer has quit [Ping timeout: 260 seconds]
s-liao has quit [Quit: Client closed]
energizer has joined #commonlisp
thomaslewis has quit [Quit: Gateway shutdown]
akoana has left #commonlisp [#commonlisp]
s-liao has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
rogersm has joined #commonlisp
rogersm has quit [Ping timeout: 268 seconds]
lad has joined #commonlisp
perrierjouet has quit [Quit: WeeChat 3.3]
taiju has quit [Ping timeout: 260 seconds]
z3t0 has quit [Quit: The Lounge - https://thelounge.chat]
z3t0 has joined #commonlisp
z3t0 has quit [Client Quit]
z3t0 has joined #commonlisp
<beach> Good morning everyone!
semz has quit [Ping timeout: 268 seconds]
taiju has joined #commonlisp
waleee has quit [Quit: WeeChat 3.3]
pillton has joined #commonlisp
pillton` has joined #commonlisp
pillton` has quit [Client Quit]
semz has joined #commonlisp
pillton` has joined #commonlisp
pillton` has quit [Remote host closed the connection]
pillton has quit [Ping timeout: 260 seconds]
Jing has joined #commonlisp
lad has quit [Remote host closed the connection]
Bike has quit [Quit: Connection closed]
pillton has joined #commonlisp
lisp123 has joined #commonlisp
<lisp123> pjb: Wow, thanks - that's awesome! I will study / use com.informatimago.common-lisp.heap.heap carefully and report back
dre has quit [Quit: Leaving]
dre has joined #commonlisp
ym has joined #commonlisp
guthur has joined #commonlisp
<guthur> I'm trying to auto generate some bindings for Vulkan using cl-autowrap but just get an error return of 1 from (autowrap:c-include "/usr/include/vulkan/vulkan.hpp") any suggestions?
aartaka has quit [Ping timeout: 256 seconds]
aartaka has joined #commonlisp
dec0d3r has quit [Remote host closed the connection]
igemnace has quit [Ping timeout: 256 seconds]
s-liao has quit [Ping timeout: 256 seconds]
igemnace has joined #commonlisp
s-liao has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
kadir has joined #commonlisp
aartaka has joined #commonlisp
Oladon has quit [Quit: Leaving.]
gaqwas has joined #commonlisp
<lisp123> Anybody have a copy of http://www.lisp.org/mop/dictionary.html ? The link is broken
<lisp123> It may be this http://mop.lisp.se/www.alu.org/mop/dictionary.html , but since I never seen this page before so am not sure
rogersm has joined #commonlisp
rogersm has quit [Read error: Connection reset by peer]
rogersm_ has joined #commonlisp
<Jing> Hi, out of curiosity, if I install "alexandria" with Quicklisp in CCL in Slime/Sly and then I attach SBCL with Slime/Sly. Would SBCL also has "quicklisp" and "alexandria" or do I need to install again?
<pillton> Jing: I doubt it. You need to copy the quicklisp bits from ~/.cclrc to ~/.sbclrc.
<pillton> Jing: You could also create a ~/.generic-lisp-rc that is loaded by ~/.cclrc and ~/.sbclrc. That way all of your lisp environments use the same initialisation.
rogersm_ has quit [Ping timeout: 268 seconds]
<Jing> pillton: Thanks, so in other words, if I do this generic-lisp-rc which is shared by both CCL and SBCL, then packages I installed in CLL can be used by SBCL, and vice versa?
<pillton> Jing: Yes.
<Jing> Thank you for the clarification. I thought that one might not need to install everything twice but didn't know how...
<pillton> Jing: I have (load (merge-pathnames ".generic-lisp-rc" (user-homdir-pathname))) in all of my initialisation files.
<pillton> Jing: You could also use symbolic links.
<Jing> pillton: Maybe I will try the first methods
<Jing> method*
<pillton> Jing: Quicklisp installs the source of the software in its own special location. The software is shared by all environments which load ~/quicklisp/setup.lisp.
<pillton> Jing: Compilation of the software is handled by ASDF usually.
rotateq has joined #commonlisp
<Jing> Yes
<contrapunctus> Is there a Common Lisp rendering library for OpenStreetMap data?
rogersm has joined #commonlisp
rogersm has quit [Ping timeout: 268 seconds]
s-liao has quit [Ping timeout: 256 seconds]
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
kadir has left #commonlisp [WeeChat 3.3]
rogersm has joined #commonlisp
amb007 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
<pjb> contrapunctus: AFAIK, nope.
rogersm has quit [Ping timeout: 256 seconds]
<contrapunctus> I see...I'm thinking of writing a renderer and router 🤔
<pjb> Jing: you may have a look at http://github.com/informatimago/rc which has various implementations rc files, and a common.lisp rc file ;-)
<pjb> pillton: what's this new Generic Lisp ?
waleee has joined #commonlisp
attila_lendvai has joined #commonlisp
<Jing> pjb: Thanks, it seems quite helpful
rgherdt has joined #commonlisp
<pjb> Jing: the only thing of course, is that the first time you use a system in the other implementation, it will have to be compiled.
<Jing> pjb: got it
<pjb> binaries are put in ~/.cache/common-lisp/$implementation/$systempath
amb007 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
waleee has quit [Quit: WeeChat 3.3]
rogersm has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
jealousm` has joined #commonlisp
jealousmonk has quit [Ping timeout: 268 seconds]
rogersm has quit [Ping timeout: 268 seconds]
amb007 has quit [Ping timeout: 264 seconds]
hendursa1 has joined #commonlisp
amb007 has joined #commonlisp
<contrapunctus> Re: OSM renderer, what kind of graphics library would y'all recommend for this? cl-sdl2?
<contrapunctus> I'd like for it to be usable in browsers as well as in native applications, such as those made with McCLIM...
hendursaga has quit [Ping timeout: 276 seconds]
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
<borodust> Xach: i feel obliged
<borodust> gonna fix today
<borodust> my lgj game finally works on android, so i guess i can finally breathe out
igemnace has quit [Remote host closed the connection]
hendursa1 has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
hendursa1 has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
rogersm has joined #commonlisp
gaqwas has quit [Ping timeout: 268 seconds]
makomo has joined #commonlisp
waleee has joined #commonlisp
shka has joined #commonlisp
cosimone has joined #commonlisp
mrcom_ has quit [Quit: Leaving]
mrcom has quit [Quit: Leaving]
mrcom has joined #commonlisp
waleee has quit [Ping timeout: 264 seconds]
waleee has joined #commonlisp
makomo has quit [Ping timeout: 264 seconds]
ski has quit [Ping timeout: 260 seconds]
ski has joined #commonlisp
notzmv has quit [Ping timeout: 264 seconds]
cage has joined #commonlisp
notzmv has joined #commonlisp
jaimelm has quit [Ping timeout: 260 seconds]
jaimelm has joined #commonlisp
<lisp123> Anybody use 40ants-doc?
<lisp123> Can't find it on quicklisp..
perrierjouet has joined #commonlisp
<pjb> what is it? (there are a ton of doc generator systems :-))
<lisp123> Its yet another doc generator system. I'm only interested because I'm trying to get Edi Weit'z LW Add-Ons to work and having issues. Looks like there is an updated version by 40ants, but its all intermixed with 40ants-doc :(
<lisp123> (bit frustrated, so I will keep quiet)
pranavats has left #commonlisp [#commonlisp]
edgar-rft has quit [Quit: Leaving]
perrierjouet has quit [Quit: WeeChat 3.3]
edgar-rft has joined #commonlisp
<guthur> borodust what are you using to deliver to Android ABCL?
pranavats has joined #commonlisp
waleee has quit [Quit: WeeChat 3.3]
dec0d3r has joined #commonlisp
edgar-rft has quit [Quit: Leaving]
dec0d3r has quit [Remote host closed the connection]
waleee has joined #commonlisp
<borodust> guthur: lispworks
perrierjouet has joined #commonlisp
varjag has joined #commonlisp
makomo has joined #commonlisp
pranavats has left #commonlisp [#commonlisp]
pranavats has joined #commonlisp
<guthur> interesting, i was not aware LW could target iOS and Android
<lisp123> ehhhh common-lisp.net hosts projects on gitlab, but its pretty annoying to fork / copy. They should just do it on the public gitlab server / on github :-/
<pranavats> borodust: I assumed you used ECL, since the docs mention "SBCL, CCL and ECL compatible" as a principle.
<pranavats> I'd be interested in whether ECL can run it without GC pauses becoming an issue.
pranavats has left #commonlisp [#commonlisp]
<hayley> Boehm GC can run incrementally.
Catie has quit [Ping timeout: 245 seconds]
rogersm has quit [Read error: Connection reset by peer]
<rotateq> "That are all Boehmian villages for me." :)
aartaka has joined #commonlisp
<borodust> what was the bot syntax for leaving a message?)
rogersm has joined #commonlisp
<borodust> pranavats: i used ECL for android delivery, but as of now, my usecase is poorly supported by ECL
<borodust> ECL evaluates load-time stuff every time shared library is loaded, which in my case takes 8-10 minutes on a farily decent device (galaxy s9)
<borodust> i use many bindings to _huge_ C++ libraries and toplevel is quite big, so only feasable way is image-based delivery
<borodust> compared, lispworks image takes a couple seconds to load
<borodust> (same image, on the same device)
<borodust> s/same image/same codebase/
random-nick has joined #commonlisp
tyson2 has joined #commonlisp
pranavats has joined #commonlisp
<borodust> pranavats: i commented on your ECL mention, you probably can check it in #commonlisp public logs :D
waleee has quit [Quit: WeeChat 3.3]
waleee has joined #commonlisp
<borodust> Xach: fixed
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Lycurgus has joined #commonlisp
waleee has quit [Quit: WeeChat 3.3]
waleee has joined #commonlisp
waleee has quit [Client Quit]
amb007 has quit [Ping timeout: 256 seconds]
waleee has joined #commonlisp
amb007 has joined #commonlisp
attila_lendvai has quit [Ping timeout: 256 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Lycurgus has quit [Quit: Exeunt]
<lottaquestions> hayley: I asked a question in clschool, would be interested in hearing your opinion
<hayley> I'm not in #clschool; is there a log?
<hayley> Or could you repeat the question here please?
<lottaquestions> I don't know how to find #clschool's log if one exists
<lottaquestions> OK repeating the question
<lottaquestions> how would you go about "visualizing" each iteration of a CL loop? For exaple in the file https://github.com/wzrdsappr/trading-core/blob/master/indicators.lisp , I am interested in
<lottaquestions> seeing each iteration of the loop in the function (defmethod update-indicator ((i donchian-channel) price) on lines 387- 397
<lottaquestions> Then lisp123: suggested I use a print like this "for high = (progn ( print forms) (if price-bar-p (h p) p))"
<rotateq> i should join too
<lottaquestions> We were both wondering if there would be another way, or if this was the only way
<lottaquestions> rotateq: sure
<hayley> You could add a DO clause after the FOR clauses.
<lottaquestions> rotateq: BTW does rotateq mean rotate qubit?
<lottaquestions> ahh, then do the print in the DO clause.
<rotateq> nono :) that is what stylewarning_ does, but I'm very interested too. I'll query you shortly
<hayley> However, you might instead want to log these values in a way that would be more amenable to graphing if you are looking at values which change slowly.
<pjb> lottaquestions: you can use cl-stepper.
<lottaquestions> hayley: I like that idea, the graphing would be super useful
<lottaquestions> pjb: cl-stepper, I've never heard of that, but I am very interested
<lottaquestions> pjb: Did you mean insterting a (break)?
<pjb> no, cl-stepper works by shadowing and redefiniting some CL operators.
azimut has quit [Remote host closed the connection]
<pjb> But you'd have to load a loop macro implementation in cl-stepper, instead of using the cl one.
azimut has joined #commonlisp
<pjb> on the other hand, if you have code inside the loop that is compiled with the cl-stepper, then it will be stepped.
s-liao has joined #commonlisp
<pjb> lottaquestions: https://termbin.com/x6dc
<lottaquestions> pjb: I love it! Will try that out
<pjb> Now, there would be a trivial patch to improve that: when walking a macro, we could macroexpand it and re-interpret it within cl-stepper.
xsperry has quit []
<lisp123> Qn for any LW users out there, is there a way to get both the listener and editor in the same frame?
<etimmons> lisp123: 40ants-doc is definitely on Quicklisp
tyson2 has quit [Remote host closed the connection]
<etimmons> lisp123: re: forking on common-lisp.net are there any annoyances beyond the default project limit being set to 0?
<lisp123> etimmons: Do you know what the name is? Tried so many combinations :(
<etimmons> (ql:quickload :40ants-doc) should do it
<lisp123> etimmons: For forking, I couldn't just press the "fork" button. I had to sign up to the common-lisp.net account and then it blocked me for "SPAM" reasons, I ended up copying the https link and cloning but its just an additional unnecessary step
<etimmons> It's (relatively) new, IIRC. so if your QL dist is more than a few months old, it may not have it
<pjb> lisp123: (quick-apropos "40")
<pjb> quick-apropos is in http://github.com/informatimago/lisp (com.informatimago.tools.quicklisp)
<lisp123> pjb: Cheers. I got "no value", let me try updating my QL
<lisp123> etimmons: Thanks, that did it. Learnt something new today
Lycurgus has joined #commonlisp
<pjb> lottaquestions: https://termbin.com/6apn
<pjb> lottaquestions: I'm pushing it.
<pjb> lottaquestions: it's pushed. You can fetch the version that does that.
<pjb> lottaquestions: thanks for the request! :-)
Lycurgus has quit [Quit: Exeunt]
Guest74 has joined #commonlisp
<Guest74> contrapunctus: you still around?
lisp123 has quit [Remote host closed the connection]
anddam has joined #commonlisp
<Guest74> ::notify contrapunctus depends on what you mean by 'render'. OSM has vector data that's ~80gigs, and you'd need a vector library for that. I've got a library for retrieving tiles rendered from osm data. not published yet, but it's just pngs. So to make a slippy map you just need to be able to load pngs.
<Colleen> Guest74: Got it. I'll let contrapunctus know as soon as possible.
<Guest74> ::notify contrapunctus I plan on doing a vector based renderer if I ever find a service that provides the data in smaller than 10gig chunks. Not high on the list so I'd be happy if you make a frontend agnostic backend. Let me know when it's done!
<Colleen> Guest74: Got it. I'll let contrapunctus know as soon as possible.
jealousm` is now known as jealousmonk
Inline has joined #commonlisp
Inline has quit [Quit: Leaving]
X-Scale` has joined #commonlisp
X-Scale has quit [Ping timeout: 268 seconds]
anddam has quit [Quit: WeeChat 3.0]
scymtym has quit [Remote host closed the connection]
Inline has joined #commonlisp
thmprover has joined #commonlisp
X-Scale has joined #commonlisp
X-Scale` has quit [Ping timeout: 256 seconds]
<lottaquestions> pjb: Thanks! Will check it out later. I need to attend to my day job.....
thomaslewis has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
Bike has joined #commonlisp
_73 has joined #commonlisp
_73 has left #commonlisp [#commonlisp]
anddam has joined #commonlisp
rain3 has joined #commonlisp
pve has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
anddam has quit [Quit: WeeChat 3.0]
thomaslewis has joined #commonlisp
aeth has quit [Ping timeout: 256 seconds]
aeth has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
vollcheck has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
<Jing> Unrelated to CL, but does anyone who uses Homebrew on Macs ever encountered the problem that it cannot find gcc even if it's installed...
<pve> Hi, there was talk some weeks back about a different way of exporting symbols ("inverted", I think someone called it). Something where the exported symbols actually came from a different implementation package. An application/library that utilized this technique was also mentioned, but I can't remember what it was and I forgot to make a note.
<pve> Does this ring a bell to anyone?
<beach> The description doesn't fit, but otherwise, I have talked about an organization where the interface package contains only exported protocol symbols, and implementation packages :USE the interface package.
<beach> Like CLIM is organized, where the CLIM package contains only the specified symbols.
<beach> Is that what you mean?
<pve> beach: hmm maybe that's it (I'm certain I explained it badly :)
<beach> It is "inverted" because you can't do that in a typical programming language.
<pve> let me have a look
<beach> In a typical language, you don't have the package system, so the same "module" that defines a name is also the "home module" of that name.
aartaka has quit [Ping timeout: 260 seconds]
<beach> So for instance i SICL, there is a COMMON-LISP package, and no code is written with (in-package #:common-lisp) at the beginning.
aartaka has joined #commonlisp
<beach> Instead, each module has it's package like (defpackage #:sicl-loop (:use #:common-lisp) ...) and then the LOOP code has (in-package #:sicl-loop) at the beginning of each file.
<pve> beach: and then at some point the common-lisp package imports "loop" from sicl-loop?
s-liao has quit [Quit: Client closed]
<pve> no, that can't be right
<beach> Er, what? The COMMON-LISP package just exports the LOOP symbol which has COMMON-LISP as its home package. The COMMON-LISP package has no indication of any other packages.
<beach> (defpackage #:common-lisp (:use) (:export ... #:loop))
<beach> So in loop.lisp you have (in-package #:sicl-loop) (defmacro loop ...)
<pve> ah, riight
<beach> And the LOOP mentioned there is the one accessible from COMMON-LISP.
<pve> now I get it, I hope
<beach> This organization is beautiful, because the home package of all interface symbols is the interface package. In this case COMMON-LISP.
<pve> I need to save this somewhere, because I'll just forget it again later
<beach> If you do it the other way around, you will have strange results when you say (symbol-package 'loop) and it is some strange implementation package.
<pve> beach: thanks for explaining (again)
thomaslewis has joined #commonlisp
<beach> Pleasure.
<beach> Hope it makes sense.
<pve> It's a little counter-intuitive for me, so it might take a while to internalize :)
<beach> It is counter-intuitive to anyone who has worked mainly in other languages. It was to me as well at first.
<beach> I only learned it when I read the CLIM specification.
hineios4 has joined #commonlisp
rotateq has quit [Remote host closed the connection]
<_death> that's a neat idea, beach.. I may try it with a library I'm working on nowadays
<pve> I've only worked in CL, but never seen this before :)
* pve hangs head in shame
<beach> It is indeed a neat idea. I can't take credit for it, of course.
hineios has quit [Ping timeout: 268 seconds]
hineios4 is now known as hineios
<holycow> pve: any chance you could write this down and post it to github or something?
<holycow> its esoteric enough that i know i won't find it again outside of this chan
<beach> Someone with ECL or CCL installed could try (remove-duplicates (loop for sym being each external-symbol in '#:common-lisp collect (symbol-package sym)))
<beach> In SBCL, there is only one package there.
anddam has joined #commonlisp
<beach> Maybe MAPCAR would have been simpler.
thomaslewis has left #commonlisp [#commonlisp]
<jackdaniel> beach: ecl (#<"COMMON-LISP" package>)
<_death> one thing I'm doubtful about though is :useing the interface package.. maybe instead it's better to explicitly have cl:loop in its definition form.. another issue is seeing which symbols a particular file (or "package", if each file gets its own package) defines
<beach> jackdaniel: Great!
<jackdaniel> I don't have ccl on this computer
<beach> _death: By :USE-ing the interface package, the implementation package has free access to all interface symbols, plus its own, which is quite advantageous.
waleee has quit [Quit: WeeChat 3.3]
<beach> _death: Otherwise, you get (cl-special-operators:if (cl-arithmetic:> (cl-sequence-functions:length list) 3) ...)
<pve> holycow: I'll see if I can find the time, first I need to understand it. Good idea, though.
<etimmons> beach: ccl (#<Package "COMMON-LISP">)
<beach> Excellent.
<beach> The standard doesn't require that as it turns out.
thomaslewis has joined #commonlisp
waleee has joined #commonlisp
<_death> beach: yeah, I can see how that's useful.. but then you need to be careful not to define any other interface symbol.. currently I use #:foo/bar which is a set of symbols, both external interface symbols (a small subset of #:foo) and internal interface symbols
<beach> Well, I would assume that someone working on an implementation module is aware of all the interface symbols. If not, you may have a bigger problem.
tyson2 has joined #commonlisp
<_death> beach: well, since I'm using a CLOSy design, I don't have too many external interface symbols, so indeed it may not be such a big issue.. but I don't see why you say it'd be a bigger problem..
<beach> To have a person working on an implementation module for a system, but being unaware of the interface that system presents? I think that's a big problem.
<beach> That person should be put into training first.
rogersm has quit [Ping timeout: 268 seconds]
<_death> such a "module" uses the particular things it cares about, and exports the symbols it needs to.. but otherwise doesn't require a view of the whole external interface
<beach> Normally, an implementation module would not need to export any symbols. Unless it defines some internal protocol, of course.
<beach> If the interface has that many symbols in it, it may need to be split up.
<_death> yes, in the approach you describe that is true.. but I'm talking about the alternative approach I currently use
<_death> as I'm comparing the two approaches
thomaslewis has left #commonlisp [#commonlisp]
<beach> I see.
thomaslewis has joined #commonlisp
random-nick has quit [Ping timeout: 264 seconds]
thomaslewis has left #commonlisp [#commonlisp]
<_death> I guess :use common-lisp is very handy, because it's a whole language package that exports a lot of symbols that have diverse purposes, and each module uses a variety of them
<_death> but in more constrained domains, one module uses #:foo/bar and another uses #:foo/baz and neither needs to be aware of #:foo/quux
<_death> *need
<_death> with the :use common-lisp approach, you still can't use all the symbols at any point, because some of them may not be defined
<beach> Why would that be the case?
Jing has quit [Remote host closed the connection]
<_death> well, in sicl-loop you define the cl:loop macro.. but if it uses member, then member may not use cl:loop
<beach> I guess you haven't kept up with SICL goals and its bootstrapping technique. :)
Jing has joined #commonlisp
<beach> In SICL, the LOOP macro in fact uses standard classes and generic functions. And you can bet that CLOS uses LOOP too.
<_death> beach: I have not.. but isn't sicl a special case that way? most libraries don't bootstrap themselves
<beach> Sure. I was just taking the opportunity for self promotion.
<_death> ;)
Jing has quit [Remote host closed the connection]
Jing has joined #commonlisp
thomaslewis has joined #commonlisp
<_death> thinking about it some more, not sure it'd mesh well with package-inferred-systems, which is what I currently use.. maybe I'll try it in the future library ;)
<beach> That sounds right. And that might be a main reason that I have never been impressed by package-inferred systems.
tyson2 has quit [Remote host closed the connection]
<_death> ah, I've found package-inferred-systems very useful in important use cases I have
thomaslewis has left #commonlisp [#commonlisp]
<beach> I see.
<_death> and been working with them for years, without many issues
<beach> That must be because you don't organize your packages the way I do.
<beach> I mean, the two ways seem incompatible if I understand you right.
<_death> maybe.. I also don't use package-inferred-systems style in every project, just where I think it may be beneficial.. although sometimes I find that a project would benefit from the style and adapt it
<Guest74> am I in the minority that hates backslashes in package names?
<Guest74> and the opinionated complaints of asdf?
<_death> what's there to hate? these are just internal packages
<_death> the interface package is #:foo
<beach> Backslashes? That would be unusual.
<beach> Backslash is a single escape character.
<jackdaniel> beach: package names like "asdf/component"
<beach> That's not a backslash.
<_death> depends on which side you look ;)
<jackdaniel> yes, but I tink that this is what Guest74 refers to (because death mentioned such package names)
anddam has quit [Quit: WeeChat 3.0]
<jackdaniel> if not, then indeed a package name like "asdf\\component" would be annoying :)
<_death> asdf\\\\component
<beach> jackdaniel: Exactly, and I would hate them just like Guest74 does.
Bike has quit [Quit: Connection closed]
thomaslewis has joined #commonlisp
makomo has quit [Ping timeout: 268 seconds]
thomaslewis has left #commonlisp [#commonlisp]
Bike has joined #commonlisp
thomaslewis has joined #commonlisp
<Guest74> slashing depends on hand dominance.
anddam has joined #commonlisp
Mandus_ has quit [Ping timeout: 256 seconds]
Mandus_ has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
Catie has joined #commonlisp
BonnieT100 has joined #commonlisp
z3t0 has quit [Quit: The Lounge - https://thelounge.chat]
BonnieT100 is now known as Cherrybark
lisp123 has joined #commonlisp
vollcheck has quit [Quit: Leaving]
tyson2 has joined #commonlisp
aartaka has quit [Ping timeout: 256 seconds]
Cherrybark has left #commonlisp [#commonlisp]
domovod has joined #commonlisp
makomo has joined #commonlisp
<_death> Guest74: re. needless asdf complaints, I just patch them out ;)
<jackdaniel> Guest74: it is a typographical mark /name/, i.e a proper noun
<Guest74> I was wondering if there was a less opinionated repo out there somewhere.
Devon7 has quit [Read error: Connection reset by peer]
<jackdaniel> re slashes in system names - while indeed annoying and often harmless, it is not that there is no technical reason that asdf complains
<Guest74> jackdaniel: sure, but it's based on handedness.
Devon7 has joined #commonlisp
<Guest74> there's quite a few areas that right handed people are blind to how right sided a lot of things are.
<jackdaniel> locate-system takes the system system name, cuts everything /after/ the slash and looks for that-name.asd (instead of parsing all imaginable asd files)
<jackdaniel> Guest74: I'm left handed but it doesn't irk me in slightest ,)
Mandus_ has quit [Remote host closed the connection]
<jackdaniel> scissors on the _other hand_ - they are sometimes quite bothersome
<Guest74> lol, I guess it depends if you've actively slashed before.
<Guest74> I wouldn't mind if that package inferred system allowed you to choose a separator.
<_death> what separator would you choose?
<Guest74> -
<_death> the obvious alternative is #\. (slime has some magic for that)
<lisp123> Guest74: many names use - so it can't be a separator
<_death> well, #\- would be pretty bad..
<Guest74> well, if you have a package something-other-something
<Guest74> you can infer that a #\- after that would infer another package.
<_death> usually we use #\- when you want to use a term with more than one word.. e.g., simple-foo..
<lisp123> Guest74: in practice something like that *could* work, but the confusion wouldn't be worth it
<_death> it's not the way we'd design our hierarchy simple/foo
<_death> I suppose another alternative would be to allow lists for names
<Guest74> i'd like #\. for hierarchical packages ... if they existed.
<_death> (foo bar) is nicer than foo/bar
<jackdaniel> Guest74: acl (and up to some point ecl) had hierarchical packages
Bike has quit [Quit: Connection closed]
<jackdaniel> but in practice it wasn't very useful
<jackdaniel> you may check the allegro common lisp documentation to see the specification
<Guest74> yeah, i've read it in the past.
thomaslewis has joined #commonlisp
Mandus_ has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
<Guest74> pretty sure PLNs deal with all my use concerns for now.
rogersm has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
<contrapunctus> Guest74: ahoy. Thanks for the input...I'd read a little in the meantime and realized it depends on what kind of map you're after...there are raster tiles like you mention, vector tiles, 3D rendering, and apparently also ways to do it without tiles. What kind of inputs could a "frontend agnostic backend" accept?
<Colleen> contrapunctus: Guest74 said 3 hours, 5 minutes ago: I plan on doing a vector based renderer if I ever find a service that provides the data in smaller than 10gig chunks. Not high on the list so I'd be happy if you make a frontend agnostic backend. Let me know when it's done!
<Colleen> contrapunctus: Guest74 said 3 hours, 13 minutes ago: depends on what you mean by 'render'. OSM has vector data that's ~80gigs, and you'd need a vector library for that. I've got a library for retrieving tiles rendered from osm data. not published yet, but it's just pngs. So to make a slippy map you just need to be able to load pngs.
<Guest74> _death: thanks, I'll add that to my sbcl.
<_death> if asdf used specific condition types for its warnings, there'd be no need for hard patching
<_death> but it would also need a repl hook where you could place your handler-bind
<Guest74> contrapunctus: I think the big issue is what kind of data you have access to.
<Guest74> a lot of tile-servers are paid access.
<Guest74> a lot of vector data in small chunks is paid access as well.
<Guest74> I know I don't have room for almost 100gigs of vector data, hence why I went with tiles.
<contrapunctus> Ah, I see 🤔
<_death> (or some ambient *suppress-these-warnings* variable, I guess)
<Guest74> you can still get overlays on tiles, so as long as you got something that can load pngs and composite them you're good.
<Guest74> _death: *suppress-opinions* would be nice.
<_death> in the oppress package
<Guest74> my tile-server stuff is frontend agnostic. All it does is retrieve tiles by lat/long or location and store them. How you choose to display them is up to you.
Inline has quit [Ping timeout: 268 seconds]
<Guest74> That way people can write a mcclim slippy tile whatever-they-call-widgets, and I can use it with my own stuff.
thomaslewis has joined #commonlisp
<_death> I wrote some clim code yesterday.. mostly a pleasure.. though I did notice menu-choose didn't want a vector for items (the spec says it should take a sequence)
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
<jackdaniel> gadgets
thomaslewis has left #commonlisp [#commonlisp]
edgar-rft has joined #commonlisp
<jackdaniel> "widget" is a shortened version of the original term "window gadget"
<_death> ooh, didn't think of that
<Guest74> you're pulling our legs right?
<Guest74> widget goes back to manufacturer iirc
<Guest74> s/manufacturer/manufacturing/
* jackdaniel is serious
<edgar-rft> and what stands gadget for? :-)
<_death> it's an actual english word, but who knows about the etymology in the gui jargon
thomaslewis has joined #commonlisp
<Guest74> I've been pondering if widget is a good name for a collection of integrated ui elements. But I don't know what else to call them.
<jackdaniel> http://wiki.gis.com/wiki/index.php/GUI_widget seems to have some etymology reference (after quick skimming of the web now
<jackdaniel> but the link is broken, so nevermind
thomaslewis has left #commonlisp [#commonlisp]
<Guest74> Also been wondering if widgets should have their own event handling. Or an option to have the parent container handle events.
<Guest74> How does mcclim handle it?
<jackdaniel> on the lowest level gadgets are implemented as classes that may have a specialization for the function handle-event
<edgar-rft> Guest74: I would call them gimmicks :-)
<_death> edgar-rft: graphical widget
thomaslewis has joined #commonlisp
<Guest74> So it's the programmers choice if they wish to handle events themselves?
anddam has quit [Quit: WeeChat 3.0]
<jackdaniel> right, if you i.e subclass a push-button you may not touch handle-event at all and operate on protocol defined for the push-button gadget
<jackdaniel> you may also create a brand new gadget that doesn't use handle-event at all, but then you will need to manipulate it by some other means (because otherwise it will be deaf)
thomaslewis has left #commonlisp [#commonlisp]
<jackdaniel> there is also inheritance: gadget is a pane, and a pane is a sheet, the sheet is something that may be vaguely described as an input-sensitive surface
<Guest74> I guess i have something similar. events are mainly handled by a top level loop that calls thing like (ui:on-hover element)
<Guest74> Well, except for that hierarchy.
thomaslewis has joined #commonlisp
<jackdaniel> the fun part about clim spec is that you may ignore all higher level abstraction (up from the panes) and use directly sheets to implement brand new toolkit that has nothing to do with clim
Bike has joined #commonlisp
<jackdaniel> because these lower abstractions are derived from silica that was used to abstract away underlying windowing system details (like x11) - I had somewhere immediate gui example
<jackdaniel> s/example/toy example/
<Guest74> I've been trying to decide at what level of abstraction does a surface get coupled with an event-handler.
thomaslewis has left #commonlisp [#commonlisp]
<Guest74> Or how far down it should go. like the aforementioned widget.
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
<_death> I also used presentation translator testers to have different select-gestured operations associated with presentations, depending on the current tab (clim-tab-layout).. it works, but maybe there's a better way, say associating different command tables with different panes
Lycurgus has joined #commonlisp
<jackdaniel> _death: I have somewhere stashed some wip for frame-panes (i.e you could adopt an application frame as a pane in another application frame)
<Guest74> hrm, i wonder how common that use case is?
<jackdaniel> quite handy, because I could host clim-listener and clouseau in the same window
<jackdaniel> _death: another "trick" would be defining presentations to have the sheet parameter
guthur has quit [Quit: Client closed]
<Guest74> Right now I have tasks which can have their own bindings. and tabbed layouts can contain any element/surface/window so that's not a problem.
<Guest74> but I wonder if allowing different bindings for different areas of an element would be useful.
<_death> jackdaniel: nice.. I also had a case for that.. but it was simpler, so I could just use application-frame inheritance (and also specify command-table inheritance)
<jackdaniel> Guest74: is there any link to what you are working on?
<jackdaniel> _death: re sheet parameter, I think that from-type and to-type in translators must be known at compile time, so scratch the idea with the sheet parameter :)
<Guest74> not right now. It's still a bit of a mess as I'm trying to decide where everything belongs.
<jackdaniel> that said McCLIM has an extension to blank area where you may specify the target sheet (and region), but to specify a sheet you probably need to evaluate it
<jackdaniel> Guest74: I see
thomaslewis has joined #commonlisp
<Guest74> Like right now I have surfaces that can do things that surfaces really shouldn't, like being moved or resized.
<_death> jackdaniel: well, my current code isn't too bad.. it'd be nice if tab pages had symbolic names, rather than working with titles, but these are little things
<jackdaniel> I don't personally like the tab-layout extension - it pollutes the global command table
<_death> maybe, I don't have much experience with it
thomaslewis has left #commonlisp [#commonlisp]
<jackdaniel> Guest74: try sheet geometry demo in clim-examples ,)
<lisp123> If I'm okay with crashes in my lisp image crashing the editor, can I start using Climacs or are is there other stuff to be aware of?
<Guest74> where are the demos located?
<jackdaniel> lisp123: if this question is directed to me then I won't be of much help - I'm not using it so I can't tell (I've fixed a few low-level issues though)
<jackdaniel> Guest74: Examples/
<jackdaniel> the system clim-examples
<jackdaniel> you may start the dialog with (clim-demo:demodemo)
<beach> lisp123: Apparently (first) Climacs works, but I am no longer working on it.
<lisp123> jackdaniel: No worries, thanks. At some point I need to migrate over to McClim / Climacs (a full end to end CL solution)
<beach> lisp123: But there are other Common Lisp editors, like `lem', Hemlock, etc.
<jackdaniel> I believe that beach works on a successor Second-Climacs, I'm not sure when it will be ready though
<lisp123> beach: Thanks, I'll check it out now. But should I be using Second Climacs instead?
<beach> No, it's not ready.
<Guest74> So each of those is a sheet?
<lisp123> Cool, thanks
<Guest74> I've been thinking of having a canvas that handles the resize/movement stuff for surfaces can be rotated.
<jackdaniel> Guest74: the "entities" on the right they are sheets, stuff on the left are presentations (not sheets)
<jackdaniel> basically clim specifies sheets to have a transformation that defines its relation to parent (parent may have another transformation related to its own parent etc)
<jackdaniel> the most common transformations are identity and translation though
<Guest74> I haven't really seen a use case for this though. but maybe I'm not imaginative enough.
<jackdaniel> this demo is to test the recenti-sh improvements on handling less common cases
<jackdaniel> regarding the use case - zooming comes to mind
<jackdaniel> for rotation - two players on two sides of the tablet with their own interfaces
<Guest74> hrm, that gives me something to think about.
<Guest74> do you store some sort of concrete reflection of the current state?
<jackdaniel> what do you mean?
<Guest74> do you have put things like pointer movement through a transform matrix?
<Guest74> or mouse clicks to find out what is below it.
<Guest74> I think I'm planning on having transforms/rotation etc... handled at the compositor level.
<jackdaniel> it is done under the hood
<Guest74> Are the demos requesting a specific size from the wm? right now I have the right sides being cut off a bit.
thomaslewis has joined #commonlisp
<jackdaniel> I don't remembers, it is certainly possible
<jackdaniel> by default though I think that size is computed based on the the layout and its contents
<_death> I think you're using stumpwm, right? I too have such issues with clim and stumpwm (haven't tried clim on another window manager, but I assume they're specific to stumpwm)
<Guest74> No, I'm using my own wm. I just don't handle size requests because I want what I want.
<Guest74> but yeah, it's not resizing right away. There's quite a delay for it to react to size changes and the need to repaint.
thomaslewis has left #commonlisp [#commonlisp]
rogersm has quit [Quit: Leaving...]
<Guest74> oh, now I see what you mean by right side. I wasn't seeing that at all before.
<jackdaniel> heh, sorry that it doesn't work well in your wm
thomaslewis has joined #commonlisp
<Guest74> pretty sure it's the case with any tiling wm.
domovod has quit [Ping timeout: 260 seconds]
<Guest74> looks like the mcclim demos panel resizes right away, the sheet test only resizes height and only upon interaction.
<jackdaniel> I've meant that it is a shame that it doesn't work on your configuration, not that your configuration is to blame
<Guest74> I can check if it's actually making size requests or setting hints if you're interested.
<Guest74> I've been also wondering if I should move double-buffering to a higher level than my surface protocol.
<jackdaniel> only in a form of proper issue submissions; I'm multitasking enough atm to forget about it :)
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
<semz> Is a DEFTYPE that expands to `(simple-array (unsigned-byte 8) (,length)) guaranteed to be a recognizable subtype of sequence?
<Bike> yes
<jackdaniel> (subtype a b) ; nil nil
<Bike> it doesn't involve and, eql, or, etc., so subtypep isn't allowed to return nil nil
<jackdaniel> ah, nvm me then. thanks for the correction.
<pjb> beach: note that IIRC, an implementation can export from CL symbols with different home packages.
<Guest74> I should probably work on getting my github setup properly. Need to upload my sane network protocol for people to comment/test
<pjb> beach: of course, it's nicer in a true native CL implementation if CL symbols have the CL home package.
tyson2 has quit [Remote host closed the connection]
thomaslewis has left #commonlisp [#commonlisp]
<Guest74> lol, my wm doesn't decorate windows so I can't shut down the demos.
<jackdaniel> Guest74: (clim:destroy-port (clim:find-port))
<jackdaniel> or if you know frame instances then (frame-exit frame)
<_death> do you not have a close-window keybinding
<Guest74> haven't had a use for it yet :)
<Guest74> C-q has worked on everything so far.
<jackdaniel> or (frame-execute-command <frame> `(climi::quit))
<jackdaniel> unless they do not inherit from the global command table
<jackdaniel> or .. ,)
<jackdaniel> there are quite a few ways
<pjb> beach: it's a matter of symetry, since we could have a CL in another Lisp, or another lisp in CL. The package system imposes a choice. I guess environments could let us define the names of the objects in more independent ways, but some features would still need to be re-implemented or wrappers. Eg. call-next-method in defmethod would have to be a different symbol (with a different home package) in different lisp packages..
<jackdaniel> (clim:add-keystroke-to-command-table 'clim:global-command-table '(#\q :control) :command `(climi::com-quit))
thomaslewis has joined #commonlisp
<jackdaniel> (but the last one has an issue that it doesn't work if there is no interactor - I'm fixing this right now
<jackdaniel> )
Oladon has joined #commonlisp
<pjb> _death: well, :use :common-lisp alsu makes present symbols like rplaca that you never use. beach would argue for cl:defun and no :use :cl ;-)
<pjb> _death: perhaps a system should define a language package with only the "language" symbols it uses.
thomaslewis has left #commonlisp [#commonlisp]
anddam has joined #commonlisp
<jackdaniel> shake that tree, shake shake
thomaslewis has joined #commonlisp
<pjb> Guest74: also, you may change the readtable, so that \ is not escaping anymore. In lisp machine lisp, characters are written with #/a not #\a IIRC. So you could write asdf\component ; let's call that the ms-dos readtable…
<pjb> and you know that ms-dos used \ by error, it wanted to use / really, but some idiot couldn't write or read correctly…
Guest74 has quit [Ping timeout: 264 seconds]
<_death> pjb: I did use rplaca once :) because the fact that it returned the cons was useful
amb007 has quit [Ping timeout: 268 seconds]
<pjb> _death: of course, and it's a function, so you can mapcar it.
amb007 has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
<pjb> (let ((a-list (copy-tree '((one . 1) (two . 2) (three . 3))))) (mapcar 'rplaca a-list '(un deux trois))) #| --> ((un . 1) (deux . 2) (trois . 3)) |#
<_death> this made me think about sublis, and then that assoc has rassoc, but sublis has no rsublis (or keyword argument for that)
<semz> Bike: lol, now that I reread the spec, it seems clear on this matter. No idea why I got confused. Is this zen?
<semz> either way thanks
robin__ has joined #commonlisp
<contrapunctus> _death: time to write cl2021 😏
<Bike> subtypep is pretty confusing
<contrapunctus> (Yes, that's a pun on cl21...)
robin has quit [Ping timeout: 268 seconds]
<_death> soon you can write cl22
<jackdaniel> cl9001 (because it is over 9000)
<contrapunctus> cl20021...very ahead of its time. Take that, Paul Graham.
tyson2 has joined #commonlisp
thomaslewis has joined #commonlisp
<_death> imagine if they had to design a common lisp today.. it'd have to include ruby, python, clojure, haskell, julia, and all the other languages people claim are lisp today
<White_Flame> cl19121 would be the proper y2k bug format
thomaslewis has left #commonlisp [#commonlisp]
<_death> we could call is rich common lisp, or cl90210
scymtym has joined #commonlisp
thomaslewis has joined #commonlisp
<jackdaniel> The Hickey's Guide to the Galaxy Common Lisp
<jackdaniel> HG2GCL
<White_Flame> I'm going to make a GUI lib and call it CLI (Common lisp interactive)
<_death> cons -> zaphod
<contrapunctus> rofl
thomaslewis has left #commonlisp [#commonlisp]
euandreh has quit [Ping timeout: 268 seconds]
Guest74 has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
Lycurgus has quit [Quit: Exeunt]
bcasiello has quit [Read error: Connection reset by peer]
Mandus_ has quit [Ping timeout: 256 seconds]
euandreh has joined #commonlisp
Mandus_ has joined #commonlisp
scymtym_ has joined #commonlisp
BottomType has joined #commonlisp
scymtym has quit [Ping timeout: 260 seconds]
igemnace has joined #commonlisp
rain3 has quit [Ping timeout: 268 seconds]
LoopMacro has joined #commonlisp
Mandus_ has quit [Ping timeout: 256 seconds]
Mandus_ has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Inline has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
Mandus_ has quit [Ping timeout: 268 seconds]
mmk2410_ has joined #commonlisp
mmk2410 has quit [Ping timeout: 260 seconds]
fiddlerwoaroof has quit [Ping timeout: 265 seconds]
scymtym has joined #commonlisp
fiddlerwoaroof has joined #commonlisp
Mandus_ has joined #commonlisp
gxt has quit [Ping timeout: 276 seconds]
gxt has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Mandus_ has quit [Ping timeout: 260 seconds]
BottomType has quit [Quit: Client closed]
tyson2 has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
ec has joined #commonlisp
ym has quit [Quit: Leaving]
Mandus_ has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
waleee has quit [Ping timeout: 268 seconds]
thomaslewis has left #commonlisp [#commonlisp]
waleee has joined #commonlisp
waleee has quit [Ping timeout: 260 seconds]
waleee has joined #commonlisp
waleee has quit [Ping timeout: 268 seconds]
random-nick has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
robin__ has quit [Quit: Leaving]
thomaslewis has left #commonlisp [#commonlisp]
robin has joined #commonlisp
waleee has joined #commonlisp
<contrapunctus> What do folks here prefer...writing native Lisp libraries, or making bindings?
thomaslewis has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
thomaslewis has left #commonlisp [#commonlisp]
<semz> native hands down
<Catie> Native Lisp libraries
<semz> not just writing, using too
<jackdaniel> foreign bindings for native lisp libraries
<contrapunctus> jackdaniel: wat
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
<jackdaniel> you know - create a library in common lisp, build a shared library with ecl and link to it from the c world ,)
tyson2 has quit [Remote host closed the connection]
<_death> I've not seen any uses of # as of format directive's prefix in the wild, though clhs give an example in ~[ entry.. anyone else seen/used? e.g., (format t "~{[~#A]~}" '(a b c))
z3t0 has joined #commonlisp
gaqwas has joined #commonlisp
Krystof has joined #commonlisp
pve has quit [Quit: leaving]
thmprover has quit [Quit: And Let's Away, to Part the Glories of This Happy Day]
anddam has quit [Quit: WeeChat 3.0]
waleee has quit [Ping timeout: 268 seconds]
ecraven- has joined #commonlisp
|3b|` has joined #commonlisp
even4voi- has joined #commonlisp
ecraven has quit [Ping timeout: 246 seconds]
dale has quit [Ping timeout: 246 seconds]
paulapatience has quit [Ping timeout: 246 seconds]
adeht has joined #commonlisp
dale has joined #commonlisp
even4void has quit [Ping timeout: 268 seconds]
hayley has quit [Ping timeout: 268 seconds]
_death has quit [Ping timeout: 268 seconds]
luis` has quit [Ping timeout: 268 seconds]
|3b| has quit [Ping timeout: 268 seconds]
saturn2 has quit [Ping timeout: 268 seconds]
CodeBitCookie[m] has quit [Ping timeout: 264 seconds]
sp has quit [Ping timeout: 264 seconds]
rudi has quit [Ping timeout: 264 seconds]
MatrixTravelerbo has quit [Ping timeout: 264 seconds]
alphapapa[m] has quit [Ping timeout: 264 seconds]
katco has quit [Ping timeout: 264 seconds]
icepic1984[m] has quit [Ping timeout: 264 seconds]
saturn2 has joined #commonlisp
paulapatience has joined #commonlisp
<dieggsy> so i have this function https://paste.dieggsy.com/2021-11-05T17:24:48 but I really want the p2 that produces this minimum. Is there some magical loop keyword I can use for this, or do I just have to implement the logic myself with a temp variable
<pjb> adeht: that's because it doesn't exist. Only : and @ can be used as flags with format directives.
CodeBitCookie[m] has joined #commonlisp
<dieggsy> I tried a (reduce #'min ...) with a key, but that's not quite right as it returns the retrun value of the key, not the original element
<dieggsy> i'm happy to implement it myself, i'm just probing how far built ins willtake me lol
<pjb> dieggsy: (defun get-closest (p1 points) (reduce (lambda (previous current) (let ((d (distance current p1))) (if (< d (cdr previous)) (cons current d) previous))) (rest points) :initial-value (cons (first points) (distance (first points) p1))))
<pjb> dieggsy: but there's little point to use reduce in this case, just write the loop.
hayley has joined #commonlisp
<dieggsy> oh, interesting, alexandria:extremum looks like what I want
<dieggsy> might be simpler just to do myself
hayley has joined #commonlisp
hayley has quit [Changing host]
<adeht> clhs 22.3
<adeht> pjb: ^
waleee has joined #commonlisp
adeht is now known as _death
alphapapa[m] has joined #commonlisp
<pjb> _death: Oh, sorry, indeed, a prefix, not a flag.
<_death> clhs ~[
<_death> for example of use
shka has quit [Ping timeout: 260 seconds]
sp has joined #commonlisp
aartaka has joined #commonlisp
<_death> although there is an extraneous space in the format string, so the actual outputs are a bit different
rudi has joined #commonlisp
katco has joined #commonlisp
<pjb> _death: there are a number of use in ~/quicklisp…
<pjb> about 50 occurences.
waleee has quit [Ping timeout: 268 seconds]
luis` has joined #commonlisp
<_death> is it ansi-test? :)
<pjb> Almost all with ~#[
<pjb> nope, not ansi-test.
<pjb> various systems.
<pjb> grep -nRH -e "format.*~\(\([0-9]+\|[vV]\|'.\)?,\)*#" ~/quicklisp 2>&1|grep -v 'binary file matches'
<pjb> (format t "~{~#D~%~}" '(1 5 9 12 15 42))
<_death> right, there are in fact uses in mcclim, gbbopen, etc.
scymtym has quit [Remote host closed the connection]
scymtym_ has quit [Remote host closed the connection]
scymtym has joined #commonlisp
icepic1984[m] has joined #commonlisp
MatrixTravelerbo has joined #commonlisp
aartaka has quit [Read error: Connection reset by peer]
aartaka has joined #commonlisp
thomaslewis has joined #commonlisp
anddam has joined #commonlisp
anddam has quit [Client Quit]
anddam has joined #commonlisp
aartaka has quit [Remote host closed the connection]
Krystof has quit [Ping timeout: 268 seconds]
thomaslewis has left #commonlisp [#commonlisp]
azimut has quit [Remote host closed the connection]
thomaslewis has joined #commonlisp
azimut has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
totoro has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
totoro has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
waleee has joined #commonlisp
dre has quit [Quit: Leaving]
dre has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
Bike has quit [Quit: Connection closed]
<lisp123> How much time do you spend in the REPL?
<_death> a lot?
<lisp123> Yeah, it seems quite useful. I've taken it for granted in Emacs/Slime because its just another window
<lisp123> I'm experimenting with LW right now, and its a whole another frame (in Emacs parlance), and not so easy to switch to/away from
<_death> I write my code to support convenient interactive use in the REPL
<lisp123> _death: I've started doing that a lot too
<_death> what makes switching more difficult in lispworks?
<lisp123> So in Emacs I can split my frame vertically / horizontally with C-x 3 & C-x 2 and cycle through windows with C-x o. So I just launch full screen Emacs on a large monitor and its great experience
<lisp123> Lispworks is the same, but the REPL cannot be added (as far as I can tell) into the same frame, it always is its own frame (window in non-emacs terms)
<mfiano> EXWM :)
<_death> right.. even if it's in another frame, with a tiling manager and/or two screens..
<lisp123> So there is a slight lag when cycling back and forth + you can't have both visible together during full screen, and you have to use the mouse a lot to resize (e.g. REPL in top right, editor in bottom right and then top left / bottom left)
<mfiano> Sounds like you need a tiling window manager.
<mfiano> With EXWM, Emacs is your window manager.
<lisp123> mfiano: ooooh this could be it!! Let me try it out
tyson2 has joined #commonlisp
<Catie> Or StumpWM! That one's Common Lisp
makomo has quit [Ping timeout: 260 seconds]
lottaquestions has quit [Remote host closed the connection]
lottaquestions has joined #commonlisp
<_death> I think even in the old days of Windows, there was some "arrange windows" option on the taskbar's context menu ;)
<hayley> There was in XP from memory.
<Catie> They still have _very_ limited facilities for tiling your windows, but not nearly enough for my tastes
<_death> much earlier than that ;)
<lisp123> Having a Mac feels worse day by day...first I can't use CMUCL :( and now I can't use exwm & stumpvm because they are for X11 apps as far as I can tell :(
thomaslewis has joined #commonlisp
<Catie> Shucks yeah, they are
thomaslewis has left #commonlisp [#commonlisp]
akoana has joined #commonlisp
<_death> it's been a long time since I saw lispworks UI screenshots, but my vague recollection is that they were implemented as MDI applications on windows, so probably had a Windows menu where you could tell it to arrange the windows as well.. maybe on mac it's the same
<lisp123> What's a good lightweight linux for Lisp?
<Catie> My general recommendation is Arch
<hayley> Any of them.
<lisp123> _death: So the editor (which is for source code) can be tiled quite nicely, it just seems like the listener (repl) is separate. I'll ask their lisp-hug group but I poured over their docs and it seems unlikely. Otherwise I really liked their implementation
varjag has quit [Ping timeout: 268 seconds]
<Catie> Unless you want a more difficult experience, in which case I'd recommend FreeBSD
<lisp123> I'm going to do it over VM. Might as well do FreeBSD because all the cool kids are on there now :D
nick3000 has quit [Ping timeout: 260 seconds]
<Catie> It's a fun learning experience! And I prefer the way it's organized
<lisp123> I've read a lot of stuff online about it, those who use it seems to talk about it like the way lispers talk about CL
<Catie> I'm guilty of both
<lisp123> The advantage of jumping over to FreeBSD/Linux is that I can finally start playing around with McClim properly
<lisp123> which will be exciting :)
<Catie> Just to be sure, before you make the jump: you don't need to mount an SMB share, do you?
<lisp123> I have VM Ware, and had ubuntu before. The font rendering was bad, so just need to find a way to fix that. So I think it should be okay?
<Catie> You get to tweak some of the settings for Freetype and Fontconfig if you build them from ports, so hopefully that helps with the font rendering!
<lisp123> Catie: Thanks for the pointer, I will look into that
<Catie> lisp123: Any time!
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
<random-nick> freetype and fontconfig have had plenty of font rendering improvements in the past few years, but I don't know how it affects mcclim
<Catie> I could be mistaken, I was under the impression that they were used by X to do its text rendering
<Catie> They appear to be, at least according to the FreeBSD handbook. Does McCLIM not have X render its text, does it use a different mechanism?
<random-nick> I am not sure, but mcclim does not seem to follow fontconfig settings on my system (at least by default)
<Catie> Hmm, it seems to be using my Fontconfig fonts, though they look a bit fuzzier than in other applications
<random-nick> on my system the anti-aliasing on fonts in mcclim is grayscale, might be why they look fuzzy
<mfiano> If I recall, the CLX backend does not honor the X resources database.
<mfiano> So ignores things like DPI and hinting settings
<random-nick> fontconfig provides that information separately afaik
<mfiano> That may have changed, but it was one reason why I could not bear to use McCLIM on a high DPI monitor
<mfiano> I couldn't accurately click on some widgets with how tiny they were
<random-nick> mcclim seems to have code for rendering using X to draw fonts, to use freetype+fontconfig and to use pure common lisp anti-aliased font rendering
<random-nick> can't find what it uses by default
gaqwas has quit [Ping timeout: 260 seconds]
<Catie> I really gotta buckle down and learn CLIM, I'm enamored with the idea of it