<schweers>
beach: regarding my question from yesterday about DECODE-UNIVERSAL-TIME and dst. I was wrong, everything works as expected. I was running my code in a docker container, which had a different (hence wrong) timezone.
<beach>
Oh, heh!
<schweers>
So all is well afterall
<beach>
Great!
_oldtopman has quit [Ping timeout: 240 seconds]
lottaquestions_ has quit [Remote host closed the connection]
lottaquestions has joined #lisp
_oldtopman has joined #lisp
smazga has quit [Ping timeout: 264 seconds]
krid` has quit [Ping timeout: 256 seconds]
jw4 has quit [Ping timeout: 240 seconds]
Oladon has quit [Read error: Connection reset by peer]
Oladon has joined #lisp
Jesin has joined #lisp
jw4 has joined #lisp
toorevitimirp has joined #lisp
jonatack has quit [Quit: jonatack]
jonatack has joined #lisp
bsd4me has quit [Quit: Leaving]
q-u-a-n2 has quit [Read error: Connection reset by peer]
q-u-a-n2 has joined #lisp
smazga has joined #lisp
gravicappa has quit [Ping timeout: 258 seconds]
shangul has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
toorevitimirp has quit [*.net *.split]
Bourne has quit [*.net *.split]
Alloc has quit [*.net *.split]
dddddd has quit [*.net *.split]
jello_pudding has quit [*.net *.split]
stepnem has quit [*.net *.split]
whiteline has quit [*.net *.split]
simplegauss has quit [*.net *.split]
nullman has quit [*.net *.split]
alandipert has quit [*.net *.split]
specbot has quit [*.net *.split]
hjudt has quit [*.net *.split]
eta has quit [*.net *.split]
remexre has quit [*.net *.split]
nmg has quit [*.net *.split]
bytesighs has quit [*.net *.split]
thecoffemaker has quit [*.net *.split]
fouric has quit [*.net *.split]
jdz has quit [*.net *.split]
brettgilio has quit [*.net *.split]
srji has quit [*.net *.split]
stux|RC-only has quit [*.net *.split]
smazga has quit [Ping timeout: 259 seconds]
kaun_ has joined #lisp
frgo has quit [Remote host closed the connection]
nullman has joined #lisp
Bourne has joined #lisp
toorevitimirp has joined #lisp
Alloc has joined #lisp
dddddd has joined #lisp
stepnem has joined #lisp
whiteline has joined #lisp
jello_pudding has joined #lisp
simplegauss has joined #lisp
alandipert has joined #lisp
specbot has joined #lisp
remexre has joined #lisp
eta has joined #lisp
hjudt has joined #lisp
nmg has joined #lisp
bytesighs has joined #lisp
thecoffemaker has joined #lisp
jdz has joined #lisp
brettgilio has joined #lisp
fouric has joined #lisp
srji has joined #lisp
stux|RC-only has joined #lisp
ggole has joined #lisp
Cymew has joined #lisp
jw4 has quit [Read error: Connection reset by peer]
Alloc has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
jw4 has joined #lisp
Archenoth has joined #lisp
v3ga has quit [Ping timeout: 272 seconds]
pve has joined #lisp
v3ga has joined #lisp
Oladon has quit [Quit: Leaving.]
iamFIREcracker has joined #lisp
iamFIREc1 has quit [Ping timeout: 258 seconds]
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
liberliver has joined #lisp
smazga has joined #lisp
ralt has joined #lisp
smazga has quit [Ping timeout: 272 seconds]
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
shka_ has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
rogersm has joined #lisp
Alloc has quit [Ping timeout: 265 seconds]
Alloc has joined #lisp
treflip has joined #lisp
smazga has joined #lisp
smazga has quit [Ping timeout: 265 seconds]
Alloc has quit [*.net *.split]
r3x5 has quit [*.net *.split]
pve has quit [*.net *.split]
_oldtopman has quit [*.net *.split]
bocaneri has quit [*.net *.split]
paul0 has quit [*.net *.split]
Lord_of_Life has quit [*.net *.split]
edgar-rft has quit [*.net *.split]
mujjingun has quit [*.net *.split]
selwyn has quit [*.net *.split]
grewal has quit [*.net *.split]
cdegroot has quit [*.net *.split]
kingcons has quit [*.net *.split]
mood has quit [*.net *.split]
wigust has quit [*.net *.split]
scymtym has quit [Ping timeout: 256 seconds]
bocaneri has joined #lisp
lottaquestions_ has joined #lisp
lottaquestions has quit [Ping timeout: 265 seconds]
<ralt>
does anyone know if github's "j3pic" is around on IRC?
scymtym has joined #lisp
<ralt>
author/maintainer of lisp-binary
smazga has joined #lisp
hendursa1 has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
dmr0x80 has joined #lisp
EvW has joined #lisp
_oldtopman has joined #lisp
Lord_of_Life has joined #lisp
grewal has joined #lisp
r3x5 has joined #lisp
mujjingun has joined #lisp
paul0 has joined #lisp
edgar-rft has joined #lisp
pve has joined #lisp
Alloc has joined #lisp
selwyn has joined #lisp
mood has joined #lisp
cdegroot has joined #lisp
kingcons has joined #lisp
wigust has joined #lisp
Necktwi has joined #lisp
vaporatorius__ has quit [Ping timeout: 256 seconds]
smazga has quit [Ping timeout: 265 seconds]
ljavorsk has joined #lisp
smazga has joined #lisp
tfb has quit [Ping timeout: 265 seconds]
buoy49 has quit [Ping timeout: 256 seconds]
kilimanjaro has quit [Ping timeout: 244 seconds]
asedeno has quit [Ping timeout: 260 seconds]
lispyone_ has quit [Ping timeout: 244 seconds]
kilimanjaro has joined #lisp
buoy49 has joined #lisp
lispyone_ has joined #lisp
tfb has joined #lisp
smazga has quit [Ping timeout: 265 seconds]
asedeno has joined #lisp
jonatack has joined #lisp
EvW has quit [Ping timeout: 244 seconds]
smazga has joined #lisp
smazga has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
smazga has joined #lisp
smazga has quit [Ping timeout: 240 seconds]
nicktick has joined #lisp
jonatack has quit [Read error: Connection reset by peer]
smazga has joined #lisp
jesse1010 has joined #lisp
smazga has quit [Ping timeout: 258 seconds]
yitzi has quit [Quit: yitzi]
yitzi has joined #lisp
gal has joined #lisp
treflip has quit [Quit: WeeChat 2.6]
pfr has joined #lisp
smazga has joined #lisp
smazga has quit [Ping timeout: 246 seconds]
shangul has quit [Ping timeout: 265 seconds]
jonatack has joined #lisp
orivej has quit [Ping timeout: 258 seconds]
Bourne has quit [Read error: Connection reset by peer]
smazga has joined #lisp
<phoe>
don't think so - you can contact him via github though, they seem active there
<ralt>
I opened a PR 2 days ago and am needlessly impatient, this can definitely wait
kaun_ has quit [Ping timeout: 265 seconds]
kaun_ has joined #lisp
smazga has quit [Ping timeout: 240 seconds]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
gravicappa has joined #lisp
smazga has joined #lisp
zigpaw1 has quit [Ping timeout: 240 seconds]
smazga has quit [Ping timeout: 272 seconds]
yitzi has quit [Remote host closed the connection]
yitzi has joined #lisp
zigpaw1 has joined #lisp
random-nick has joined #lisp
<phoe>
I'm making a standard-method manually and I need a description of the protocol of how the arguments are passed to the method function.
<mfiano>
_death: The only patch that needs to be written is to remove finalizers. It's been 2 years since I removed them from cl-sdl2, and cl-sdl2-ttf is effectively broken due to an unresponsive maintainer.
<phoe>
luis: I am not working with method combinations
<phoe>
I am performing MAKE-INSTANCE 'STANDARD-METHOD
<phoe>
but now I am also aware of METHOD-COMBINATION-UTILITIES, thank you :D
<luis>
phoe: oh ok, misread that. :-)
<_death>
mfiano: sounds like it should be made a sharplispers project or something
smazga has quit [Ping timeout: 240 seconds]
<mfiano>
I agree.
Bike has joined #lisp
<Xach>
_death: yeah, cherry picked the PR on the main repo
<mfiano>
As maintainer of cl-sdl2, I get a ton of bug reports due to the broken cl-sdl2-ttf.
<mfiano>
I should just make time to fix it myself sometime, but my back burner has back burners :/
<_death>
github should have support for drive-by patches (gist for pull requests, instead of the fork dance)
<phoe>
gists don't support directories
<phoe>
I've encountered that limitation recently
<phoe>
why - I have no idea
<_death>
phoe: what I mean is that you can format-patch and paste it
<_death>
instead of fork, set upstream, create branch, commit, push, create pull request, and (unlikely now that you've done it) delete the leftover fork
<phoe>
ooooh, like that
<phoe>
I see
treflip has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
rogersm has quit [Quit: Leaving...]
<mike212>
Hi! I have a bit of a question regarding CL. Which environment is usually the recommended path for newbies, SBCL or CCL? Or both?
<phoe>
I personally recommend SBCL
<_death>
either one will work
<phoe>
but CCL is not going to be a bad choice either
<jackdaniel>
if you can afford developing software using both, then it (the software) will gain on portability
<mike212>
All right, both will do then, thanks! I was thinking if there could be major differences or approaches but that doesn't seem like an issue or such
<jackdaniel>
the differences mostly are visible in areas which go beyond the standard (i.e threading primitives) -- in this case there are usually portability libraries
<jackdaniel>
as for other practical differences: ccl has faster compiler and isn't as memory hungry as sbcl while sbcl produces more performant code (usually)
EvW1 has quit [Ping timeout: 240 seconds]
wsinatra has joined #lisp
<phoe>
mike212: since you asked for environment: I also suggest emacs + slime/sly + quicklisp
<phoe>
since writing Lisp is best done when you have an editor that supports connecting to the Lisp image and facilitating interactive programming
<schweers>
Is there actually a good newbie friendly guide to defining asdf systems? I remember that I struggled with that for quite some time back when it was new to me.
<Xach>
for the simplest things, you really only need to make two lists: the files to compile and load (in order) and the prerequisite systems (in any order)
<mike212>
phoe: I already use Emacs! (Doom Emacs though) I think I can probably hack some Slime in it. If not, I heard good things about Portable, but thanks!
<Xach>
anything else asdf does can be learned later
<mike212>
Lastly. And this is just a question out of curiosity. How is Lisp different from, say, Smalltalk?
wxie has quit [Ping timeout: 258 seconds]
<beach>
I believe Smalltalk uses single dispatch.
<phoe>
mike212: perfect
<beach>
That changes the architecture of your software.
<Xach>
mike212: i don't know smalltalk very well but my impression is that it has a relatively small core idea that it pushes very hard with interesting results. common lisp has many ideas and you can pick and choose.
<phoe>
Portacle is good, but if you already have an emacs set up then adding slime/sly + quicklisp on top of that is just as good
gareppa has quit [Remote host closed the connection]
<goofist>
yeah the short answer is just what Xach said. Anything that you can make by sending messages to objects smalltalk can do
<phoe>
...and since you can make literally everything by sending messages to objects, Smalltalk is Turing-complete just like Lisp
wxie has quit [Ping timeout: 240 seconds]
gal has quit [Ping timeout: 272 seconds]
madnificent has joined #lisp
<jdz>
In early smalltalks the receiver of a message was also responsible for interpreting the parameters of the message, so objects could have their own evaluation semantics.
<mike212>
Once again, much appreciated all the answers. I'll take this book "Practical Common Lisp" and see how far I get! Hopefully the code compiles and creates a working binary
<phoe>
PCL is a good one
<phoe>
mike212: also, you don't usually create binaries in Lisp
<phoe>
that is, unless you want to deploy applications elsewhere
gaqwas has quit [Remote host closed the connection]
<mike212>
So is like Python or Lua where there are practically no binaries?
<phoe>
no, not really, you *can* and *do* generate binary executables
<phoe>
it's just that most of the time your program lives inside the Lisp image and the Lisp image lives for as long as you're programming
<phoe>
you run Lisp once and then let it run as a daemon (in Unix terms), sending messages to it and receiving data from it
<phoe>
these messages tell it to evaluate forms, compile-and-load files, interact with the inspector or debugger, etc..
<madnificent>
mike212: There's an Appress sale going on for PCL. I'll finally get my hands on a nicely printed book (hardcover, even). Or it's a scam and I lost some money.
<phoe>
seems like it's not a scam, judging by Reddit comments
<madnificent>
mike212: PCL was an eye-opener for me too
<madnificent>
phoe: I would be surprised indeed. I ordered from the company, and I still don't know how to pay even though I have a digital version already of some of the books I ordered.
<phoe>
hah
<mike212>
phoe: You can do all that with Lisp? I knew Emacs had a daemon-mode but it hasn't occurred to me that Lisp itself can be used as a daemon too
<mike212>
(Well, makes sense in retrospective, if Emacs can do it)
shifty has quit [Ping timeout: 240 seconds]
schweers has quit [Ping timeout: 260 seconds]
<Xach>
you can call operating system functions from common lisp pretty easily, so working with networking or other system stuff is not too hard.
FreeBirdLjj has joined #lisp
<phoe>
mike212: that's the normal way of using it for programming and development
<phoe>
you run Lisp once and then mutate it until it contains the program that you want
<phoe>
sometimes it's required to restart it when something goes wrong, but that's an exception rather an a rule
<goofist>
you can also compile "standard executables" for your OS if you use ECL. It compiles to C and then uses a C compiler to build the rest. This is an alternate world to the normal (and preferable imo) mode of lisp development.
cosimone has joined #lisp
<phoe>
the "wrong" is much more like "horribly horribly wrong" such as running out of memory.
<phoe>
hadling standard errors and exceptional situations in-the-language is interactive and happens without leaving the running Lisp
<phoe>
;; I even wrote a book about it, lol
<madnificent>
phoe: although it's perfectly possible, we do tend to have sources and use that to load everything from scratch. in the years i've used lisp, i did not get round to being okay with the 'manipulate the system until it does what you want'-idea.
<phoe>
madnificent: neither do I :D
<madnificent>
phoe: which book did you write?
<phoe>
to be honest, I have source files for everything, it's just that these arrive synchronously with me evaluating stuff in the image form by form
<goofist>
phoe: gah I should pre-order. I've been chomping at the bit since you announced. (OT sorry)
<phoe>
madnificent: The Common Lisp Condition System - it should be ready for sale in about 1.5 months according to Apress folk
FreeBirdLjj has quit [Ping timeout: 246 seconds]
<madnificent>
phoe: then i've ordered yours too. but that's going to be a new read for me. PCL was great and i always felt bad for not having bought it.
<mike212>
Another thing I'm confused about is regarding Emacs Lisp (elisp) itself. Is it really that different from clisp? Did it diverged too much?
<Xach>
it is so very different
<phoe>
they have common roots but have diverged a real lot; they're different Lisp dialects
gal has joined #lisp
<phoe>
also, don't call Common Lisp CLISP; there's a Common Lisp implementation named CLISP because it's implemented in C
<phoe>
and, yes, it's a fairly unfortunate naming scheme
<phoe>
;; pun intended
renzhi has joined #lisp
smazga has joined #lisp
<mike212>
Ahh I see I see. Admittedly, I just haven't seen a text editor written in say, Common Lisp in opposition to elisp to note the differences or so
<madnificent>
mike212: from a programmer's point of view, from a person that first learnt Common Lisp and is now doing the bulk of what he does in Emacs and thus using Emacs Lisp, learn Common Lisp. you will learn far more from Common Lisp than from just about anything else out there.
<mfiano>
Back in 2016 they had the same sale for Cyber monday (recent years was limited to ebooks only for some reason). I managed to get PCL and CLR for $25USD :)
<mike212>
madnificent: So you could say that Common Lisp may be a bit more complete or more educational than Emacs Lisp? Ok then
smazga has quit [Ping timeout: 265 seconds]
madnificent has quit [Read error: Connection reset by peer]
madnificent has joined #lisp
<Xach>
emacs lisp is an extension language for a text editor. common lisp could be used to write emacs, or an operating system, or a flight simulator, or whatever.
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
<phoe>
mike212: that's because emacs is Good Enough™ for many purposes
<phoe>
editing Common Lisp is one of them
<phoe>
even though there's been efforts to create a CL editor in CL, one of them being climacs written in the CLIM toolkit
<mike212>
What about GNU Guile? I've heard of that being a Scheme implementation albeit I've heard this Scheme thing also being way different from CL and a completely different entity too
gaqwas has quit [Remote host closed the connection]
<beach>
mike212: GNU Guile does not have an independent standard the way Common Lisp does.
<beach>
mike212: One should always choose a programming language with an independent standard, at least for projects that matter, in terms of durability.
[rg] has joined #lisp
smazga has joined #lisp
iamFIREc1 has joined #lisp
gal is now known as galex-713
iamFIREcracker has quit [Ping timeout: 258 seconds]
Alloc has quit [Ping timeout: 272 seconds]
smazga has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
renzhi has quit [Ping timeout: 265 seconds]
as has left #lisp [#lisp]
krid` has joined #lisp
<mike212>
Anyway, thanks for all the suggestions and tips! I'll be heading over to read the book and such
dominic34 has joined #lisp
sjl_ has joined #lisp
kaun_ has quit [Ping timeout: 240 seconds]
iamFIREc1 has quit [Ping timeout: 265 seconds]
[rg] has quit [Remote host closed the connection]
[rg] has joined #lisp
cosimone has quit [Quit: Terminated!]
gaqwas has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
malikith has joined #lisp
iamFIREc1 has joined #lisp
mike212 has quit [Quit: Leaving]
smazga has joined #lisp
CrazyEddy has quit [Ping timeout: 240 seconds]
jackdaniel has quit [Remote host closed the connection]
jackdaniel has joined #lisp
goofist has quit [Quit: ERC (IRC client for Emacs 26.3)]
thecoffemaker has quit [Quit: So long and thanks for all the fish!]
yitzi has quit [Read error: Connection reset by peer]
cosimone has joined #lisp
cosimone has quit [Client Quit]
kaun_ has quit [Quit: bas]
<jackdaniel>
uh oh, mcclim :)
cosimone has joined #lisp
gravicappa has quit [Ping timeout: 258 seconds]
<phoe>
SBCL 2.0.4!
<wsinatra>
SBCL 2.0.7 is in the community Alpine repos
<_death>
I still need to get my hands on a pine phone first..
<wsinatra>
it runs pretty well on the pine phone, I did a bunch of testing on a pine phone to move an internal project from x86 -> arm64 based on the performance
<wsinatra>
worth all of the effort getting sbcl running nice with musl libc
<jackdaniel>
I imagine that musl's internal package is called musli
* phoe
takes his hat and leaves
<_death>
wsinatra: what about mezzano?
thecoffemaker has joined #lisp
<wsinatra>
now that's the dream for a phone, the only thing better than a linux phone is a lisp phone
<_death>
since the hardware is not so varied it may be feasible to write the needed drivers
mujjingun has quit [Ping timeout: 240 seconds]
<wsinatra>
honestly I'll be happy when they release a keyboard for the pine phone, so I can have an upgrade for my n900
<wsinatra>
_death: honestly you're probably right. It wouldn't be too much work. And you're not far removed from getting it working on a rockpro board at that point, so the pinebook would be well within reach
justache has joined #lisp
kaftejiman has joined #lisp
vaporatorius__ has joined #lisp
yitzi has joined #lisp
vaporatorius has quit [Ping timeout: 272 seconds]
orivej has quit [Ping timeout: 265 seconds]
shka_ has quit [Quit: Konversation terminated!]
<ralt>
wsinatra: there's a patch to run sbcl with musl already no?
<ralt>
It may have been merged recently too...
dra has joined #lisp
<dra>
Hello!
bsd4me has left #lisp ["Leaving"]
<wsinatra>
ralt: absolutely there is, it was merged a few months ago. I helped with the testing for it :)
space_otter has joined #lisp
yitzi has quit [Read error: Connection reset by peer]
_whitelogger has quit [Ping timeout: 240 seconds]
bocaneri has quit [Ping timeout: 240 seconds]
_whitelogger_ has joined #lisp
akoana has joined #lisp
tfb has joined #lisp
<_death>
there's also pkhuong's Common Cold, which also uses such a monadic implementation and makes closures and continuations serializable.. and it still works on latest sbcl, though I think you can only get it via archive.org :x
cosimone has quit [Ping timeout: 240 seconds]
EvW1 has quit [Ping timeout: 240 seconds]
smazga has joined #lisp
<jmercouris>
_death: very interesting link
<jmercouris>
I never thought of implementing CPS in this way
cosimone_ has joined #lisp
<jmercouris>
you can tell they aren't a CL programmer
asedeno_ has joined #lisp
v3ga_ has joined #lisp
brass_ has joined #lisp
brass_ has quit [Remote host closed the connection]
brass_ has joined #lisp
brass_ has quit [Remote host closed the connection]
smazga has quit [Ping timeout: 265 seconds]
brass_ has joined #lisp
brass has quit [Ping timeout: 240 seconds]
asedeno has quit [Ping timeout: 240 seconds]
igemnace has quit [Ping timeout: 240 seconds]
v3ga has quit [Ping timeout: 240 seconds]
asedeno_ is now known as asedeno
brass_ has quit [K-Lined]
josemanuel has quit [*.net *.split]
random-nick has joined #lisp
gal has quit [Ping timeout: 272 seconds]
thecoffemaker has quit [Ping timeout: 246 seconds]
EvW has joined #lisp
bocaneri has joined #lisp
thecoffemaker has joined #lisp
josemanuel has joined #lisp
pfr has quit [Ping timeout: 246 seconds]
liberliver has joined #lisp
terpri_ has joined #lisp
gal has joined #lisp
liberliver1 has joined #lisp
liberliver has quit [Ping timeout: 240 seconds]
liberliver1 is now known as liberliver
terpri has quit [Ping timeout: 260 seconds]
ggole has quit [Quit: Leaving]
<phoe>
aeth: boop
igemnace has joined #lisp
<jmercouris>
beep boop
bsd4me has joined #lisp
smazga has joined #lisp
shka_ has joined #lisp
wsinatra has quit [Quit: WeeChat 2.9]
<phoe>
aeth: I will allow myself to extract the typechecked class from zr-utils and stuff it into my own library
<aeth>
I haven't gotten around to it yet because I have 32 open issues assigned to myself on Gitlab and another 30ish in a text file that should become issues, but if it's a priority, I can get to it
shka_ has quit [Quit: Konversation terminated!]
smazga has joined #lisp
<phoe>
OK
<aeth>
First thing I'd probably do is rename the metaclass itself checked-types to something else since other preconditions could be added later. I experimented with some but couldn't really find a way to make it work well since I wanted to avoid EVAL.
<aeth>
Then I'd need to name the library itself, and try to determine if it goes in my personal namespace or the ZR one. Probably the former, since it's so independent.
<phoe>
I actually wonder, why don't you reuse the :TYPE keyword?
<phoe>
I think you can reuse it just fine
<aeth>
I think someone said it's not portable to do things like that.
<phoe>
wait though, why?
<phoe>
all you do is introduce a typecheck based on that value before the slot is set
<aeth>
I wonder if it would check twice if the checks are done differently in an implementation.
<phoe>
on a custom slot definition class, so you do not override any system behavior
<phoe>
it would check twice, yes
<phoe>
if the implementation checks it itself
<phoe>
but then one could introduce some per-implementation customizations or something to tailor it for optimization
<aeth>
The problem is that checks aren't implementation-specific, they're implementation-and-optimization-level-specific, so #+ isn't going to help there.
bsd4me has quit [Quit: Leaving]
mseddon_ has quit [Quit: Leaving]
<aeth>
Except for SBCL (so there goes 90% of your users), most will check at default levels, but who knows what they do at (safety 0) for instance
mseddon has joined #lisp
<phoe>
well then
<aeth>
phoe: All these issues is probably why I haven't released it yet, but if you really need it now for something not currently in Quicklisp, then I can think of a name and spin it off. It's just that the API might have to change a few times before "1.0" even for such a tiny thing.
<phoe>
I'll prefer typechecking one time too many than one time too few
<phoe>
aeth: I actually am thinking of mostly-integrating it with one other idea I have been thinking of recently
<phoe>
which is immutable classes with value semantics
<phoe>
those could go well with optional typechecks.
<phoe>
which is why I think I could pull your code and integrate it with mine, and then show you to see if I did an acceptable job
<aeth>
Can a metaclass inherit from a metaclass? I've never really gone that deep into the MOP
<aeth>
If it can work like, say, gray streams (which is just regular CLOS not the MOP itself), the way I'd do that is double inherit from immutability and checked-types
<phoe>
then vs-class is going to have its SHARED-INITIALIZE :AFTER and typechecked-class is going to have its custom slots
<aeth>
Then maybe its name should stay as checked-types since other precondition/assertion behavior can also be a different class that's shared as a common parent class of some more complicated metaclass, unless the way methods are overriden makes that impossible.
<aeth>
although, yeah, maybe typechecked-class is a better name than checked-types
<phoe>
I also would suggest to reevaluate the idea with :TYPE
<phoe>
*especially* if then you can *not* pass :TYPE over to CALL-NEXT-METHOD
<phoe>
this way the implementation will not typecheck itself, and you will get a predictable single typecheck.
<aeth>
I think someone said something like this can't be done, using a built-in like :type. They might have been wrong.
<aeth>
beach would probably know the correct answer.
<phoe>
I mean, (defclass foo ((bar :type number)) (:metaclass typechecked-class))
<phoe>
if TYPECHECKED-CLASS intercepts :TYPE and creates a typechecked slot definition and then calls the next method without passing the :TYPE argument, then the standard slot definitions will be created without :TYPE
<phoe>
so, they'll be of type T
<phoe>
and then your typechecked slot definition is going to perform its typechecks on setting the slot.
luckless has quit [Remote host closed the connection]
<phoe>
I mean, this is how inheritance works, so I can bet at least $10 that this is going to be defined portable behavior
luckless has joined #lisp
<phoe>
(and the bet is going to be amplified by the fact that I am broke at the moment and waiting for my next paycheck)
smazga has quit [Ping timeout: 265 seconds]
<phoe>
I mean, this is because the standard slot that is going to be instantiated this way will not even notice that a :TYPE was passed, so it will have no chance of establishing any kind of typechecking
<phoe>
no typechecking, no UB; no UB, no problem
scymtym has quit [Ping timeout: 244 seconds]
shifty has joined #lisp
Yardanico is now known as Yardanico_
Yardanico_ is now known as Yardanico
<phoe>
alexandria:remove-from-plist is going to work wonders this way
smazga has joined #lisp
orivej has joined #lisp
Inline has joined #lisp
Inline has quit [Remote host closed the connection]
scymtym has joined #lisp
paul0 has quit [Quit: Leaving]
elxbarbosa has joined #lisp
liberliver has quit [Ping timeout: 240 seconds]
Inline has joined #lisp
sjl_ has quit [Ping timeout: 246 seconds]
Oladon has joined #lisp
<ralt>
is there a library that provides an LRU cache?
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
dmiles has quit []
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #lisp
renzhi has quit [Ping timeout: 240 seconds]
peterhil has quit [Read error: Connection reset by peer]
zigpaw1 has quit [Ping timeout: 264 seconds]
vidak` has quit [Remote host closed the connection]
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
borodust has quit [Remote host closed the connection]
peterhil has joined #lisp
zigpaw1 has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
dmiles has joined #lisp
paul0 has joined #lisp
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
peterhil has joined #lisp
peterhil has quit [Read error: Connection reset by peer]
thecoffemaker has quit [Ping timeout: 240 seconds]
thecoffemaker has joined #lisp
pve has quit [Quit: leaving]
kaftejiman has quit [Remote host closed the connection]
akoana has left #lisp ["Leaving"]
lucasb has joined #lisp
bilegeek has joined #lisp
shifty has quit [Ping timeout: 265 seconds]
cosimone_ has quit [Ping timeout: 260 seconds]
<mfiano>
There's a few options for that
<mfiano>
See cacle for example
elxbarbosa has quit [Ping timeout: 272 seconds]
Inline has quit [Ping timeout: 246 seconds]
terpri_ is now known as terpri
mseddon_ has joined #lisp
mseddon has quit [Ping timeout: 240 seconds]
mangoicedtea has joined #lisp
bsd4me has joined #lisp
krid` has quit [Read error: Connection reset by peer]
krid` has joined #lisp
gko_ has joined #lisp
<moon-child>
how is (quote (quote a)) is 'a?
<moon-child>
s/is 'a/'a/
<moon-child>
it looks like in scheme, the result is (quote a), which is what I would expect. Why isn't it that way in cl?
<mfiano>
I think maybe you are confused about the Lisp printer