<paulapatience>
Is there a special term for "lambda-list keyword parameter that has been renamed via the ((:foo foo)) form"?
<paulapatience>
s/:foo foo/:foo bar/
<beach>
I don't think so. Maybe "with explicit keyword"?
<beach>
Depending on the context, you could perhaps invent some terminology.
<beach>
Like you can call it a "thick" parameter, or something similar.
<paulapatience>
My current use case was for an error message, saying that they're unsupported. Probably best to avoid introducing new terminology then.
<beach>
Indeed.
<paulapatience>
I think I'll go with "with explicit keyword" should be fine.
<beach>
For that context, yes that would work.
NicknameJohn has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 252 seconds]
overclucker has quit [Read error: Connection reset by peer]
overclucker has joined #commonlisp
drewjose has quit [Read error: Connection reset by peer]
Lord_of_Life has quit [Ping timeout: 260 seconds]
drewjose has joined #commonlisp
Lord_of_Life has joined #commonlisp
decweb has quit [Ping timeout: 252 seconds]
<Bubblegumdrop>
contrapunctus I think quri:make-uri will urlencode
<Bubblegumdrop>
contrapunctus I'm not sure it should make a difference if you send URL encoded parameters though?
<Bubblegumdrop>
contrapunctus are you sending a POST request?
chsasank has quit [Ping timeout: 252 seconds]
synchromesh has quit [Read error: Connection reset by peer]
synchromesh has joined #commonlisp
Spawns_Carpeting has quit [Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in]
<beach>
rainthree: I suggest we make three subdirectories in Clonedijk, one Input-output where the reader and printer programming is located, and one Clone, with routines for cloning an object graph, and one Examples, where we put examples.
<contrapunctus>
Bubblegumdrop: no, GET
<Bubblegumdrop>
contrapunctus if you're sending a get with urlencoded parameters in the query string it shouldn't make a difference... I think.
<beach>
rainthree: One example would have two classes, say PERSON and EMPLOYEE where EMPLOYEE is a subclass of PERSON. PERSON should have a slot for DATE-OF-BIRTH and one for AGE, but only DATE-OF-BIRTH should be saved. And MAKE-INSTANCE of PERSON should also accept a :NAME argument, but the name is stored in a hash table.
<beach>
EMPLOYEE should have an EMPLOYER slot.
<beach>
That way, we demonstrate slots that are not saved, and saved information not in a slot.
<Bubblegumdrop>
I was curious about Clonedijk, what's the name?
<beach>
?
<beach>
The name is Clonedijk.
<Bubblegumdrop>
I'm a native English speaker and the "clone" part is clear, I was wondering about the "dijk" part
<beach>
It's a pun on Klondike.
<Bubblegumdrop>
Excellent.
<beach>
And dijk I believe is how the Dutch would spell "dike".
<Bubblegumdrop>
I got that far, I hadn't made the connection.
<beach>
So it is easily Googleable.
<Bubblegumdrop>
Is it used in other projects outside of SICL? I haven't really had a chance to look at SICL yet.
<beach>
I don't remember. But I will gradually use it in my projects where the functionality is now duplicated.
<beach>
rainthree: There is a dangling closing parenthesis in serialize-methods.lisp
psilord has quit [Remote host closed the connection]
chsasank has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
wacki has joined #commonlisp
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
psilord has joined #commonlisp
chomwitt has joined #commonlisp
shka has joined #commonlisp
amb007 has joined #commonlisp
pve has joined #commonlisp
neuroevolutus has quit [Ping timeout: 256 seconds]
rtypo has joined #commonlisp
treflip has joined #commonlisp
alternateved has joined #commonlisp
psilord has quit [Remote host closed the connection]
<paulapatience>
beach: Did you mean Clonedijk or Clobber when suggesting the creation of the three directories to rainthree?
Posterdati has joined #commonlisp
dinomug has quit [Remote host closed the connection]
random-nick has joined #commonlisp
Th30n has quit [Ping timeout: 246 seconds]
random-nick has quit [Ping timeout: 260 seconds]
<beach>
Clonedijk.
alcor has joined #commonlisp
synchromesh has quit [Read error: Connection reset by peer]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
synchromesh has joined #commonlisp
<contrapunctus>
I'm trying to use lquery. I've managed to get an element with the desired attribute - https://paste.rs/9853q - but how do I get the value of the attribute? e.g. in Elisp I can use `(esxml-node-attribute ATTRIBUTE NODE)`
<contrapunctus>
Oh, and of course I find it right after I asked :D
<contrapunctus>
It's `(lquery:$ *parse-tree* ... (attr <attribute as keyword>))`
varjag has joined #commonlisp
<paulapatience>
beach: What kind of input-output stuff are you going to add to Clonedijk?
<beach>
The SERIALIZE function from Clobber and the reader programming to read the result back.
<beach>
And also a CLONE function that clones the object graph without writing/reading it.
<beach>
Both based on the existing functionality of Clonedijk.
<beach>
That stuff is generally useful, so it should not be in a particular application. Like I use it to write SICL ASTs to a file, which then becomes the FASL file.
<beach>
And in Gsharp to save the score buffer to a file.
<beach>
I also plan to use it in the (embryonic for now) document editor.
<beach>
Basically, any software that operates on an object graph and needs input/output of that graph from/to files.
<paulapatience>
Ok, so you are migrating some Clobber stuff to Clonedijk, if I understand correctly.
wacki has joined #commonlisp
<beach>
I think that's what will happen yes. I haven't studied the exact code in Clobber.
<beach>
rainthree wrote the last version.
rendar has quit [Quit: Leaving]
rendar has joined #commonlisp
King_julian has joined #commonlisp
<beach>
Does that sound reasonable?
<paulapatience>
Sure, it sounds like it would make Clonedijk more useful.
<paulapatience>
I might start using it myself
<beach>
Great!
<paulapatience>
At the moment I have similar functionality in my library. I define a clone function which is like TRUCLER:QUASI-CLONE, but allows specifying arbitrary numbers of initargs to update.
<paulapatience>
(The similar functionality is based on Clonedijk)
<beach>
I see.
<paulapatience>
Because my objects are immutable (no writers are specified for the slots), it makes it more convenient to update objects.
seanw has quit [Remote host closed the connection]
King_julian has quit [Ping timeout: 244 seconds]
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
seanw has joined #commonlisp
X-Scale has quit [Quit: Client closed]
semarie has quit [Ping timeout: 264 seconds]
semarie has joined #commonlisp
treflip has quit [Ping timeout: 252 seconds]
kathe has joined #commonlisp
kathe has left #commonlisp [#commonlisp]
edgar-rft_ has joined #commonlisp
Th30n has joined #commonlisp
edgar-rft has quit [Ping timeout: 245 seconds]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
JuanDaugherty has joined #commonlisp
igemnace has quit [Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in]
decweb has joined #commonlisp
igemnace has joined #commonlisp
wacki has joined #commonlisp
JuanDaugherty has quit [Quit: JuanDaugherty]
edgar-rft_ is now known as edgar-rft
igemnace has quit [Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in]
igemnace has joined #commonlisp
treflip has joined #commonlisp
heisig has joined #commonlisp
igemnace has quit [Quit: ZNC 1.9.0+deb2build3 - https://znc.in]
treflip has quit [Read error: Connection reset by peer]
igemnace has joined #commonlisp
treflip has joined #commonlisp
synchromesh has quit [Read error: Connection reset by peer]
synchromesh has joined #commonlisp
spdegabrielle has joined #commonlisp
drewjose has quit [Quit: Ping timeout (120 seconds)]
drewjose has joined #commonlisp
kathe has joined #commonlisp
<kathe>
hello everybody. :)
<beach>
Hello kathe.
<kathe>
beach!!
<kathe>
how are you sir? :)
<beach>
Me? Always good! You too I hope.
<phoe>
hello
<kathe>
life goes on. :)
King_julian has joined #commonlisp
<phoe>
(goodness I am so bad at staying online around here)
<kathe>
hi phoe.
<phoe>
hi hi
<kathe>
alrighty, i gotta go now.
<kathe>
bye.
kathe has quit [Client Quit]
<paulapatience>
beach: Have you considered the possibility of additional elements appearing in clonedijk's clone information?
<paulapatience>
Right now it's '((initarg1 reader1) (initarg2 reader2) ...)
<paulapatience>
But it could be '((initarg1 reader1 more stuff here ...) ...)
<paulapatience>
The reason I ask is because I've been thinking about my record (basically struct-like kind of class) library, which has the merge function to merge two records. For now it has cloning functionality really similar to Clonedijk. But I started thinking that maybe I could add more information about the record slots in the clone information.
<beach>
I have not considered that, since I wouldn't know what purpose it would have.
<paulapatience>
E.g., how to merge or something.
<paulapatience>
Which led me to think that maybe I should have instead merge-information in my library rather than clone-information
<paulapatience>
And then users wishing to serialize and deserialize the data like you intend to extend Clonedijk to do, might just specialize that for that purpose
<paulapatience>
then clonedijk:clone-information could be trivially implemented in terms of my merge-information
<beach>
I would have to give that some thought, in particular, I would have to think about what it would break.
<beach>
Yes, I see.
<paulapatience>
I don't necessarily mean that I would pass my merge-information directly to clone-information, just that as long as the first two elements of each information are initarg and reader, it's trivial to convert that representation to clone-information's.
<beach>
I see.
<paulapatience>
Just spitballing now, but one possibility for subsequent elements in the clone-information lists is to specify whether to deep clone or not. But that is a bit irrelevant to object serialization. I guess it depends on what Clonedijk's focus is. Then again, maybe a separate deep-clone operation would be more appropriate. I can't think off the top of my head what the purpose of partially deep cloning an object would be.
<beach>
The I/O part that I imagine for Clonedijk clones the entire object graph.
<paulapatience>
Or, here's another idea: what if the readers are not trivial, in that they take more than one parameter, possibly a client parameter. The clone-information could contain the arguments to pass to the reader (in addition to the object itself).
rainthree has joined #commonlisp
<beach>
Wow, it sounds like you are a better candidate than I am for this stuff.
<beach>
I suggest you do the development, and as long as I can use it for I/O of an object graph, it is fine with me.
donleo has joined #commonlisp
<paulapatience>
Sure, I could do that. Let me continue working on my library and I'll see if I get any more concrete ideas, which I'll keep note of. In the meantime though I suppose rainthree would (if they so desire) migrate the Clobber stuff to Clonedijk.
<beach>
I don't know whether rainthree would be interested in that. It was just a suggestion.
cqst has quit [Read error: Connection reset by peer]
skeemer has joined #commonlisp
traxex has quit [Ping timeout: 252 seconds]
traxex has joined #commonlisp
King_julian has quit [Ping timeout: 244 seconds]
traxex has quit [Changing host]
traxex has joined #commonlisp
treflip` has quit [Read error: Connection reset by peer]
random-nick has joined #commonlisp
rainthree has quit [Quit: Leaving]
Akbar-Birbal has left #commonlisp [#commonlisp]
Akbar-Birbal has joined #commonlisp
<paulapatience>
beach: Stuffing a client parameter as first argument to a clone operation would allow the clone to treat the clone-information however it wishes.
<paulapatience>
s/argument/parameter/
<beach>
Sure, I am not worried about the clone operation.
<paulapatience>
Adding a client parameter to clone-information would also allow objects to store different clone-information according to the need. Perhaps different serialization methods would be represented as clients. (Just thinking out loud.)
<beach>
That worries me more.
<paulapatience>
In what way?
<beach>
It would break all my code that uses it currently without such a parameter.
<paulapatience>
Oh, right
<paulapatience>
I mean, we could add clone-information* instead which takes it, or export the client-based one from another package. But that would be an issue only if we can decide that it's useful. I'm just trying to work through all the possibilities.
<beach>
I understand.
Th30n has quit [Ping timeout: 252 seconds]
<paulapatience>
One problem with requiring clients from clone-information in my use case is that I wanted to use clone-information to implement PRINT-OBJECT. But requiring a client would mean that I'd need to define some *PRINT-CLIENT* variable and make sure it's bound whenever I want to print an object.
<paulapatience>
Instead, there could probably be a way to store client-specific clone-information in the information itself. The first two elements will logically always be initarg and reader, but then we could append client-specific information after that.
<paulapatience>
I think a more likely issue with adding more clone-information is if some user wanted to add client-specific clone-information in a separate defmethod
<paulapatience>
But actually, hold on, since clone-information is an append method-combination, having a client parameter is useless. We don't want to append all the information together.
<paulapatience>
s/all the information/all the client-specific information/
drewjose has quit [Ping timeout: 248 seconds]
chrcav has quit [Ping timeout: 252 seconds]
chrcav has joined #commonlisp
<paulapatience>
If we wanted to allow client-specific clone information, we'd need two layers: one clone-information which is not append, and one (possibly named) compute-clone-information which would be, and which would just call clone-information.
drewjose has joined #commonlisp
<paulapatience>
But that starts to get more convoluted, and anyway I think it is a good idea to have a basic initarg-to-reader mapping anyway. So I would say that in that case, we would keep clone-information as is, and add a separate pair of functions, like clone-information* and compute-clone-information*, for the client-based versions.
<beach>
Sounds wise.
<paulapatience>
Maybe then clone could take the client and call compute-clone-information*, the default implementation of which would be just clone-information
puke has quit [Quit: WeeChat 3.8]
<paulapatience>
Actually, a possibly simpler way of doing this could be to introduce a new function, like specific-clone-information, without any method combination, and where desired specialize the existing clone-information to call that function instead. Then we have only two functions instead of three.
<beach>
I assume you mean that it has the STANDARD method combination.
<paulapatience>
Yes, of course
<paulapatience>
(I started reading Keene's OOP in CL, but I haven't got far yet. I may be misuse CLOS terminology from time to time, so I appreciate any corrections.)
<paulapatience>
s/may be/may/
<beach>
I will correct any incorrect terminology I detect. :)
Alfr has quit [Killed (mercury.libera.chat (Nickname regained by services))]
Alfr has joined #commonlisp
augfab_ has joined #commonlisp
chsasank7 has joined #commonlisp
Noisytoot has quit [Killed (mercury.libera.chat (Nickname regained by services))]
Noisytoot has joined #commonlisp
brokkoli_originl has joined #commonlisp
cdegroot_ has joined #commonlisp
kurfen_ has joined #commonlisp
awlygj has quit [Quit: leaving]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
aeth_ has joined #commonlisp
Akbar-Birbal has quit [*.net *.split]
augfab has quit [*.net *.split]
chsasank has quit [*.net *.split]
brokkoli_origin has quit [*.net *.split]
kurfen has quit [*.net *.split]
cdegroot has quit [*.net *.split]
aeth has quit [*.net *.split]
chsasank7 is now known as chsasank
jrm has quit [Quit: ciao]
jrm has joined #commonlisp
ggb has quit [Remote host closed the connection]
ggb has joined #commonlisp
lucasta has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 29.4]
spdegabrielle has quit [Quit: Connection closed for inactivity]
chomwitt has quit [Ping timeout: 252 seconds]
reb has quit [Remote host closed the connection]
synchromesh has quit [Remote host closed the connection]
skeemer has quit [Ping timeout: 260 seconds]
shka has quit [Ping timeout: 252 seconds]
yitzi has joined #commonlisp
shka has joined #commonlisp
spdegabrielle has joined #commonlisp
augfab_ has quit [Remote host closed the connection]
Akbar-Birbal has joined #commonlisp
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
chomwitt has joined #commonlisp
Akbar-Birbal has left #commonlisp [#commonlisp]
Akbar-Birbal has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
lucasta has quit [Quit: Leaving]
wacki has joined #commonlisp
treflip has joined #commonlisp
puke has joined #commonlisp
puke has quit [Client Quit]
puke has joined #commonlisp
pranav has quit [Remote host closed the connection]
varjag has joined #commonlisp
pranav has joined #commonlisp
yitzi has quit [Remote host closed the connection]
kevingal has joined #commonlisp
phantomics has joined #commonlisp
phantomics_ has quit [Ping timeout: 252 seconds]
Akbar-Birbal has left #commonlisp [#commonlisp]
paddymahoney has joined #commonlisp
alanz has quit [Ping timeout: 248 seconds]
neuroevolutus has joined #commonlisp
alanz has joined #commonlisp
youthpastor has quit [Ping timeout: 248 seconds]
youthpastor has joined #commonlisp
neuroevolutus has quit [Ping timeout: 256 seconds]
paddymahoney has quit [Ping timeout: 260 seconds]
cqst has joined #commonlisp
paddymahoney has joined #commonlisp
<younder>
I'm trying to x-compile sbcl for aarch64. Target is a RasPi 4 with voidlinux. Does anyone know if it handles musl?
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
rendar has quit [Ping timeout: 248 seconds]
danza has joined #commonlisp
<Shinmera>
probably not.
<Shinmera>
either way cross-compiling isn't hard, see cross-make.sh
drewjose has quit [Ping timeout: 245 seconds]
<younder>
Well it's a musl build of voidlinux..
drewjose has joined #commonlisp
<younder>
Well dependencies seem light libc, libm, ld-linux
<paulapatience>
Well SBCL works fine on Chimera Linux on Aarch64
<paulapatience>
It uses musl
simendsjo has joined #commonlisp
danza has quit [Remote host closed the connection]
neuroevolutus has joined #commonlisp
shka has quit [Ping timeout: 252 seconds]
shka has joined #commonlisp
paddymahoney has quit [Ping timeout: 260 seconds]
paddymahoney has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
amb007 has quit [Ping timeout: 244 seconds]
treflip has quit [Ping timeout: 244 seconds]
piethesailor has joined #commonlisp
<piethesailor>
Hello! In order to increase the default dynamic-space-size in sbcl.. Do I need to add somekind of script to .sbclrc?
<piethesailor>
I typically run M-x sly in emacs. not sure if that info matters
puke has quit [Remote host closed the connection]
<piethesailor>
Or am I comming at the problem incorrectly?
<Shinmera>
you need to either build with the --dynamic-space-size flag or start it with that
<Shinmera>
you can't change the size at runtime
simendsjo has quit [Remote host closed the connection]
puke has joined #commonlisp
<piethesailor>
Ah! Thanks. Funny enough my problem is trying to run (ql:quickload :trial) :)
<piethesailor>
So either build SBCL with the flag or maybe edit how sly boots up sbcl to include that flag..
JuanDaugherty has joined #commonlisp
puke has quit [Remote host closed the connection]
puke has joined #commonlisp
pve has quit [Quit: leaving]
<piethesailor>
In emacs my inferior-lisp-program is '/usr/bin/sbcl'. Would I change this variable to 'usr/bin/sbcl --dynamic-space-size whatever'? Or is that nonsense
<piethesailor>
ran that in *ielm* and M-- M-x sly now allows me to select from this list. but the dynamic size variable is still the same
arbn` has quit [Remote host closed the connection]
<piethesailor>
or at least I think this number is held in (sb-ext:dynamic-space-size)
puke has quit [Quit: WeeChat 3.8]
<piethesailor>
will continue to dig around
<paulapatience>
You need to separate the arguments
<paulapatience>
"--dynamic-space-size" "4gb"
<piethesailor>
XD
<paulapatience>
SBCL does not warn on ill-formed command-line arguments
<piethesailor>
duh
<paulapatience>
More or less duh — I would expect it to report an error. It has caused me problems in the past.
<piethesailor>
the solution is often simple fixes. Thank you paulapatience
<paulapatience>
My pleasure
<piethesailor>
And sorry Shinmera. I don't know how I managed to miss that your answer to me is the litteral error message when the problem first occured
puke has joined #commonlisp
<Shinmera>
No worries, it's easy to miss stuff like that
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
wacki has joined #commonlisp
wacki has quit [Ping timeout: 272 seconds]
neuroevolutus has quit [Ping timeout: 256 seconds]
<ixelp>
Getting started with the Common Lisp HyperSpec | Articles | HexstreamSoft
varjag has quit [Ping timeout: 248 seconds]
wacki has joined #commonlisp
wacki has quit [Ping timeout: 248 seconds]
akoana has joined #commonlisp
<aeth>
supercode: running out of memory isn't going to be a CONS error (it'll be running out of memory), and I think it's usually not recoverable, either
<aeth>
lots of things heap allocate unless dynamic-extent can successfully be declared, so it's implicitly an issue with lots of things
mgl has quit [Ping timeout: 252 seconds]
JuanDaugherty has quit [Quit: JuanDaugherty]
<bike>
technically it should raise a storage-condition
lazy has joined #commonlisp
FragmentedCurve has joined #commonlisp
<aeth>
even 1d0 can fail
<supercode>
thanks aeth
<bike>
in general the standard doesn't explicitly delineate every condition that can be signaled by every function
<bike>
for example any function call with a wrong number of arguments is an error in safe code
rtypo has quit [Ping timeout: 260 seconds]
skeemer has quit [Ping timeout: 272 seconds]
rendar has joined #commonlisp
vitez has joined #commonlisp
vitez has quit [Client Quit]
<aeth>
(I'm actually not sure if 1d0 itself can fail because it'd be a constant and you'd have to have quite a huge amount of source to run out of memory at that point... although I guess you can load a file at any point)
<aeth>
consider (coerce x 'double-float) though
chomwitt has quit [Ping timeout: 272 seconds]
neuroevolutus has quit [Ping timeout: 256 seconds]
<ixelp>
11.3 Memory Management in 32-bit LispWorks
<bike>
which makes a lot of sense
<aeth>
what's the difference between signaling an error when you approach the limit and signaling an error at the limit but reserving some space for trying to recover from it?
<aeth>
because both seem reasonable, but both seem to be the same thing from a certain point of view
<bike>
very little
<bike>
the approaching the limit one might be simpler
<bike>
and you can adjust the threshold pretty easily without having to transfer memory between arenas or something
donleo has quit [Ping timeout: 272 seconds]
troojg has joined #commonlisp
troojg has quit [Remote host closed the connection]
troojg has joined #commonlisp
wacki has joined #commonlisp
akoana has quit [Quit: leaving]
wacki_ has joined #commonlisp
wacki has quit [Read error: Connection reset by peer]