<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]
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.
<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!]
<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]
<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
<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 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..
<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?