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/>
Lycurgus has joined #commonlisp
mathrick has quit [Ping timeout: 255 seconds]
mathrick has joined #commonlisp
occ has joined #commonlisp
jeosol has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
Lord_of_Life has quit [Ping timeout: 255 seconds]
Lord_of_Life has joined #commonlisp
masinter has quit [Ping timeout: 255 seconds]
masinter has joined #commonlisp
<fe[nl]ix> NotThatRPG: yes
gaze___ has joined #commonlisp
mathrick has quit [Ping timeout: 252 seconds]
jmdaemon has quit [Quit: ZNC 1.8.2 - https://znc.in]
jmdaemon has joined #commonlisp
mathrick has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 248 seconds]
Lord_of_Life has joined #commonlisp
random-nick has quit [Ping timeout: 255 seconds]
bitmapper has joined #commonlisp
<NotThatRPG> hi fe[nl]ix -- I was asking because I'm getting a bunch of style warnings about rest variables not being ignored from FiveAM tests, and wondered if anyone else had noticed this
Spawns_Carpeting has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
Spawns_Carpeting has joined #commonlisp
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #commonlisp
occ has quit [Ping timeout: 252 seconds]
occ has joined #commonlisp
azimut has quit [Ping timeout: 255 seconds]
brettgilio has joined #commonlisp
masinter has quit [Ping timeout: 255 seconds]
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
Lycurgus has joined #commonlisp
masinter has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
Bocaneri has joined #commonlisp
Bocaneri is now known as Guest7366
Sauvin has quit [Ping timeout: 252 seconds]
Guest7366 is now known as SenFache
<beach> I am re-reading PAIP, and it gives me more evidence that the package system was underutilized for a long time. In the chapter on CLOS, Norvig even considers the lack of encapsulation a "flaw".
<beach> But I have yet to find any explicit explanation as to why the package system was underutilized.
rgherdt has joined #commonlisp
<beach> Oh, and PAIP doesn't seem to use packages at all as far as I can tell. Maybe in later chapters.
ec has quit [Remote host closed the connection]
mingus has joined #commonlisp
ec has joined #commonlisp
emanuele6 has quit [Quit: WeeChat 3.8]
emanuele6 has joined #commonlisp
SenFache has quit [Ping timeout: 246 seconds]
Sauvin has joined #commonlisp
<mfiano> Remind me again, as it's been a year or so; are there any issues, conformance or otherwise, with macro-expansion time side effects -- for example, PUSHing to a list which is then unquoted to be included in the generated code?
gxt_ has joined #commonlisp
<beach> You can do whatever you want with lexical variables in the body of the macro function.
<mfiano> Thank you.
gxt has quit [Remote host closed the connection]
<beach> If its behavior is "purely functional" viewed from the outside, you are fine. You can be fine anyway, but then it gets more complicated.
<ixelp> internal.lisp · GitHub
<mfiano> To be honest, that is a rather simple LOOP with the COLLECT keyword, but it was only a first iteration after I just woke up, hence the question.
<mfiano> Regardless, thank you.
<beach> Sure.
<jackdaniel> mfiano: if you perform side effects that are not local to the macro then you don't want to do that - the macro may be expanded multiple times. you want to expand to (progn (eval-when (:compile-toplevel :execute) ...) ,@body)
<mfiano> Sure
<mfiano> Thank you
<mfiano> beach: Wasn't PAIP after CLtL1 but before standardization, and hence, Norvig used DEFSTRUCT everywhere instead of DEFCLASS and generic functions? Or am I thinking of another book?
<mfiano> I at least though that was the book where the author wasn't sold on CLOS yet.
<mfiano> thought*
<beach> No, It describes CLOS.
<beach> I know Graham doesn't seem to like CLOS.
<beach> PAIP seems to have been published in 1992 which is before the ANSI standard was finalized, but CLtL2 existed as far as I can tell.
<jackdaniel> mfiano: norvig discusses clos in one chapter at length but otherwise he sticks to defun and defstruct in examples
<mfiano> Ah yes, that is what it was.
<beach> Right, for most of its examples PAIP does not use CLOS.
<jackdaniel> to be fair ansi cl by graham also discusses clos if I remeber correctly
<beach> But in the CLOS chapter, he explains how much better the search facility can be written when CLOS is used.
<beach> But my main point was about the package system, not about CLOS.
<mfiano> Has anyone read the (also before standardization) not very heard of CL book, "Building Problem Solvers"? I'm about to start that one soon.
<mfiano> 1993
<mfiano> It's another book on AI, which used CL as a medium.
<mfiano> It was recommended to me a few years ago. My backlog is large :)
pticochon has joined #commonlisp
kenran has joined #commonlisp
flip214 has joined #commonlisp
masinter has quit [Ping timeout: 255 seconds]
pticochon has quit [Quit: Konversation terminated!]
LW has joined #commonlisp
<splittist> mfiano: this one? https://www.qrg.northwestern.edu/BPS/readme.html Looks interesting. I like that the code has #+PARC and #+ILS (:
<ixelp> BUILDING PROBLEM SOLVERS
<mfiano> What are those features?
Cymew has joined #commonlisp
pve has joined #commonlisp
<mfiano> Oh apparently it must have been common then to push keyword symbols to *FEATURES* -- it actually has #+:PARC and #+:ILS :)
<mfiano> but has #+MCL #+ACLPC
<mfiano> #+(OR Lucid Symbolics MCL)
<mfiano> :)
<mfiano> look at the first file listed, loader.lisp
<mfiano> the top has a bunch of features. I'll check that one out too
<mfiano> Some things could be learned from the portability layers in this code
<mfiano> But, another time :)
<beach> Maybe this is again a good time to remind people of Krystof's paper on good practice for features and reader conditionals.
<ixelp> COMP_SCI 325: Artificial Intelligence Programming | Computer Science | Northwestern Engineering
<mfiano> It is always a good time to remind people. This was before standardization, though.
<mfiano> splittist: Looks just like Graham's book
<mfiano> Mainly learning CL through the use of that book it seems.
<splittist> It's a prereq to the course that uses the BPS book: https://www.mccormick.northwestern.edu/computer-science/academics/courses/descriptions/344.html
<ixelp> COMP_SCI 344: Design of Problem Solvers | Computer Science | Northwestern Engineering
<mfiano> Ah
<mfiano> And instructed by one of the authors, cool.
<mfiano> Would be nice if they offered remote classes.
<splittist> Where is Krystof's paper? Cambridge has disowned it. (Or, at least, moved it.)
<mfiano> Just to see what they are preaching to impressionable Lisp learners these days.
shka has joined #commonlisp
<beach> splittist: Look in the logs near 16:00 on February 17, by jackdaniel.
<mfiano> I am expecting more than I got from PAIP. I think it is both a lousy CL book and a lousy AI book.
* beach accesses the logs on a different computer.
Catie has quit [Ping timeout: 246 seconds]
Catie has joined #commonlisp
<splittist> The paper by Christophe Rhodes with the title "Maintaining Portable Lisp Programs: It's a bug, not a feature" with Semantic Scholar Corpus ID: 10752938 formerly hosted at https://jcsu.jesus.cam.ac.uk/~csr21/papers/features.pdf is currently available at https://web.archive.org/web/20060101054734/http://www-jcsu.jesus.cam.ac.uk/~csr21/papers/features.pdf
<splittist> (for future searchers, crawlers and large language models)
ttree has quit [Ping timeout: 252 seconds]
kenran has quit [Remote host closed the connection]
<jackdaniel> or uf someobe needs to llok it up agaib then for researchers too
rgherdt has quit [Remote host closed the connection]
<beach> Typing on the phone again?
<gridbugsmasher42> Typing on the vodka probably
<jackdaniel> yes phone
<jackdaniel> going to the office now
jmdaemon has quit [Ping timeout: 246 seconds]
occ has quit [Ping timeout: 268 seconds]
MajorBiscuit has joined #commonlisp
<jackdaniel> generally speaking I don't need vodka to make silly mistakes! :)
<gridbugsmasher42> Me neither haha
<Equill> Thanks, splittist - I've grabbed a copy.
<Shinmera> Today in :thinking emoji: (format T "~x" (zpb-ttf:code-point (zpb-ttf:find-glyph #xF164 loader))) ; => F087
<jackdaniel> the same glyph may be assigned to multiple codepoints maybe?
<Shinmera> Appears so, yeah.
<Shinmera> How annoying. Our glyph atlas generator doesn't duplicate the info, so sometimes glyphs just don't render (because another codepoint was used in the text)
<jackdaniel> (defvar *first-codepoint-from-duplicates* (make-hash-table)) (defun fix-codepoint (x) ...) ; evil laugh echoes in the dinstance
<jackdaniel> distance even
<jackdaniel> eu.bandaidware.text-utilities
<Shinmera> I'm sure both I and |3b| would be happier with a proper fix in the atlas generator :)
<jackdaniel> evil laugh suddenly stops with disappointment
<jackdaniel> even 'a disappointment'
<Shinmera> nah, no 'a' would be correcter.
<Shinmera> though best would be "stops in disappointment", or "stops, disappointed"
Sauvin has quit [Remote host closed the connection]
Sauvin has joined #commonlisp
rgherdt has joined #commonlisp
random-nick has joined #commonlisp
azimut has joined #commonlisp
<Equill> OK, that's pretty funny. I'm back to walking ASDF dependency trees, because I'm too lazy to trawl through this stuff by hand. As an intermediate step, I'm just accumulating a hash-table of which systems use which license. It's educational, since I hadn't paid attention to the fact that you can define conditional sets.
<Equill> A few have no license, most don't use SPDX license names, which is inconvenient but hardly surprising.
<jackdaniel> I remember writing a tool to collect system licenses in the past (that was part of qa process) - I've added a normalization function that coerced known deviations to spdx
<Equill> However, I just went ahead and used `append` instead of `pushnew`. In one set of dependencies, there are 285 systems using the MIT license, most of them are `bordeaux-threads`, and this thing obediently printed all of them to the REPL.
<Equill> For another, it obediently printed out all 150 instances of `alexandria`. And this is why we prototype incrementally.
<Equill> @jackdaniel: that sounds intriguing.
<Equill> I was just thinking of using the hacky workaround of adding aliases to the database, to get me past the immediate hump.
<jackdaniel> it wasn't really clever- I've set a break for unknown name and added them manually to the hash table
<Equill> Gotcha. If it works, though, it works.
<jackdaniel> (with a special table "unknown" which did not overwrite the license content)
<jackdaniel> do, dohash, dohashkeys
<Equill> (dohashkeys gefragt!)
<jackdaniel> defrag :)
<_death> und ich hash nichts gesagt
* Equill dies laughing
Josh_2 has quit [Remote host closed the connection]
<ixelp> tools/manifest.lisp · master · com-informatimago / com.informatimago · GitLab
avocadoist has quit [Read error: Connection reset by peer]
<pjb> Equill: output example: for
<pjb> Equill: output example: https://termbin.com/i4p5o
<pjb>
avocadoist has joined #commonlisp
attila_lendvai has joined #commonlisp
pawa2 has quit [Ping timeout: 255 seconds]
<phoe> uiop has no license? huh
<jackdaniel> has no explicitly specified license in its asd definition
<jackdaniel> it has the same license as asdf (that is mit I think)
<ixelp> uiop/uiop.asd · master · asdf / asdf · GitLab
<phoe> it actually does
<Shinmera> maybe it didn't then.
<phoe> unless it's a :license vs :licence problem
<jackdaniel> it might be asdf preloading uiop nonsense
<phoe> Shinmera: I'm testing on 3.3.6 and (asdf:system-licence (asdf:find-system :uiop)) returns NIL
<jackdaniel> try (locate-system "uiop")
<phoe> T NIL NIL #<...> 0 #<...>
<jackdaniel> see? if you put uiop in your local-projects then asdf will reluctantly use it, otherwise you use uiop that is bundled in asdf.lisp file shipped with the implementation
<phoe> yes, but even then the license should be present in the system definition
<jackdaniel> what's more even when you specify uiop as a dependency asdf finds it, so quicklisp won't bother with downloading it
<jackdaniel> there is no uiop system definition anywhere on the horizont
<phoe> what does (asdf:find-system :uiop) return then
<jackdaniel> asdf has a concept of preloaded and immutable systems
<jackdaniel> uiop's system is "preloaded"
<pjb> (asdf:find-system :uiop) #| --> #<package-system "uiop"> |#
<jackdaniel> I'm not defending this design, it gave me a few pains in the past, just presenting the state of things
<phoe> jackdaniel: I see now; ASDF makes a new definition on the fly when MAKE-PRELOADED-SYSTEM is called
<phoe> and it doesn't use the original DEFSYSTEM form of UIOP in any way
<phoe> in particular https://gitlab.common-lisp.net/asdf/asdf/-/blob/master/footer.lisp#L24 means that UIOP's ASDF metadata other than version is not preserved in any way
<ixelp> footer.lisp · master · asdf / asdf · GitLab
<phoe> NotThatRPG: is that something that would be worth a ticket on asdf?
inline__ has quit [Ping timeout: 268 seconds]
cage has joined #commonlisp
tyson2 has joined #commonlisp
jonatack has quit [Ping timeout: 246 seconds]
theesm has joined #commonlisp
masinter has joined #commonlisp
occ has joined #commonlisp
<jackdaniel> is there a way to pass an initarg with defgeneric for a subclass of standard-generic-function (assuming that I use it as generic-function-class too of course)
<phoe> the only way I can think of is subclassing that GF class + :default-initargs
<phoe> but that's a workaround rather than a solution
<jackdaniel> right, this does not solve anything. I guess I'll need to manually expand to ensure-generic-function-using-class
<jackdaniel> thanks
<phoe> ;; I wonder if this could be an implementation extension that would allow this option to be (:generic-function-class classname . initargs)
<jackdaniel> (I thought I'm missing something obvious)
<phoe> but yeah, e-gf-u-c sounds like the way to go in this case
jeosol has quit [Quit: Client closed]
jeosol has joined #commonlisp
<Equill> pjb: Thanks; that looks really useful! I'll work through that.
occ has quit [Ping timeout: 255 seconds]
occ has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
attila_lendvai has quit [Remote host closed the connection]
attila_lendvai has joined #commonlisp
<ixelp> generate-application.lisp · master · patchwork / Patchwork · GitLab
theesm has quit [Quit: WeeChat 3.7.1]
attila_lendvai has quit [Ping timeout: 252 seconds]
<NotThatRPG> phoe: Yes, that makes sense to me, please do file a ticket.
bjorkintosh has quit [Ping timeout: 255 seconds]
bjorkintosh has joined #commonlisp
bjorkintosh has joined #commonlisp
<NotThatRPG> I need to get a solid block of time to process the current round of pull requests, but I'm swamped. I had hoped to make it to ELS and do it there, but the company travel budget doesn't reach to it this year. :-(
<scymtym> phoe: wouldn't it be more natural to turn additional options (that is (defgeneric … (…) (:generic-function-class …) (:extra-option …))) into initargs? this is what DEFCLASS does with metaclasses
<phoe> jackdaniel: ^
<scymtym> i'm not saying that works. it does not. just commenting on the (:generic-function-class classname . initargs) syntax
* jackdaniel wasn't looking for an extension, already solved it with mop and a macro
<phoe> oh
pranavats has left #commonlisp [Error from remote client]
<phoe> scymtym: that would work, yes, as long as DEFGENERIC is capable of passing options this way
<scymtym> phoe: right, i think it would make sense. but the SBCL code claims that the specification requires an error to be signaled for unknown options. i didn't look into any details myself
<jackdaniel> " Implementations can extend defgeneric to include other options. It is required that an implementation signal an error if it observes an option that is not implemented locally. "
quoosp has joined #commonlisp
<scymtym> that phrasing seems to leave the door open for passing options as initargs since unknown initargs will signal an error depending on the generic function class. the condition type and error message would be worse, though
<jackdaniel> I think that the key word is "locally"
<jackdaniel> you are free to add an option (:initargs ...) as part of the macro though
<jackdaniel> or :additional-initargs maybe
azimut has quit [Remote host closed the connection]
<ober> Argh! lossage_handler() returned, total confusion..
silasfox has joined #commonlisp
azimut has joined #commonlisp
Cymew has quit [Ping timeout: 252 seconds]
<phoe> (locally (implement-defgeneric-option :initargs) (defgeneric ... (:initargs ...)))
jonatack has joined #commonlisp
tyson2 has joined #commonlisp
<beach> ober: That doesn't look like Lisp. Wrong channel?
<phoe> beach: looks like SBCL
Inline has joined #commonlisp
Algernon69 has joined #commonlisp
silasfox has quit [Quit: ERC (IRC client for Emacs 26.3)]
silasfox has joined #commonlisp
eddof13 has joined #commonlisp
waleee has quit [Quit: update & rewind]
waleee has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
chee has joined #commonlisp
silasfox has quit [Ping timeout: 252 seconds]
MajorBiscuit has quit [Quit: WeeChat 3.6]
amoroso has joined #commonlisp
gko has quit [Read error: Connection reset by peer]
gko has joined #commonlisp
jmdaemon has joined #commonlisp
amoroso has quit [Quit: Client closed]
kopiyka has joined #commonlisp
amoroso has joined #commonlisp
Lycurgus has joined #commonlisp
rgherdt has quit [Read error: Connection reset by peer]
rgherdt has joined #commonlisp
amoroso has quit [Quit: Client closed]
amoroso has joined #commonlisp
<ober> beach: it's very much sbcl error from ldb
<ober> is there a recommended dynamic-space-size/control-stack-size as a percentage of memory? tried 50% and keep running into ldb heap exhaustion
quoosp has quit [Ping timeout: 248 seconds]
attila_lendvai has joined #commonlisp
<NotThatRPG> ober: I believe that the choice of dynamic-space-size is driven more by the amount of data your program will generate than by the size of your machine's memory.
<NotThatRPG> I assume that if you overflow physical memory, you will start paging into virtual memory, but TBH that's just an assumption; I don't know how SBCL manages large amounts of memory
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
<ober> it tends to use a lot more ram than equivalent implementations as well.
<ober> NotThatRPG: thanks
<NotThatRPG> ober: Any chance your optimization switches are not set well?
<NotThatRPG> Are you blowing up the control stack or running out of space to allocate data structures?
<ober> cat src/deliver.lisp|sbcl --control-stack-size 4096 --dynamic-space-size 128096
<ober> only optimizations I do. so to speak
<ober> let me retrigger and determine. pretty sure it's the latter, being the heap
<ober> i.e. I don't declare optimizations for speed/space etc.
<ober> (sb-ext:save-lisp-and-die "dist/sbcl/metis" :compression 5 :executable t :toplevel 'metis:main :save-runtime-options t)
<NotThatRPG> Maybe try (declaim (optimize (space 3))) when building?
rgherdt_ has joined #commonlisp
<NotThatRPG> SBCL has optimization policies, but I confess I don't understand them at all.
<ober> will ask there.
rgherdt has quit [Ping timeout: 248 seconds]
amoroso has quit [Quit: Client closed]
Algernon69 has quit [Ping timeout: 246 seconds]
morganw has joined #commonlisp
cosimone has joined #commonlisp
<Bike> ober: you can use sbcl's --load option rather than piping to it
masinter has quit [Ping timeout: 246 seconds]
jeosol has quit [Quit: Client closed]
pranavats has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
ttree has joined #commonlisp
Lycurgus has joined #commonlisp
brettgilio has quit [Read error: Connection reset by peer]
triffid has joined #commonlisp
attila_lendvai has quit [Ping timeout: 246 seconds]
masinter has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
tyson2 has quit [Remote host closed the connection]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Everything has joined #commonlisp
akoana has joined #commonlisp
morganw has quit [Remote host closed the connection]
eddof13 has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 28.2]
attila_lendvai has joined #commonlisp
attila_lendvai has quit [Ping timeout: 252 seconds]
shka has quit [Ping timeout: 260 seconds]
akoana has quit [Ping timeout: 252 seconds]
prokhor has quit [Read error: Connection reset by peer]
prokhor has joined #commonlisp
cosimone has quit [Ping timeout: 246 seconds]
pve has quit [Quit: leaving]
<ober> Bike: thanks.
rgherdt_ has quit [Remote host closed the connection]
LW has quit [Quit: WeeChat 3.6]
triffid has quit [Remote host closed the connection]
Alfr has quit [Quit: Leaving]
Alfr has joined #commonlisp
occ has quit [Ping timeout: 252 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pawa2 has joined #commonlisp
marsia has quit [Ping timeout: 246 seconds]
marsia has joined #commonlisp
lordmzte has joined #commonlisp
cross has joined #commonlisp