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/>
<pjb> nij-: you may also consider using maxima.
<pjb> (but it's overkill as a 4-operation calculator).
random-nick has quit [Ping timeout: 260 seconds]
NotThatRPG has quit [Quit: Textual IRC Client: www.textualapp.com]
_triffid has joined #commonlisp
triffid has quit [Ping timeout: 255 seconds]
ClickHacker has quit [Ping timeout: 268 seconds]
attila_lendvai has quit [Ping timeout: 260 seconds]
ClickHacker has joined #commonlisp
seletz has joined #commonlisp
ClickHacker has quit [Read error: Connection reset by peer]
seletz has quit [Ping timeout: 265 seconds]
ClickHacker has joined #commonlisp
lagash_ has quit [Quit: ZNC - https://znc.in]
karlosz has quit [Quit: karlosz]
lagash_ has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
karlosz has joined #commonlisp
seletz has joined #commonlisp
karlosz has quit [Ping timeout: 252 seconds]
thebigstinky420 has joined #commonlisp
thebigstinky420 has quit [Client Quit]
seletz has quit [Ping timeout: 252 seconds]
ClickHacker has quit [Read error: Connection reset by peer]
jealousmonk has joined #commonlisp
ClickHacker has joined #commonlisp
ttree has quit [Ping timeout: 260 seconds]
Posterdati has quit [Ping timeout: 272 seconds]
snits has quit [Ping timeout: 260 seconds]
Posterdati has joined #commonlisp
ClickHacker has quit [Ping timeout: 272 seconds]
ClickHacker has joined #commonlisp
ec__ has quit [Remote host closed the connection]
ec__ has joined #commonlisp
deadmarshal_ has quit [Quit: IRCNow and Forever!]
dirtcastle has quit [Quit: IRCNow and Forever!]
<nij-> I'm sure maxima has that subcomponent..
<nij-> but I don't know how to just use that, and let lisp to parse the result into lisp.
<edgar-rft> nij-: there's an infix macro written by Mark Kantrowitz somewhere in the CMU archives that can compute infix math expressions
<edgar-rft> CLiki knows more about it -> https://www.cliki.net/Infix
<ixelp> CLiki: Infix
ClickHacker has quit [Ping timeout: 260 seconds]
ClickHacker has joined #commonlisp
deadmarshal_ has joined #commonlisp
dirtcastle has joined #commonlisp
masinter has joined #commonlisp
ec__ has quit [Remote host closed the connection]
ec has joined #commonlisp
ClickHacker has quit [Ping timeout: 265 seconds]
augendredoubt has quit [Ping timeout: 272 seconds]
waleee has quit [Ping timeout: 252 seconds]
ClickHacker has joined #commonlisp
ritchie101 has joined #commonlisp
ritchie101 has quit [Remote host closed the connection]
tyson2 has quit [Remote host closed the connection]
qhong_ has quit [Read error: Connection reset by peer]
qhong has joined #commonlisp
holycow has joined #commonlisp
<holycow> #clschool
ttree has joined #commonlisp
ClickHacker has quit [Ping timeout: 268 seconds]
jealousmonk has quit [Remote host closed the connection]
pranavats has left #commonlisp [Error from remote client]
ClickHacker has joined #commonlisp
azimut has quit [Ping timeout: 255 seconds]
kaskal has quit [Ping timeout: 268 seconds]
seletz has joined #commonlisp
nij- has quit [Ping timeout: 246 seconds]
seletz has quit [Ping timeout: 260 seconds]
jeosol has joined #commonlisp
Lycurgus has joined #commonlisp
ClickHacker has quit [Ping timeout: 265 seconds]
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
epony has quit [Quit: QUIT]
epony has joined #commonlisp
dcb has left #commonlisp [MSN Messenger 3.8]
mingus has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
seletz has joined #commonlisp
dec0d3r has quit [Quit: Leaving]
igemnace has joined #commonlisp
seletz has quit [Ping timeout: 260 seconds]
mingus1 has joined #commonlisp
mingus has quit [Ping timeout: 252 seconds]
mingus1 is now known as mingus
ttree has quit [Ping timeout: 260 seconds]
masinter has quit [Remote host closed the connection]
rgherdt has joined #commonlisp
kenran has joined #commonlisp
pve has joined #commonlisp
Cymew has joined #commonlisp
pranavats has joined #commonlisp
<jackdaniel> White_Flame: pjb: kakuhen: phoe: thanks. yes, after examining a bit closer the protocol, there is always a surrounding logand operator, so the negative value will be yanked either way, so I'm good with (logand #<something> (lognot #<the number>)) ; the issue was that the negation was used with unqualified integer values (i.e 3), so I couldn't know how many bits the number had
occ has joined #commonlisp
ldb has quit [Ping timeout: 260 seconds]
Sauvin has quit [Ping timeout: 265 seconds]
Bocaneri has joined #commonlisp
Bocaneri is now known as Guest4106
epony has quit [Read error: Connection reset by peer]
epony has joined #commonlisp
shka has joined #commonlisp
seletz has joined #commonlisp
dino_tutter has quit [Remote host closed the connection]
aartaka has joined #commonlisp
seletz has quit [Ping timeout: 246 seconds]
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
kenran` has joined #commonlisp
kenran has quit [Ping timeout: 256 seconds]
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 268 seconds]
MajorBiscuit has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
occ has quit [Ping timeout: 255 seconds]
aartaka has quit [Ping timeout: 272 seconds]
aartaka has joined #commonlisp
kenran` has quit [Remote host closed the connection]
rogersm has joined #commonlisp
nij- has joined #commonlisp
keef has joined #commonlisp
attila_lendvai has joined #commonlisp
keef has quit [Ping timeout: 260 seconds]
morganw has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
Guest4106 has quit [Ping timeout: 272 seconds]
Sauvin has joined #commonlisp
aartaka has quit [Ping timeout: 265 seconds]
aartaka has joined #commonlisp
nij- has quit [Ping timeout: 260 seconds]
victor has quit [Quit: Connection closed for inactivity]
VincentVega has joined #commonlisp
VincentVega has left #commonlisp [#commonlisp]
kaskal has joined #commonlisp
_cymew_ has joined #commonlisp
scymtym has joined #commonlisp
Brucio-61 has joined #commonlisp
mingus has quit [Ping timeout: 272 seconds]
mingus has joined #commonlisp
robin has quit [Ping timeout: 260 seconds]
augendredoubt has joined #commonlisp
robin has joined #commonlisp
genpaku has quit [Read error: Connection reset by peer]
random-nick has joined #commonlisp
robin has quit [Remote host closed the connection]
genpaku has joined #commonlisp
robin has joined #commonlisp
robin has quit [Remote host closed the connection]
robin has joined #commonlisp
robin has quit [Remote host closed the connection]
robin has joined #commonlisp
robin has quit [Remote host closed the connection]
robin has joined #commonlisp
robin has quit [Remote host closed the connection]
robin has joined #commonlisp
robin has quit [Remote host closed the connection]
MajorBiscuit has quit [Quit: WeeChat 3.6]
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #commonlisp
<jackdaniel> it is nice knowing that the android in kandria runs on genera
<Reinhilde> ?????????
<jackdaniel> there is a game recently published by Shinmera called kandria. I was commenting about the boot screen (which had an easter egg claiming that the system is genera)
<jackdaniel> sorry, spoiler ;p
<Shinmera> Not really a spoiler
<Shinmera> there's some more Genera refs too
<Reinhilde> I guess unix is just too clichéd and known by common people for you huh
<jackdaniel> spoiler for an easter egg, these things generally are meant to be found personally
<Shinmera> Reinhilde: the game is written in lisp, why would I make an easter egg for unix
<jackdaniel> Reinhilde: when you watch sci-fi movies you also make comments about how uncommon people outfits are? ;)
<Reinhilde> Shinmera, based
<Reinhilde> anyway
<Reinhilde> i should probably learn CL before I blab on too much
<hayley> Symbolics 2 confirmed
<hayley> (Or Symbolics 1 is still doing government contracts in 2396 - guess we'll have to wait and find out which happens.)
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #commonlisp
<Shinmera> I don't think any of us are going to find that out
<Nilby> spoiler: government creates the apocalyptic scenario using Genera
<Shinmera> now that's your idea
pranavats has joined #commonlisp
<Nilby> we'll see i guess
bilegeek has joined #commonlisp
bilegeek_ has joined #commonlisp
bilegeek has quit [Ping timeout: 255 seconds]
bilegeek_ has quit [Ping timeout: 255 seconds]
pranavats has left #commonlisp [Error from remote client]
aartaka has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
pranavats has joined #commonlisp
<pjb> hayley: it's not surprising, Symbolics and other people at the time doing government contracts were caught in some affair related to time travel, so you can find them spread out over several hundred years in the future…
azimut has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
agent1011001 has joined #commonlisp
cage has joined #commonlisp
nij- has joined #commonlisp
n0den1te has joined #commonlisp
aartaka has quit [Ping timeout: 255 seconds]
aartaka has joined #commonlisp
utis has joined #commonlisp
dino_tutter has joined #commonlisp
<utis> how does one get a pointer to a c function?
agent1011001 has quit [Quit: Client closed]
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
<pjb> utis: int foo(); { int (*pfoo)(); pfoo=&foo; }
masinter has joined #commonlisp
<pjb> utis: but actually the & is optional.
tyson2 has joined #commonlisp
<utis> thanks! is there a direct way to get it with cffi, or does one have to make a function that returns the address or something on the c side?
aartaka has quit [Ping timeout: 268 seconds]
mingus1 has joined #commonlisp
mingus has quit [Ping timeout: 252 seconds]
mingus1 is now known as mingus
occ has joined #commonlisp
<beach> Didier Verna is looking for people to teach object-oriented programming (using CLOS) at four different EPITA sites in France (Lyon, Rennes, Strasbourg, Toulouse), with 6x2 hours per site. If I understand things right, he is teaching the first 2 hour session, and the second session is between March 6 and April 3, with more flexibility for the remaining ones.
<beach> I think it is great that there are still universities in France that teach Common Lisp, and CLOS in particular.
<beach> There should even be some MOP features in the mix.
eron has joined #commonlisp
eron has left #commonlisp [#commonlisp]
<beach> He asked me to announce this information here, and you should contact him if you are interested, available, and qualified.
jmdaemon has joined #commonlisp
holycow has quit [Quit: Lost terminal]
frgo has joined #commonlisp
<Demosthenex> i'm pleased to reach day 6 of AOC in CL! woo! boy my code is ugly compared to some of the reddit posts though
<pjb> utis: a-priori, I would say that (defcffi foo …) (function foo) should give you what you want in lisp. Now it may not be possible to pass that back as a int(*) parameter to a C function. To pass a lisp function to C we use defcallback and (callback foo).
nij- has joined #commonlisp
jmdaemon has quit [Ping timeout: 272 seconds]
igemnace has quit [Remote host closed the connection]
<nij-> Anyone using sly? In the default setting from doomemacs all of the texts printed to standard output has a certain color. How do I change that color?
<pjb> utis: you can also use dlsym to get a pointer to a C function, if it's in the symbol table.
lagash_ has quit [Quit: ZNC - https://znc.in]
<pjb> utis: from the sources, it seems you can use foreign-symbol-pointer to get a pointer to the C function, and you can call it with foreign-funcall. Try it.
<pjb> nij-: move the cursor over that text, and M-x customize-face RET RET
<pjb> (it's generic emacs, not specific to sly)
<nij-> Grep changes the matched texts in terminal programatically. I wonder if I can replicate that in sly, pjb.
<pjb> you can add your own font-lock keywords in the terminal buffer, indeed.
Cymew has quit [Ping timeout: 246 seconds]
_cymew_ has quit [Ping timeout: 252 seconds]
<ixelp> Font Lock (GNU Emacs Manual)
VincentVega has joined #commonlisp
<Alfr> nij-, have a look at sly-mrepl-output-face.
<Alfr> nij-, that's wrt your earlier question.
jmdaemon has joined #commonlisp
<nij-> I don't have that variable in emacs @@
<nij-> Oh that's not a var, but a face! Lemme see.
lagash has joined #commonlisp
mingus1 has joined #commonlisp
varjag has joined #commonlisp
mingus has quit [Ping timeout: 252 seconds]
mingus1 is now known as mingus
<VincentVega> Hey, everyone! Want to announce something I am working on: /Project Mage/.
<VincentVega> It's an ecosystem aiming to displace Emacs, terminal emulators, contemporary Lisp IDEs, git, interactive notebooks (ala Jupyter), and all and any note-taking applications. And not just /displace/, but do so with /verve and panache/. It's a lofty goal, but I believe I can do a basic working system in 5 years:
<VincentVega> *Fern*: A tree-fiddling GUI toolkit w/ prototypes & constraints (already half-way there for the fundamentals; based on Garnet) -- 1 year.
<VincentVega> *Alchemy*: A seamlessly-structural IDE for CL -- 1.5 years.
<VincentVega> *Kraken/Hero*: knowledge-tracking w/ version control -- 2.5 years.
<VincentVega> All form a homogeneous power-user environment with a high degree of flexibility and composition. Majorly, there will be a specification for working with text /seamlessly/ -- *Rune*. That's a major differentiating aspect for the project.
<VincentVega> Some of you may wonder why I am not using McCLIM for GUI: many reasons. I have written a review here:
<ixelp> [Appendix] All Else is Not Enough
<VincentVega> (beach, jackdaniel: if you find it misrepresents the state of things, I don't want to spread misinfo, so don't hesitate to tell me I am wrong)
<VincentVega> Otherwise, please, find all the details here:
<ixelp> [Project Mage] The Power of Structure (+ Lisp!)
<VincentVega> I am not going to mince words: I need funding for me to be able to work on this. So, if you think you could use this, please, support the project. For a quick overview, see: https://patreon.com/projectmage
<VincentVega> And my apologies for the dump of text. I will stick around in this chat for a few days, so feel free to ask or criticize anything.
<VincentVega> Thank you.
<jackdaniel> VincentVega: your paraphrasing mcclim manual actually misrepresents the intention; it is not that the user is stupid - beating estabilished conventions is simply hard, and clim approaches building graphical applications from a different direction than widgets and callbacks
<jackdaniel> it is like trying to understand common lisp references after learning about C, pointers, copy by value, copy by something etc
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
<jackdaniel> I will read the article in more detail later, always happy to read critical remarks; I've just wanted to address that part since I've read it first :)
varjag has quit [Ping timeout: 246 seconds]
<VincentVega> jackdaniel: I understand, but I still find it an insincere way of putting it, because it's still not the reason why they have a hard time with it ¯\_(ツ)_/¯. I talk about it more down the line, though. And yeh, clim doesn't have callbacks?
lagash has quit [Quit: ZNC - https://znc.in]
<jackdaniel> I read it as an sincere admitting, that CLIM is unusual and if you don't understand it then don't feel stupid, quite contrary to what you have summarized but oh well
aartaka has joined #commonlisp
<jackdaniel> regarding callbacks, some gadgets define callbacks because clim 2 spec tries to cater to traditional gui expectations too, but that's somewhat glued to the clim as it is
<jackdaniel> I've elaborated on that a little on my blog
<ixelp> TurtleWare
<VincentVega> I will read that, thanks.
<jackdaniel> sure
lagash_ has joined #commonlisp
<VincentVega> Alright, I understand. I referred this to as an ambition to subsume native toolkitry, which it itself a mess. I think this is a fundamental flexibility problem, where the backends don
<VincentVega> 't have enough power to change the core system.
varjag has joined #commonlisp
<beach> What is a mess? Native "toolkitry" or the ambition to replace such "toolkitry"?
<VincentVega> Toolkitry, of course. But due to the ambition, the effect ripples down the consuming system, e.g. callbacks jackdaniel just mentioned. But I give an example of that in the article.
<jackdaniel> I think that backend can customize plenty of things, especially because a backend may define both the port and the frame manager
<jackdaniel> (including core abstractions that is), but I'll comment more after reading the thing
<jackdaniel> and good luck with your project
jmdaemon has quit [Ping timeout: 246 seconds]
<utis> thanks, pjb
<beach> What jackdaniel said. Good luck!
<VincentVega> Sure, it can. What I refer to is mostly the problem of CLOS, where you can't add/remove slots/beaviours of the existing objects/classes at runtime, dynamically. I think CLOS is the biggest downside of CLIM, for many aspects.
ec has quit [Write error: Connection reset by peer]
_triffid has quit [Write error: Connection reset by peer]
<VincentVega> jackdaniel: beach: thank you
_triffid has joined #commonlisp
ec has joined #commonlisp
<VincentVega> (oh, + change the inheritence)
<VincentVega> Or, you know, screw that review, if you want to see where I am coming from, just read the Fern section here:
<ixelp> [Project Mage] The Power of Structure (+ Lisp!)
nij- has joined #commonlisp
<nij-> It's been many times. While I load a library that requires some dynamic lib, usually the program looks at the wrong place for *dylib files. https://bpa.st/RC4EE
<ixelp> View paste RC4EE
<nij-> I know where the dylib it wants is located. But I don't want to hack that specific library (in this case it's cl-lib). Is there a better way to tell my lisp about the default dirs to look for dylibs?
<nij-> I imagine I have to customize some parameters under the package CFFI.
jmdaemon has joined #commonlisp
louis77 has quit [Remote host closed the connection]
<nij-> In the manual of CFFI (https://cffi.common-lisp.dev/manual/html_node/Tutorial_002dLoading.html#Tutorial_002dLoading), there doesn't seem to be a way to assign load path for it.
<ixelp> Tutorial-Loading (CFFI User Manual)
alfonsox has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<pjb> nij-: you have: cffi:*FOREIGN-LIBRARY-DIRECTORIES* cffi:*DARWIN-FRAMEWORK-DIRECTORIES*
_cymew_ has joined #commonlisp
nij- has quit [Ping timeout: 252 seconds]
alfonsox has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
rogersm has quit [Quit: Leaving...]
_cymew_ has quit [Ping timeout: 260 seconds]
varjag has quit [Ping timeout: 256 seconds]
dcb has joined #commonlisp
jeosol has quit [Quit: Client closed]
n0den1te has quit [Quit: leaving]
jmdaemon has quit [Ping timeout: 272 seconds]
ns12 has quit [Quit: bye]
varjag has joined #commonlisp
ns12 has joined #commonlisp
ttree has joined #commonlisp
varjag has quit [Ping timeout: 268 seconds]
_triffid has quit [Remote host closed the connection]
jeosol has joined #commonlisp
_triffid has joined #commonlisp
lisp123 has joined #commonlisp
utis has quit [Ping timeout: 260 seconds]
aartaka has quit [Ping timeout: 260 seconds]
Oladon has joined #commonlisp
Lycurgus has joined #commonlisp
tyson2 has joined #commonlisp
aartaka has joined #commonlisp
nij- has joined #commonlisp
<jackdaniel> VincentVega: I agree with remarks about poor humor (which is mine:) and that clim is quite complex and hard to bite (partially because it tries to cover a big scope going beyond guis)
<jackdaniel> as of the other points, not so much - I'd even say that they are flawed
<jackdaniel> for example when you criticize output records and say that they duplicate what a tree widget would do, you miss the fact that output records create such a tree - easily composable at that
thoughtron has quit [Ping timeout: 260 seconds]
<jackdaniel> and when you criticize inks, you completely miss the concept of an indirect ink which achives precisely what you ask for
varjag has joined #commonlisp
<jackdaniel> at leasts that's what I think about your remarks about clim
lisp123 has quit [Remote host closed the connection]
<VincentVega> I wasn't talking a "tree widget", though, but a tree of widgets. And my point is precisely that you don't need the second tree, you don't need to generate it. One tree is enough.
<VincentVega> I didn't know about indirect inks, though, I will take a look, thanks.
<nij-> pjb Thanks! cffi:*FOREIGN-LIBRARY-DIRECTORIES* cffi:*DARWIN-FRAMEWORK-DIRECTORIES* were indeed the things to look at.
<jackdaniel> I know that you mean a tree of widgets. I'm saying that a tree of output records is not a duplicate, it realizes the concept of a tree of objects (at a more composable level), I don't see how that's a duplication
<VincentVega> Then I don't see why you have to have a concept of capture and output records in the first place, if all they are but the augmentations of the tree node they belong to. You see, my problem is with the homogeneity and with the seperation of concepts, where I see no good reason for it to be there. It's kind of the same problem with panes/vs/widgets/vs/application-pane. I just don't get why you need that many concepts to represent one
<VincentVega> thing.
<VincentVega> *application-frame
<jackdaniel> application frame represents the state of the application, it ties together the model, its semantics and visual representation (i.e a tree of panes), the application frame may live even when it is not an interactive object on a screen
<nij-> pjb This time I got stuck with cffi-grovel. https://bpa.st/L73QG
<ixelp> View paste L73QG
<jackdaniel> as of gadgets, they are specialized version of panes - all "clim" windows are panes
<nij-> It launch a process `cc ..` without including the paths from either cffi:*FOREIGN-LIBRARY-DIRECTORIES* or another.
<nij-> According to the call stack, the error happens when calling #'process-grovel-file, which is not documented in the manual. https://cffi.common-lisp.dev/manual/cffi-manual.html
<ixelp> CFFI User Manual
<VincentVega> That implies that a tree node may not live even when it's not an interactive object on the screen.
<jackdaniel> and regarding capturing output - it is captured to construct a tree of objects inside a specialized version of panes - to allow pointer sensitivity, object identity (presentations) and generally to construct a tree of objects inside a pane
<VincentVega> What does that specialization yield?
<jackdaniel> semantic distinction? I'm not sure how to answer that
<VincentVega> So, why can't a tree node have pointer sensitivity, object identity? Can't the programmer construct that tree by himself and attach it to the current node?
<VincentVega> No, practically, I mean.
<VincentVega> Yes, what's a good reason for that semantic distinction?
<jackdaniel> practically you have layout panes (to organized sub-windows), gadget panes that have states like armed, active, disabled etc and stream panes - general purpose clim abstractions
<jackdaniel> gadgets are provided to allow people used to "traditional" toolkits write applications the way they are used to
<jackdaniel> output record hierarchy is the abstraction that constructs such tree, that's precisely my point
<jackdaniel> and yes, you may create your own output record hierarchy without capturing any output
<jackdaniel> and replaying your not-drawn-tree will produce a graphical result as you desire (via replay-output-record), with pointer sensitivity, highlighting and all that jazz. you may call it a widget tree if you like really
<nij-> Grovel has been painful :'(
<VincentVega> Well, you see, in all these I see an overabundance of concepts which do similar things, but which don't need to have seperate names, or be differentiated. I don't know how else to put it. And the reason I am criticizing it, and the reason why you say it needs to be that way, is because of CLOS, which forces you into this type of seperation decisions. Do you see my point?
mingus has quit [Ping timeout: 246 seconds]
<jackdaniel> I don't, sorry. CLIM has its own issues, but I don't think that they are "because of CLOS"
<VincentVega> E.g. from a draw method, you can't just create two branchings in your node: you can't just put two new slots.
<jackdaniel> and I don't think that things you are bashing at are misplaced abstractions
nij- has quit [Ping timeout: 260 seconds]
<jackdaniel> what do you mean by branchings in a node?
<VincentVega> They are exactly that and because of that : )
<VincentVega> Branchings? Well, we are building a tree, aren't we?
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
<jackdaniel> well, if you are so certain of it then there is no point in arguing. sure, we are building a tree
<jackdaniel> and how clim doesn't let you to add two objects to the tree?
<jackdaniel> (or clos)
<VincentVega> To the widget/object/node you are operating. You can't do it dynamically.
<jackdaniel> why?
<jackdaniel> (add-output-record node child) is one of a few ways that come to mind
<VincentVega> Because you would have to recompile the class for that.
<jackdaniel> I don't need to recompile a class to modify a tree
<VincentVega> I mean a CLOS slot. Does it add a CLOS slot?
<jackdaniel> no, it adds another child to the parent node
<jackdaniel> why would it add a new slot?
<VincentVega> Because it can be very convenient for graphical applications, because if you can do that, you don't need to have 3 different concepts for what's just an object in a tree of objects.
<yitzi> Sounds like you just want prototype oo.
<jackdaniel> as I see it a tree in clos terms could be simplistically defined as (defclass node () (parent children))
fluentpwn has joined #commonlisp
<jackdaniel> why would I need to add a new slot to add a child dynamically?
<VincentVega> yitzi: yes, and that's what I am going to be using, and that's what I argue is unavoidable in a GUI application
<yitzi> VincentVega: Lot's of GUI applications don't use prototype OO, so the argument that is unavoidable is not true.
<jackdaniel> that's fine, but I don't understand the grudge with clos in this context; doing it with prototypes may be fun - why not, I'm trying to understand though why a dynamic tree in clim can't be done
<mfiano> Lots of GUI frameworks, even.
<VincentVega> yitzi: I mean lots of people use windows. If you are a power user who respects himself, using linux these days is unavoidable.
<fluentpwn> Hello, is there a shorter way to index list by another list(i.e (? (1 2) (1 2 3 4)) -> (nth 1 (1 2 3 4)) (nth 2 (1 2 3 4))) than to just map?
<jackdaniel> but you've clamied that clos forces something and makes something impossible, what that something was a tree
<mfiano> :eyes: I use BSD because Linux is a mess these days.
<jackdaniel> seems to be baseless
<VincentVega> jackdaniel: Alright, but you did see my examples in the article, that are due to CLOS, right?
<jackdaniel> I've read only the part about CLIM becasuse I've believed that I will be able to provide some constructive feedback
nij- has joined #commonlisp
<VincentVega> jackdaniel: that's the part I am referring to, not the rest of the article
paulapatience has joined #commonlisp
<jackdaniel> you quote a 'guide tour to clim', but I don't see any examples (with counterexamples) of things that are not possible
<yitzi> It is just my personal opinion...but prototype OO is hot mess. I've built large systems with both prototype OO and CLOS. Large prototype based systems usually end up becoming a shambling ball of spaghetti.
<VincentVega> jackdaniel: My CLOS grudge isn't exactly about the ability to build a tree, but about the ability to have similar concepts with different names, which you then use to build a tree. My position is very simple: where you claim that gadget+pane+frame+output-record+representation are all a necessity, what I am saying is that you just need one concept: a tree object, and prototype OO lets you do that, but not CLOS
<mfiano> Have you heard of mixins?
<VincentVega> jackdaniel: I have quoted these exactly within the section, I have copypasted them.
<mfiano> and the MOP?
<VincentVega> mfiano: of course. You have to create a seperate class to use them. That's a problem.
<VincentVega> mfiano: Yes.
<mfiano> change-class and the MOP are powerful. No need to add slots. Just modify the supers
<VincentVega> omg
<jackdaniel> VincentVega: you may also use a list, that's even more uniform; I don't see the issue with naming different things differently
<mfiano> But a tree is very typically represented as 2 slots - a reference to the parent node, and a collection (list, hash table, etc) of children nodes.
<mfiano> Never any more or less (unless metadata is required)
<mfiano> So I do not see the connection.
<VincentVega> but you do see an issue with complexity? well that's what you get if you don't see a problem with giving 10 names to a variation of the same concept.
<VincentVega> mfiano: please, see my comment above, it's not about trees per se
<mfiano> A class doesn't need to have a name
<nij-> I will move to #clschool for issues with GROVEL..
<jackdaniel> I think that some of the complexity is intrinsic in gui systems and is not a result of being sloppy with names
<VincentVega> i beg to differ on that
<mfiano> On what?
<jackdaniel> also I believe that you try to find issues to justify your choices
<VincentVega> re: "a class doens't need to have a name" in clos? how so?
<mfiano> By using the MOP
<VincentVega> jackdaniel: I think I have justified my choices plentifully.
<VincentVega> Trust me, I get no joy out of saying no to an existing solution.
<VincentVega> mfiano: well, then you get prototype OO (or a very shallow version of it), which is what the argument is about
<VincentVega> can you get a reasonable prototype OO system with CLOS? Maybe. BUt I haven't seen one.
<jackdaniel> I see. either way my feedback ends here - I don't find your criticism of clim very insightful
<mfiano> No you do not.
<mfiano> Prototype OO is a disaster.
<mfiano> I'm out :)
<VincentVega> Well, if you don't, then you have a half-assed solution.
<VincentVega> jackdaniel: no problem, thanks for the feedback
<jackdaniel> sure
<VincentVega> mfiano: you are just going to say something is a disaster and just leave? That's evil.
<Shinmera> This discussion is also a disaster
thoughtron has joined #commonlisp
<VincentVega> I mean noone was able to change anyones mind, so yes.
<paulapatience> I'm confused about the dynamic extent of streams bound in WITH-OPEN-FILE, WITH-OPEN-STREAM, WITH-INPUT-FROM-STRING and WITH-OUTPUT-TO-STRING.
<paulapatience> But supposing a STREAM-ERROR is signaled from within any of those forms, if you don't handle it before the stream's dynamic extent ends, then it should no longer be accessible via STREAM-ERROR-STREAM, no?
<paulapatience> CLHS says they have dynamic extent, and indeed SBCL gives dynamic extent to the stream in WITH-INPUT-FROM-STRING, but SBCL does not give dynamic extent to the stream in WITH-OPEN-FILE.
<paulapatience>
<jackdaniel> speaking of disasters, I've managed to hang kandria two times today :)
<VincentVega> I still yet to hear decent real-world example arguments against prototype OO.
<Shinmera> jackdaniel: that's no good :(
<Shinmera> was the second one that report I just got?
<jackdaniel> no, it was a few hours back
<jackdaniel> I've only reported the missing cheat menu
<Shinmera> Ah. That's not actually a bug :)
<jackdaniel> the hang was out of the blue, so I don't think that a report would be any helpful
<jackdaniel> (no stacktrace nothing, just non-responsive window)
<Shinmera> You can type cheats at any time, the cheat menu is just there to avoid accidentally pressing or activating other things while typing
<Shinmera> hmm
Oladon has quit [Quit: Leaving.]
<Shinmera> It might be an input issue, we've seen other reports of that happening, but so far no indication of why or how to reproduce it.
EsoAlgo has quit [Remote host closed the connection]
<jackdaniel> probably when someone plays too well the game gets confused - now wonder it is rarely reproducible ,)
<Shinmera> I'm not even that good at it lol
EsoAlgo8 has joined #commonlisp
<jackdaniel> saving the game with f5 would be a nice touch btw
<Shinmera> you mean, saving at any time, or?
<jackdaniel> yes, saving at any time, some people live from time slice to time slice
<nij-> save-lisp-and-die with f6 ;)
<Shinmera> it is intended that you can't save at any time.
<jackdaniel> that said, my time slice to watch a movie has cam, so have a nice weekend
<jackdaniel> came*
<Shinmera> but you should be able to exit at almost any time and resume from there later.
<Shinmera> so no need to go back to a save point
<jackdaniel> ah, and a log of already provided hints, because the first time I've missed the instructions ;p
<Shinmera> the controls are in the menu :)
<jackdaniel> I did not see the control saying: "go to the safe point to save", but I'll read over the list again!
* jackdaniel starts the projector, laters \o
avocadoist has quit [Read error: Connection reset by peer]
avocadoist has joined #commonlisp
nij- has quit [Remote host closed the connection]
tyson2 has quit [Ping timeout: 248 seconds]
nij- has joined #commonlisp
aartaka has quit [Ping timeout: 248 seconds]
tyson2 has joined #commonlisp
<paulapatience> SB-KERNEL:ALLOCATE-CONDITION checks if the error is a STREAM-ERROR and further checks if the stream is stack allocated, and if it is (which in SBCL's case can be only for string input and output streams), makes a stub stream, with SB-IMPL::MAKE-STUB-STREAM, which contains enough information to report via STREAM-ERROR-STREAM.
<paulapatience> I guess SBCL considers it already.
<paulapatience> I don't know what other implementations do, but I suppose it's only possibly a problem when dynamic-extent declarations actually do something.
<paulapatience>
tyson2 has quit [Remote host closed the connection]
_triffid has quit [Quit: _triffid]
bilegeek has joined #commonlisp
triffid has joined #commonlisp
peterhil has joined #commonlisp
tyson2 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
dmgk has joined #commonlisp
dim has quit [Remote host closed the connection]
dim has joined #commonlisp
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 252 seconds]
peterhil_ has joined #commonlisp
triffid has quit [Remote host closed the connection]
rgherdt has quit [Remote host closed the connection]
_cymew_ has joined #commonlisp
tyson2 has joined #commonlisp
Brucio-61 has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 28.2]
tyson2 has quit [Remote host closed the connection]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 252 seconds]
Lord_of_Life_ is now known as Lord_of_Life
fluentpwn has quit [Ping timeout: 260 seconds]
paulapatience has quit [Ping timeout: 268 seconds]
_cymew_ has quit [Ping timeout: 246 seconds]
robin has joined #commonlisp
epony has quit [Read error: Connection reset by peer]
shka has quit [Ping timeout: 246 seconds]
peterhil has quit [Quit: Leaving]
tyson2 has joined #commonlisp
peterhil_ has quit [Quit: WeeChat 3.7]
peterhil has joined #commonlisp
morganw has quit [Remote host closed the connection]
epony has joined #commonlisp
bilegeek has quit [Quit: Leaving]
lisp123 has joined #commonlisp
waleee has joined #commonlisp
VincentV` has joined #commonlisp
VincentVega has quit [Ping timeout: 272 seconds]
varjag has quit [Ping timeout: 248 seconds]
utis has joined #commonlisp
random-nick has quit [Ping timeout: 246 seconds]