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-sub has joined #commonlisp
taiju-sub has quit [Quit: Quit]
taiju-sub has joined #commonlisp
rotateq has quit [Quit: ERC (IRC client for Emacs 27.2)]
taiju-sub has quit [Client Quit]
taiju_ has joined #commonlisp
lisp123 has joined #commonlisp
<lisp123> Is there an easy way to comment out an entire top level form
<lisp123> and uncomment
<White_Flame> wasn't this just asked yesterday?
<lisp123> not by me
<lisp123> let me check the logs
<White_Flame> you can quote and unquote it, or prefix it with #+(or)
<White_Flame> the latter is the preferred/common way
<lisp123> ok thanks
<White_Flame> paredit or other structure editors can also help you literally comment out individual forms
<lisp123> whats the hotkey in paredit?
<White_Flame> M-; I think?
<White_Flame> there might be some jank
<White_Flame> or check the docs
<lisp123> worked well
<lisp123> thanks!
<Guest74> M-x comment-region, when you really want to comment.
<lisp123> Guest74: Thanks for reminding on that one
<lisp123> Is there a library for sending emails from lisp?
rogersm_ has quit [Read error: Connection reset by peer]
rogersm has joined #commonlisp
<drakonis> oh nevermind that
<drakonis> this has a few choices
<lisp123> Not great BUT
<lisp123> the first link you sent might be just what I'm after, since I'm on AWS
<lisp123> Thanks!
pfd has quit [Quit: Client closed]
random-nick has quit [Ping timeout: 248 seconds]
taiju_ has quit [Quit: Quit]
taiju_ has joined #commonlisp
Tallund has quit [Quit: Client closed]
karlosz has quit [Ping timeout: 250 seconds]
taiju_ has quit [Ping timeout: 268 seconds]
lisp123 has quit [Remote host closed the connection]
notzmv has joined #commonlisp
razetime has joined #commonlisp
s-liao has quit [Ping timeout: 250 seconds]
euandreh has quit [Ping timeout: 260 seconds]
pfd has joined #commonlisp
lisp123 has joined #commonlisp
Inline__ has joined #commonlisp
Inline has quit [Ping timeout: 260 seconds]
taiju_ has joined #commonlisp
Inline__ is now known as Inline
asarch has joined #commonlisp
hashfunc14a0 has quit [Ping timeout: 268 seconds]
Bike has quit [Quit: Connection closed]
euandreh has joined #commonlisp
occ has joined #commonlisp
asarch has quit [Quit: Leaving]
razetime has quit [Read error: Connection reset by peer]
s-liao has joined #commonlisp
Bike has joined #commonlisp
dec0d3r has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<beach> Good morning everyone!
yauhsien has joined #commonlisp
semz_ has joined #commonlisp
semz has quit [Ping timeout: 260 seconds]
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
s-liao has quit [Quit: Client closed]
jeosol has quit [Quit: Client closed]
alvaro121_ has quit [Ping timeout: 268 seconds]
alvaro121 has joined #commonlisp
Bike has quit [Quit: Connection closed]
theBlackDragon has quit [Ping timeout: 246 seconds]
theBlackDragon has joined #commonlisp
s-liao has joined #commonlisp
Mandus has quit [Ping timeout: 260 seconds]
waleee has quit [Ping timeout: 260 seconds]
Mandus has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
Mandus has quit [Ping timeout: 248 seconds]
Mandus has joined #commonlisp
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 248 seconds]
igemnace has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
seok has joined #commonlisp
<seok> Can anyone recommend a gui/graphics library that supports displaying svg images ?
<beach> I believe jackdaniel is able to do it in McCLIM now.
<beach> Er, maybe I have it the other way around.
<beach> Sorry.
<seok> jackdaniel ? sounds like a name for a person
<beach> It is almost the name of a kind of whiskey.
<seok> that is true
agrosant has joined #commonlisp
aartaka has joined #commonlisp
phantomics has quit [Ping timeout: 260 seconds]
lisp123 has quit [Remote host closed the connection]
s-liao has quit [Ping timeout: 250 seconds]
akoana has quit [Quit: leaving]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
lisp123 has joined #commonlisp
yauhsien has quit [Ping timeout: 246 seconds]
<jackdaniel> beach: the new backend produces svg files - it can't display them
<beach> Yeah, sorry, I had it the wrong way.
<jackdaniel> no worries
<Shinmera> in order to display svg one needs to implement a web browser.
<beach> Really? Why is that?
<Shinmera> svg nodes can bestyled with arbitrary CSS.
<beach> Ouch!
<Shinmera> Yeah.
<seok> oh what
<seok> I imagined them to be just a database of points and curve definitions
<Shinmera> Ha ha... oh my sweet summer child.
<seok> I like to dream
<Shinmera> To be fair, you could get a long way to displaying a fair number of svg files without dealing with CSS, but even then the SVG spec is gigantic.
<Shinmera> So if you want to render svg the easiest way would be to rely on something like librsvg, or once it's properly up and working again, commonqt5 with qt's svg library.
<seok> Nice, so there are options
<Shinmera> Well, yeah, but they rely on foreign libraries.
<jackdaniel> there is also a good deal of javascript in svg spec
<jackdaniel> not to mention that svg is not fully implemented even by web browsers
<jackdaniel> i.e you can't anywhere use backgroundImage as a filter source because of reasons ;)
s-liao has joined #commonlisp
<jackdaniel> and many constructs are underspecified too, i.e re using patterns to construct clips (is pattern a shape or a color). if you want to have vector graphics then svg is rather a poor option
Spawns_Carpeting has quit [Quit: WeeChat 3.4.1]
<seok> But if the most commonly used format is not a good option, what is ?
<jackdaniel> good question - I have no opinion though. that said many people truly believe that python is at apex of general purpose programming languages
<jackdaniel> or javascript, or put any blub here, like common lisp
<Alfr> Is there any at not worse than others?
yauhsien has joined #commonlisp
<jackdaniel> honestly doing better than svg is not hard, you just need to avoid temptation to add scripting to it or to embed your favourite toolkit in the format (i.e web browser)
<jackdaniel> cut 60% of svg spec and you are golden ;)
<seok> So why wasn't making the spec just a database of points and curves a good idea
<jackdaniel> when you do graphics there are more concerns - clipping, color, composition, transformations etc - you really want these to draw graphics
<seok> yes
<jackdaniel> also in vector graphics point is too thin to draw ;p
<seok> well points would just serve as defining curves and lines
<jackdaniel> I see. well, yeah - you could do that
<jackdaniel> if you are interested in alternative vector formats then see Shinmera 's file format
<jackdaniel> I'm on phone so I won't bother with looking for a link
<seok> sure !
<Shinmera> he's talking about https://shirakumo.github.io/sf3/ to be clear
<Shinmera> Which is very primitive and doesn't have support for stuff like patterns, gradients, etc.
<seok> Oh.. ? You're looking to develop one general file format to rule over all file formats ?
<Shinmera> No.
<Shinmera> Extremely not
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 246 seconds]
<Nilby> the "nice" thing about super complicated file formats, aside from being pointless, it allows just a few organizations to have control over the software world
<Nilby> the original super complicated 2d format is postscript which is almost like backwards lisp without parens
<Shinmera> The point of SF3 is to define extremely simple solutions to common file format problems. Simple in the sense of simple to write en/decoders for. They won't "rule" because they are not efficiently designed for their respective problem spaces, but they are a good first stop, especially if you care about very fast decoding.
* jackdaniel glances at the otf format
<Shinmera> The effort initially began because I needed a way to directly map an image into memory, and was upset to find there wasn't a file that was just a header + payload.
<Nilby> I like formats that don't try to "rule"
s-liao has quit [Quit: Client closed]
<Shinmera> Anyway, I haven't had time for SF3 recently, and have not had as much feedback on the design as I'd like either, so it still stands unfinalised.
rotateq has joined #commonlisp
treflip has joined #commonlisp
s-liao has joined #commonlisp
treflip has quit [Remote host closed the connection]
Dynom has joined #commonlisp
razetime has joined #commonlisp
razetime_ has joined #commonlisp
razetime__ has joined #commonlisp
razetime__ has quit [Client Quit]
razetime_ has quit [Client Quit]
lisp123 has quit [Remote host closed the connection]
<rotateq> I heard here and there it would be good bringing more of the (good) Python libraries to CL. Which one would you like to see ported next?
<pjb> rotateq: left-pad
<rotateq> Okay I don't know this one.
<rotateq> Useful libraries like biopython or networkx would maybe be too big and complex to start.
<rotateq> pjb: left-pad might be well to add to cl-str by vindarel.
yauhsien has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
lisp123 has quit [Read error: Connection reset by peer]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 248 seconds]
aartaka has quit [Ping timeout: 268 seconds]
<ck_> I have difficulty measuring the level of irony in this conversation
aartaka has joined #commonlisp
<rotateq> ck_: I didn't want to have irony in that.
s-liao has quit [Ping timeout: 250 seconds]
razetime has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
rogersm has quit [Read error: Connection reset by peer]
<ck_> rotateq: https://www.davidhaney.io/npm-left-pad-have-we-forgotten-how-to-program/ , contrast that with being the response to your question about "(good) [...] libraries" and you can probably tell how it could've been interpreted by an observer :)
rogersm has joined #commonlisp
rogersm has quit [Client Quit]
* semz_ interpreted it as a jab at cl-str until the clarification
mon_aaraj has quit [Ping timeout: 268 seconds]
semz_ is now known as semz
mon_aaraj has joined #commonlisp
lisp123 has joined #commonlisp
s-liao has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
s-liao has quit [Ping timeout: 250 seconds]
contrapunctus has joined #commonlisp
rogersm has joined #commonlisp
random-nick has joined #commonlisp
<rotateq> semz: The exact opposite, cl-str is a great library.
phantomics has joined #commonlisp
zacque has joined #commonlisp
random-nick has quit [Ping timeout: 268 seconds]
yewscion has joined #commonlisp
attila_lendvai has joined #commonlisp
Dynom has quit [Quit: WeeChat 3.5]
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
yewscion has quit [Ping timeout: 248 seconds]
lisp123 has quit [Quit: Leaving...]
Dynom has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
tyson2 has joined #commonlisp
kpoeck has joined #commonlisp
occ has quit [Ping timeout: 246 seconds]
treflip has joined #commonlisp
<zacque> In `DESTUCTURING-BIND`, can I capture a KEYVAR value into a custom variable? E.g. capture :FOO 1 into %FOO such that %FOO => 1.
yewscion has joined #commonlisp
<pjb> zacque: absolutely.
<zacque> I would expect this to work: (destructuring-bind (&key (a foo)) '(:a 1) (list foo))
<pjb> The syntax for keyvar is the same in all lambda-list.
<pjb> (destructuring-bind (&key (a nil %foo)) '(:a 1) (list %foo)) #| --> (t) |#
<zacque> Huh? Why the extra nil?
<pjb> (destructuring-bind (&key ((:a %foo) nil ap)) '(:a 1) (list %foo)) #| --> (1) |#
<pjb> zacque: that's the full syntax ((keyword variable) default-value predicate-variable)
<zacque> Ah, it's nested
<pjb> (destructuring-bind (&key ((:a %foo))) '(:a 1) (list %foo)) #| --> (1) |# the default-value and predicate-variable are optional.
<zacque> Yup, my bad, I'm reading the hyperspec Section 3.4.5 yet I didn't notice the extra parentheses
<zacque> pjb: Thanks!
morganw has joined #commonlisp
<zacque> Wait, this is fine: (destructuring-bind (&key a) '(:a 1) (list a))
<zacque> Yet, I need :a for it to be named?
<zacque> That is a bit unexpected
<beach> Just A means ((:A A) NIL).
contrapunctus has joined #commonlisp
<zacque> Hmm, I see...
Hrodgar has joined #commonlisp
dra has joined #commonlisp
Hrodgar has quit [Ping timeout: 248 seconds]
Hrodgar has joined #commonlisp
occ has joined #commonlisp
kpoeck has quit [Quit: Client closed]
mjoerg has joined #commonlisp
yauhsien has joined #commonlisp
dec0d3r has quit [Quit: Leaving]
s-liao has joined #commonlisp
taiju_ has quit [Read error: Connection reset by peer]
taiju_ has joined #commonlisp
zacque has quit [Quit: Goodbye :D]
mon_aaraj has quit [Ping timeout: 246 seconds]
mon_aaraj has joined #commonlisp
s-liao has quit [Ping timeout: 250 seconds]
Hrodgar has quit [Remote host closed the connection]
s-liao has joined #commonlisp
mjoerg has quit [Remote host closed the connection]
<Xach> I use ((:foo *foo*) *foo*) sometimes and I sometimes wish it was more terse to say that.
s-liao has quit [Quit: Client closed]
yauhsien has quit [Remote host closed the connection]
jeosol has joined #commonlisp
<jeosol> Good morning all!
<jeosol> After loading my application that uses a bunch of ql libraries, is there away I could get a list of the ql loaded libraries?
<jeosol> Why do I need this? I am trying to see if I can speed up building docker images. I want to add these libraries on top of base SBCL image and start from that image with the libraries
random-nick has joined #commonlisp
shka has joined #commonlisp
<Xach> jeosol: (asdf:map-systems 'print) perhaps
yewscion has quit [Ping timeout: 268 seconds]
<Xach> jeosol: there are other approaches possible
yewscion has joined #commonlisp
dra has quit [Quit: Leaving]
<NotThatRPG> jeosol: You could use one of the bundle operations in ASDF, but I don't understand them sufficiently to give detailed advice.
taiju_ has quit [Quit: Quit]
taiju_ has joined #commonlisp
waleee has joined #commonlisp
Madsy has joined #commonlisp
<jeosol> Xach NotThatRPG: Thanks for the suggestions
<jeosol> Xach: I tried the suggested approach, it does dump everything including my project systems and the external libs. I will have to find away to separate them out so all the external ones can be packed into a base image built from sbcl
<jeosol> perhaps if there are some other information regarding the path where the systems are, I could be able to achieve this easily as all my systems are under a parent directory
<Guest74> what other information?  If you have the systems, you should have the paths.
<jeosol> Guest74: I guess I don't have the accessor function of my head to be able to extract that information.
<jeosol> I think the output are of the form: #<ASDF/SYSTEM:SYSTEM "drakma">  <ASDF/SYSTEM:SYSTEM "cxml">  etc
<Guest74> most of the fns to deal with systems are in asdf/system
<jeosol> yeah, that's what I need to go look up. thanks
<Guest74> They're pretty logically named, so you shouldn't have a problem.
<Xach> jeosol: you can look at wrapping the functions in asdf:*system-definition-search-functions* also if you want to know more about the provenance of systems loaded by load-system.
<Xach> so many options
<jeosol> Xach: yeah, what I'd like to do run (asdf:map-systems 'print) and then filter out my systems. The remain systems are what I can then install upstream into a base SBCL image
<Guest74> jeosol: remember to write and publish a simple function make-image-with-systems that launches another sbcl, load all the required systems and then saves itself.
<jeosol> yeah more or less, something like that
<jeosol> I do that manually on my local box, but I want to instrument this into multi-stage docker builds
<jeosol> so the last stage is just dealing with my own systems
<jeosol> Guest74: I should preface, I don't do it as suggested, but normal quickload and then save-lisp-and-die, so not automated
<jeosol> what do you mean by "write and publish" part?
<Guest74> I'm just saying it's something useful that lots of people do but that most people could live without so it seems like perfect spot for a library.
<jeosol> yeah, I agree
<jeosol> I was thinking you meant that but wanted to confirm
<jeosol> it is an important use case for me, right now, I do base sbcl -> stage 1 -> final-stage .. this takes hours
<Xach> jeosol: quicklisp bundles make it easy to preload a set of things without loading quicklisp itself.
<jeosol> I would look into it, now I have some information on how to go about it and the base asdf related functionality
<Xach> they might be helpful.
<Guest74> it's also the kind of library that doesn't bring on bouts of NIH.  ...at least for me.
<jeosol> Xach: I didn't know that.
<jeosol> hmm, now you bring NIH, that means some consensus will be needed perhaps by a small focal team, interfaces, etc
<jeosol> Xach: Thank for the bundles link.
yauhsien has joined #commonlisp
<jeosol> pjb: very nice. Thanks for the example. How do I get com.informatimago, from your git repo?
<jeosol> Guest74: Is a better approach to building the library suggested do it with uiop since it has an abstraction layer over the other implementations. I should say I am more a user of CL, so don't know the internals of UIOP very well. Also, I only use SBCL
<Guest74> I don't know what's in uiop.
<Guest74> I'm busy pondering if having unbuffered windows have a backbuffer that points to the front buffer is too ugly to use even though it allows me to use the same codebase for both.
<Guest74> maybe it's elegant if I just call it buffer.
<jeosol> no worries then. It's some portability library that Fare and the asdf team(?) built
yauhsien has quit [Remote host closed the connection]
anticomputer has quit [Ping timeout: 240 seconds]
anticomputer has joined #commonlisp
MajorBiscuit has joined #commonlisp
attila_lendvai has quit [Ping timeout: 248 seconds]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 248 seconds]
MajorBiscuit has quit [Ping timeout: 268 seconds]
MajorBiscuit has joined #commonlisp
<pjb> jeosol: yes, from github.com/informatimago/lisp
kg7ski has joined #commonlisp
kg7ski has quit [Client Quit]
kg7ski has joined #commonlisp
yewscion has quit [Ping timeout: 246 seconds]
tyson2 has quit [Remote host closed the connection]
karlosz has joined #commonlisp
karlosz has quit [Client Quit]
yauhsien has joined #commonlisp
<jeosol> pjb: thank you
yauhsien has quit [Ping timeout: 268 seconds]
kg7ski has quit [Quit: Leaving.]
rogersm has quit [Quit: Leaving...]
worstname has joined #commonlisp
Bike has joined #commonlisp
attila_lendvai has joined #commonlisp
yewscion has joined #commonlisp
treflip has quit [Quit: Quit]
MajorBiscuit has quit [Ping timeout: 248 seconds]
rgherdt__ has joined #commonlisp
rgherdt_ has quit [Ping timeout: 248 seconds]
euandreh has quit [Ping timeout: 268 seconds]
tyson2 has joined #commonlisp
mon_aaraj has quit [Ping timeout: 272 seconds]
mon_aaraj has joined #commonlisp
knusbaum- has joined #commonlisp
knusbaum has quit [Ping timeout: 256 seconds]
knusbaum has joined #commonlisp
knusbaum- has quit [Ping timeout: 246 seconds]
rgherdt__ has quit [Quit: Leaving]
rgherdt has joined #commonlisp
knusbaum has quit [Quit: ZNC 1.8.2 - https://znc.in]
knusbaum has joined #commonlisp
mon_aaraj has quit [Ping timeout: 248 seconds]
mon_aaraj has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 246 seconds]
Oddity has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
MajorBiscuit has joined #commonlisp
rotateq has quit [Quit: ERC (IRC client for Emacs 27.2)]
Lord_of_Life_ has joined #commonlisp
kg7ski1 has joined #commonlisp
<Guest74> So ironclad seems to be a little system happy. (asdf:already-loaded-systems) was not what I was expecting.
Lord_of_Life has quit [Ping timeout: 248 seconds]
kg7ski1 has quit [Client Quit]
Lord_of_Life_ is now known as Lord_of_Life
Dynom has quit [Quit: WeeChat 3.5]
yauhsien has joined #commonlisp
<_death> this is so that you can use the particular subsystems you need without loading everything
cosimone has quit [Remote host closed the connection]
cosimone has joined #commonlisp
yauhsien has quit [Ping timeout: 248 seconds]
<Guest74> sure, that seems really useful.  I'm wondering which of the other systems decided to load every single subsystem ironclad has.
<_death> it's a recent feature of ironclad, so likely most dependents use the übersystem
cosimone has quit [Remote host closed the connection]
euandreh has joined #commonlisp
yewscion has quit [Ping timeout: 272 seconds]
<Guest74> I figured. I remember discussion about people not liking loading everything.
<Guest74> turns out it was one of mine. Stupid programmer. Having a dep for something that isn't even used.  Wonder how it got there?
kg7ski has joined #commonlisp
<_death> (defun shotgun-dependency (dependency) (add-direct-dependency (choose-random-system) dependency))
Spawns_Carpeting has joined #commonlisp
attila_lendvai has quit [Ping timeout: 248 seconds]
pranavats has left #commonlisp [Error from remote client]
MajorBiscuit has quit [Ping timeout: 272 seconds]
yewscion has joined #commonlisp
wyrd has quit [Ping timeout: 240 seconds]
wyrd has joined #commonlisp
yauhsien has joined #commonlisp
MichaelRaskin has left #commonlisp [#commonlisp]
yauhsien has quit [Ping timeout: 246 seconds]
morganw has quit [Remote host closed the connection]
cosimone has joined #commonlisp
rgherdt_ has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
Bike has quit [Quit: Connection closed]
pranavats has joined #commonlisp
Spawns_Carpeting has quit [Quit: WeeChat 3.4.1]
Guest74 has quit [Quit: Connection closed]
occ has quit [Ping timeout: 248 seconds]
Devon has quit [Ping timeout: 272 seconds]
Devon has joined #commonlisp
Devon has quit [Ping timeout: 248 seconds]
Devon has joined #commonlisp
yauhsien has joined #commonlisp
igemnace has joined #commonlisp
<jeosol> Xach: Is there some quicklisp utility to extract actual system name. Using the asdf:map-systems, I am getting strings like "split-sequence-v2.0.1" for "split-sequence". I can't quickload the former string but can do so for "split-sequence". I would like to get the actual string for the system name, so checking to see if there is a function/utility
<jeosol> for this. Thanks
yauhsien has quit [Ping timeout: 248 seconds]