Xach 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>
Algernon69 has quit [Ping timeout: 252 seconds]
taiju has joined #commonlisp
VincentVega has quit [Remote host closed the connection]
thomaslewis has joined #commonlisp
VincentVega has joined #commonlisp
nij- has left #commonlisp [#commonlisp]
euandreh has quit [Ping timeout: 240 seconds]
Oladon has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
s-liao has quit [Quit: Client closed]
thomaslewis has joined #commonlisp
<Bike> yottabyte: in fact, both LET and LET* mandate that the value forms are evaluated sequentially.
thomaslewis has left #commonlisp [#commonlisp]
s-liao has joined #commonlisp
thomaslewis has joined #commonlisp
reb has quit [Remote host closed the connection]
thomaslewis has left #commonlisp [#commonlisp]
<sm2n> phoe: Fair enough
<rotateq> yottabyte: You could have read-up about emulating LET* with LET forms in 'On Lisp' by Paul Graham. Even how to emulate LET with LAMBDA. But in CL of those three only LET and LET* are two of the 25 special operators.
morganw has quit [Remote host closed the connection]
mon_aaraj has quit [Ping timeout: 256 seconds]
mon_aaraj has joined #commonlisp
VincentVega has quit [Remote host closed the connection]
s-liao has quit [Ping timeout: 256 seconds]
akoana has joined #commonlisp
notzmv has joined #commonlisp
jstoddard has quit [Quit: ERC (IRC client for Emacs 27.2)]
waku has quit [Ping timeout: 256 seconds]
waku has joined #commonlisp
s-liao has joined #commonlisp
akoana has quit [Quit: leaving]
gaqwas has joined #commonlisp
gaqwas has quit [Ping timeout: 256 seconds]
euandreh has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
Oladon has quit [Quit: Leaving.]
raeda has quit [Remote host closed the connection]
raeda has joined #commonlisp
xsperry has quit [Ping timeout: 256 seconds]
euandreh has quit [Ping timeout: 268 seconds]
s-liao has quit [Ping timeout: 256 seconds]
xsperry has joined #commonlisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #commonlisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #commonlisp
antonv has joined #commonlisp
s-liao has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
varjag has joined #commonlisp
<beach> Good morning everyone!
semz has quit [Ping timeout: 268 seconds]
Jing has joined #commonlisp
pranavats has joined #commonlisp
monaaraj has joined #commonlisp
mon_aaraj has quit [Read error: Connection reset by peer]
wyrd has quit [Ping timeout: 276 seconds]
wyrd has joined #commonlisp
varjag has quit [Ping timeout: 240 seconds]
monaaraj has quit [Ping timeout: 256 seconds]
monaaraj has joined #commonlisp
semz has joined #commonlisp
waleee has quit [Ping timeout: 240 seconds]
wyrd has quit [Ping timeout: 276 seconds]
perrierjouet has joined #commonlisp
wyrd has joined #commonlisp
Jing has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
semz has quit [Ping timeout: 268 seconds]
Bike has quit [Quit: sleepin]
brandflake11 has quit [Remote host closed the connection]
semz has joined #commonlisp
perrierjouet has quit [Quit: WeeChat 3.4]
tyson2 has quit [Remote host closed the connection]
perrierjouet has joined #commonlisp
s-liao has quit [Quit: Ping timeout (120 seconds)]
perrierjouet has quit [Ping timeout: 256 seconds]
miique has joined #commonlisp
jealousmonk has quit [Remote host closed the connection]
aartaka has joined #commonlisp
wyrd has quit [Ping timeout: 276 seconds]
wyrd has joined #commonlisp
qhong_ has joined #commonlisp
perrierjouet has joined #commonlisp
qhong has quit [Ping timeout: 256 seconds]
attila_lendvai has joined #commonlisp
rgherdt has joined #commonlisp
s-liao has joined #commonlisp
dec0d3r has quit [Quit: Leaving]
Cymew has joined #commonlisp
frgo has quit [Ping timeout: 256 seconds]
monaaraj has quit [Ping timeout: 256 seconds]
Inline has quit [Ping timeout: 256 seconds]
monaaraj has joined #commonlisp
shka has joined #commonlisp
Jing has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
karlosz has joined #commonlisp
Lycurgus has joined #commonlisp
akovalenko has quit [Read error: Connection reset by peer]
Algernon69 has joined #commonlisp
attila_lendvai has quit [Ping timeout: 268 seconds]
miique_ has joined #commonlisp
miique has quit [Ping timeout: 240 seconds]
karlosz has quit [Quit: karlosz]
mgl has joined #commonlisp
gaqwas has joined #commonlisp
<mgl> Reading https://sabracrolleton.github.io/testing-framework, I was amazed by the number of testing frameworks, but https://xkcd.com/927/ struck, and now I'm announcing the final word on testing called Try that tries to do almost everything these libraries do while remaining conceptually simple. The design is closest to Stefil's. If you are
antonv has quit [Ping timeout: 256 seconds]
MajorBiscuit has joined #commonlisp
nij- has joined #commonlisp
s-liao has joined #commonlisp
pve has joined #commonlisp
<Shinmera> Parachute already did the 'do everything' thing.
<jackdaniel> the only thing multitude of test frameworks doesn't do is not rewriting the same purpose library over and over again
<jackdaniel> if anyone thinks about writing the next one, there are a few name spots open: 3am, 4am, 6am :)
gaqwas has quit [Ping timeout: 256 seconds]
Kyuvi has joined #commonlisp
<jackdaniel> (and, to not leave anyone out, "brolly" is also a fine system name)
<phoe> oh no
<mgl> Deservedly great reception! Have a look though, it may float your boat, especially if you like your tests to be functions.
user51 has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
lisp123 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
<lisp123> I'm thinking of memoizing function calls for multiple functions. Which is better, to have a giant hash table where I look up the function & its arguments or have individual hash tables for each function?
<lisp123> [The latter could be streamlined into a list of nested hash tables]
<moon-child> I would do the latter
<lisp123> moon-child: Thanks
Posterdati has quit [Ping timeout: 240 seconds]
varjag has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
s-liao has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
s-liao has quit [Ping timeout: 256 seconds]
attila_lendvai has joined #commonlisp
taiju has quit [Quit: ERC (IRC client for Emacs 27.2)]
euandreh has joined #commonlisp
<phoe> the latter will be faster and individual caches can be easily removed this way
kevingal has joined #commonlisp
<moon-child> phoe: they left
varjag has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
<phoe> minion: memo for lisp123: individual hash tables for functions will be faster and individual caches can be easily removed this way
<minion> Remembered. I'll tell lisp123 when he/she/it next speaks.
<phoe> moon-child: thanks
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<moon-child> hmm, it occurs to me in a context where you make a more broad and sophisticated cache, you might actually not want to do that. Rather, you would have a more unified architecture where you devote a certain amount of space to cache, and evict based on frequency and expense
<moon-child> but I generally associate 'memoize' with a more ad-hoc, specialised thing
s-liao has joined #commonlisp
<phoe> yes
<phoe> if you want something more advanced then you need techniques for controlling cache size, eviction, etc.. so a simple hash table won't do anymore
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
Lycurgus has quit [Quit: Exeunt]
<lisp123win> phoe: Thanks for the additional color
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
igemnace has quit [Remote host closed the connection]
varjag has joined #commonlisp
loke has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
<lisp123win> beach: Have you finalised your submission to ELS?
<lisp123win> Looks like only 2 months away!
pieguy12- has quit [Ping timeout: 260 seconds]
<phoe> the CfP is due soon IIRC
theothornhill has joined #commonlisp
<phoe> oh right, extended until 23rd
igemnace has joined #commonlisp
Devon has joined #commonlisp
igemnace has quit [Ping timeout: 250 seconds]
Kyuvi has quit [Ping timeout: 256 seconds]
<lisp123win> phoe: Are you submitting anything?
<phoe> nope
<lisp123win> I see
theothornhill has quit [Remote host closed the connection]
perrierjouet has quit [Quit: WeeChat 3.4]
nature has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
biog has joined #commonlisp
attila_lendvai has quit [Ping timeout: 256 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
perrierjouet has joined #commonlisp
unyu has quit [Quit: Reboot.]
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
tyson2 has joined #commonlisp
pranavats has joined #commonlisp
taiju has joined #commonlisp
random-nick has joined #commonlisp
varjag has quit [Ping timeout: 256 seconds]
Cymew has quit [Read error: No route to host]
kevingal has quit [Ping timeout: 240 seconds]
akovalenko has joined #commonlisp
s-liao has joined #commonlisp
akovalenko has quit [Read error: Connection reset by peer]
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
attila_lendvai has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
Everything has joined #commonlisp
unyu has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Bike has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
waleee has joined #commonlisp
<beach> lisp123win: I have some more work to do.
waleee has quit [Ping timeout: 240 seconds]
Equill has joined #commonlisp
<rotateq> I don't know how it's about you, but I often realized with myself how much the urge of perfection can be a curse. :/
waleee has joined #commonlisp
s-liao has joined #commonlisp
domovod has joined #commonlisp
s-liao has quit [Quit: Client closed]
nij- has left #commonlisp [#commonlisp]
<Equill> rotateq: I feel it. Took a *lot* of work to get myself to internalise that "good enough" really can be.
<rotateq> It has already ruined a lot of things in my life (which is not that long).
<Equill> It probably helped when I looked at the quest for perfection as an asymptote, and realised that it's often a question of when the delta is small enough. It wasn't much of a step from there to think in more practical terms, and realise that the smart approach is to accept "good enough" as when the delta is small enough that your *customers* don't notice or care about the difference.
<Equill> I concluded that perfection should always be what you *aim* for, but it's not only OK to not reach it, but it should be a pleasant surprise when you actually do.
<rotateq> Maybe applying the 80:20 rule.
<Equill> Pretty much; that's one of the well-known ways of looking at it.
<rotateq> But I often feel like I can't ever understand many things *really* deeply and that frustrates me too.
<Equill> Oh, I know that one.
<Equill> Again, it's a case of accepting that there just isn't enough time to understand everything as deeply as you feel you should. Then it's a question of how deep it's worth diving down any given rabbit-hole.
<Equill> Then again, it's well enough for me to speak: I *still* have more hobbies than I have time for them :)
<rotateq> Yes of course, as I can't prove everything in the kind of maths I do myself, or doing every physics experiment and and and ...
<Equill> Yeah, that. Frustrating is one word for it :)
<rotateq> I was wondering if the new James Webb telescope has again some CL running on it like the scheduling system on Hubble. But as I read they completely used "standardized" things by IBM.
<rotateq> So the question still remains how they debug and reprogram parts that fail as it runs, like in the talk about "debugging from 60 million miles away" having a CL REPL on board to connect to.
mgl has quit [Ping timeout: 256 seconds]
mgl has joined #commonlisp
<pjb> rotateq: usually, it's just done by having two partitions. When there's a bug, they upload a new system image (or more probably in these cases, a patch to build a new system image) in the other partition, and reboot.
<pjb> rotateq: see how it's done on your favorite Android system.
<rotateq> I have no favorite Android system. ^^ But ok, could update my Lineage OS, my camera doesn't initialize since a few days now.
<rotateq> And omg really? :D I shouldn't comment that.
<pjb> rotateq: of course, if the problem is just in a program, they may just upgrade the specific executable. They usually have persistent memory organized as a MS-DOS file system.
<rotateq> Ah okay. Came across again at HAL/S, we talked about it some time ago and you told me it has the capability of reading 2D-equations. ^^
<pjb> Exact.
<rotateq> As I heard even on FPGAs it's possible that they change parts of themselves as they run.
<rotateq> The long HAL/S tutorial is very well written and enjoyable.
<rotateq> And just 153 keywords. :)
Inline has joined #commonlisp
waleee has quit [Ping timeout: 240 seconds]
Inline has quit [Client Quit]
Inline has joined #commonlisp
<frodef> Hi all, any recommendation for sending email from CL?
<rotateq> hm maybe not trivial-mail ^^
<pve> frodef: I've been using cl-smtp. It works fine for my purposes.
<frodef> thanks
waleee has joined #commonlisp
Kyuvi has joined #commonlisp
kevingal has joined #commonlisp
Cymew has joined #commonlisp
Cymew has quit [Ping timeout: 256 seconds]
<frodef> cl-smtp works very nicely!
treflip has joined #commonlisp
waleee has quit [Ping timeout: 252 seconds]
booaa has joined #commonlisp
unyu has quit [Quit: brb]
<rotateq> It's so exhausting, one mentions "and with CLOS you missed really something more in getting the idea of OOP" and instantly it's called 'scary' and such. I shouldn't care.
kevingal has quit [Ping timeout: 240 seconds]
<rotateq> "Oh you don't know the flyweight pattern?" pfff
<rotateq> Then I looked and just thought: so when using :allocation :class for a slot it seems to be it, even with following a sane update protocol for all made instances.
ebrasca has joined #commonlisp
taiju has quit [Remote host closed the connection]
domovod has quit [Quit: WeeChat 3.4]
domovod has joined #commonlisp
pieguy128 has joined #commonlisp
varjag has joined #commonlisp
rotateq has left #commonlisp [ERC (IRC client for Emacs 27.2)]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
unyu has joined #commonlisp
pieguy128 has quit [Ping timeout: 256 seconds]
Posterdati has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
pieguy128 has joined #commonlisp
<phoe> Online Lisp Meeting #13 starting in 20 minutes: https://www.twitch.tv/TwitchPlaysCommonLisp
pieguy128 has quit [Ping timeout: 256 seconds]
booaa has quit [Ping timeout: 256 seconds]
<mfiano> At last, a useful time for America
<phoe> dbotton requested it, hence I complied
<phoe> speakers' preference is of highest priority here
thomaslewis has joined #commonlisp
<etimmons> exciting! I'm hoping to put together one in a couple months. (and would probably request this time as well)
<phoe> sure! I'll accept it and gladly display it
<dbotton> It is not such a bad time for Europe, early evening
<phoe> yes
<phoe> although bad for Australians and Asia
<phoe> timezones are, as always, a hard problem
thomaslewis has left #commonlisp [#commonlisp]
domovod has quit [Ping timeout: 240 seconds]
domovod has joined #commonlisp
MajorBiscuit has quit [Quit: WeeChat 3.3]
jealousmonk has joined #commonlisp
thomp has joined #commonlisp
kevingal has joined #commonlisp
cage has joined #commonlisp
Kyuvi has quit [Quit: Client closed]
mgl has quit [Quit: Client closed]
Algernon91 has joined #commonlisp
Algernon69 has quit [Ping timeout: 252 seconds]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
Jing has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jstoddard has joined #commonlisp
<cage> dbotton: can we draw on the html canvas using clog?
<cage> thanks ;-)
<cage> found the tutorial, nice!
lisp123 has joined #commonlisp
<lisp123> beach: Looking forward to reading the latest ideas soon
<minion> lisp123, memo from phoe: individual hash tables for functions will be faster and individual caches can be easily removed this way
<lisp123> Equill & rotateq - I know what you mean on perfection
domovod has quit [Quit: WeeChat 3.4]
aartaka has quit [Ping timeout: 256 seconds]
<lisp123> My latest theory is that the expressivity and freedom offered by Lisp (by providing building blocks that can be combined vs. a restrictive dogmatic language like others) makes it difficult for many to program in
aartaka has joined #commonlisp
<dbotton> cage - yes there is a tutorial on it
<lisp123> And that's one of the reasons why other languages became more popular. They are "easier" to get something done - whereas there seems to a curse in lisp where many keep striving for perfection
<etimmons> Thanks phoe and dbotton!
<drakonis> oh, latest ideas?
<lisp123> (well at least for me - i feel some times I'm spinning wheels and not progressing fast enough)
<cage> dbotton: found them! Seems a very nice project CLOG, thanks for writing it and showing to us :)
<phoe> The Common Lisp Omnificent GUI - Online Lisp Meeting #13, 11.01.2022 - https://youtu.be/SeYK7Id3cd8 + https://youtu.be/pkQ-WlzQudw
VincentVega has joined #commonlisp
<cage> dbotton: i wonder if was possible to attach clog lambda function (so to say) to canvas event (like mouse clicking)
sveit_ has joined #commonlisp
<sveit_> hi. I am confused about inheritance of metaclasses, and I was wondering if someone could explain what is going on. More specifically, the following code gives an error in SBCL:
<sveit_> (defclass a () () (:metaclass closer-mop:funcallable-standard-class)) (defclass b (a) ()) (make-instance 'b)
<sveit_> the definition of class b seems clear, what is the "right" way to fix this and make b inherit the metaclass as well? and why does it not do so "automatically"?
<jackdaniel> you need to specify the metaclass also for class b
<jackdaniel> it doesn't do so, defclass defaults to standard-class
mmk2410 has quit [Quit: ZNC - https://znc.in]
<phoe> I was curious if there is some way to automatically inject the proper metaclass based on stuff like in https://github.com/phoe-trash/value-semantics-utils/blob/main/src/always-bound-class.lisp#L20-L33
<phoe> but I have no idea how/if that would work with DEFCLASS
mmk2410 has joined #commonlisp
<lisp123> phoe: thanks for posting, watching now
<phoe> and I have no time to explore it now because I need to run :(
<phoe> lisp123: no problem
<Equill> lisp123win: you may have a point there. I've seen senior Java developers look *scared* at the mention of Lisp. I suspect the fear of freedom (and the responsibility of choice that comes with it) is a factor. But I've also come to see functional and procedural/imperative programming as transform-oriented and register-oriented respectively, and the underlying mindsets are just wildly different.
<sveit_> i see. if you don't mind, can you explain (1) the rationale behind such a decision and (2) can I signal to some part of MOP that when inheriting from 'a one should inherit the metaclass?
rotateq has joined #commonlisp
<Equill> Some people are just much more comfortable with the idea of rephrasing the problem to suit the machine, than phrasing it in terms of what you do to the data on its way through.
<dbotton> cage yes and no, the canvas is just a bitmap so there are limits to what you can do out of the box.
<yitzi> sveit_: I don't think that the metaclass has to be the same, just compatible according to validate-superclass.
<phoe> ;; Equill: whereas lisp people are comfortable with doing both, always at the same time, while also adding tons of abstractions along the way
* phoe runs off
<Equill> ...kinda :)
<phoe> and macros
<jackdaniel> yitzi: but the expectation here is that sveit_ want's to make an instance of funcallable-standard-class, not standard-class
<phoe> everyone loves macros
* Equill looks at his own code
<cage> dbotton: thanks!
<Equill> Less imperative than it used to be, but that's more to do with switching from cl-who to html-template :)
<lisp123> Equill: That's an interesting way to put it
<jackdaniel> sveit_: I can't speak on behalf of the standard authors, but I rationalize it this way, that when the reader sees (defclass foo …) they assume standard class
<jackdaniel> so implicit change to that would make the code less readable
<sveit_> yitzi, jackdaniel: yes, jackdaniel is right with what I want; (defclass a () () (:metaclass closer-mop:funcallable-standard-class)), and inheriting from 'a means your metaclass becomes closer-mop:funcallable-standard-class (and in general 'a metaclass)
<Bike> sveit_: for one thing, the metaclass can affect the way inheritance works. the system can't be sure what classes a new class inherits from until it knows the metaclass and makes an instance of it.
<Equill> phoe: I love having macros available for when I need to call on them, but apparently I just don't build anything big enough to actually need them.
<lisp123> Equill: I did A LOT of Microsoft Excel (5 - 10 years daily), which is not a programming language in any way, but it made "transform-oriented" much more natural to me. So Lisp felt natural from day 1 and since I dislike too much of an imperative style
<Bike> e.g. just yesterday phoe sent me some code with a metaclass that made it so that (defclass foo () ... (:metaclass ...)) would result in foo inheriting from a FOO-OBJECT class instead of STANDARD-OBJECT
<rotateq> Equill: It hasn't be big to make sense having more. :)
<sveit_> I guess my case is also special since funcallable-standard-class seems to be a strict superset of standard-class, so it would not break anything to force children of b to have a's metaclass in this case. i suspect (given how big MOP seems to be, although i know very little of it) that somehow i can encode this fact
<Equill> lisp123win: that makes sense. And it _is_ programming, just in more of a declarative idiom. But you also have my sympathy for having to spend so much time in it :)
<sveit_> sorry, chidren of a to have a's metaclass
pjb has quit [Ping timeout: 268 seconds]
<Bike> funcallable-standard-class is actually a subclass of standard-class
<Bike> although i guess by superset you mean that it seems to be standard-class with some extra stuff
<Bike> under the hood, this is not necessarily the case; a standard instance (i.e. instance of a standard-class) may be represented differently and incompatibly from a funcallable standard instance
<sveit_> Bike: exactly, so in this case it seems (and in my case it is essential) that inheriting from 'a (i.e. being a subclass of 'a) means your metaclass becomes that of 'a (or a child of it's metaclass).
<Bike> in this case it is important you keep the metaclass, yes. but as i mentioned above, it is not possible to determine inheritance before knowing the metaclass, in general.
thomaslewis has joined #commonlisp
<Bike> also, even if that were not the case, you could have a situation with multiple inheritance in which the superclasses have different metaclasses.
<lisp123> Equill: I actually don't mind it at all :-) What does suck is Microsoft's closed APIs so its very difficult to do anything significant programmatically outside of VBA
thomaslewis has left #commonlisp [#commonlisp]
<Equill> lisp123win: that was a pretty hostile design decision, but I'll spare you my grumbling about what they were like pre-Satya Nadella :)
<sveit_> Bike: thanks, I understand the default behaviour better now. Is there a way to modify it in this case? :) of course I am also interested more generally if I can let MOP know some special precedence of metaclasses in special cases
<lisp123> Equill: We are getting off topic, but its not much better these days. Today I tried renaming a file, but that feature is only available if I save on One Drive and not locally
thomaslewis has joined #commonlisp
<Equill> lisp123win: dang. And yes, we're way off-topic now.
thomaslewis has left #commonlisp [#commonlisp]
<phoe> #lispcafe might welcome this discussion
<Bike> sveit_: again, the usual procedure is that the system figures out the metaclass based on :metaclass or the default, and then makes an instance of it, passing in the specified list of direct superclasses. you're talking about doing it in the opposite order, and there's no way for the system to understand that it should do something different with the metaclass when it does that before dealing with the
* phoe disappears again
<Bike> superclasses.
<Bike> sveit_: easy way out is to define a macro that does defclass with a :metaclass specified for you.
brandflake11 has joined #commonlisp
<jackdaniel> (defmacro define-class (name super &rest args) `(defclass ,name ,super ,@args (:metaclass ,(class-name (class-of (find-class (first super)))))))
kevingal has quit [Remote host closed the connection]
VincentVega has quit [Quit: ERC (IRC client for Emacs 27.2)]
<pl> lisp123: have you tried MSOffice OLE Automation APIs?
<pl> There was even in older days a lisper here who used ECL to build commercial, custom Excel extensions with those APIs
<sveit_> Bike: i would have guessed there would be a more "CLOSY" way of doing it by specializing initialize-instance with an :around method or something of the sort.
VincentVega has joined #commonlisp
<jackdaniel> defclass expands to ensure-class that calls ensure-class-using-class
<Bike> sveit_: but like, what would you be initializing? the new class. and in order to make the new class, you need to know its class, i.e. the metaclass.
<jackdaniel> you could specialize the latter
<jackdaniel> and check for the key metaclass, if not supplied then you may change the default value
lisp123 has quit [Remote host closed the connection]
Equill has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
<jackdaniel> that said you'd need to specialize on something, and as bike says, the class is already a metaobject (or nil)
<jackdaniel> when it is nil then you can't really specialize, when it is /something/ then what you are doing is redefining the class, so that's not a good way of doing things
brandflake11 has quit [Ping timeout: 240 seconds]
victor has joined #commonlisp
<sveit_> I see, thanks for the explanation. that's too bad, it seems a bit inelegant from the design perspective (surely /sometimes/ it makes sense to inherit the metaclass, and from my perspective it seems actually that if one is inheriting from some non-standard metaclass almost always you want to either have the same or a child metaclass of at least one of the parents)
Algernon91 has quit [Ping timeout: 240 seconds]
brandflake11 has joined #commonlisp
brandflake11 has quit [Ping timeout: 240 seconds]
Oladon has joined #commonlisp
pjb has joined #commonlisp
miique_ has quit [Ping timeout: 256 seconds]
miique has joined #commonlisp
masinter has joined #commonlisp
gxt has quit [Ping timeout: 276 seconds]
gxt has joined #commonlisp
Algernon91 has joined #commonlisp
miique_ has joined #commonlisp
miique has quit [Ping timeout: 240 seconds]
notzmv has quit [Ping timeout: 268 seconds]
treflip has quit [Quit: ERC (IRC client for Emacs 27.2)]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
Algernon91 has quit [Ping timeout: 240 seconds]
waleee has joined #commonlisp
pieguy128 has joined #commonlisp
pieguy128 has quit [Ping timeout: 240 seconds]
Inline has quit [Quit: Leaving]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
miique has joined #commonlisp
miique_ has quit [Ping timeout: 256 seconds]
theothornhill has joined #commonlisp
lisp123 has joined #commonlisp
pieguy128 has joined #commonlisp
theothornhill has quit [Remote host closed the connection]
lisp123 has quit [Ping timeout: 256 seconds]
theothornhill has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
Inline has joined #commonlisp
Inline has quit [Remote host closed the connection]
cosimone has quit [Remote host closed the connection]
cosimone has joined #commonlisp
morganw has joined #commonlisp
cosimone has quit [Quit: ERC (IRC client for Emacs 27.1)]
cosimone has joined #commonlisp
Kyuvi has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
gaqwas has joined #commonlisp
theothornhill has quit [Remote host closed the connection]
gaqwas has quit [Remote host closed the connection]
tyson2 has quit [Remote host closed the connection]
theothornhill has joined #commonlisp
Catie has joined #commonlisp
thomaslewis has joined #commonlisp
zacts has quit [Ping timeout: 250 seconds]
VincentVega has quit [Quit: ERC (IRC client for Emacs 27.2)]
thomaslewis has left #commonlisp [#commonlisp]
VincentVega has joined #commonlisp
miique has quit [Read error: Connection reset by peer]
miique has joined #commonlisp
masinter has left #commonlisp [#commonlisp]
dstein64- has joined #commonlisp
dstein64 has quit [Ping timeout: 256 seconds]
dstein64- is now known as dstein64
fe[nl]ix has quit [Remote host closed the connection]
Oladon has quit [Quit: Leaving.]
Everything has quit [Quit: leaving]
aartaka has quit [Ping timeout: 240 seconds]
fe[nl]ix has joined #commonlisp
victor has quit [Quit: Connection closed for inactivity]
pve has quit [Quit: leaving]
kevingal has joined #commonlisp
notzmv has joined #commonlisp
gaqwas has joined #commonlisp
user51 has quit [Remote host closed the connection]
ec has joined #commonlisp
biog has quit [Quit: ZZZzzz…]
thomaslewis has joined #commonlisp
Inline has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
karlosz_ has joined #commonlisp
anddam has quit [Quit: WeeChat 3.3]
anddam has joined #commonlisp
karlosz_ has quit [Quit: karlosz_]
lisp123 has joined #commonlisp
biog has joined #commonlisp
euandreh has quit [Ping timeout: 240 seconds]
breakwindows has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
Kyuvi has quit [Ping timeout: 256 seconds]
ec has quit [Ping timeout: 276 seconds]
nature has quit [Ping timeout: 240 seconds]
euandreh has joined #commonlisp
White_Flame has quit [Remote host closed the connection]
White_Flame has joined #commonlisp
<etimmons> fe[nl]ix: Did Travis stop working on osicat again?
<etimmons> I was going to merge #56, but Travis doesn't seem to be running (and it doesn't look like it ran on the latest master commit either)
thomp has quit [Ping timeout: 268 seconds]
breakwindows has quit [Ping timeout: 256 seconds]
gaqwas has quit [Remote host closed the connection]
Algernon69 has joined #commonlisp
rgherdt has quit [Ping timeout: 268 seconds]
Algernon91 has joined #commonlisp
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
Algernon69 has quit [Ping timeout: 240 seconds]
amb007 has quit [Ping timeout: 256 seconds]
<fe[nl]ix> etimmons: yes, their free credits expired
<fe[nl]ix> I already emailed support asking for more credits
<fe[nl]ix> but I haven't heard back
miique has quit [Ping timeout: 256 seconds]
<etimmons> ok
<fe[nl]ix> in any case, maybe you should look into the test failures on ccl/ecl/clisp
<etimmons> Yep, that's what #56 was aimed at
<etimmons> It fixed everything before I rebased it just now
<fe[nl]ix> cool
<etimmons> I don't see any reason the rebase would have changed that, but I'll double check the tests locally before merging
cosimone has quit [Read error: Connection reset by peer]
<fe[nl]ix> I pinged support again
<fe[nl]ix> at this point, I'm inclined towards switching to Github actions, but I need to work on a way to setup CI easily on Github
biog has quit [Quit: ZZZzzz…]
gpiero has quit [Quit: Quitting...]
pillton has joined #commonlisp
<etimmons> Yeah, Travis seems unfortunately dead at the moment unless you pay them $$$
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<etimmons> I realized I pointed you at 40ants/ci earlier. But An easier place to start might be https://github.com/40ants/setup-lisp
rotateq has quit [Quit: ERC (IRC client for Emacs 27.2)]
gpiero has joined #commonlisp
<etimmons> It uses Roswell, which I have feelings about. But might be a good starting point if you're looking to do things the GitHub way and want to make a custom action
biog has joined #commonlisp
attila_lendvai has quit [Ping timeout: 240 seconds]
cosimone has joined #commonlisp
Algernon91 has quit [Read error: Network is unreachable]
theothornhill has quit [Remote host closed the connection]
gaqwas has joined #commonlisp
miique has joined #commonlisp
kevingal has quit [Remote host closed the connection]
<luis> Bonus points if we can test on Windows and OS X too! :D
<fe[nl]ix> don't know about Windows
<fe[nl]ix> OSX might be doable
<etimmons> Actions supports Windows. Even has mingw preinstalled
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
tyson2 has joined #commonlisp
gaqwas has quit [Ping timeout: 256 seconds]
asarch has joined #commonlisp
<asarch> Free e-books! https://bit.ly/3omYAlG
asarch was kicked from #commonlisp by fe[nl]ix [asarch]
asarch has joined #commonlisp
<asarch> Why?
<fe[nl]ix> this is not a channel for peddling copyright infringement
<fe[nl]ix> do it again and you'll get banned
<asarch> Well, I didn't know there were illegal
<asarch> As far I know, some times publishing companies gives them for free
<asarch> Packt for example
<mfiano> I don't think ignorance is an excuse in any jurisdiction.
<asarch> And even there is a copyright sign in the site: Copyright 2022 © ebooks-pdf.com
<asarch> Anyway, I won't do that again