jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | offtopic --> #lispcafe
<xristos> SBCL/MPS would be nice
<xristos> (not to say that clasp isn't nice)
<fwoaroof[m]> Is MPS a low-latency GC?
<drmeister> Do you mean low pause times? Ravenbrook has done work to guarantee that any pause time is less than a user defined time limit.
<fwoaroof[m]> (I had some significant performance/stability improvements switching to Shenandoah in a JVM application I work on)
xkapastel has joined #lisp
<fwoaroof[m]> Yeah
<fwoaroof[m]> Ideally "pauseless"
<drmeister> No - I don't think it's that. I don't have a lot of experience running it. I have a great deal of experience programming with it and debugging it.
<drmeister> I look forward to spending more time running it. (sigh)
<fwoaroof[m]> As far as startup time goes, isn't the party line "who stops their repl?"
* drmeister never gets invited to those kind of parties.
notzmv has quit [Ping timeout: 246 seconds]
<drmeister> (snort)
quazimodo has quit [Ping timeout: 246 seconds]
notzmv has joined #lisp
<drmeister> dim: Don't be surprised though that clasp is slower than sbcl.
<drmeister> We just added type inference and we are making progress in improving performance - but sbcl still beats us.
<drmeister> Some sbcl developer sold their soul to the devil - I'm sure.
<drmeister> What I mean is that sbcl has an extremely impressive compiler - it's fast and generates fast code. But we all know that.
<edgar-rft> I'm not so sure that the devil will *pay* something for sbcl develper's souls.
quazimodo has joined #lisp
yitzi has joined #lisp
Oladon has quit [Quit: Leaving.]
ralt has quit [Quit: Connection closed for inactivity]
troydm has quit [Ping timeout: 256 seconds]
bilegeek has quit [Quit: Leaving]
troydm has joined #lisp
satousan has joined #lisp
dominic34 has joined #lisp
akoana has joined #lisp
wxie has joined #lisp
mangoicedtea has quit [Quit: Leaving]
quazimod1 has joined #lisp
quazimodo has quit [Ping timeout: 260 seconds]
bilegeek has joined #lisp
copec has quit [Quit: checkity check out.]
copec has joined #lisp
Josh_2 has quit [Remote host closed the connection]
Josh_2 has joined #lisp
nicktick has joined #lisp
red-dot has quit [Read error: Connection reset by peer]
red-dot has joined #lisp
jw4 has quit [Quit: tot siens]
physpi has quit [Ping timeout: 246 seconds]
jw4 has joined #lisp
physpi has joined #lisp
Bike has quit [Quit: leaving]
hsaziz has joined #lisp
<p_l> edgar-rft: he does during the regular poker game?
* p_l ducks
yitzi has quit [Quit: yitzi]
bhartrihari has left #lisp ["Disconnected: closed"]
epony has quit [Quit: reconfigure]
epony has joined #lisp
<edgar-rft> p_l: I'm not entirely sure but I think the GPL says that the devil gets your sould for free.
<p_l> edgar-rft: note that SBCL isn't GPL
wxie has quit [Ping timeout: 260 seconds]
<edgar-rft> Hmm, SBCL says my soul is public domain? -> http://www.sbcl.org/history.html
<emacsomancer> GPL says that the devil is free to copy and share your soul
cjb has quit [Quit: ERC (IRC client for Emacs 27.1)]
space_otter has joined #lisp
EvW1 has quit [Ping timeout: 256 seconds]
nicktick has quit [Ping timeout: 265 seconds]
nicktick has joined #lisp
gko has quit [Remote host closed the connection]
luckless_ has quit [Ping timeout: 240 seconds]
luckless_ has joined #lisp
<p_l> so long as he accepts the brand
<p_l> on any change to the soul he does
<p_l> edgar-rft: at least you don't need to sell your soul to the devil to make a clean from source compile of SBCL
satousan has quit [Quit: WeeChat 2.3]
<p_l> as far as I know, that's not the case for its progenitor
gko has joined #lisp
zigpaw has quit [Ping timeout: 260 seconds]
zigpaw has joined #lisp
satousan has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
bhartrihari has joined #lisp
terpri__ is now known as terpri
cosimone has joined #lisp
Alfr_ has joined #lisp
mokulus has quit [Ping timeout: 256 seconds]
nullman has quit [Ping timeout: 256 seconds]
space_otter has quit [Ping timeout: 256 seconds]
zaquest has quit [Ping timeout: 256 seconds]
z3t0 has quit [Ping timeout: 256 seconds]
cjb has joined #lisp
torbo has quit [Remote host closed the connection]
Alfr__ has quit [Ping timeout: 260 seconds]
mokulus has joined #lisp
space_otter has joined #lisp
z3t0 has joined #lisp
zaquest has joined #lisp
nullman has joined #lisp
gko` has joined #lisp
ebrasca has quit [Remote host closed the connection]
satousan has quit [Quit: WeeChat 2.3]
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
Bit_MCP has joined #lisp
ajithmk has joined #lisp
<beach> Good morning everyone!
gioyik has quit [Read error: Connection reset by peer]
<sm2n> good night ;)
shifty has joined #lisp
gioyik has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
nicktick has quit [Ping timeout: 256 seconds]
nicktick has joined #lisp
Bit_MCP has quit [Ping timeout: 256 seconds]
nicktick has quit [Ping timeout: 265 seconds]
_whitelogger has joined #lisp
beach` has joined #lisp
beach has quit [Disconnected by services]
beach` is now known as beach
mfiano has quit [Ping timeout: 256 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ is now known as Lord_of_Life
_paul0 has joined #lisp
paul0 has quit [Ping timeout: 240 seconds]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
rilez has joined #lisp
jw4 has quit [Quit: tot siens]
mfiano has joined #lisp
jw4 has joined #lisp
dominic35 has joined #lisp
dominic34 has quit [Ping timeout: 260 seconds]
dominic35 is now known as dominic34
gravicappa has joined #lisp
rilez has quit [Ping timeout: 245 seconds]
choegusung has joined #lisp
iissaacc has joined #lisp
<iissaacc> howdy
bhartrihari has left #lisp ["Disconnected: closed"]
mankaev has quit [Ping timeout: 272 seconds]
mankaev has joined #lisp
bhartrihari has joined #lisp
iissaacc has quit [Remote host closed the connection]
iissaacc has joined #lisp
bocaneri has joined #lisp
<beach> Hello iissaacc.
Oladon has joined #lisp
<edgar-rft> where's jacob?
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
choegusung has quit [Quit: leaving]
lucasb has quit [Quit: Connection closed for inactivity]
mrcom has quit [Read error: Connection reset by peer]
iissaacc has quit [Ping timeout: 246 seconds]
iissaacc has joined #lisp
ajithmk has quit [Quit: Connection closed for inactivity]
shifty has quit [Ping timeout: 256 seconds]
iissaacc has quit [Ping timeout: 240 seconds]
nicktick has joined #lisp
dominic34 has quit [Ping timeout: 256 seconds]
treflip has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
ukari has quit [Remote host closed the connection]
iissaacc has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
mrcom has joined #lisp
gravicappa has quit [Ping timeout: 264 seconds]
Oladon has quit [Quit: Leaving.]
bilegeek has quit [Ping timeout: 256 seconds]
<jdz> dim: My guess would be that SBCL has a fixed heap size, but CCL will dig into RAM until it is exhausted.
<jdz> But I also like memory behavior of CCL better than SBCL, although having software with no upper bound to memory consumption is questionable.
justsomeguy has joined #lisp
iissaacc has quit [Read error: Connection reset by peer]
notzmv has quit [Ping timeout: 256 seconds]
ahungry has quit [Remote host closed the connection]
pragmaticdog has joined #lisp
pragmaticdog has quit [Quit: leaving]
vutral has quit [Quit: Connection closed for inactivity]
orivej has joined #lisp
<aeth> Doesn't SBCL have a fixed default, like 1 GB or something (the manpage says it's platform-dependent)? Depending on what you're doing, you might prefer if it sets the starting heap based on total RAM instead, even though you can't adjust it later. There might be a way. "--dynamic-space-size <megabytes>" if that's launched from a shell script, there's probably something you can put inside of a $() to come up with a reasonable value.
<aeth> Of course, if that's already done, then something else is up.
justsomeguy has quit []
jurov_ has joined #lisp
jurov has quit [Ping timeout: 246 seconds]
orivej has quit [Quit: orivej]
bsd4me has quit [Remote host closed the connection]
Cymew has joined #lisp
jonatack has quit [Quit: jonatack]
cjb has quit [Quit: byes]
cosimone_ has joined #lisp
cosimone has quit [Ping timeout: 246 seconds]
pve has joined #lisp
<luis> aeth: somewhat surprisingly, the GC will automatically use more space proportionally to the dynamic space size, so you're not just increasing the upper bound but also the lower bound (average bound? something like that)
treflip has quit [Quit: WeeChat 2.6]
treflip has joined #lisp
ralt has joined #lisp
terpri_ has joined #lisp
gxt has joined #lisp
terpri has quit [Ping timeout: 260 seconds]
gioyik has quit [Quit: WeeChat 2.9]
dilated_dinosaur has joined #lisp
terpri_ has quit [Remote host closed the connection]
terpri_ has joined #lisp
hendursa1 has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
terpri_ has quit [Remote host closed the connection]
terpri_ has joined #lisp
jonatack has joined #lisp
gravicappa has joined #lisp
<p_l> SBCL on amd64 has default dynamic space size of 8GB. CCL on the same platform uses default dynamic space of 512GB
treflip has quit [Quit: WeeChat 2.6]
space_otter has quit [Remote host closed the connection]
* edgar-rft wants dynamic tab size
treflip has joined #lisp
edgar-rft has quit [Quit: Leaving]
dra has joined #lisp
<dra> Hello!
<beach> Hello dra.
<p_l> luis: ahh, changed 3 years ago
<p_l> it was 8GB in 2009
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
<phoe> 2009 was two years ago
<luis> time flies
<beach> Time flies like an arrow.
jibanes has quit [Ping timeout: 246 seconds]
jibanes has joined #lisp
<pve> Good morning! As part of a dogfooding exercise, I've made a simple linked list class, and now I'm looking at the output from sb-sprof and I'm wondering if someone could help me interpret it.
<pve> is it so that the top 7 are related to method dispatch?
<beach> I am not an expert, but it looks that way to me. SBCL generic dispatch is apparently not that great.
<pve> beach: thank you
<pve> and ouch
treflip has quit [Quit: WeeChat 2.6]
<beach> SBCL uses PCL which was designed at a time when a memory access had roughly the same cost as a register operation, so table-driven techniques seemed appropriate at the time.
<jdz> To me it seems the offending one is number 15, and the next number 8.
<jdz> Although on a second look I think I'm wrong.
<beach> Isn't the "Total" every sample that had this thing on the stack?
<beach> I looked into this recently.
<beach> I think I made the same mistake you did.
<pve> jdz: yes, it's a merge sort I'm profiling, so I would expect that to be high
<jdz> beach: Right, that seems to be the case for me, as well. Not profiling my code often enough.
<beach> I know what you mean.
<jdz> (On the bright side - the code is fast enough most of the time.)
<jdz> pve: Also do two consecutive profiling runs show the same picture?
<jdz> In the same image, of course.
Josh_2 has quit [Remote host closed the connection]
<pve> jdz: hmm, yeah looks pretty similar
<jdz> That's good, then, meaning effective methods have been computed.
notzmv has joined #lisp
winny has quit [Changing host]
winny has joined #lisp
<pve> CL:SORT on a list is about a 100x faster :)
terpri_ is now known as terpri
orivej has joined #lisp
treflip has joined #lisp
<pve> beach: are table-driven techniques not appropriate anymore?
<pve> or rather, what are the alternatives?
yitzi has joined #lisp
mokulus has quit [Quit: WeeChat 2.9]
<beach> pve: That's correct, they are no longer appropriate. SICL generic dispatch compares a register to small constants, so the entire dispatch remains inside the processor.
nicktick has quit [Ping timeout: 246 seconds]
<pve> beach: thank you, I'll give that a read
<beach> Great! If you have any questions, feel free to ask. #sicl might be more appropriate depending on the level of detail.
<pve> will do
v88m has quit [Ping timeout: 260 seconds]
kaftejiman has joined #lisp
stux|RC has quit [Remote host closed the connection]
v88m has joined #lisp
stux|RC has joined #lisp
akoana has left #lisp ["Leaving"]
u0_a1561 has joined #lisp
<dim> jdz: typical memory usage of pgloader using CCL is ~400MB during a whole load, whereas it would exhaust a 4GB heap on SBCL with the same operation
u0_a156 has quit [Ping timeout: 260 seconds]
v88m has quit [Ping timeout: 240 seconds]
treflip has quit [Quit: WeeChat 2.6]
ayuce has joined #lisp
yitzi has quit [Quit: yitzi]
jeosol has quit [Remote host closed the connection]
v88m has joined #lisp
cosimone_ has quit [Remote host closed the connection]
SomeB has quit [Ping timeout: 246 seconds]
vaporatorius__ has joined #lisp
vaporatorius has quit [Ping timeout: 256 seconds]
random-nick has joined #lisp
notzmv has quit [Remote host closed the connection]
gravicappa has joined #lisp
hsaziz has quit [Ping timeout: 264 seconds]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 256 seconds]
jonatack has quit [Ping timeout: 256 seconds]
ebrasca has joined #lisp
kaftejiman has quit [Remote host closed the connection]
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
v88m has quit [Ping timeout: 256 seconds]
wxie has joined #lisp
ggole has joined #lisp
wsinatra has joined #lisp
gko_ has joined #lisp
gko has quit [Remote host closed the connection]
gko has joined #lisp
ldb has joined #lisp
<ldb> good evening
<beach> Hello ldb.
<ldb> beach: I'm reading the generic-dispatch paper. Does "immediate object" indicates that it is limited to certain data can be fit into a register?
<beach> If you give me the page reference, I'll tell you.
<phoe> beach: beginning of chapter 3
<ldb> beach: it's on page 3, section 3's first line
<phoe> "A SICL object is either an immediate object or a heap object."
<beach> Yes, correct.
<phoe> so if I read this correctly, this means fixnums, #+64bit single-floats, characters, and such
<beach> In SICL, only fixnums, characters, and single-floats are immediate objects.
<phoe> oh, okay
<ldb> ok, thank you for explaination
<beach> Pleasure.
Bike has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
treflip has joined #lisp
_jrjsmrtn has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 240 seconds]
peterhil has joined #lisp
<pve> beach: I've also read the paper, very interesting.. at some point I may want to think about how the dispatch is done in this little language I'm working on
kopiyka has joined #lisp
<beach> pve: Glad you liked it.
<pve> it's a bit simpler, in that methods "belong to classes" like in smalltalk, and they only specialize on the recipient of the message (i.e. "self")
wxie has quit [Ping timeout: 260 seconds]
<phoe> one option is to defer dispatch to the host CLOS and wait for that host CLOS to become good/fast enough
<pve> so every method is like (defmethod foo ((self myclass) a b c) ...)
<beach> pve: I see. That's known as "single dispatch"
<pve> phoe: that's how it's done now
<pve> beach: yes
<beach> So, I have a theory that C++ dispatch could be made faster if it used my technique. Currently, they try very hard to use a table-driven approach using so-called VTABLEs.
<beach> And I think when they have multiple inheritance, the tables must be nested, so that should result in several memory accesses.
<beach> But I don't know how deep into the standard this VTABLE business goes.
<beach> ... and I'm not about to find out. :)
<dlowe> the vtables aren't nested because they're static
<dlowe> all the resolution for the type is done at compile type
<dlowe> *time
<beach> That would be very sad for so-called virtual methods.
<jackdaniel> it is. this approach makes writing c++ class extensions as dynamically loaded libraries not feasible at all
<beach> "it is", i.e., "sad"?
<jackdaniel> yes
<dlowe> they're "v"tables only to support so-called virtual methods. Non-virtual methods are resolved according to declared type, ignoring the type of the object
<ldb> few languages make use of runtime dyanamic loading/linking
<dlowe> anyway, it's a sad state.
bitmapper has quit [Ping timeout: 240 seconds]
<jackdaniel> ldb: but C and C++ make use of it, and they are fairly popular. only dispatch in C++ is crooked with this regard
dyelar has quit [Quit: Leaving.]
dyelar has joined #lisp
ukari has joined #lisp
orivej has joined #lisp
ldb has left #lisp [#lisp]
cosimone has joined #lisp
gxt has quit [Quit: WeeChat 2.9]
jeosol has joined #lisp
jonatack has joined #lisp
treflip has quit [Quit: WeeChat 2.6]
shifty has joined #lisp
sjl_ has joined #lisp
Bit_MCP has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 265 seconds]
bsd4me has joined #lisp
rumbler31_ has joined #lisp
jonatack has joined #lisp
bitmapper has joined #lisp
treflip has joined #lisp
dra has quit [Remote host closed the connection]
dra has joined #lisp
ark has quit [Quit: ZNC 1.7.4 - https://znc.in]
random-nick has quit [Ping timeout: 240 seconds]
nicktick has joined #lisp
random-nick has joined #lisp
orivej has joined #lisp
xlei has quit [Ping timeout: 256 seconds]
ghard has joined #lisp
nicktick has quit [Ping timeout: 264 seconds]
cosimone has quit [Quit: Quit.]
galex-713 has quit [Ping timeout: 272 seconds]
orivej has quit [Ping timeout: 265 seconds]
<fwoaroof[m]> If you declare a method virtual in C++, it's dynamically resolved, right?
<fwoaroof[m]> (It's been a long time, and I see C++ developers complain about virtual methods all the time these days)
<beach> What are the complaints based on?
<fwoaroof[m]> I think it's a combination of dynamic dispatch being slow and dynamic dispatch makes control flow confusing
<fwoaroof[m]> But, I don't really follow the C++ community all that much :)
<beach> Yeah, me neither. But given the table-driven dispatch, it might be slow in the eyes of a C++ programmer.
<beach> But it was my impression that virtual methods and dynamic dispatch (which some people here say doesn't exist anymore) was one of the mechanisms required for the OO style that C++ recommends.
edgar-rft has joined #lisp
xlei has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
galex-713 has joined #lisp
akoana has joined #lisp
Cymew has quit [Quit: Konversation terminated!]
ayuce` has joined #lisp
<dra> beach: Who says dynamic dispatch doesn't exist anymore?
<beach> <dlowe> all the resolution for the type is done at compile time.
<beach> I don't believe it, but this is not the right forum to discuss C++ and its implementations, so I did not protest too much.
ayuce has quit [Ping timeout: 265 seconds]
caltelt has joined #lisp
<jackdaniel> "Since C++ does not support late binding, the virtual table in a C++ object cannot be modified at run-time, which limits the potential set of dispatch targets to a finite set chosen at compile time. "
<jackdaniel> that's a relevant part of the description of a dynamic dispatch in c++
terpri_ has joined #lisp
<jackdaniel> (taken from wikipedia, but it matches my prior knowledge) -- https://en.wikipedia.org/wiki/Dynamic_dispatch#C++_implementation
<dra> Regardless, dynamic dispatch would go through the table indirection.
<dra> Or through branches, i.e. "switchpatching".
<beach> Limiting it to a finite set sounds different from "all resolution is done at compile time"
<dra> So it's instruction cache vs. branch prediction. Not that it generally matters much anyway.
<fwoaroof[m]> Sorry, I was talking about style guides discouraging virtual methods
Lord_of_Life_ has joined #lisp
<dra> But you're right, this is #lisp, and
<beach> But I am not going to participate any further in this discussion. It is off topic, and I need to go start dinner anyway.
<jackdaniel> uhm, at least this "finite set" is what I've meant when I said that it is indeed sad and that you can't extend it by loading .so libraries
xlei has quit [Ping timeout: 256 seconds]
<dra> ... I'll just do a (typecase ..). ;)
Lord_of_Life has quit [Ping timeout: 240 seconds]
gaqwas has quit [Remote host closed the connection]
terpri has quit [Ping timeout: 240 seconds]
cosimone has joined #lisp
Lord_of_Life_ is now known as Lord_of_Life
Lycurgus has joined #lisp
akoana has left #lisp ["Leaving"]
gaqwas has joined #lisp
gaqwas has joined #lisp
ayuce` has quit [Remote host closed the connection]
Jesin has quit [Quit: Leaving]
yitzi has joined #lisp
ayuce has joined #lisp
Jesin has joined #lisp
treflip has quit [Quit: WeeChat 2.6]
_paul0 has quit [Quit: Leaving]
Lycurgus has quit [Remote host closed the connection]
terpri_ has quit [Remote host closed the connection]
terpri_ has joined #lisp
gko_ has quit [Ping timeout: 260 seconds]
xlei has joined #lisp
Josh_2 has joined #lisp
<Josh_2> Hi
<sjl_> This should work and return (1 nil 2 nil) right? (loop :with (a b) = '(1) :for (c d) = '(2) :do (return (list a b c d)))
<sjl_> clhs 6.1.1.7
<sjl_> > During loop expansion, each variable in the variable list is matched with the values in the values list. If there are more variables in the variable list than there are values in the values list, the remaining variables are given a value of nil.
<fwoaroof[m]> I think so
<sjl_> It works like I expect in SBCL and CCL, but signals an error in ECL and ABCL. Am I misreading the spec?
<fwoaroof[m]> It works that way in LispWorks too
xlei has quit [Ping timeout: 256 seconds]
<sjl_> It works as I expect in clisp too.
<easye> Apparently a bug in ABCL.
* jackdaniel pretends that he does not see the discussion
* fwoaroof[m] looks at jackdaniel
<sjl_> lol
* jackdaniel looks at fwoaroof[m]
Patternmaster has joined #lisp
<scymtym> jackdaniel: quick, check SICL loop. maybe it behaves like ECL and ABCL. you can still get a majority
<scymtym> oh, lispworks. only a tie then
<fwoaroof[m]> I think it's 4 work like sbcl and 2 not?
<fwoaroof[m]> clisp too
* scymtym goes back to something that does not involve counting
<sjl_> I don't have allegro or clasp on this machine to check those
<jackdaniel> thanks sjl_
<jackdaniel> LW does not count on freenode
<easye> sjl_: According to the CLHS paragraph you quoted, the references should clearly by NIL.
<jackdaniel> ;)
<sjl_> jackdaniel: thanks, sorry to give you more work, hah
* jackdaniel walks away while pretending that he does not hurry to be faster than easye with the fix
<sjl_> easye: yeah that was my reading. But two unrelated implementations having the same behavior made me second guess myself
<easye> Don'y worry, anybody would be faster than me.
<jackdaniel> well, using destructuring-bind is the most obvious choice for destructuring
<easye> Maybe we should just use SICL's LOOP to get around these issues.
<sjl_> It would be convenient if it destructured like destructuring-bind, but that would complicate the (loop for (a b c) of-type (integer integer float) in ...) type declaration syntax I guess
<sjl_> so it's not as full-featured as full d-b
<jackdaniel> easye: "just" using sicl's loop is buying into a strategy, where you bootstrap from fully-features common lisp - that is a fine strategy, but not something automatically agreeable. I think that sicl's loop implementation requires working loop implementation
<jackdaniel> s/fully-features/fully-featured/
<easye> jackdaniel: Aw.
<jackdaniel> you may always replace abcl's loop /after/ everything is built, so you have your old loop for building abcl, and this new loop for users
<jackdaniel> adopting first class global environments will allow even switching loop implementation by the user without breaking the implementation internals
<jackdaniel> but still doing all that is not the most obvious thing to do where it comes to fixing a bug ;)
<sjl_> jackdaniel: for 100% clarity, in the issue you linked, it should work for both WITH and FOR
<sjl_> not just WITH
<jackdaniel> right, I'll better add that to not forget to check
tcftbl has joined #lisp
<sjl_> No idea if with/for are implemented by the same code or not, so might be worth checking both.
<jackdaniel> true, I'll also add both checks to ansi-tests
<sjl_> (This also isn't super important to me, I can easily work around it.)
<jackdaniel> I understand, that makes that even more commendable that you've reported it ,-)
<fwoaroof[m]> I tend to care about this sort of issue, because it's the sort of thing that prevents me from using the libraries I like in LispWorks
<jackdaniel> I have non-computer thigns to do now, so see you o/
<fwoaroof[m]> (i.e. non-conforming assumptions)
<fwoaroof[m]> s/assumptions/implementations/
ferada has joined #lisp
<ferada> hiya, anyone worked with commonqt/qtools/... and possibly has an example of subclassing/delegates usage (e.g. for custom listview elements)?
CodeSpelunker has joined #lisp
<fwoaroof[m]> Shinmera has some examples in their github account
gaqwas has quit [Remote host closed the connection]
xlei has joined #lisp
<ferada> fwoaroof[m]: would you know which package?
<fwoaroof[m]> Depending what you need, maybe this? https://github.com/Shinmera/qtools/blob/master/examples/melody/melody.lisp
<fwoaroof[m]> I believe this also used qtools extensively: https://github.com/Shinmera/parasol
dra has quit [Remote host closed the connection]
orivej has joined #lisp
xlei has quit [Ping timeout: 256 seconds]
westerns has joined #lisp
<ferada> thanks
<fwoaroof[m]> I'm not sure how maintained those tools are anymore
<ferada> might actually work with define-override if i see it right
<fwoaroof[m]> QT is sort of annoying to target because they break things all the time
<ferada> well i had problems getting it running already, so there's that
ghard has quit [Ping timeout: 244 seconds]
<ferada> fwoaroof[m]: funny, i was gonna check it out since gtk has the same issue
<fwoaroof[m]> I think LTK might be the best bet
<ferada> brr
xlei has joined #lisp
xlei has quit [Excess Flood]
<fwoaroof[m]> I think it looks ok these days
<fwoaroof[m]> The other options are all built around OpenGL GUI libraries
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
xlei has joined #lisp
<fwoaroof[m]> Or, if you can afford it/are willing to pay, CAPI
<fwoaroof[m]> https://gitlab.com/eql/EQL5 maybe too, it's embedding strategy seems more stable to me than attempts to FFI
<fwoaroof[m]> The sad truth is, not many people care about native GUIs anymore
<fwoaroof[m]> 90% of new GUI tools are web applications embedded in Electron or similar
<ferada> true enough
<fwoaroof[m]> And that's if they don't just make you go to a web app in a browser
abhixec has joined #lisp
<fwoaroof[m]> There's some valiant efforts to maintain GUI toolkits in the various programming language communities, but there's little money or thanks in that effort
<ferada> sad that it's so inefficient
<fwoaroof[m]> And the big toolkits that do exist (Cocoa, Gtk, QT, Flutter) are actively hostile to using non-approved languages
<ferada> well i'd wish to have more resources to dedicate to native ui, but time's limited isn't it
<ferada> they're hostile to users too ...
<ferada> anyway, thanks for the links
<fwoaroof[m]> (I believe the Gtk developers, for example, explicitly have said something like "we don't care about non-Gnome use cases"
<ferada> ^ that
v88m has joined #lisp
<jackdaniel> ferada: join clim developers ranks ;-)
<jackdaniel> wi
<jackdaniel> s/wi//
CodeSpelunker has quit [Quit: CodeSpelunker]
CodeSpelunker has joined #lisp
<ferada> jackdaniel: looking into it yes :)
<ferada> certainly time better spent than more ffi wrangling
<jackdaniel> there is #clim channel
<jackdaniel> if you have questions
<jackdaniel> or suggestions of course
<ferada> will do will do
<fwoaroof[m]> I like CLIM, I wish it worked nicely on macs :(
<luna_is_here> Yeah... It is the decline of the desktop application. 10 years ago every language had bindings to all major GUI toolkits.
<luna_is_here> The good news is: People are now used to Web-Apps and do not care soooo much about native apps anymore.
<jackdaniel> it is not good news that you need a program bigger than your operating system (resource-wise) to run an hello world application
<luna_is_here> Well...
<jackdaniel> s/an/a/
<jackdaniel> and by "that" program I mean a web browser
<luna_is_here> It means that people are used to things that behave like web-apps.
<luna_is_here> Hence... All you need is a good theme for your app.
<luna_is_here> It does not have to be native.
<luna_is_here> It just have to look "modern" to be acceptable.
<fwoaroof[m]> Mostly, people don't know how nice their computing experience could be
<fwoaroof[m]> Everyone's used to bloated, un-integrated web apps these days
shifty has joined #lisp
<luna_is_here> Thus, having a modern theme for McCLIM might get you 95% of the way of a modern GUI in lisp, IMHO.
<luna_is_here> jackdaniel: I am also not a fan of Electron bloatware...
<jackdaniel> it is not about electron, I'm more concerned that my computer which is many times faster than my computer in 2000 feels actually slower ^_^
<fwoaroof[m]> I got a lot of compliments about a CAPI app I wrote on the side for some stuff at work
ggole has quit [Quit: Leaving]
<fwoaroof[m]> Out of the box, native apps on a Mac look good and work mostly as users expect them too
<luna_is_here> Depends on the expectations... I usually find MacOS apps quite ill-behaving. But, that is a matter of taste, I guess.
<fwoaroof[m]> The point is they work like each other
<fwoaroof[m]> If you don't like that, use something else :)
<luna_is_here> I know. But there is also a certain consistency between web-apps and people these days are used to that.
<luna_is_here> Anyways, I know what you mean. I also prefer applications that are well integrated into my desktop.
bocaneri has quit [Remote host closed the connection]
<luna_is_here> The question, however, is. Is it worth the extra effort, for example, for a language community to maintain bindings to all native GUIs and maybe a cross-platfrom toolkit on top.
<luna_is_here> Especially, when most people, these days, do not care.
<fwoaroof[m]> Programmers pretty clearly care, though
<fwoaroof[m]> Especially programmers that are interested in niche languages
<fwoaroof[m]> "What GUI toolkit should I use" is a very common question in Lisp/Haskell/Rust
kopiyka has quit [Remote host closed the connection]
kopiyka has joined #lisp
<luna_is_here> That they ask for any GUI toolkit does not mean that they care for a native one.
<luna_is_here> I have not said nobody cares about making GUI apps anymore.
<luna_is_here> And that this question pops up so frequently, probably means that there is currently no satisfying answer in all of these languages.
<fwoaroof[m]> Depends on what you mean by "native", but they often explicitly don't want a web frontend
<luna_is_here> A am not arguing for using a web frontend.
EvW has joined #lisp
<jasom> 11:05:07 luna_is_here | The good news is: People are now used to Web-Apps and do not care soooo much about native apps anymore.
<luna_is_here> I have explained what I mean by that in my messages after that one.
cosimone has quit [Remote host closed the connection]
<luna_is_here> With non-native, I do not mean web apps.
<Xach> hmm, I didn't know about Integrated Inference Machines - http://pt.withington.org/publications/LispM.pdf
<jasom> The problem is most non-native toolkits look more like win95 than like web-apps.
<luna_is_here> [19:58:55] <luna_is_here> Thus, having a modern theme for McCLIM might get you 95% of the way of a modern GUI in lisp, IMHO.
<luna_is_here> jasom: That is my point.
<jasom> you also need it to work on something other than X11 though; last I checked McCLIM didn't have a great story there.
<fwoaroof[m]> I believe there's some support for windows now
<luna_is_here> jasom: What do you mean by "it"?
<jasom> luna_is_here: McCLIM
<Xach> anyway, i stumbled across that because P.T. Withington worked for Laszlo Systems, and they had a GUI system designed around declarative constraints that I always found very interesting, but it petered out in the market.
<Xach> and i can remember "P.T. Withington" but not "OpenLaszlo" the product, so looking it up is always an adventure...
<luna_is_here> jasom: I see.
<fwoaroof[m]> My dad spoke highly of Laszlo
<fwoaroof[m]> It was always too tied to flash for me to get excited
<Xach> the final versions were targeted at html5
<Xach> too little, too late perhaps
<Xach> but P.T. also worked in the lisp world for a long time before that
<luna_is_here> Does this GTK+ server thing still exist?
<fwoaroof[m]> Last commit 2020-07
<fwoaroof[m]> That's cool
<luna_is_here> I did not expect this to still be alive.
<luna_is_here> They even claim to do GTK+3.
<fwoaroof[m]> That makes me a bit excited
<jasom> As a proof-of-concept, I also got gtksharp working with foil; that was kind of neat
<fwoaroof[m]> ABCL + a java toolkit is another option
<fwoaroof[m]> IntelliJ demonstrates that Swing can look ok
<luna_is_here> Also Matlab did that.
<luna_is_here> I mean... the Matlab GUI is maybe not cool, but does not look alien.
<fwoaroof[m]> There's also the eclipse toolkit... SWT?
<luna_is_here> Yes... It wraps native widgets.
<fwoaroof[m]> Yeah, that's the ideal
<luna_is_here> I have experienced it to break often for that reason.
tcftbl has quit [Ping timeout: 256 seconds]
<luna_is_here> Or look quite ugly.
<fwoaroof[m]> I want my GUIs to fit in, mostly
jw4 has quit [Read error: Connection reset by peer]
<fwoaroof[m]> The macOS demo there is what a GUI application should look like on a mac
<luna_is_here> The arrangement of a set of native widgets might look good on one platform, while the same arrangement can look terribel on another.
gaqwas has quit [Remote host closed the connection]
<luna_is_here> *terrible
<fwoaroof[m]> Yeah, that's hard to avoid, though: you basically just have to separate view/logic and pick the view based on the platform
jw4 has joined #lisp
<luna_is_here> So, you just write the GUI n times.
yitzi has quit [Read error: Connection reset by peer]
yitzi has joined #lisp
<jasom> separating view from logic can become complicated what happens when you hit the "up" arrow on a spinner that has a logical maximum value? Is the maximum value told to the view by the logic, or does the logic intercept the "up" event and decline to increment? Different GUI toolkits may prefer one way over the other
<jasom> oops; missed some punctuation after "complicated"
<fwoaroof[m]> yeah
<fwoaroof[m]> The other option is to pick a platform and limit your audience
<jasom> or implement a thin-client in N toolkits (and then usually ~N languages)
<luna_is_here> Now it depends on your audience, whether the audience cares for a native app. ;)
<fwoaroof[m]> But, there isn't really a good option here: electron/OpenGL GUIs just look wrong and often break OS features, multiple frontends is a maintenance burden and picking a platform restricts your audience
<fwoaroof[m]> Me, I pay for LispWorks and just write Mac apps :)
winny has quit [Ping timeout: 256 seconds]
shifty has quit [Ping timeout: 265 seconds]
<fwoaroof[m]> But, I'd pay LispWorks for access to a CI environment for building my apps for distribution on Linux/Windows
<Xach> that seems like a sensible option
shifty has joined #lisp
aeth is now known as `\
<luna_is_here> Does LispWorks has an Android GUI?
<jasom> I don't currently own a mac, but when I did, ltk made "not terrible" apps and tk was pre-installed on macs. Not sure if either/both of those are true anymore. Now that multiplatform implies at least iOS, I'm not certain there is any CL solution for GUIs anymore.
winny has joined #lisp
<luna_is_here> Btw. TK has native widgets, too.
`\ is now known as aeth
<Xach> there's a dangerous uncanny valley of native
<luna_is_here> Xach: Very true.
yitzi has quit [Read error: Connection reset by peer]
Lycurgus has joined #lisp
cosimone has joined #lisp
<aeth> Time freezes when you join here, so 2009 was 3 years ago, not 2.
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
tristero has joined #lisp
Jesin has quit [Ping timeout: 240 seconds]
yitzi has joined #lisp
<dlowe> Is mocl still active? That supported iOS, IIRC
theseb has joined #lisp
<jasom> dlowe: last I heard someone tried to contac the devs with no answer
<fwoaroof[m]> Xach: no, only a mobile runtime
<fwoaroof[m]> Sorry, that was for luna_is_here
<fwoaroof[m]> It's the most annoying bit: CAPI supports desktop well, mobile not at all
<luna_is_here> I see.
theseb has quit [Remote host closed the connection]
wsinatra has quit [Quit: WeeChat 2.9]
Jesin has joined #lisp
Jesin has quit [Remote host closed the connection]
xlei has quit [Ping timeout: 265 seconds]
xlei has joined #lisp
rumbler31_ has quit [Ping timeout: 240 seconds]
theseb has joined #lisp
Lycurgus has quit [Remote host closed the connection]
westerns has left #lisp [#lisp]
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
Jesin has joined #lisp
shka_ has quit [Quit: Konversation terminated!]
lottaquestions has quit [Ping timeout: 256 seconds]
In0perable has quit [Quit: All your buffer are belong to us!]
Inoperable has joined #lisp
Bit_MCP has quit [Ping timeout: 256 seconds]
EvW has quit [Ping timeout: 244 seconds]
bhartrihari has left #lisp ["Disconnected: closed"]
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
CodeSpelunker has quit [Quit: CodeSpelunker]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
satousan has joined #lisp
jurov_ is now known as jurov
EvW1 has joined #lisp
Mawile has joined #lisp
Archenoth has quit [Ping timeout: 246 seconds]
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
satousan has quit [Quit: WeeChat 2.3]
gaqwas has quit [Ping timeout: 256 seconds]
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
ayuce has quit [Remote host closed the connection]
gravicappa has quit [Ping timeout: 264 seconds]
u0_a1561 has quit [Quit: WeeChat 2.8]
u0_a156 has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
pve has quit [Quit: leaving]
galex-713 has quit [Ping timeout: 246 seconds]
cosimone has quit [Quit: Quit.]
kaftejiman has joined #lisp
ark has joined #lisp
bitmapper has quit [Read error: Connection reset by peer]
bitmapper has joined #lisp
quazimod1 has quit [Ping timeout: 264 seconds]
quazimodo has joined #lisp
tutti has joined #lisp
matijja has quit [Quit: bye]
matijja has joined #lisp
nicktick has joined #lisp
whiteline has quit [Ping timeout: 240 seconds]
gaqwas has quit [Ping timeout: 240 seconds]
shifty has quit [Ping timeout: 264 seconds]
shifty has joined #lisp
nicktick has quit [Ping timeout: 246 seconds]
nicktick has joined #lisp
rilez has joined #lisp
terpri__ has joined #lisp
terpri_ has quit [Ping timeout: 244 seconds]
Oladon has joined #lisp
sjl_ has quit [Ping timeout: 240 seconds]
random-nick has quit [Ping timeout: 265 seconds]
renzhi has joined #lisp
flazh has quit [Ping timeout: 256 seconds]
alandipert5 has joined #lisp
sm2n has quit [Read error: Connection reset by peer]
alandipert has quit [Ping timeout: 246 seconds]
alandipert5 is now known as alandipert
sm2n has joined #lisp
hsaziz has joined #lisp
rumbler31 has joined #lisp
dxtr has quit [Remote host closed the connection]
nicktick has quit [Ping timeout: 256 seconds]
Josh_2` has joined #lisp
Josh_2` has quit [Remote host closed the connection]
Josh_2 has quit [Ping timeout: 256 seconds]
akoana has joined #lisp
dilated_dinosaur has quit [Remote host closed the connection]
mangoicedtea has joined #lisp
quazimodo has quit [Ping timeout: 246 seconds]
eta has quit [Remote host closed the connection]
eta has joined #lisp
quazimodo has joined #lisp
tutti has quit [Remote host closed the connection]
<markasoftware> Is it possible for multiple classes to have the same symbol as a name?
<markasoftware> my intuition says no
<Bike> markasoftware: they can have the same name, but the symbol in the environment can only refer to one class, i.e. find-class returns only one thing.
Bourne has quit [Ping timeout: 256 seconds]
flazh has joined #lisp
dominic34 has joined #lisp
dominic34 has quit [Excess Flood]
dominic34 has joined #lisp
bilegeek has joined #lisp