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/> | News: ELS'22 this Monday (2022-03-21), see https://european-lisp-symposium.org
igemnace has joined #commonlisp
taiju` has joined #commonlisp
taiju` is now known as taiju
pvalenta has joined #commonlisp
azimut has quit [Ping timeout: 240 seconds]
<iceman[m]> Hello, Good day everyone
azimut has joined #commonlisp
<rotateq> Hello iceman[m] :)
<Spawns_Carpeting> is it possible that the sbcl maintainers would consider moving to github or gitlab and off of source forge?
<Spawns_Carpeting> i am curious what the justification for staying there is
Lord_of_Life has quit [Ping timeout: 255 seconds]
Lord_of_Life has joined #commonlisp
<mason> Spawns_Carpeting: There's an #sbcl channel.
<dbotton> Spawns_Carpeting I still have many projects there, there really isn't a compelling reason to be off of it as a developer
<dbotton> in fact while I host CLOG in Microsoft's github as saw so much negativity about source forge, it was/is a better platform offering me more
<dbotton> mail lists and structure for team etc
<weary> spawns_carpeting: sourceforge is pretty nice, and the interface sucks less than most contemporary git hosting. plus, unlike github, it runs on open source software: https://en.wikipedia.org/wiki/Apache_Allura
<dbotton> In some ways I wish I had stated CLOG on sourceforge but what is is
<yitzi> Spawns_Carpeting: I believe there has been some discussion on SBCL's mailing lists.
<weary> there was an argument against it before the current owners, what with the alleged malware on platforms that are in themselves malware, but the current owners are pretty great.
<weary> the only contemporary hosting platform really matching sourceforge right now feature-for-feature is sr.ht (which unlike gh/gl has mailing lists and a great ci experience), but sr.ht doesn't have some of the legacy vcs options that sourceforge has.
psj has joined #commonlisp
<iceman[m]> <rotateq> "Hello iceman :)" <- How are you doing
psj has quit [Remote host closed the connection]
psj has joined #commonlisp
<Spawns_Carpeting> yes my main issue with sf is the malware thing. thats a massive breach of trust and it makes me worry that projects histories could have been changed at some point in a malicious way
<Spawns_Carpeting> its hard to trust a platform that intentionally replaced downloads with malware/adware
<weary> it's owned by entirely different people now, who have shown no reason to distrust them.
<mfiano> git is decentralized. You can pull it from exposing a git server hosting their repository, including, but not limited to, github.
<mfiano> I'm not sure why git needs a web frontend. It's all social networking nonsense.
<mfiano> from anyone*
<Spawns_Carpeting> has their history since being bought been clean so far weary? from what I can tell that is the case
<Spawns_Carpeting> maybe I am just worrying too much about it
<weary> as far as anyone can tell, yes.
<Guest74> I would suspect this is more of a problem with some unmaintained project.
yewscion has quit [Ping timeout: 240 seconds]
psj has quit [Ping timeout: 240 seconds]
<Spawns_Carpeting> on a sort of related note, I am interested in attempting to bootstrap clasp and maybe sbcl
<weary> mfiano: html frontends are actually useful for "at a glance" information, ignoring the social networking stuff (which i won't complain about either, since organization is a part of the puzzle). linguist and the handful of linguist clones can be really handy, for an example, and having non-grep code search is pretty nice if you're hitting up against bugs or need to know how your compiler works. lots of this stuff can be imitated locall
<weary> y and without browsers, but since nobody's put together a genuinely cohesive package, the remote frontends are useful enough for now.
<Spawns_Carpeting> does anyone have any information or advice about that? i am doing lots of reading and it looks like it could be difficult
<mfiano> I think this is pretty off-topic here. #sbcl is over there.
orestarod has quit [Ping timeout: 260 seconds]
<Spawns_Carpeting> is there a channel for clozure cl?
<mfiano> #ccl
<weary> #ccl, but it doesn't get much activity. irclog.tymoon.eu is a good place to look when exploring, Spawns_Carpeting
<Spawns_Carpeting> thank you
<mfiano> Better would be https://www.cliki.net/irc
<mfiano> Shinmera doesn't log all of those
<weary> multiple clim irc clients? ooh, shiny.
yewscion has joined #commonlisp
Bike has quit [Quit: Lost terminal]
<weary> i wonder if there's a way to skin McCLIM. i've played with it a bit on a couple platforms and i've always wished it had the visual appearance of a more elegant gui framework, like xaw/athena.
psj has joined #commonlisp
<weary> oh, its manual is actually pretty tiny
<Guest74> huh, looks like i'm working on like 11-13 of beach: 's suggested projects.  Anyways, there's a broken link to Moby, which I'm guessing is a processed corpus?, on library for word classes.
psj has quit [Ping timeout: 246 seconds]
pjb has quit [Read error: Connection reset by peer]
igemnace_ has joined #commonlisp
igemnace has quit [Ping timeout: 246 seconds]
saura has quit [Ping timeout: 246 seconds]
psj has joined #commonlisp
psj has quit [Ping timeout: 260 seconds]
igemnace_ has quit [Quit: WeeChat 3.5]
<qhong> Is there a package for "inheriting" packages?
<qhong> Like those *-cl packages which modifies some definitions of an existing package.
<Guest74> do you have an example of one of those packages?
<Guest74> I don't know if you're talking about something as simple as USE'ing a package and exporting whatever symbols you want to appear to be 'inheriting'
rotateq has quit [Ping timeout: 244 seconds]
taiju has quit [Ping timeout: 244 seconds]
taiju has joined #commonlisp
<semz> If all else fails, you could enumerate the package's symbols at read time and dump them into the defpackage form
<semz> but maybe there's a nicer way
igemnace has joined #commonlisp
<beach> Good morning everyone!
<semz> good morning
<weary> good morning!
<beach> Guest74: Which projects are you working on?
<Guest74> Well when I was asking about paths the other day that would be your library for constructing and manipulating figures?  Sorry, I don't remember the exact wording, I seem to have closed the website.
<beach> Ah, yes, I see.
<Guest74> but pretty much all the graphic and font stuff.
<Guest74> and tagging parts of speech
mrcom has joined #commonlisp
<beach> Sounds great!
yewscion has quit [Ping timeout: 258 seconds]
<Guest74> I'm hoping to get a demo of the gui font inspection working soon, but I've got to make shoes first.
<beach> I see, sort of.
<qhong> Guest74: like closer-mop-cl generic-cl
<qhong> semz: yes that’s what I see everyone doing
waleee has quit [Ping timeout: 240 seconds]
<Guest74> qhong:sorry, I'm not familiar with those particular systems, though that type of functionality is what use-package is for.  Maybe you're just looking for something to automate exporting the symbols?
<beach> Guest74: I think it is more complicated than that.
<Guest74> for generic-cl, closer-mop is something else.
<beach> But I think they are on the right track.
raeda has joined #commonlisp
szkl has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
psj has joined #commonlisp
psj has quit [Ping timeout: 258 seconds]
saura has joined #commonlisp
pillton has joined #commonlisp
Thom2503 has joined #commonlisp
psj has joined #commonlisp
Thom2503 has quit [Ping timeout: 255 seconds]
igemnace has quit [Remote host closed the connection]
igemnace has joined #commonlisp
igemnace_ has joined #commonlisp
igemnace has quit [Ping timeout: 258 seconds]
yewscion has joined #commonlisp
igemnace_ has quit [Remote host closed the connection]
igemnace_ has joined #commonlisp
taiju has quit [Ping timeout: 255 seconds]
igemnace has joined #commonlisp
igemnace_ has quit [Ping timeout: 256 seconds]
psj has quit [Ping timeout: 246 seconds]
symlyte has joined #commonlisp
yewscion has quit [Quit: Connection closed]
igemnace has quit [Remote host closed the connection]
shka has joined #commonlisp
<mfiano> qhong: uiop
<mfiano> uiop:define-package in particular, or its functional counterparts.
<mfiano> It's already built in to your implementation more than likely.
<mfiano> And there is also defpackage-plus, which does a similar thing.
rainthree has joined #commonlisp
yewscion has joined #commonlisp
psj has joined #commonlisp
psj has quit [Ping timeout: 255 seconds]
igemnace has joined #commonlisp
Cymew has joined #commonlisp
psj has joined #commonlisp
psj has quit [Ping timeout: 258 seconds]
igemnace_ has joined #commonlisp
szkl has quit [Quit: Connection closed for inactivity]
igemnace has quit [Ping timeout: 258 seconds]
<iceman[m]> Hello, has anyone here read Land of Lisp?
<ecraven-> quite a few, probably
<iceman[m]> Oh I see
<qhong> mfiano: Interesting. The REEXPORT keyword looks like exactly what I need
<qhong> I wonder why existing *-cl packages are not using it
<ecraven-> iceman[m]: maybe ask a more concrete question ;)
igemnace_ has quit [Quit: WeeChat 3.5]
psj has joined #commonlisp
psj has quit [Ping timeout: 246 seconds]
<iceman[m]> Okay, so those who have read Land of Lisp, would you recommend a newbie in lisp programming to read it? I am considering purchasing a physical copy of either Practical Common Lisp or Land of Lisp
<iceman[m]> Land of Lisp seems particularly fun because game programming, who doesn't like games?
<iceman[m]> on the other hand Practical common lisp seems to dabble in various kind of applications, of which some are intriguing to myself
<iceman[m]> Both books seem awesome but I can afford only one
<iceman[m]> iceman[m]: so those who have read....
<flip214> iceman[m]: I found both nice.... though I believe PCL offers more depth
<flip214> so, if only one, I'd rather pick PCL, although it's older
psj has joined #commonlisp
<Duuqnd> I haven't read it myself, but I've heard there's some problems with Land of Lisp
aartaka has quit [Ping timeout: 276 seconds]
psj has quit [Ping timeout: 255 seconds]
<samebchase> iceman[m]: get PCL
<iceman[m]> <Duuqnd> "I haven't read it myself, but I..." <- what kind of problems did you hear about?
<iceman[m]> I would like to know more
<Duuqnd> Mainly using inconsistent and incorrect names for things
ecraven- is now known as ecraven
<Duuqnd> I think beach wrote something about it
pjb has joined #commonlisp
rotateq has joined #commonlisp
igemnace has joined #commonlisp
asarch has joined #commonlisp
<qhong> Yes, read Portable CommonLoops newbs
rotateq has quit [Ping timeout: 260 seconds]
igemnace_ has joined #commonlisp
rotateq has joined #commonlisp
igemnace has quit [Ping timeout: 240 seconds]
asarch has quit [Quit: Leaving]
rotateq has quit [Ping timeout: 276 seconds]
<beach> iceman[m]: I absolutely can not recommend it.
rotateq has joined #commonlisp
igemnace has joined #commonlisp
igemnace_ has quit [Ping timeout: 276 seconds]
<phantomics> I'll add a vote for PCL, LoL can be fun but the programming practices it teaches aren't the best
<phantomics> And you can read the whole thing free online to determine if it's a good fit for you
<beach> And it's not much fun to be taught the wrong terminology and other incorrect information.
frgo has quit [Ping timeout: 258 seconds]
<phantomics> Also, some feedback I've received from Lisp learners is that, depending on your learning style, exploring the Common Lisp Cookbook can also be a good approach
<phantomics> Apart from that, I have a CLOS question: can I generally assume that the nominal overhead for each slot in a CLOS object is a stored memory location? I.e. a CLOS object containing a reference to two other objects would occupy two memory addresses' worth of space?
<beach> Yes, except that there is no such thing as a "CLOS object". Perhaps you meant a "standard object".
<phantomics> Yes, an instance of a CLOS class
<beach> The term "CLOS class" is meaningless since all classes are part of CLOS, including INTEGER and such.
<beach> Perhaps you meant "standard class".
<beach> But there are standard objects that are not instances of standard classes.
<phantomics> I see, a class that I've created using (defclass)
<Duuqnd> "CLOS class" might actually be a useful term if Flavors is also in the conversation
<Duuqnd> But here it's not so you're right
<beach> phantomics: By default, DEFCLASS gives you an instance of STANDARD-CLASS, but the :METACLASS option let's you change that.
ehammarstrom has quit [Ping timeout: 258 seconds]
<phantomics> I see, I'm not using a metaclass in this case
<beach> I understand. But I think it is important to use the right terminology. And that's why I absolutely can't recommend Land of Lisp, because then, afterward, we have to un-teach what was learned, and fix it up.
<phantomics> In that case then, on a 64-bit machine it would be more frugal to store a 6-element vector of 8-bit ints in memory than to store a standard object with slots containing an integer value and a link to another object whose properties would determine the contents of such a vector
random-nick has joined #commonlisp
ehammarstrom has joined #commonlisp
<beach> That would be highly dependent on the implementation, since the standard does not mandate the existence of vectors specialized to 8-bit integers.
<beach> And the savings would be questionable anyway with so few elements.
<beach> Even a vector contains things like the length (or perhaps even a list of dimensions), some type information, etc.
causal has quit [Quit: WeeChat 3.5]
<beach> Perhaps even information about fill pointers. Alternatively it contains a reference to its class.
ehammarstrom has quit [Ping timeout: 258 seconds]
<phantomics> A vector has only one dimension (no n-rank arrays would be used in this case)
<beach> But that fact has to be registered somewhere.
<phantomics> Most CLs I've tested have support for compact integer arrays, there could be exceptions I suppose
<beach> Either the vector contains a list of dimensions, indicating that it is a vector, or it contains a (reference to) a class indicating this fact.
<phantomics> Right, so I guess it has memory location overhead as well
<beach> And, as I said, it may have information about fill pointers.
<phantomics> The alternative I was considering was a class with slots that contain 1. an integer row-major index and 2. a reference to an object representing an array with specified dimensions. Objects of this class represent a vector of coordinates at a given row-major index
<phantomics> So for example if the object contains the integer 2 and a reference to a 2x3x4 array, it could have a method called on it to produce the vector #(0 0 2), those being the coordinates of the element with row-major index 2
attila_lendvai has joined #commonlisp
<beach> What would that buy you? You can already access the array directly with ROW-MAJOR-AREF.
<beach> clhs row-major-aref
<phantomics> There is an APL function that produces a "coordinate vector array", an array where every element contains a vector of its own coordinates. This would allow the array to be represented by an object with a method that returns the virtual coordinate vector for a given row-major index without having to actually store the array's elements in memory
ehammarstrom has joined #commonlisp
<jackdaniel> we may introduce a working defintion that "non-CLOS class" is the class of the object that still exists after unbolting CLOS ;) take that with a grain of salt
<jackdaniel> phantomics: the term for "non-CLOS class" is usually a builtin-class or structure-class (there may be more I suppose, like condition-class)
attila_lendvai has quit [Ping timeout: 255 seconds]
<phantomics> Ok, makes sense
<phantomics> I'm looking forward to testing the new April on different CLs, it uses many new classes and will give their CLOS implementations a workout
ehammarstrom has quit [Ping timeout: 246 seconds]
triffid has quit [Ping timeout: 240 seconds]
igemnace has quit [Remote host closed the connection]
frgo has joined #commonlisp
ehammarstrom has joined #commonlisp
saura has quit [Ping timeout: 255 seconds]
triffid has joined #commonlisp
psj has joined #commonlisp
dra has joined #commonlisp
psj has quit [Ping timeout: 258 seconds]
<weary> Did Seibel ever follow up (even just to say he gave up on it) on his tweet about making a new PCL edition?
rainthree has quit [Ping timeout: 246 seconds]
<ck_> I thought the authorship was passed on to someone else, but because I don't know this for certain I can't say more
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
irc_user has quit [Quit: Connection closed for inactivity]
frgo has quit [Remote host closed the connection]
triffid has quit [Ping timeout: 240 seconds]
rainthree has joined #commonlisp
rainthree3 has joined #commonlisp
trocado has quit [Ping timeout: 258 seconds]
rainthree has quit [Ping timeout: 258 seconds]
triffid has joined #commonlisp
psj has joined #commonlisp
gxt has quit [Remote host closed the connection]
psj has quit [Remote host closed the connection]
gxt has joined #commonlisp
Simoneee has joined #commonlisp
varjag has joined #commonlisp
frgo has joined #commonlisp
<Simoneee> What are some exciting projects in Common Lisp today? I am writing a blog post for dev.to
paule32__ has joined #commonlisp
paule32__ has quit [Changing host]
paule32__ has joined #commonlisp
pfd has quit [Ping timeout: 252 seconds]
<contrapunctus> Simoneee: Nyxt Browser, I guess
paule32_ has quit [Ping timeout: 246 seconds]
triffid has quit [Ping timeout: 240 seconds]
pillton has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
Simoneee has quit [Quit: Ping timeout (120 seconds)]
<nyx_land> it depends on the audience
<nyx_land> oop they left
<nyx_land> it does kinda feel like there aren't a lot of Common Lisp projects that would be interesting to someone who isn't invested in Common Lisp itself though, aside from Nyxt I guess
Simoneee has joined #commonlisp
triffid has joined #commonlisp
orestarod has joined #commonlisp
<Simoneee> What about clog?
random-nick has quit [Ping timeout: 246 seconds]
random-nick has joined #commonlisp
<weary> clog is mostly interesting to lispers, i think. people in conventional languages have had interesting web ui development paradigms available for a while.
<Duuqnd> CLOG would probably be interesting to people who want to try Lisp but need to have web development stuff
<Duuqnd> But yeah, it's only really interesting if one already wants to use Lisp
MetaYan has quit [Read error: Connection reset by peer]
<random-nick> from what I understand, CLOG is a library for making GUIs, it's just that it renderd its GUIs as web pages instead of native windows
<random-nick> renders, even
<weary> "all of the drawbacks of the resource consumption of a web browser with all of the convenience of writing native guis" is a hard elevator pitch to make, and i don't think you'd be able to make clog seem interesting without someone knowing how painful writing conventional guis in common lisp has been since symbolics executives suicided the company up until clog.
Simoneee has quit [Ping timeout: 252 seconds]
saura has joined #commonlisp
<rotateq> Ah it was the system for building a GUI application like with Delphi or Eiffel.
Oddity has quit [Ping timeout: 255 seconds]
<weary> don't get me wrong, clog is really cool. but it seems like it's destined to be sort of insular to the community, because the only people generally open to the idea of its paradigm already have phoenix and etc.
<Nilby> If, like me, you find poorly re-inventing software from the 1980's exciting, then yeah.
<weary> i don't think we need to diss clog with the "poorly" modifier there; it's a pretty cool thing, and the author's written more words than probably anyone else on cl this year.
<Nilby> i'm just talking about my work, not clog specificly, but the lisp ecosystem in general
<Nilby> i am happy that clog exists and is generating excitement
<weary> oh. yeah, the cl community at present maybe could be renamed "the ersatz 1990s community," but in part it's mainly because a lot of cool things were left behind in the transition to personal computing.
frgo has quit [Ping timeout: 244 seconds]
<Nilby> I quite agree with that, and *I* find re-doing things from the 80's exciting, but not everybody appreciates that
jmdaemon has quit [Ping timeout: 276 seconds]
<edgar-rft> in contrast to other languges, all problems in Common Lisp were already solved thirty years ago :-)
MetaYan has joined #commonlisp
<weary> except how to write sustainable operating systems :<
<Shinmera> Aw, they left before I could make another pitch for Kandria. Oh well.
<weary> they've come back around a couple of times; you might see them again. kandria's definitely a great pick, though.
<Shinmera> Got some fantastic news today, namely that we received a grant from Pro Helvetia, the swiss arts council. It's not a big grant by any means, but it still helps a bunch, especially in terms of validation :)
<jackdaniel> Shinmera: congratulations
<weary> congratulations! social validation's worth the world sometimes, and money never hurts.
<Shinmera> weary: It's more... critical validation? Since the jury that selects the grant applicants is composed out of games industry people.
<Shinmera> lol
<weary> i was thinking of critical validation as a subset of social validation, but maybe that's over-extrapolating.
<edgar-rft> partial success: I didn't know Kandria - thanks Shinmera :-)
<Shinmera> And here I thought I had spammed too much about it here and on reddit already :)
<contrapunctus> edgar-rft: what cave have you been living in lol
<edgar-rft> I was busy with doing other things the last months and I don't waste my life by reading reddit :-)
<Shinmera> Not reading reddit sounds like a healthy choice
<Shinmera> Though I've also posted to planet lisp a bunch.
<weary> i was going to write "i think kandria definitely has a lot of potential as an arthouse game" but thought that that might come off jaded when in reality i would be using it more as a term of endearment
<weary> i haven't been paying much attention at all to it because i'm not particularly adventurous with playing games but what little i have seen of your posts about it, they're all showing off pretty exceptional attention to detail and minute aspects of a person's experience, and that's generally a great sign.
<contrapunctus> Simoneee: Shirakumo games is the other one. Also maybe Grammarly and ITA.
<Shinmera> weary: thanks. I don't think it's much of an art game, it's far more standard and commercial to be one.
<Nilby> Shinmera: It's hard to dislike your game promotion or your well deserved successes, especially when a side effect of your game is high quality general purpose Lisp libraries.
<weary> was super impressed when, if i remember right, i saw the clip of it slowing down time when in menus; such a cool feature for immersion vs. completely stilling the world like many things do.
<weary> contrapunctus: i wonder if those recent google posts about reviving ITA meant that they're moving it off of CL. maybe that's a sign of me having very low faith in google, but i am worried about the golden goose of CL examples, as slow and unreasonable as it was.
<rotateq> Oh it was slow and unreasonable? :/
<weary> you can try it out for yourself and see; i think the old version is still online.
<rotateq> ah okay
<weary> it's useful, but it's got some limitations, and it's definitely slow as molasses. not necessarily because of common lisp, though.
<weary> actually, i am seeing something interesting.
<weary> if ITA's core hasn't been rewritten, then google flights's backend is written in common lisp, and that has infinitely more name recognition now than ITA.
<weary> > we have maintained Matrix as an informal demonstration platform for the advanced features of our flight search technology – the same technology that underlies Google Flights
Guest74 has quit [Quit: Connection closed]
<weary> (from a blog post from last year, announcing matrix was getting a redesign)
rainthree3 has quit [Read error: Connection reset by peer]
<rotateq> Wasn't the main work primarily to connect many of existing flight interfaces?
<Nilby> weary: it's definitely still in use at google
<rotateq> That's good, as even a big company like them isn't resistent to make bad decisions.
<weary> rotateq: it was meant to act as a way to consolidate as much data as possible and figure out how to route it most efficiently, yes. piping data from place to place is close to the platonic ideal of computing, so it's not a knock on it. it was and is very good at it.
mbrndtgn has quit [Remote host closed the connection]
taiju has joined #commonlisp
totoro has quit [Quit: ZNC 1.8.2 - https://znc.in]
<rotateq> Yeah okay.
<rotateq> Other such systems are for example Routific for planning and prevent wasting resources or planning mistakes (for transport logistics): https://routific.com/
totoro has joined #commonlisp
<weary> google is probably the company closest to having that ideal of computing to its mission statement, so it makes sense that it bought ITA, thinking on it.
mbrndtgn has joined #commonlisp
<jackdaniel> isn't their idea of computing: "do everything on our computers so we can lock you from your digital life at our discretion"?
<rotateq> Okay it can be good when you have a really good new idea to make things better for everyone but lack money if such a company supports you financially for some time.
<weary> i think it's closer to "subsume all of the data in the world and make almost-essential tools with it," which is a noble goal, if you ignore that there are not so many ways to monetize it, and the chief one is using the panopticon for evil.
<Nilby> d̶o̶n'̶t̶ b̶e̶ e̶v̶i̶l
<rotateq> Is Peter Norvig still at Google?
<weary> look at google books, for example. a billion dollar company making a giant archive of books for all of society to pirate, and then they got hit by copyright lawyers. i think the most positive things it could do are largely prevented by law. oh well.
<weary> norvig is still at google, i think.
<weary> according to his website, yes.
Guest74 has joined #commonlisp
<jackdaniel> well, no copyright lawyers forced them to try killing technologies they do not control, like rss or jabber ,p but oh well, it is offtopic anyway
saura has quit [Ping timeout: 256 seconds]
<weary> offtopic but i'd be remiss if i didn't point out that by "killing" rss they just discontinued a product. back to topic, though: you make mcclim, right?
<jackdaniel> I make many things, I'm most proud of coffee I've just brewed ,)
<jackdaniel> yeah, I'm working on mcclim
<weary> is there any convenient way to reskin its ui chrome?
<jackdaniel> no, currently there is no convenient way to do that
<weary> i see. if i read the manual, will i find an inconvenient way to do that?
<jackdaniel> if you read the specification carefully, you'll learn, that if you define your own frame manager you may intercept make-pane (similar to make-instance) to create your own widget classes
<Nilby> weary: I never thought I would see the words: "a more elegant gui framework, like xaw/athena"
<jackdaniel> then you may specialize handle-repaint
<jackdaniel> (and other functions)
<jackdaniel> having enough time and resources, you may construct a set of gadgets, that may be configured to have a specific set of colors, joint shapes, font styles etc
<jackdaniel> (of course your own classes may subclass "standard" McCLIM classes, so then you don't have to reimplement stuff like handling events or managing the state)
<jackdaniel> I have some plans for theming, but never enough time to put them in motion. but we'll get there (eventually,)
<Guest74> I can't imagine what working on a hi tech advanced UI is like and constantly being asked if the colour can be changed.
<weary> Nilby: call its development story whatever you want, but xaw is easily one of the prettiest gui frameworks. at least in the subset of unix/vax-derivative/lispm guis
<jackdaniel> answering not so hard questions makes you look competent, so there's that at least ,)
<Nilby> weary: *gasp* I liked Sun's OpenLook, but I do want people to have software that behaves and looks how they like
tyson2 has joined #commonlisp
<weary> Guest74: we are all typing on devices that spawned from people misappropriating billions of dollars of darpa funding for personal enjoyment; being asked about making things look shiny is a sign that something is interesting!
<Shinmera> Theming is one of the reasons I started Alloy. I'm pretty happy with the way it works in that :)
<Shinmera> (not entirely happy, but it's one of its better aspects I think)
<Guest74> going by history, the interest lasts about as long as finding out it doesn't do shiny.
<Guest74> Shinmera: you got a page on that?  I don't recall even thinking about alloy and themes.
<weary> oh, he just told me it can do shiny, if i'm willing to put up with inconvenience. and i am very stubborn and very willing to put up with inconvenience, so i am still interested.
<Shinmera> It's not documented, I'm afraid. But the basic way that defining how components are rendered is very easy to customise.
<Guest74> I'm not sure I'm happy with css like themes based on class.
<jackdaniel> after a good few years of dabbling in mcclim I'm still hooked despite it not being shiny! ,)
<jackdaniel> https://imgur.com/XQfs6Dk.png - state of the fun rendering, take it or leave it ,D
<weary> Nilby: openlook? interesting choice. i thought pre-openlook news-era sun was prettier, but that's neither here nor there.
<Guest74> jackdaniel: that's a pretty good line function!
<jackdaniel> there's more!
<weary> that's some pretty nice text rendering!
<jackdaniel> that said this work is waiting for better time atm
<Nilby> weary: Yes. I liked NeWS too. I still wish I has a Lisp NeWS.
<Shinmera> Guest74: and here's an example of changing the look of some components, ripped from the Kandria sources: https://plaster.tymoon.eu/view/3191#3191
<Guest74> I keep wondering If I should have a slot in objects to store some sort of id that can be used to style it in a theme.
<jackdaniel> isn't the object itself a good enough id?
<jackdaniel> (assuming you work in a system that do not serialize/deserialize pointers to text)
<Guest74> How do you know what the object will be before it exists?
<Shinmera> load-time-value ;)
<weary> Nilby: but then people would complain that graphics were in postscript instead of lisp leaving it not a lisp environment, and then you'd get an unholy cl extension bent to logo's proportions with none of the elegance
<Guest74> The idea is to have a theme format that doesn't really require knowing how to program or lisp.
<jackdaniel> risking being condemned as a heretic I'll say, that styling with css is also kind of coding. if you want to write an application that allows you to style other applications, then do it, don't force onto innocent user some obscure text format
<weary> i don't think there's a more convenient way to theme things than modern CSS + a widget/object inspector honestly.
<Guest74> I'd say it's a very familiar format for people who style things.
<jackdaniel> just like C is a very familiar format for people who do programming, that's why I'm using exclusively Algol90
<weary> hipster. i'm sticking to algol-n, thanks.
<Guest74> You can however just style it through changing the defaults of each UI element, or specialize a new layout/render methods and style it that way.
<weary> it's really an object inspector that's critical for theming above anything.
<Guest74> lisp is the object inspector :)
<weary> i know! i recently dug up an old kent pitman usenet post for a blog post i wrote, where he described the dynamicwindows inspector, and it struck me that it was basically just a version of what currently exists in web browsers that goes down to the bottom of the stack instead of stopping at a place where no user will really get confused.
<Guest74> any thoughts on the deadly divide between whether font/glyph descents should be represented in negative or positive units?
<Shinmera> Choose whatever, it'll be wrong either way.
<Nilby> yup, so the "worse is better" world we got is: javascript,html,css -> lisp, browser -> lisp machine, browser dev tools -> dynamic windows inspector
<weary> there are also some vpri-adjacent posts i could pull up that describe similar, and i think it's really part of the reason why html "won" compared to native open source frameworks: the existence of a convenient inspector pushes a user to pick up on how to do things even if they aren't necessarily trying to, because they'll constantly be bombarded with examples with basically every page they visit, which creates a bigger developer base.
<weary> the other reason, of course, is that declarative approaches to ui are the only good approaches.
<Guest74> specifiying things is tiresome when you try and find logical rationales and the only real rationales seem to be, 'x does it this way'.
<jackdaniel> the hidden rationale is often "lets make implementing this expensive to avoid competition"
<weary> Guest74: i am content knowing very little about font stacks. eventually i'll read the metafont book and be really pretentious about it but until then i'm just going to be superficially into typography.
<jackdaniel> and slap "industry standard" on top ,)
<jackdaniel> well, fonts and typography are one thing, and opentype is a thing on my todo list of things to be unseen
<weary> isn't opentype basically a stack machine?
<weary> or am i thinking of a different font format
<Guest74> fonts are a bitch.  Everybodies got a different take on what to call something or how to measure things.
<jackdaniel> opentype defines suposedy a few bytecode interpreters, each speaking a different bytecode language
<weary> opentype sounds like it rocks.
<Guest74> lol, read the manual.
<weary> i already have over a gigabyte of pdfs open; i am not allowing myself to open another until i finish either one of the pdfs or one of the books i have on my desk.
dlowe_ has joined #commonlisp
<Guest74> oh well then, descents are positive in my world.  My rationale being that it makes calculations easier.  slap some Lisp Industry Standard on that.
dlowe_ has quit [Remote host closed the connection]
<Guest74> weary: you know they don't disappear if you close the viewer eh?
<weary> i am going to represent descents as surreal numbers in my hypothetical os. of course, i am not sure what surreal numbers are, and i am not sure what descents are. but it seems fitting.
<weary> Guest74: i keep most of my pdfs in /tmp, so they basically do! this is more a "me" problem though.
<shka> hi all
<shka> recent system upgrade broke my SLIME
<shka> and now swank complains about lack of SWANK::THREAD-FOR-EVALUATION method
<shka> what gives?
<shka> is that slime or swank problem?
<jackdaniel> perhaps it is a problem of a stale fasl cache?
<jackdaniel> rm -r ~/.slime/fasl
<shka> oh, good point, let me check
<shka> mmm, no, it is the same
<shka> There is no applicable method for the generic function #<COMMON-LISP:STANDARD-GENERIC-FUNCTION SWANK::THREAD-FOR-EVALUATION (4)> when called with arguments (#<SWANK::MULTITHREADED-CONNECTION {1007F1A253}> :REPL-THREAD)
<Guest74> does your system install slime?
<shka> i install slime from melpa, this is perhaps the problem actually
<Guest74> If you're talking about a distribution? They'll happilly clobber anything newer.
<jackdaniel> perhaps restarting emacs will help
<weary> if you haven't restarted emacs since upgrading, it could be some mismatch between an already-running swank server and what you currently have, so a restart is definitely worth a shot.
<jackdaniel> if not, try to reboot your operating system kernel, who knows what luis crazy integration slime has nowdays ;)
<shka> oh, i restarted everything
<shka> but Guest74 was right
<jackdaniel> did you restart your router?
<weary> and if that doesn't work, you could always go for the classic "reinstall your operating system."
<shka> ok, almost everything :)
<Guest74> you don't hear that often!
<weary> version conflicts once more cause someone minutes of strife and silly jokes
<weary> thinking about spending a couple days learning about what swank sends over the wire so i can add half-hearted and lazy swank integration into the latest editor that's caught my eye
<Guest74> I'm still unsatisfied with how to deal with protocols with several implementations. having to quickload each type of font you want to access and then quickload the protocol implementation for that font seems like a hassle.
<weary> write an interpreter for the genera font format and then say that anything else is a wontfix
<Guest74> granted, I only support 3 types of fonts right now, but hopefully more in the future.  do you just include all implementations if they're fairly small?
<weary> i think it was just fancy bitmaps
<weary> could you just wrap pango?
<Guest74> it's bdf, not a hard format to read/write.
<Guest74> No, I couldn'
<weary> or, harfbuzz, not pango
<Guest74> nope.  I don't do ffi.
triffid has quit [Remote host closed the connection]
<weary> understandable, given that despite many aspects of cl being ahead-of-the-curve, our ffi story is still worse than vms had in the 70s.
<Guest74> I just don't see any point in doing ffi instead of trying to improve the ecosystem.
<Guest74> and it's not like shaping text is particulary hard.  for the most part it's just following a bunch of rules.  Lots of them.
<weary> waiting to write cl in rtl and vertical scripts
<Guest74> for the most part I'll just leave shaping up to others.  I figure if the shaping process is separate from the rasterizing and display it will be easier to work on.
<weary> i can definitely respect doing everything in as much cl as you can, but i can also say wholeheartedly i am much too lazy to attempt what you are attempting.
rainthree has joined #commonlisp
rainthree3 has joined #commonlisp
<Guest74> I'm just making things easier to use for me.  I'm sure many would disapprove of how I'm doing that.
<Nilby> I'm much too lazy to attempt what I'm attempting too.
rainthree has quit [Ping timeout: 255 seconds]
<Guest74> designing systems that are easy to be improved upon by others is how I exercise my lazy.  Hopefully it's useful enough that others will fix it :)
<weary> writing pretty, extensible code is almost universally accepted as a good thing. then again, opinions differ on what code is pretty and what code is extensible.
rotateq has quit [Remote host closed the connection]
<Guest74> nah, I write ugly replaceable code that is easily replaced :)   there are too many moving parts to do more than just specify the protocols.
<weary> if i could snap my fingers and remove any form from the ansi standard, it would be #'let; it's by far the ugliest one.
Josh_2 has joined #commonlisp
<Josh_2> Good morning :)
<weary> good morning!
<Josh_2> I seem to be having a problem with a program I have running on my VPS, after a few days it crashes because it can no longer open any files
<Guest74> sbcl?
<Josh_2> Yes
<Josh_2> I am using with-open-file ofcourse
<Josh_2> I am also using dexador which will be trying to connect to the same host over and over, perhaps Dex is failing to let go of file descriptors?
<Guest74> how old is it?  I recall some problems with too many open fd even though they were closed.
<Josh_2> Hmm
<Josh_2> gimme a sec
<Josh_2> 2.2.0
<Guest74> I haven't had any problem for months or years though.  ...except hard crashes when drawing l-systems.
dBc has joined #commonlisp
<Josh_2> Perhaps there is a problem with dexadors connection pooling
rogersm has joined #commonlisp
<Guest74> I'm trying to search, i had the same problem.
<Guest74> hrm, the solution was dex:clear-connection-pool but that seems after the fact.
<Josh_2> I suppose I can add a timer to do that every day or something
<Josh_2> Just to be on the safe side I suppose
mrcom has quit [Quit: Leaving]
<Guest74> or turn off the connection pooling.
tyson2 has quit [Remote host closed the connection]
pfd has joined #commonlisp
mgd has joined #commonlisp
Cymew has quit [Ping timeout: 240 seconds]
dra has quit [Ping timeout: 240 seconds]
<mgd> Hello, does anyone use Vim for Common Lisp coding? I'm assuming Vlime is used?
tyson2 has joined #commonlisp
mrcom has joined #commonlisp
<jackdaniel> there are a few vim users here, yeah. I'm not one of them, just answering the verbatim question ,)
<Shinmera> mgd: Some use vlime, some use emacs with evil-mode
<jackdaniel> there is also slimv
frgo has joined #commonlisp
<beach> weary: What is meant by "#'let"?
<weary> oh, is there a different syntax for referring to special forms?
<Shinmera> usually people just scream-case it to let people know we're talking about an operator.
<jackdaniel> if you want to be fancy and all, say CL:LET
<weary> let's get real verbose and go with COMMON-LISP:LET
<weary> but yes, i just meant the special form
<beach> LET is a special operator, so can not be accesses with (FUNCTION LET).
<beach> clhs function
<weary> #'let
<weary> #<CLOSURE (:SPECIAL LET) {10013CC30B}>
<weary> i must be missing something
<beach> "Specifically, it is an error to use FUNCTION on a symbol that denotes a macro or special form"
<weary> Ah, I see.
<beach> weary: What you are missing is that Common Lisp behavior is not defined by what a particular implementation does, but by the standard.
<beach> Plus, there is absolutely nothing ugly about LET.
<weary> I figured out what you were trying to get across shortly before you sent that.
<weary> But also, LET is the ugliest of all special forms.
paule32__ is now known as paule32
<weary> The best thing the standards committee ever did was throw &AUX in.
<utis> how come (loop repeat 2 do (princ "> ") (read-line)) gives a newline after the second prompt in sbcl/sly?
<beach> That phrase in the standard should be fixed to say "special operator" rather than "special form".
<beach> note to self: That remark was meant for WSCL perhaps.
treflip has joined #commonlisp
<Nilby> utis: You probably could use a finish-output in there.
<utis> Nilby: i think that didn't work, let me try again
<Josh_2> Just watching the FD's increase on my lisp process
<utis> Nilby: if you mean between princ and read-line, it doesn't change anything for me
<weary> utis: do you get the behavior you want if you run sbcl with --noprint?
<pjb> utis: the newline is the echo of the newline you input to terminate the first line!
<pjb> utis: there's no standard way to disable the echoing. (or to enable it if not activated in the terminal in the first place).
<beach> The REPL should probably not be used for user interaction that way.
<pjb> utis: clisp has WINDOW and KEYBOARD packages to let you do that.
<pjb> utis: otherwise you may use the cl-charm layer over ncurses.
<pjb> beach: what do you mean?
<Nilby> I think the REPL shouldn't echo the newline. Exmaples in the standard and old lisp machines agree with me.
<pjb> It has to, just like it echoes all the other characters.
aartaka has joined #commonlisp
<Nilby> pjb: It doesn't. My REPL doesn't.
<beach> pjb: The REPL wasn't meant for the double use to interact with the Lisp system and to interact with specific applications.
<Nilby> It's just because of unix
<Nilby> beach: 63 years of history counter that belief
<pjb> beach: we'd have to add some definitions. But *terminal-io* which is used by the REPL can perfectly well be used by a specific application while it is running in a single REPL iteration. And the REPL itself could be the basis for interaction of a specific application if it's so structured (by a number of command entry points).
<pjb> beach: now, we could use *query-io* (and I do), in the expectation that implementations use a different I/O channel for *query-io* than *terminal-io*, but almost none does.
<weary> it works just fine with ccl, but it doesn't work as intended on sbcl or wcl. very fun!
<pjb> Some implementations with GUI do, but the interaction part is hard to implement with *query-io* (it'd have to collect all the output in a dialog message, and collect the input from some text box or buttons).
<pjb> and cycling multiple such dialog would be painful too.
rogersm has quit [Quit: Leaving...]
<pjb> I also note that it's generally quite difficult to have from an implementation a secondary listener window or terminal. When you have X available, at least you can use xterm, but it's not trivial.
<pjb> So you're basically forced to clobber the REPL for your application TUI. The only case where it's a little easier not to do that, is when you use slime. But there are other difficulties with slime.
<weary> has anyone else tried that expression with a raw (non-slime) sbcl repl?
<utis> weary: no
<pjb> weary: you definitely want a finish-output.
<pjb> (loop repeat 2 do (princ "> ") (finish-output) collect (read-line))
<Nilby> ccl has unusal io flushing behavior
<pjb> with slime: https://termbin.com/i9q0
aartaka has quit [Ping timeout: 246 seconds]
<pjb> without slime: https://termbin.com/rwpa
<Nilby> or maybe ccl is right
<weary> ccl is probably right.
<Nilby> because that's how clisp and my repl do it too
<weary> it might just be that sbcl isn't calling fflush when it should. but i could be wrong.
<mgd> Thanks all. Starting to play with common lisp after using Clojure. Been using vim for years and not quite ready to use Emacs yet :)
aartaka has joined #commonlisp
<weary> that actually gives me an idea for checking
<weary> i have genuinely no idea
<weary> oh well
kaskal- is now known as kaskal
<Josh_2> mgd: there is no better time than now :sunglasses:
<mgd> Josh_2 is it really the case that you go emacs over vim if you want to learn lisp?
<weary> actually, judging by how using print instead makes the behavior not work in a slightly different way, yeah, i'm almost certain it's just that sbcl isn't calling fflush when the other implementations are
machaddr has joined #commonlisp
<Josh_2> I wouldn't say that mgd
<Josh_2> I'm just shilling for emacs, if you like the keybinds of VIM you could try doom-emacs ;)
<pjb> Well, print = terpri + prin1 ; notice the order. Also, the results are normally printed using print or something similar (multiple-values), in a REPL = read eval print loop.
<pjb> = read eval terpri prin1 loop ;-)
<weary> mgd: i have a blog post i haven't finished yet that had a comment on exactly that phenomenon; conclusion, basically:
<weary> people who try to forgo tooling entirely end up hating common lisp and making languages very similar to common lisp but with shorter function names
<pjb> So if your code uses the unix convention of line newline instead of newline line, when the repl takes back the hand, and prints there result, you can have an additionnal newline printed.
<weary> just use a little tooling and you'll probably be fine
<mgd> weary yeah, I suppose i can use paredit and write lisp files and run them in the repl
dstein64- has joined #commonlisp
<weary> vlime and slimv are decent enough, you could always give one of them a try; they get you a decent amount of the way there.
dBc has quit [Quit: leaving]
<beach> mgd: Emacs and SLIME are not great for Common Lisp programming, but I understand the VIM extensions are worse. There is some important functionality that you really need in order not to end up hating Common Lisp as weary puts it. Stuff like getting the function lambda list in the minibuffer is absolutely essential, and it is also important to get the indentation right.
dstein64 has quit [Ping timeout: 240 seconds]
dstein64- is now known as dstein64
<weary> pjb: when talking about fflush, i was actually referring to sbcl without using the slime repl, which has the opposite problem of an extra newline: it flushes in the wrong order! which is very fun.
<weary> this is probably because unix buffers stdout and only actually returns characters on either a newline or an fflush call, and so for something like princ, it's essential for the implementation to fflush after.
OlCe has joined #commonlisp
<Krystof> flushing stream buffers is under user control. To guarantee that output which might have been buffered somewhere (in unix or Lisp streams) actually outputs, use finish-output (as suggested). User code that doesn't use finish-output at appropriate times will have variable consequences.
<weary> for reference, this is what you get with the original function in ccl and then sbcl: https://pastebin.com/TY8WG73P
irc_user has joined #commonlisp
<mgd> beach so the real question is, what should be used long term if I want to learn and develop in common lisp? I'd rather not have to jump around editiors
<Josh_2> Well learn Emacs and use it for everything :D
<beach> mgd: There is currently nothing better than Emacs with either SLIME or Sly as far as I know. We are (very slowly) working on something better, but I can't recommend that you wait for it. So Emacs it is for now.
razetime has joined #commonlisp
<paule32> hello
<mgd> beach great, I'll get my hazmat suit. Hopefully, i'll figure out evil mode
<weary> mgd: unfortunately, your best bet is emacs. you might be able to bang together a vim environment that gets you a ways there, but it would take a lot of effort. sorry. emacs is pretty bad, but it's where the development effort is.
<paule32> is rotateq available ?
<weary> beach: actually, slimv has the arglist in the status line, doesn't it?
varjag has quit [Quit: ERC (IRC client for Emacs 26.3)]
<paule32> i use command line for cl, i compile it from scratch, if you would like have "history" of text, you have to compile with getline support, sbcl does it from native
<mgd> @beach sorry, do you do development for Common lisp?
<paule32> for little tests
<paule32> beach: rotateq pointed me to your lisp tube, very great work !
<paule32> i have watched part one, but he said there are three
<beach> weary: I don't know slimv. It is great if it has the lambda-list feature.
<beach> mgd: Yes, many of us here do. This channel is not really meant for newbie questions, though they are tolerated. It is more meant for people who do more advanced thing with or for it.
<beach> mgd: There is #clschool for newbie questions.
<weary> question that just came to my mind, is sicl self-hosting yet?
<mgd> Understood and gratefully appreciated. Thank you for the help
<beach> weary: For all practical purposes, you can consider SICL as not existing.
<beach> mgd: Pleasure.
<weary> practical software is boring software.
<beach> Tell me again the precise meaning of "self hosting"!
<weary> Can you load SICL with itself and then load SICL into the SICL-hosted SICL, like a matryoshka doll?
<beach> I see, thanks.
waleee has joined #commonlisp
pfd has quit [Quit: Client closed]
jdz_ has joined #commonlisp
jdz has quit [Ping timeout: 240 seconds]
aartaka has quit [Ping timeout: 240 seconds]
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 240 seconds]
rotateq has joined #commonlisp
theBlackDragon has quit [Ping timeout: 258 seconds]
theBlackDragon has joined #commonlisp
mgd has quit [Quit: Client closed]
theBlackDragon has quit [Ping timeout: 258 seconds]
seok has quit [Ping timeout: 258 seconds]
seok- has joined #commonlisp
<Josh_2> paule32 proving he is the forever masochist
taiju has quit [Ping timeout: 250 seconds]
aartaka has joined #commonlisp
causal has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
tane has joined #commonlisp
tane has quit [Changing host]
tane has joined #commonlisp
aartaka has joined #commonlisp
* ck_ .oO( https://www.youtube.com/watch?v=Sy5Xu_gB7_o The Neverending Story -- Theme of Sadness )
<dbotton> what is it that people feel is so lacking in emacs? or that is so much more some place else?
<dbotton> the environment that it creates for Common Lisp + slime is a big part of what makes CL so amazing
<dbotton> Asking to understand
<ck_> taking your question literally: speed, ease of input, small size, for a few examples
<dbotton> is it like the parentheses thing?
ec has joined #commonlisp
<beach> dbotton: Emacs and SLIME don't have any "understanding" of the code. They do not know the role of symbols.
<dbotton> is there another that does?
<ck_> :) cue sales pitch
<beach> dbotton: Try doing (let ((hello<RETURN> and see where the cursor ends up. Then try (let ((prog1<RETURN> and look at the difference.
<dbotton> trying now
<beach> dbotton: Like I said, Emacs+SLIME currently represent the best we have, and it is not very good.
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
<beach> dbotton: Font color is based on package only, and there is no way to distinguish between different roles of a symbol. So more sophisticated functionality is simply impossible to accomplish.
<beach> dbotton: Like "find me the place where this variable was defined".
<dbotton> I guess because of my age, almost no tool I have ever used offers any of that
<dbotton> My C/C++ days and even Java days was at their inception and moved on
<beach> But tools these dasy should do that.
<dbotton> certainly could agreed
<Guest74> beach: do you mean something more than what slime does when it takes you to where a symbol is defined?
Lord_Nightmare has joined #commonlisp
<beach> dbotton: Also, look at the debugging situation for free Common Lisp implementations. You can't even set breakpoints in SBCL.
<dbotton> I tried that the other days, ya was surprised could not
<beach> dbotton: The SLIME "debugger" is just a backtrace inspector and not a real debugger.
<dbotton> I guess because my debugging style uses that so infrequently just noticed a month ago
<beach> Guest74: I don't think SLIME can do the following: Say you have (let ((prog1 <some-form>)) <lots of stuff> (let ((hello <form>)) ... prog1))
<beach> Now invoke some command on the last prog1 so that it takes you to, or at least highlights the prog1 in the first LET.
<pjb> beach: just type M-. it works.
<beach> pjb: Excellent. Then I'll find a way to make it fail.
<beach> dbotton: Yes, people who think what we have is great are usually people who are not used to advanced development tools. I could do more with GDB and C in 1990 than I can with what we have for Common Lisp now.
<pjb> at least with ccl.
<pjb> it would depend on the implementation.
<jackdaniel> C probably has better debugging tools because there is not much incentive to improve lisp in that regard - ability to redefine a function and put a break inside without recompiling whole program can get you very far
<beach> pjb: Does (defmacro bla (&body x) '(let ,@body)) or something like that, and then (bla ((prog1 instead work?
cosimone has joined #commonlisp
<Guest74> pjb: works on sbcl too.
<beach> jackdaniel: That's entirely possible. I personally find that technique totallly unsatisfactory.
<dbotton> jackdaniel the only time I ever used incremental compiling in C/C++ and Pascal was for that exact purpose
<dbotton> and what I enjoy most of CL, quick debug playing
<beach> pjb: I'll come up with some better examples tomorrow. Now, dinner is imminent.
<pjb> beach: it doesn't, indeed.
<pjb> with bla.
<beach> Not surprised.
<beach> It might not even work if LET is in a different package.
<weary> dbotton: cons of GNU EMACS/SLIME: elisp, no speed, poor OS integration, slime/sly repl not great, frame/window terrible abstraction as currently implemented, lots of opportunities not taken (coloring threads based on whether or not they're still alive would be very nice, but no), mediocre ecosystem, terrible text editing, forcing cua everywhere is made annoyingly difficult
<weary> on the other hand, benefit of GNU EMACS/SLIME: i read an OS manual from 1992 for twenty minutes years ago and immediately understood most of the important commands for text editing, even though they're generally less efficient than CUA+function keys.
theBlackDragon has joined #commonlisp
treflip has quit [Read error: Connection reset by peer]
treflip has joined #commonlisp
theBlackDragon has quit [Ping timeout: 240 seconds]
<paule32> hello Josh_2
<paule32> my affinics in my toy interpreter is cl
<paule32> i learn a lot of technics from the dragon book
<paule32> but it is out of print
<paule32> so, i dont know how to buy it elsewhere as internet .pdf (hint for other interpreters builders)
<Josh_2> Idk what you are talking about
<Josh_2> but building a CL interpreter is pretty cool
tyson2 has quit [Remote host closed the connection]
<paule32> that was it, what i told you all the time
<paule32> it is not a replacement for the original, but i doing it just for fun, no profit things in mind
<lagash> weary: "cons" of SLIME? no pun intended? :P
Bike has joined #commonlisp
yewscion20 has joined #commonlisp
yewscion has quit [Killed (mercury.libera.chat (Nickname regained by services))]
yewscion20 is now known as yewscion
Guest7325 has joined #commonlisp
razetime has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<Josh_2> I'm not sure if Dex has a problem with closing connections, over the last few hours the number of CLOSE_WAIT connections listed by lsof -u | grep <my app> has been increasing
<Josh_2> I clear the connection pool manually and it makes no difference
<Josh_2> When I first started my app I had 5 fd's now I have 49
<Josh_2> My lisp program opens files using with-open-file so I dont think it is that causing the issue, but the number of entries under IPv4 keeps increasing
Posterdati has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
<Guest74> are they all functional and being used?\
Posterdati has joined #commonlisp
saura has joined #commonlisp
<paule32> Guest74: wut ? you mean Josh_2 ?
<Josh_2> Guest74 the files I open are shut immediately after being used to store the current state
<Josh_2> Perhaps it is a problem with parallel processing, maybe I need to pass dex:*connection-pool* as an argument to bt:make-thread in order to share the connection-pool :think:
saura has quit [Remote host closed the connection]
saura has joined #commonlisp
<paule32> i using connection pools, when i use tcp apps, in context with a structure, so each connection becomes a structure member, and when i would like broadcast a message to all clients, i go traverse this structure items, and check the connection, if it alive, then i send data
<Josh_2> There are 8 that are labelled as ESTABLISHED out of 48
<Josh_2> paule32: I am relying on Dexador
attila_lendvai has joined #commonlisp
<paule32> dexador is a service, or lib ?
<Josh_2> Library for HTTP/S requests
pmc_ has joined #commonlisp
<Josh_2> 29 labelled as close_wait :(
<paule32> so, you have a listen socket ?
Dynom has joined #commonlisp
<Josh_2> The listening sockets are all related to Slynk
<Josh_2> Or a single socket for receiving webhooks
<Josh_2> Many of these CLOSE_WAIT are repeating IP's :(
<paule32> i know it from irc server, they do a ping to server, and the server give back a pong, if there is a timer, that does not recieve a pong within a given time in seconds, then the socket will be closed, and freed
<Josh_2> Well that doesn't seem to happen, because after a week or so my program will crash because it can no longer open files
<Josh_2> systemd ulimits or something
<Josh_2> I think I will make an issue on the dexador github and see what they say
<paule32> that would be the best, i prefer fcc the indy 10 library - it is implemented in other dsl as cl, but with fcc, I could try to provide you some calls
<paule32> but, i using windows
<paule32> sorry, ffc - foreign function call(s)
<Nilby> Josh_2: As a workaround until you figure it out, you can just manually close them them in periodic loop, with sb-posix:fcntl GET_FD and sb-posix:close.
<Josh_2> How do I get the FDs from sbcl?
<paule32> maybe you have success by using the PID, and search for the FDs, but this is hacky
<Nilby> Josh_2: They're just integers so you can loop and block the ones you don't want to close
<Josh_2> How do I get SBCL to list the FD's its using?
<Nilby> Josh_2: If you have a stream and check that it's an fd-stream, then you can get it's fd slot, but it's quite hackish.
<Josh_2> I see
<Josh_2> Thanks for the info :)
<Nilby> Josh_2: something like this https://plaster.tymoon.eu/view/3192#3192
<Nilby> the fcntl GET_FD just checks if it's valid fd that's open
<Josh_2> I dont think thats so helpful as dexador is being used to establish the streams. thats why it would be nice if I could just get a list of FD's in use by SBCL
<Josh_2> then perhaps I could sort the ones dex is using and then check
<paule32> if you under *nix, check /proc/pid/fd
<paule32> then use "stat" for metadata
aartaka has quit [Ping timeout: 255 seconds]
aartaka has joined #commonlisp
<Josh_2> I will just keep an eye and restart my app when the number gets close to 1024 (the systemd ulimit)
<Josh_2> maybe I can just up the limit
machaddr_ has joined #commonlisp
<paule32> maybe, you have 2 apps running, when first app reached file limit, app 2 close app 1, and open class 1 again
<Josh_2> Ha now that would be a hack
<Josh_2> might as well start writing malware :joy:
machaddr has quit [Ping timeout: 255 seconds]
<Josh_2> It'll teach me for not using Ediware
<jackdaniel> didn't you say that you have problems with dex?
<Nilby> Josh_2: Do you know if they not closing because you're getting honeypotted?
<Josh_2> Well I would hope not
<Josh_2> jackdaniel: yes
<jackdaniel> drakma is "ediware", dex is written by someone else
<Josh_2> Yes I know
<weary> > for not using Ediware
<jackdaniel> ah, OK, I misread what you've said
<Josh_2> its fukamachiware
<weary> keyword not, i think
<Josh_2> no worries
aartaka has quit [Ping timeout: 244 seconds]
theBlackDragon has joined #commonlisp
<Nilby> Josh_2: btw here's one way to check the fd's your using (loop :for i from 1 to 1024 when (ignore-errors (sb-posix:fcntl i sb-posix:F-GETFD)) collect i)
treflip has quit [Quit: i slep]
aartaka has joined #commonlisp
<Josh_2> Okay cool :)
<Josh_2> Thanks
<Josh_2> 55 right now apparently
<Josh_2> doesn't seem right :sob:
<Josh_2> Tomorrow I will check again and it'll be 100+
theBlackDragon has quit [Ping timeout: 258 seconds]
rainthree3 has quit [Ping timeout: 255 seconds]
machaddr_ is now known as machaddr
tyson2 has joined #commonlisp
igemnace has joined #commonlisp
theBlackDragon has joined #commonlisp
theBlackDragon has quit [Ping timeout: 246 seconds]
pmc_ has quit [Remote host closed the connection]
pmc_ has joined #commonlisp
ttree has joined #commonlisp
Posterdati has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
vassenn has joined #commonlisp
Posterdati has joined #commonlisp
ttree has quit [Read error: Connection reset by peer]
ttree has joined #commonlisp
tyson2 has quit [Ping timeout: 276 seconds]
n1to has joined #commonlisp
theBlackDragon has joined #commonlisp
vassenn has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
Alfr has quit [Ping timeout: 260 seconds]
pmc_ has quit [Quit: Leaving]
morganw has joined #commonlisp
tyson2 has quit [Ping timeout: 255 seconds]
rogersm has joined #commonlisp
Oddity has joined #commonlisp
jmdaemon has joined #commonlisp
yewscion has quit [Ping timeout: 240 seconds]
yewscion has joined #commonlisp
Dynom has quit [Quit: WeeChat 3.5]
machaddr has quit [Read error: Connection reset by peer]
machaddr has joined #commonlisp
yewscion has quit [Quit: Ping timeout (120 seconds)]
yewscion has joined #commonlisp
<mfiano> How can I tell how many characters have been written to a character output stream as created with #'make-string-output-stream? Is reading the whole stream with #'get-output-stream-string the way to do this?
<mfiano> Ah I didn't realize #'file-position worked on arbitrary streams.
* mfiano thinks that should be called #'stream-position
shka has quit [Ping timeout: 255 seconds]
dra has joined #commonlisp
torbo has joined #commonlisp
machaddr has quit [Quit: Leaving]
jmdaemon has quit [Ping timeout: 258 seconds]
n1to has quit [Quit: Leaving]
tyson2 has joined #commonlisp
mfiano has quit [Ping timeout: 240 seconds]
mfiano has joined #commonlisp
cosimone has quit [Read error: Connection reset by peer]
tane has quit [Quit: Leaving]
jmes has joined #commonlisp
<jmes> I'm having a little trouble with using both &key and &body in my macro definition. Can I make it so that I can use the macro with either (macro :key x (body)) or (macro (body))?
<Shinmera> mfiano: it's not guaranteed that you'll get anything but nil.
<Bike> jmes: not in any simple way. usually you'd have (macro (:key x) (body)) or (macro () (body)).
<Shinmera> Colleen: tell jmes look up form-fiddle with-body-options
<Colleen> jmes: Macro form-fiddle:with-body-options https://shinmera.github.io/form-fiddle#MACRO%20FORM-FIDDLE%3AWITH-BODY-OPTIONS
<jmes> Thank you Bike & Shinmera <3
<torbo> My app server running on SBCL/FreeBSD starts to consume 100% CPU after a couple of days in production. It appears that some thread is going into an infinite loop for some reason. Any way to find out which function is looping? I tried passing all symbols in the package to sb-profile:profile but ended up getting a non-terminating stream of "binding stack guard page reprotected" messages in the REPL and had to restart the server.
<Shinmera> tracing/profiling all symbols will also include stuff from CL which is a bad idea.
<torbo> Makes sense, will try to get a list of only the symbols related to the particular package in the future.
<torbo> Thanks for that insight.
<Shinmera> anyway, you can try to debug threads by doing something like (bt:interrupt-thread thread #'break)
<Shinmera> I forget which function gives you the TID of a thread on SBCL to correlate it with whichever is eating CPU.
<torbo> Thanks! `sb-thread:list-all-threads` appears to return all the threads. (Source: https://lispcookbook.github.io/cl-cookbook/process.html#sbcl-threads)
<Shinmera> sure, but that doesn't tell you which thread is eating cpu
<torbo> Yeah, true.
szkl has joined #commonlisp
<torbo> Thanks for the idea!
<torbo> Seems to be a hunchentoot worker.
torbo has left #commonlisp [ERC (IRC client for Emacs 27.2)]
pillton has joined #commonlisp
Bike has quit [Quit: Connection closed]
<mfiano> Shinmera: I see, yes. That's pretty lame.
igemnace has quit [Quit: WeeChat 3.5]
mfiano has quit [Ping timeout: 276 seconds]
mfiano has joined #commonlisp
morganw has quit [Remote host closed the connection]
random-nick has quit [Ping timeout: 240 seconds]
rogersm has quit [Ping timeout: 255 seconds]
dra_ has joined #commonlisp
dra has quit [Ping timeout: 255 seconds]