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/>
orthzar has joined #commonlisp
szkl has joined #commonlisp
attila_lendvai has quit [Ping timeout: 255 seconds]
skyl4rk has quit [Ping timeout: 245 seconds]
xlymian has quit [Ping timeout: 260 seconds]
Kyuvi has quit [Quit: Client closed]
xlymian has joined #commonlisp
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
xlymian has quit [Ping timeout: 260 seconds]
Josh_2 has joined #commonlisp
<Josh_2> Hi hi :sunglasses:
<Josh_2> I have defined my own subclass of asdf:operation and I am using asdf:perform to generate static documentation
xlymian has joined #commonlisp
<Josh_2> however when I run asdf:perform I get a lot of warnings WARNING: DEPRECATED-FUNCTION-WARNING: Using deprecated function (ASDF/ACTION::BACKWARD-COMPATIBLE-DEPENDS-ON :FOR-OPERATION #<COMMON-LISP-USER::GENERATE-DOCS >) -- please update your code to use a newer API.
<Josh_2> Ofcourse I have not specialized such method, I just have :perform (generate-docs (op c) (asdf::symbol-call :de/docs :generate-docs)) in my system definition
<Josh_2> I tried to invoke the restart 'muffle-warning (which is present) by specializing an :around method for that operation but that still doesn't get rid of that annoying output :(
<Josh_2> I think a built in asdf:generate-static-documentation would be cool :sunglasses:
xlymian has quit [Ping timeout: 240 seconds]
azimut has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
notzmv has quit [Read error: Connection reset by peer]
ronald_ has quit [Ping timeout: 246 seconds]
xlymian has joined #commonlisp
makomo has quit [Ping timeout: 256 seconds]
dra has quit [Remote host closed the connection]
notzmv has joined #commonlisp
KaitoDaumoto has joined #commonlisp
Kyuvi has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life has joined #commonlisp
bubblegum has joined #commonlisp
dajole has joined #commonlisp
NotThatRPG has joined #commonlisp
Josh_2 has quit [Ping timeout: 256 seconds]
random-nick has quit [Ping timeout: 268 seconds]
szkl has quit [Quit: Connection closed for inactivity]
<zyd> What libraries could use the most help in documentation and tutorial-like content?
josrr has quit [Remote host closed the connection]
sudo452 has quit [Remote host closed the connection]
scymtym has quit [Read error: Connection reset by peer]
scymtym has joined #commonlisp
<bike> zyd: i would just start with the most popular libraries and skip the few that do have good documentation.
fiddlerwoaroof has quit [Ping timeout: 252 seconds]
fiddlerwoaroof has joined #commonlisp
<aeth> try going through https://awesome-cl.com/
<ixelp> awesome-cl | A curated list of awesome Common Lisp frameworks, libraries and other shiny stuff.
<aeth> obviously far too much
dtman34 has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
dtman34 has joined #commonlisp
igemnace has quit [Read error: Connection reset by peer]
<zyd> thanks
Jach has quit [Ping timeout: 264 seconds]
Jach has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
igemnace has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
waleee has quit [Ping timeout: 245 seconds]
opus has quit [Quit: bye]
decweb has quit [Ping timeout: 260 seconds]
contrapunctus has left #commonlisp [#commonlisp]
contrapunctus has joined #commonlisp
xlymian has quit [Ping timeout: 260 seconds]
xlymian has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
NicknameJohn has joined #commonlisp
orthzar has quit [Quit: Client closed]
epony has quit [Quit: QUIT]
igemnace has quit [Ping timeout: 276 seconds]
rtypo has quit [Ping timeout: 245 seconds]
Gleefre has quit [Remote host closed the connection]
miique_ has joined #commonlisp
miique_ has quit [Max SendQ exceeded]
miique_ has joined #commonlisp
miique_ has quit [Max SendQ exceeded]
xlymian has quit [Ping timeout: 260 seconds]
Aesth has joined #commonlisp
miique has quit [Ping timeout: 252 seconds]
kenanb has joined #commonlisp
azimut has quit [Ping timeout: 240 seconds]
xlymian has joined #commonlisp
Pixel_Outlaw has quit [Remote host closed the connection]
xlymian has quit [Ping timeout: 260 seconds]
xlymian has joined #commonlisp
xlymian has quit [Ping timeout: 260 seconds]
xlymian has joined #commonlisp
xlymian has quit [Ping timeout: 260 seconds]
Inline has quit [Ping timeout: 268 seconds]
Inline has joined #commonlisp
random-jellyfish has joined #commonlisp
random-jellyfish has joined #commonlisp
random-jellyfish has quit [Changing host]
xlymian has joined #commonlisp
igemnace has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
dinomug has joined #commonlisp
artix has joined #commonlisp
Inline has quit [Quit: Leaving]
Aesth has quit [Quit: WeeChat 4.1.2]
dnhester26 has joined #commonlisp
Inline has joined #commonlisp
artix has quit [Quit: Leaving]
ym has joined #commonlisp
xlymian has quit [Ping timeout: 240 seconds]
dcb has quit [Quit: Connection closed for inactivity]
xlymian has joined #commonlisp
xlymian has quit [Ping timeout: 240 seconds]
seok has quit [Quit: Client closed]
seok has joined #commonlisp
shka has joined #commonlisp
xlymian has joined #commonlisp
xlymian has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
dajole has quit [Quit: Connection closed for inactivity]
donleo has joined #commonlisp
xlymian has joined #commonlisp
dino_tutter has joined #commonlisp
xlymian has quit [Ping timeout: 260 seconds]
szkl has joined #commonlisp
xlymian has joined #commonlisp
kopiyka has quit [Remote host closed the connection]
kopiyka has joined #commonlisp
makomo has joined #commonlisp
dinomug has quit [Remote host closed the connection]
<madnificent> zyd: We have a polyglot stack and find our documentation to be lacking on a bunch of fronts. If you want to have a conversation about what constitutes good documentation I've read a few things about it and would love to share. No clue how far you've dived into things.
Kyuvi has quit [Quit: Client closed]
mgl has joined #commonlisp
_cymew_ has joined #commonlisp
rainthree has joined #commonlisp
manwithluck has quit [Ping timeout: 255 seconds]
manwithluck has joined #commonlisp
igemnace has quit [Quit: WeeChat 4.1.2]
igemnace has joined #commonlisp
xlymian has quit [Ping timeout: 240 seconds]
dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
xlymian has joined #commonlisp
xlymian has quit [Ping timeout: 260 seconds]
traidare has joined #commonlisp
decweb has joined #commonlisp
xlymian has joined #commonlisp
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
xlymian has quit [Ping timeout: 245 seconds]
mgl has quit [Ping timeout: 276 seconds]
xlymian has joined #commonlisp
igemnace has quit [Read error: Connection reset by peer]
mgl has joined #commonlisp
traidare has quit [Ping timeout: 240 seconds]
attila_lendvai has joined #commonlisp
random-jellyfish has quit [Ping timeout: 256 seconds]
igemnace has joined #commonlisp
random-jellyfish has joined #commonlisp
random-nick has joined #commonlisp
manwithluck has quit [Ping timeout: 260 seconds]
dnhester26 has quit [Remote host closed the connection]
mgl has quit [Ping timeout: 256 seconds]
puke has quit [Quit: puke]
rainthree has quit [Read error: Connection reset by peer]
xlymian has quit [Ping timeout: 240 seconds]
rainthree has joined #commonlisp
kenanb has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
dnhester26 has joined #commonlisp
azimut has joined #commonlisp
pve has joined #commonlisp
Gleefre has joined #commonlisp
xlymian has joined #commonlisp
traidare has joined #commonlisp
yitzi has joined #commonlisp
puke has joined #commonlisp
puke has quit [Max SendQ exceeded]
mooseball has joined #commonlisp
xlymian has quit [Ping timeout: 260 seconds]
jmdaemon has quit [Ping timeout: 268 seconds]
rainthree has quit [Read error: Connection reset by peer]
contrapunctus has left #commonlisp [#commonlisp]
rainthree has joined #commonlisp
Aesth has joined #commonlisp
xlymian has joined #commonlisp
xlymian has quit [Ping timeout: 240 seconds]
<madnificent> Is there a way to re-throw an error caught by handler-bind? I have some code that tries to parse a string using multiple approaches. The error includes how far the parsing went and I'd like to throw the error which matched most of the string as that will help the user most.
meritamen has joined #commonlisp
xlymian has joined #commonlisp
dcb has joined #commonlisp
duuqnd has joined #commonlisp
<bike> madnificent: you can call ERROR/SIGNAL again, or if the handler-bind doesn't transfer control the signal will keep propagating up through handlers.
xlymian has quit [Ping timeout: 260 seconds]
tyson2 has joined #commonlisp
<madnificent> bike can I just call (error original-condition-variable) or are you suggesting something else?
random-jellyfish has quit [Ping timeout: 255 seconds]
<madnificent> 9.1.4.1.1 Resignaling a Condition may be what I'm looking for
<beach> Yes, it is "signal" and not "throw" which means something very different in Common Lisp.
<madnificent> beach: I should read up on that, in my head throw and catch lived in the same space as the condition system.
<ixelp> Yukari Hafner: "Friendship ended with GJK+EPA Now MPR/Xenocollid…" - TyNET
sherbert has quit [Remote host closed the connection]
sherbert has joined #commonlisp
sherbert has quit [Remote host closed the connection]
sherbert has joined #commonlisp
<beach> madnificent: They are totally different. The condition system can be written in an entirely portable way, given special variables.
<beach> But CATCH and THROW are special operators.
xlymian has joined #commonlisp
<madnificent> beach: so they don't interoperate? I don't think I used catch and throw in common lisp, I always reverted to the condition system.
<madnificent> Shinmera: very smooth! physics look realistic too
<bike> cl:catch and cl:throw are not usually used in the condition system, and are also different from catch and throw in other languages that use those names for error stuff.
<beach> I don't even think that the condition system uses CATCH and THROW. It uses other means of non-local control transfer.
dnhester26 has quit [Remote host closed the connection]
<Shinmera> madnificent: yeah. had to implement a new fine collision detection algorithm, and now it finally works nicely
puke has joined #commonlisp
<beach> Shinmera: Congratulations!
<Shinmera> thanks. this is such a huge relief
<beach> I can imagine.
<Shinmera> I've been fighting with the GJK+EPA implementation for so long and it's still broken. I have no idea how to fix it
<Shinmera> But now I don't really have to
<beach> Great!
dnhester26 has joined #commonlisp
<Shinmera> Now I just need to figure out how to translate animation movement into physics movement, which I'm also still stuck on how to solve.
<duuqnd> Shinmera: Could you explain what made it easier to implement or would I have to understand how physics engines work for it to make sense?
<Shinmera> But I'm waiting for my animator to get back to me on that, maybe he has some ideas on what's going wrong with my primitive approach
<beach> Shinmera: It will keep you off the streets.
<Shinmera> duuqnd: It just worked almost right away. Only took me a day to implement and debug. GJK and EPA I've spent weeks trying to wrangle through edge-cases with
<Shinmera> literally, too. EPA currently fails on edge collisions: https://mastodon.tymoon.eu/@shinmera/111680073955721274
<ixelp> Yukari Hafner: "....yeahhh...." - TyNET
<Shinmera> I have no idea why
<duuqnd> I think I saw a GIF of that, was it in the Patreon post?
<Shinmera> Yes
Aesth has quit [Quit: WeeChat 4.1.2]
<madnificent> bike, beach: thanks a lot, re-throwing the error (which I thought was not allowed) is a much nicer DX.
<madnificent> should read up on catch throw later to place it correctly in my head
<duuqnd> Shimera: oh btw, you were doing something with moving the character in-engine based on the animation, right? Is there anything preventing you from placing an empty at the character's feet and using its position instead of the model's root? I imagine a constraint could be put on it that moves it with the root and that might export properly.
<Shinmera> Yeah that's an idea
<Shinmera> I'm currently waiting on a reply from my animator as mentioned
<duuqnd> (I typo'd you name there, sorry)
<Shinmera> If he doesn't have any better ideas, that'll be how I'm going to have to do it :/
<duuqnd> (I typo'd "your" there, sorry)
<beach> madnificent: *sigh* :)
<Shinmera> duuqnd: You don't have tab completion? :)
<madnificent> beach: ? No, I mean cl:catch and cl:throw
<madnificent> aaarg, i see it now (:
<beach> Heh.
<duuqnd> I had to muck with my IRC bouncer for a bit so I'm just using Weechat on my server through SSH
<Shinmera> I do too, can still tab complete names
<madnificent> would raising the condition again be right, or signaling the same condition be correct?
<beach> madnificent: There is no "raise" in Common Lisp. The term is "signal".
<duuqnd> Shinmera: didn't know weechat could do that, cool
<madnificent> the names throw and catch seem to be hardwired through other languages. this will take a while.
<madnificent> thank you for correcting, much appreciated
<beach> Pleasure.
<Shinmera> Once I have the animation issue fixed I'm thinking of putting out a demo of the current test level for patrons
<Shinmera> For now I need to try and get back into a working mood, I'm still kind of in shock that I got this working
skyl4rk has joined #commonlisp
dino_tutter has quit [Ping timeout: 260 seconds]
contrapunctus has joined #commonlisp
mooseball_ has joined #commonlisp
mooseball has quit [Read error: Connection reset by peer]
<green_> Congratulations, Shinmera. That gif looks great!
<Shinmera> thanks! :)
<Shinmera> really needed this, too. the past months have been *rough* for development
mooseball_ has quit [Read error: Connection reset by peer]
manwithluck has joined #commonlisp
mooseball_ has joined #commonlisp
mooseball_ has quit [Read error: Connection reset by peer]
dnhester26 has quit [Remote host closed the connection]
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 260 seconds]
son0p has quit [Ping timeout: 240 seconds]
unl0ckd has joined #commonlisp
meritamen has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rainthree has quit [Read error: Connection reset by peer]
rainthree has joined #commonlisp
rainthree3 has joined #commonlisp
rainthree has quit [Read error: Connection reset by peer]
meritamen has joined #commonlisp
mooseball has joined #commonlisp
dnhester26 has joined #commonlisp
amoroso has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
dnhester26 has joined #commonlisp
unl0ckd has quit [Ping timeout: 268 seconds]
amoroso has quit [Client Quit]
unl0ckd has joined #commonlisp
dino_tutter has joined #commonlisp
Jach has quit [Ping timeout: 264 seconds]
meritamen has quit [Quit: I gotta go.]
Jach has joined #commonlisp
jonatack has joined #commonlisp
jon_atack has quit [Read error: Connection reset by peer]
son0p has joined #commonlisp
jon_atack has joined #commonlisp
jonatack has quit [Read error: Connection reset by peer]
unl0ckd has quit [Ping timeout: 268 seconds]
unl0ckd has joined #commonlisp
kztx has quit [Quit: nyaa~]
tyson2 has quit [Remote host closed the connection]
rainthree has joined #commonlisp
rainthree3 has quit [Read error: Connection reset by peer]
traidare has quit [Ping timeout: 252 seconds]
jon_atack has quit [Ping timeout: 252 seconds]
jonatack has joined #commonlisp
rainthree3 has joined #commonlisp
rainthree has quit [Read error: Connection reset by peer]
rtypo has joined #commonlisp
glaucon has joined #commonlisp
unl0ckd has quit [Ping timeout: 268 seconds]
kenanb has joined #commonlisp
<jcowan> madnificent: The key to understanding Lisp condition handling is that rather than the stack being unwound before the handler is called (so-called "termination semantics" as seen in C++, Java, etc.), the call to the handler is an ordinary function call, and only then is the stack (optionally) unwound.
rainthree3 has quit [Read error: Connection reset by peer]
KaitoDaumoto has quit [Remote host closed the connection]
szkl has quit [Quit: Connection closed for inactivity]
<jcowan> So catch and throw unwind the stack but have nothing to do with errors, whereas error handling may or may not involve unwinding the stack.
Kyuvi has joined #commonlisp
dnhester26 has quit []
mgl has joined #commonlisp
unl0ckd has joined #commonlisp
thuna` has joined #commonlisp
<yitzi> Nobody expects catastropic errors during a simple game of "throw and catch" ... therefore CL:THROW and CL:CATCH have nothing to do with error signalling.
<madnificent> jcowan: Are you talking about cl:throw and cl:catch or those of other (lesser ;) ) languages? I know the difference of the condition system and wrote a prolog-like implementation a decade or so ago using the condition system but wasn't aware that I could signal a condition I caught earlier. In this case the stack was unwound to where I bound the condition.
<madnificent> In hindsight, this was my execute to read "The Common Lisp Condition System"
<jcowan> The CL throw and catch.
<Fade> I seem to remember a pretty good book about the CL condition system released recently...
triffid has joined #commonlisp
<Fade> natch. moar reading, less talking.
<Fade> for me.
<jcowan> Since signaling a condition is just calling a function, it's of course possible to call another function with the same argument.
<jcowan> However, returning from the handler calls the next handler; it doesn't get you back to the signaler.
tyson2 has joined #commonlisp
random-nick has quit [Ping timeout: 252 seconds]
mgl has quit [Ping timeout: 260 seconds]
<madnificent> Fade: "The Common Lisp Condition System" by phoe. Ironically, it is winter reading I did not get round to.
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
NotThatRPG has joined #commonlisp
random-nick has joined #commonlisp
<bjorkint0sh> madnificent, is that a good book? haven't heard anything of it till just now.
<Shinmera> it is good
Kyuvi has quit [Ping timeout: 250 seconds]
<pfdietz> It's still winter...
unl0ckd has quit [Ping timeout: 268 seconds]
HerlockSholmes has joined #commonlisp
NicknameJohn has quit [Remote host closed the connection]
skyl4rk has quit [Ping timeout: 255 seconds]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #commonlisp
unl0ckd has joined #commonlisp
traidare has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
mgl has joined #commonlisp
unl0ckd has quit [Ping timeout: 268 seconds]
josrr has joined #commonlisp
mooseball_ has joined #commonlisp
tyson2 has joined #commonlisp
Demosthenex has quit [Ping timeout: 246 seconds]
nalbyuites has joined #commonlisp
mgl has quit [Ping timeout: 256 seconds]
mooseball has quit [Ping timeout: 252 seconds]
Inline has quit [Ping timeout: 260 seconds]
Demosthenex has joined #commonlisp
mgl has joined #commonlisp
mooseball_ has quit [Read error: Connection reset by peer]
mgl has quit [Ping timeout: 268 seconds]
tyson2 has quit [Remote host closed the connection]
cage has joined #commonlisp
sansk has joined #commonlisp
glaucon has quit [Read error: Connection reset by peer]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
HerlockSholmes has quit [Remote host closed the connection]
Inline has joined #commonlisp
nalbyuites has quit [Remote host closed the connection]
nalbyuites has joined #commonlisp
Devon has joined #commonlisp
sansk has quit [Quit: WeeChat 4.1.2]
dajole has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
unl0ckd has joined #commonlisp
<BrokenCog> I'm trying to learn how to use cl-json ... specifically, how do I get sub-keys? For instance (assoc :kind (cl-json:decode-json-from-string (dex:get "https://www.reddit.com/user/Quick_Presentation11.json"))) returns "Listing", which is valid, but :children or anything else returns nil. (I picked this user because it was the top post at the moment).
nalbyuites007 has joined #commonlisp
rogersm has joined #commonlisp
Guest63 has joined #commonlisp
nalbyuites has quit [Ping timeout: 252 seconds]
nalbyuites has joined #commonlisp
wheeler has quit [Quit: cheerio]
nalbyuites007 has quit [Ping timeout: 252 seconds]
unl0ckd has quit [Ping timeout: 268 seconds]
echos has joined #commonlisp
tyson2 has joined #commonlisp
<josrr> BrokenCog: (assoc :children (cdr (assoc :data (cl-json:decode-json-from-string (dex:get "https://www.reddit.com/user/Quick_Presentation11.json")))))
Guest63 has quit [Quit: Client closed]
yottabyte has joined #commonlisp
<josrr> :data contains an alist, :children is a key inside it.
nalbyuites has quit [Ping timeout: 252 seconds]
earl-ducaine_ has quit [Ping timeout: 276 seconds]
amb007 has quit [Ping timeout: 255 seconds]
amb007 has joined #commonlisp
igemnace has quit [Read error: Connection reset by peer]
bubblegum has quit [Read error: Connection reset by peer]
bubblegum has joined #commonlisp
attila_lendvai has quit [Remote host closed the connection]
attila_lendvai has joined #commonlisp
NicknameJohn has joined #commonlisp
igemnace has joined #commonlisp
madnificent has quit [Read error: Connection reset by peer]
varjag has joined #commonlisp
bubblegum has quit [Quit: disappeared]
bubblegum has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
skyl4rk has joined #commonlisp
zaymington has quit [Ping timeout: 240 seconds]
NotThatRPG has joined #commonlisp
khrbtxyz has quit [Ping timeout: 260 seconds]
Devon has quit [Ping timeout: 252 seconds]
khrbtxyz has joined #commonlisp
Kyuvi has joined #commonlisp
szkl has joined #commonlisp
Kyuvi has quit [Ping timeout: 250 seconds]
<yottabyte> do people use arrow macros often? like: https://github.com/hipeta/arrow-macros/
<ixelp> GitHub - hipeta/arrow-macros: Arrow-macros provides Clojure-like arrow macros in Common Lisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
<NotThatRPG> yottabyte: Nope! I looked at that page and ... it doesn't even explain the macros. Unless you already know the Clojure macros (I don't) you are SoL
<yottabyte> haha yeah
<yitzi> This one is a gem: `(-<> 1 (+ <> <>) (-<> (+ <> <> <>))) ; => 6`
<zyd> terrifying
<yottabyte> so powerful
<yitzi> Unless you want human beings to read it.
<yottabyte> haha
Josh_2 has joined #commonlisp
<Josh_2> Hi hi hi :D
<Josh_2> I have a metaclass which has a slot with an initarg, however when I'm setting that initarg the slot ends up unbound
<Josh_2> idk what I have missed :skull:
<zyd> Is there a better way to manage dists in quicklisp? I'm relying on an unexported symbol to check the url of a dist to see if I need to install it or not. The idea being that I can automatically install the dists I need on a new machine: https://0x0.st/H6mE.txt
<Josh_2> I made so much progress yesterday and now I've hit a wall, pesky initarg :(
<yitzi> zyd: I use ql-dist:find-dist
<Josh_2> I have my stored-class-slot, my stored-class-meta, I have my direct and effectives, validate-superclass for both, effective-slot-definition, and direct-slot-definition
<Josh_2> but when I make my class with my (defclass blah () ((slot :json-key "aaa")) (:metaclass blahblah)) that slots :json-key is unbound :thinking:
<zyd> yitzi: Oh, thanks. Somehow missed that function. Nice script for an example.
<yitzi> ty
<bike> Josh_2: compute-effective-slot-definition?
<Josh_2> I dont have that
<Josh_2> I have #'c2mop:effective-slot-definition-class
kenanb has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
tyson2 has joined #commonlisp
<bike> if you don't have a method on compute-effective-slot-definition (or possibly the more special compute-effective-slot-definition-initargs), the effective slot won't get your json key from the direct slots.
<Josh_2> Hmm
<Josh_2> I specialized it but just used (call-next-method)
<bike> you have to define how it works with inheritance. otherwise it's not obvious what to do if e.g. you then have (defclass foo () ((slot :json-key "bbb")))
<bike> er
<bike> defclass foo (blah)
<Josh_2> hmm
<Josh_2> I am using inheritance, I have *a lot* of mixins
<Josh_2> and its the mixins that have these :json-key arguments in the slots
<Josh_2> so (defclass mymix () ((slot :json-key "slot")) (:metaclass blahblah)) (defclass with-mix (my-mix) () (:metaclass blahblah))
<Josh_2> Hmm but even the slots :json-key within my-mix is unbound
<bike> yeah because the effective slot definition is never initialized with a json-key. that's what i said earlier.
<Josh_2> Okay
<Josh_2> so I use #'compute-effective-slot-definition to do that?
chomwitt has joined #commonlisp
<Josh_2> Do I have to set these manually?
<Josh_2> yitzi: :thumbsup:
<Josh_2> If I call-next-method I get an stored-class-slot-effective.. but how do I then set my json-key slot :thinking:
<Josh_2> I'm confused :skull:
<Josh_2> Hmm
<Josh_2> I see
<Josh_2> I have to set it from the direct-slot-definition
ym has quit [Ping timeout: 246 seconds]
NicknameJohn has quit [Read error: Connection reset by peer]
<bike> if you don't specialize compute-effective-slot-definition, you'll get an instance of your effective method class, but your special slot won't be initialized
<bike> because there's nothing to initialize it.
<Josh_2> And this initialization has to be handled manually?
<Josh_2> Just forgetting the basics :skull:
<Josh_2> Just checked on some code I wrote years ago...
unl0ckd has joined #commonlisp
<Josh_2> Okay got it all sorted, thanks bike, thanks yitzi :thumbsup:
<Josh_2> Okay another question
cage has quit [Quit: rcirc on GNU Emacs 29.1]
<Josh_2> OH
<Josh_2> Think I answered it myself :)
Kyuvi has joined #commonlisp
<Josh_2> No I didn't :skull:
<jcowan> Josh_2: Okay, so what is the question?
<Josh_2> well you can choose the direct-slot-definition-class based on the initargs using #'c2mop:direct-slot-definition-class
<Josh_2> So I choose the direct-slot class based on whether :json-key is t
<Josh_2> but I have a mixin has-id which doesn't have :json-key, so I'd rather it was just a standard direct and standard effective
<Josh_2> That mixin still has my metaclass though.
<Josh_2> However if I try to choose the effective-slot-definition-class using #'c2mop:effective-slot-definition-class the initargs provided dont have :json-key or anything to let me distinguish :thinking: So it seems I'm forced to choose my new 'stored-class-slot-effective which means my mixin is ending up with stored-class-slot-direct
<Josh_2> Think I'm just waffling at this point :skull:
<Josh_2> Guess I can just use c2mop:class-direct-slots instead of c2mop:class-slots
<Josh_2> Whateveerrrrrrrrrr
a51 has quit [Quit: WeeChat 4.1.2]
<Josh_2> hehehehehe I did it
<Josh_2> not sure if its portable though
a51 has joined #commonlisp
<Josh_2> dont think it would work correctly if I had a mixin where 1 slot has :json-key and another doesn't
<Josh_2> It doesn't :skull: but I can't even define mixins like that
<Josh_2> Probably better to just manually check if json-key is bound when I #'compute-slots than do this
green_ has quit [Ping timeout: 256 seconds]
_cymew_ has quit [Ping timeout: 252 seconds]
unl0ckd has quit [Ping timeout: 268 seconds]
rogersm has quit [Remote host closed the connection]
yitzi has quit [Remote host closed the connection]
random-jellyfish has joined #commonlisp
random-jellyfish has joined #commonlisp
random-jellyfish has quit [Changing host]
akoana has joined #commonlisp
<BrokenCog> josrr: thanks, I see it now.
<bike> Josh_2: you should definitely use the effective slot. if you use direct slots than e.g. any class that merely inherits one of these slots won't have an inherited json-key.
<Josh_2> Right :thumbsup:
<bike> Josh_2: the thing about effective-slot-definition-class is a known issue; a few implementations have workarounds. but you can probably just use your stored-class-effective-slot all the time.
<Josh_2> Thanks for the info :thumbsup: I am just using it all the time now
<josrr> BrokenCog: great!
xlymian has quit [Ping timeout: 240 seconds]
pve has quit [Quit: leaving]
traidare has quit [Ping timeout: 260 seconds]
NicknameJohn has joined #commonlisp
random-jellyfish has quit [Ping timeout: 256 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
theBlackDragon has quit [Ping timeout: 264 seconds]
theBlackDragon has joined #commonlisp
<Josh_2> Its always good when something works first try :D
<Josh_2> :D
unl0ckd has joined #commonlisp
rogersm has joined #commonlisp
rogersm has quit [Ping timeout: 268 seconds]
Josh_2 has quit [Ping timeout: 264 seconds]
green_ has joined #commonlisp
unl0ckd has quit [Ping timeout: 268 seconds]
yitzi has joined #commonlisp
dra has joined #commonlisp
dra has joined #commonlisp
dra has quit [Changing host]
unl0ckd has joined #commonlisp
NotThatRPG has joined #commonlisp
amb007 has quit [Ping timeout: 260 seconds]
chomwitt has quit [Ping timeout: 256 seconds]
rogersm has joined #commonlisp
waleee has joined #commonlisp
donleo has quit [Ping timeout: 255 seconds]
dino_tutter has quit [Ping timeout: 240 seconds]
rogersm has quit [Ping timeout: 276 seconds]