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/>
dipper has joined #commonlisp
bilegeek has quit [Remote host closed the connection]
bilegeek has joined #commonlisp
dra_ has quit [Remote host closed the connection]
molson has quit [Remote host closed the connection]
<dipper> beach: hello I was curious about you said about ready for position
<dipper> beach: when should I say ready?
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 250 seconds]
Lord_of_Life has joined #commonlisp
pdietz has quit [Ping timeout: 244 seconds]
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
waleee has quit [Ping timeout: 272 seconds]
pdietz has joined #commonlisp
ski has quit [Remote host closed the connection]
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
pillton has joined #commonlisp
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
molson has joined #commonlisp
molson has quit [Remote host closed the connection]
bilegeek_ has joined #commonlisp
bilegeek has quit [Ping timeout: 272 seconds]
epony has quit [Ping timeout: 252 seconds]
pdietz has quit [Ping timeout: 244 seconds]
dipper has quit [Remote host closed the connection]
epony has joined #commonlisp
jeosol has joined #commonlisp
dipper has joined #commonlisp
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #commonlisp
pdietz has joined #commonlisp
<beach> ::notify dipper: That depends a lot on the job description. If kakuhen is right, you also need knowledge about compiler design its prerequisites.
<Colleen> beach: Got it. I'll let dipper: know as soon as possible.
<gko> In Emacs SLY or SLIME, is there an equivalent of LispWorks editor's "Definitions" (a list of clickable functions, variables, setf, etc.) defined in the current file?
bilegeek_ has quit [Remote host closed the connection]
bilegeek_ has joined #commonlisp
<beach> gko: Probably not. What happens when you click on a definition?
tyson2 has quit [Remote host closed the connection]
<gko> beach: it returns to the editor and selects the definition.
<beach> I don't understand. You said the clickable definitions are in the editor, so how does it "return" to the editor then?
<beach> Sorry, I have never used LispWorks, so I am a bit dense.
<beach> Oh, I think I see.
<beach> Thanks.
<gko> LispWorks is the Emacs of IDEs...
<beach> As I understand it, LispWorks is the best there is when it comes to Common Lisp development environments.
<beach> The analysis of the code in a buffer provided by Emacs is not very good, so there are many things that can't be done with the current technique.
<beach> But we are (very slowly) working on the components of an IDE with much better analyses.
<gko> Nice...
bilegeek_ has quit [Quit: Leaving]
pdietz has quit [Quit: Client closed]
<Bike> beach: you have to do "::notify dipper" without the colon to get the message sent
<beach> Crap! Thanks!
<beach> ::notify dipper That depends a lot on the job description. If kakuhen is right, you also need knowledge about compiler design its prerequisites.
<Colleen> beach: Got it. I'll let dipper know as soon as possible.
<dipper> thanks I already receive it,
<Colleen> dipper: beach said 1 minute, 23 seconds ago: That depends a lot on the job description. If kakuhen is right, you also need knowledge about compiler design its prerequisites.
<beach> dipper: So did you already know some other programming language before you read PCL, and do you have any significant programming experience?
motherhucker has quit [Ping timeout: 272 seconds]
<dipper> yes I have 4yr front-end experience in js
azimut has quit [Ping timeout: 258 seconds]
_cymew_ has joined #commonlisp
<beach> I see.
<beach> I suspect that companies that use Common Lisp also require knowledge about things like algorithms and data structures, and perhaps about compilers as kakuhen suggested. So if you want a job where you can use Common Lisp, those domains might be worth studying.
<kakuhen> For the job I was thinking of in particular, there's still some open position at HRL Labs it seems
<kakuhen> But they specifically look for candidates with strong knowledge and experience working with compilers, together with some Common Lisp knowledge
<hayley> dipper stated they are not in the US, and I presume they are not a US citizen, so they probably will not find a job at HRL.
<beach> That sounds right.
<beach> Either way many small-ish companies don't really care what language is being used, and they don't have enough knowledge about software development to know what to put in the ads for job openings. This situation gives significant freedom to employees.
aartaka has joined #commonlisp
<hayley> Best time I can think of to complain that getting CL jobs down under is hard. Actually, I think there was one mentioned somewhat recently, but I can't do a full time job either, which makes matters worse.
<beach> What I am trying to say is that one should not look for "Common Lisp jobs", because most companies don't know that Common Lisp is exactly what they need. So I would look for a job with in-house development and a small development team.
<hayley> It seems like a foreign concept for companies to not care, as there tend to be languages specified in job listings, but that discounts trying to change the minds of management, or hoping they don't notice.
<beach> The reason they put languages in the ads is that they think that such knowledge is the core of the qualifications they need, but that's just because they know very little about software development.
igemnace has joined #commonlisp
<hayley> How does one tell that? Just guess that most employers don't know very much about software development?
<beach> I don't know how to tell that from the ads. I guess one would need a job interview for that.
shka has joined #commonlisp
<Nilby> Or if you're disobedient like me, any job is a CL job, especially when we have a CL that compiles to C and another to JVM
<gko> You can always use CL to write your own tools or utilities at work, even if you are the only one to use them.
rgherdt has joined #commonlisp
Cymew has joined #commonlisp
spiaggia has joined #commonlisp
causal has quit [Quit: WeeChat 3.6]
aartaka has quit [Ping timeout: 272 seconds]
aartaka has joined #commonlisp
pve has joined #commonlisp
rendar has quit [Quit: Leaving]
<kakuhen> that is correct; I implemented my own TOTP software and actually use it as my two-factor authentication program for my accounts at work
<kakuhen> well, "own" -- most of it was doable within a weekend thanks to ironclad providing painless ways to compute HMACs
rendar has joined #commonlisp
rendar has quit [Changing host]
rendar has joined #commonlisp
enzuru has quit [Quit: ZNC 1.8.2 - https://znc.in]
<spiaggia> That's the other thing. The employer does not have a very good idea about the productivity of the developers, as shown by the supposedly huge difference in productivity (but not in salary) between different developers. So it is often possible to spend considerable time on one's own projects.
enzuru has joined #commonlisp
<dipper> ok then,how to use cl to make money?
<hayley> (defstruct money) (make-money)
knusbaum has quit [Ping timeout: 255 seconds]
attila_lendvai has joined #commonlisp
ttree has quit [Ping timeout: 272 seconds]
<hayley> If one cannot find a job, I think the usual approach is to start one's own business. But it's hard to tell if the invisible hand of the free market is flipping one off, because, well, it's invisible.
knusbaum has joined #commonlisp
spiaggia has left #commonlisp [ERC (IRC client for Emacs 27.1)]
<hayley> As I mentioned in #commonlisp last year, I "won" an invitation to a startup program the university runs. Thought I might as well see if I can make any money, and I was sickened by the first meeting. So, I don't think startups are for me.
random-jellyfish has joined #commonlisp
<_death> don't be hasty in judgment
<dipper> oh what's fit to you then, do you start you own business?
<hayley> The idea of "being able to do business in Antartica" appeared to me more as an indication that our species had majorly fucked up, rather than a "business opportunity in the near future".
<hayley> But, yes, that's not representative of much.
<dipper> the idea too big, may be start something small
random-nick has joined #commonlisp
Lycurgus has joined #commonlisp
<Nilby> Antarctica looks like a huge opportunity! [on a 2d projection]
Lycurgus has quit [Quit: Exeunt juan@acm.org]
chipxxx has joined #commonlisp
chip_x has quit [Ping timeout: 276 seconds]
rogersm has joined #commonlisp
Dynom_ has joined #commonlisp
Dynom_ is now known as Guest235
karlosz has quit [Quit: karlosz]
karlosz has joined #commonlisp
cosimone has quit [Remote host closed the connection]
aartaka has quit [Read error: Connection reset by peer]
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 272 seconds]
aartaka has joined #commonlisp
random-jellyfish has quit [Quit: Client closed]
rogersm has quit [Read error: Connection reset by peer]
pdietz has joined #commonlisp
cosimone has joined #commonlisp
jmdaemon has quit [Ping timeout: 272 seconds]
aartaka has quit [Ping timeout: 250 seconds]
aartaka has joined #commonlisp
lisp123 has joined #commonlisp
aartaka has quit [Ping timeout: 250 seconds]
aartaka has joined #commonlisp
<lisp123> one good way to get a CL job is to work in a more flexible (read smaller) place and then start implementing some of the required work in CL
<lisp123> dipper, join forces one day in the future. i'm reimplementing emacs in the browser with a twist, if it succeeds I hope to fund a fully CL emacs / text editor
<lisp123> dipper, also have a look at CLOG - it can be used to implement CL programs in the browser so can go hand in hand with your experience
edgar-rft has quit [Quit: Leaving]
pillton has quit [Remote host closed the connection]
random-jellyfish has joined #commonlisp
pdietz has quit [Ping timeout: 244 seconds]
tyson2 has joined #commonlisp
ryanbw has quit [Ping timeout: 246 seconds]
<Josh_2> Good Morning :sunglasses:
bitmapper has quit [Quit: Connection closed for inactivity]
aartaka has quit [Ping timeout: 276 seconds]
ryanbw has joined #commonlisp
aartaka has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
azimut has joined #commonlisp
edgar-rft has joined #commonlisp
jeosol has quit [Quit: Client closed]
waleee has joined #commonlisp
waleee has quit [Ping timeout: 276 seconds]
waleee has joined #commonlisp
waleee has quit [Ping timeout: 272 seconds]
<dipper> ::notify lisp123 implementing emacs in browser very nice idear, appreciate
<Colleen> dipper: Got it. I'll let lisp123 know as soon as possible.
<beach> What problem would a browser implementation of Emacs solve?
<dipper> like vscode online
<dipper> remote work
<beach> If so, what kind of information would go over the network? Just display information?
<beach> Then it would do roughly the same thing as the X11 window system used at a distance, yes?
<dipper> it means out-of-the-box
<dipper> beacause lots of people miss emacs the most powerfull editor
mrvdb has quit [Quit: ZNC 1.8.2 - https://znc.in]
<dipper> if it can used convenient, I belive most people will try
mrvdb has joined #commonlisp
<dipper> and includes emacs enviroment
<dipper> like google sheets or vscode for web
waleee has joined #commonlisp
random-jellyfish has quit [Ping timeout: 244 seconds]
<beach> I just don't understand how a browser implementation would work and how it would improve things. Emacs can be used remotely already, I think in two ways. You can edit files remotely, and you can start an Emacs on a remote machine and have it displayed locally.
<beach> Notice that I am not doubting that it will improve things. I just don't understand how.
Oddity has quit [Ping timeout: 250 seconds]
<dipper> I think need rebuild editor in browser , use cl as back-end
<Mrtn[m]> Is it called Tramp?
<Mrtn[m]> dipper: The less I have to open my browser, the more happy I am. I tend to prefer eww over chrome, in many cases. I am guessing you feel differently.
<dipper> chrome has big market
<beach> Ah, yes, "Tramp" sounds familiar.
<beach> I am more interested in ways that we could improve the Common Lisp development environment than running Emacs in my browser, unless, of course, Emacs in the browser solves a problem that I can't (yet) see.
<ecraven> I'd much rather run the browser in Emacs (lacking a better lisp machine for the moment) :D
<beach> Heh, I can see that.
<beach> I think the entire idea of a "web browser" is a product of the fact that Unix-like operating systems have such primitive ways of communicating across processes, so that instead of having collaborating applications, all functionality has to be in one application. I may be wrong of course.
<ecraven> but seriously, the *only* thing that emacs really has going for it (and why I use it for everything I can), is that it is a lisp machine that I can run *now* that also allows me to integrate other programs.
<ecraven> beach: that sounds very much true.
<beach> ecraven: And so does your analysis.
<ecraven> I've played around a bit with OG and a lot with the CADR.. how would a "modern" lisp machine separate different "processes" from each other? given the immense introspectability, couldn't one program just do whatever it wants to almost the entire machine?
<ecraven> times have changed since the days of the CADR, when you could assume no malicious players *inside* your own machine
<beach> I have sketched how to do that in my CLOSOS documents.
<beach> You would not have separate address spaces, and instead rely on a combination of access control lists and capabilities.
<ecraven> could I persuade you to link them? ddg doesn't find anything :-/
<beach> Hold on... (someone else might be faster than me)...
<ecraven> well, you don't *need* separate address spaces, if you don't have arbitrary pointers, right? you can only access things that you actually have a handle on.. but the problem I see is that - given introspection - you can get very far from that handle ;D
<ecraven> and if you take away that introspection, you lose part of the entire appeal of the lisp machine, maybe?
<ecraven> beach: thanks!
<ecraven> I should just read everything you write, it's all interesting :D
<beach> Heh! Thanks!
<ecraven> How is this from 2013 and I've never come across it :-/
<beach> Introspection is essential, but with capabilities you could restrict what could be introspected based on access rights.
<beach> I guess you don't hang out here enough. :)
<ecraven> so "root" would mean you can introspect more? ;)
<jackdaniel> having lisp environment working in a web browser has a benefit of easy distribution; while emacs is the best thing for text editing since the sliced bread, it is firefox or chrome installation what is ubiquitous
<ecraven> I do, but I lurk too much it seems, and don't read the backlog enough
<beach> ecraven: Also, we discuss these things perhaps more in #sicl than here.
<ecraven> beach: thanks, mind if I join there?
<ecraven> jackdaniel: yes, but I can't use firefox as my WM, with emacs, I do ;)
<jackdaniel> (and yes, I'm putting emacs as a text editor in the same basked as a bread slicer _as a text editor_)
<beach> Not at all. Everyone is welcome. A bit quiet right now though.
<jackdaniel> basket*
<ecraven> I don't even think emacs is particularly good at editing text, but it is insanely malleable
<jackdaniel> ecraven: that depends on where you put your windows; in clog windows are in the web browser (I've also seen a linux vm running in a web browser)
<jackdaniel> either way I'm just chipping in why there is an appeal of having lisp system running "inside" the web browser (i.e with help of wasm runtime)
<beach> ecraven: What I would like to see, as an intermediate solution before we have CLOSOS, is a bunch of applications that use the CLIM framework for internal communication.
<ecraven> jackdaniel: I can see that for most types of applications ;)
<beach> We already have a very good inspector, and a reasonable listener. More applications are being written all the time.
<ecraven> I should really get back (well, maybe just "into", never been there very much) into the CL ecosystem
<beach> We also have a backtrace inspector (what is called a "debugger" in Common Lisp and SLIME) and some other applications.
<beach> I no longer use the SLIME inspector, and instead always use Clouseau.
<ecraven> hm.. so with a single address space, all threads could run at the same time without any paging? that sounds .. interesting!
<ecraven> beach: what do you use for development? which editor?
<beach> Paging, perhaps if there is not enough RAM, but no context switch.
<beach> I use Emacs.
<ecraven> sorry, paging as in "changing the page table" (so not paging at all ;)
<beach> Right, also known as "context switch". :)
<ecraven> do you have a video or document on how you work?
<beach> I don't think so. The kind of stuff I currently do has incredibly bad development support. I try to develop some tools (using McCLIM) when I feel the need. Otherwise, it's mostly about starting new compilations.
attila_lendvai has quit [Ping timeout: 250 seconds]
pranavats has left #commonlisp [Error from remote client]
<beach> I did make one video that shows how I use a custom backtrace inspector when things go wrong. Let me see if I can find it.
<ecraven> hm.. in chapter 3, you talk against protection of the user vs. other users, and of the system vs. users.. what about protecting one of the user's applications against another application of the same user?
pranavats has joined #commonlisp
<beach> I haven't thought of everything.
<ecraven> ;) sorry, so many questions.. thank you very much for taking the time to answer my questions!
<beach> Pleasure. I'll try to answer as many as I can.
<beach> But I am currently expecting a nurse to come to the house to give me my annual injection against the seasonal flu. So I'll be off and on for a while.
<ecraven> I have to leave now, thanks again for your time!
pranavats has left #commonlisp [Error from remote client]
<beach> See you.
aartaka has quit [Ping timeout: 260 seconds]
eddof13 has joined #commonlisp
aartaka has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
<Posterdati> hi
<beach> Hello Posterdati.
<Posterdati> I rewrote network programming in common lisp using ReST, if anyone is interested: https://github.com/tapioco71/npaclio
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #commonlisp
Everything has joined #commonlisp
pranavats has joined #commonlisp
dipper has quit [Remote host closed the connection]
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
ttree has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
perrierjouet has quit [Quit: WeeChat 3.7]
perrierjouet has joined #commonlisp
McParen has joined #commonlisp
McParen has left #commonlisp [#commonlisp]
<Josh_2> beach: there is a CLIM protocol for cross application communication?
tyson2 has joined #commonlisp
<beach> No, but since it is all in the same process, they can communicate by handing each other a pointer.
<Josh_2> Oh
<Josh_2> I guess I misunderstood.
cage has joined #commonlisp
<Josh_2> What do you mean by this? "is a bunch of applications that use the CLIM framework for internal communication."
<beach> That's the very point. Unix-like operating systems make communication so hard and that influences the way applications are written.
<beach> I mean that the applications all run in the same Unix process, so they can share data by just handing each other pointers.
<Josh_2> Oh I see
<Josh_2> so having lots of applications in a single lisp image?
<beach> Yes.
<Josh_2> I started doing that for a few websites of mine, but I never got around to completing it
<jackdaniel> in CLIM applications operate on an ontology defined by a set of presentation types and presentation methods; and interactions are defined in form of commands stored in command tables
<Josh_2> Aren't there potential reliability issues with having everything in one place?
<Josh_2> Type errors in SBCL can lead to the low level debugger
<beach> You would typically run the applications in separate threads if that is what you mean.
<Josh_2> Interesting
<Josh_2> Well I thought about doing that with my websites, I am unsure if I would want to do that with my much larger projects
<beach> Unless of course you mean errors like uncaught memory exceptions.
<Josh_2> What about if you need to restart one of the applications?
<Josh_2> I do not know how one would go about this in practice
<beach> I don't see a problem with that.
<Josh_2> Sometimes things get all screwed up with packages, and a nice image restart sorts it out
<beach> The thread would be killed and a new one created.
<Josh_2> Does anything like this exist already?
<beach> Sure, SBCL is not (yet) good enough for this kind of system. For one thing, you would need first-class global environments.
<Josh_2> Right
<Josh_2> Hence SICL
<beach> Yes.
<Josh_2> I really like the idea of treating a lisp image like an operating system. If the tooling existed so that I could seamlessly hack on one image like it was multiple I would make heavy use
<jackdaniel> I don't know about first class environments, but in mezzano all programs reside in a single image
Catie has joined #commonlisp
<beach> I think Josh_2 means that you can screw things up badly when there is no protection. Like you could delete the Common Lisp package or remove the compiler.
<Josh_2> Yes
<Josh_2> I have applications that would benefit from being able to directly communicate rather than using some REST API
<jackdaniel> deleting cl package and removing the compiler may be solved by more widespread mechanism like package locks ,) but first class environments have many more useful applications
<Josh_2> With SBCL and poor typing you can land yourself in the ldb
<jackdaniel> that's an issue with its gc
<Josh_2> I see
<jackdaniel> you can implement gc in a way that instead of landing in ldb, you land in a lisp debugger with a few MB spare
aartaka has quit [Ping timeout: 276 seconds]
aartaka has joined #commonlisp
<jackdaniel> well, not gc but rather allocation; but these are quite close
<scymtym> this is probably not yet on the level beach is describing, but over the last months i have developed a chat application while running it (in SBCL) without too many problems. the backends run in separate threads and communicate with the graphical user interface via message queues. the most frequent reason for restarting the application has been linux kernel upgrades. lisp related problems come from FFI based TLS
Gnuxie has quit [Quit: Bridge terminating on SIGTERM]
yitzi has quit [Quit: Bridge terminating on SIGTERM]
Helmholtz has quit [Quit: Bridge terminating on SIGTERM]
nicmollel[m] has quit [Quit: Bridge terminating on SIGTERM]
jryans has quit [Quit: Bridge terminating on SIGTERM]
sp has quit [Quit: Bridge terminating on SIGTERM]
Mrtn[m] has quit [Quit: Bridge terminating on SIGTERM]
Duuqnd has quit [Quit: Bridge terminating on SIGTERM]
hayley has quit [Quit: Bridge terminating on SIGTERM]
Seb[m] has quit [Quit: Bridge terminating on SIGTERM]
bitspook[m] has quit [Quit: Bridge terminating on SIGTERM]
kakuhen has quit [Quit: Bridge terminating on SIGTERM]
ilmu[m] has quit [Quit: Bridge terminating on SIGTERM]
dieggsy has quit [Quit: Bridge terminating on SIGTERM]
acma has quit [Quit: Bridge terminating on SIGTERM]
loke[m] has quit [Quit: Bridge terminating on SIGTERM]
ecocode[m] has quit [Quit: Bridge terminating on SIGTERM]
iceman[m] has quit [Quit: Bridge terminating on SIGTERM]
AadVersteden[m] has quit [Quit: Bridge terminating on SIGTERM]
char[m] has quit [Quit: Bridge terminating on SIGTERM]
infra_red[m] has quit [Quit: Bridge terminating on SIGTERM]
cel7t has quit [Quit: Bridge terminating on SIGTERM]
<Josh_2> I guess Matrix.org just broke
<beach> scymtym: Nice example.
<Josh_2> Isn't scymtym's example just an example of normal image based development?
perrierjouet has quit [Quit: WeeChat 3.7.1]
<scymtym> i don't know, i'm running this graphical application for weeks at a time. that's not something i have done before
<Josh_2> I see
<Josh_2> You said you are planning on making this app foss?
<scymtym> yes
<Josh_2> I look forward to it :)
<beach> Dinner! I'll be back tomorrow.
<scymtym> see you
Seb[m] has joined #commonlisp
<Josh_2> I dream of a fully persistent lisp image :(
Mrtn[m] has joined #commonlisp
Gnuxie has joined #commonlisp
yitzi has joined #commonlisp
kakuhen has joined #commonlisp
ecocode[m] has joined #commonlisp
bitspook[m] has joined #commonlisp
char[m] has joined #commonlisp
nicmollel[m] has joined #commonlisp
hayley has joined #commonlisp
iceman[m] has joined #commonlisp
jryans has joined #commonlisp
AadVersteden[m] has joined #commonlisp
Duuqnd has joined #commonlisp
loke[m] has joined #commonlisp
acma has joined #commonlisp
ilmu[m] has joined #commonlisp
Helmholtz has joined #commonlisp
infra_red[m] has joined #commonlisp
dieggsy has joined #commonlisp
sp has joined #commonlisp
cel7t has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
perrierjouet has joined #commonlisp
aartaka has joined #commonlisp
<Helmholtz> Why sort mutates input? Isn't that really poorly designed?
<kakuhen> counterpoint: why thrash memory by producing copies on each stage of a sort algorothm?
<kakuhen> you could always just COPY-SEQ your sequence before you SORT anyway
<jackdaniel> lazy way of defining remove: (delete (copy-seq #<seq>))
<jackdaniel> of course the lambda list is wrong, but you know what I mean
aartaka has quit [Ping timeout: 252 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Helmholtz> Does CL have concurrency utilities and libraries as good as Go?
trocado has joined #commonlisp
Vjalmr has joined #commonlisp
<kakuhen> I would say it depends on how much you care about portability. I've never used Golang so I don't know what it offers. But I can contrast what's available in CL and what's available in Clojure
<cage> Helmholtz: i am not able to compare with go but a I found lparallel nice to use
aartaka has joined #commonlisp
<cage> otherwise there is a portable, between implementation, library that resembles pthread
<cage> there are a few other libraries but i never used them
<Josh_2> There is an implementation of whatever protocol Go was built on
<Josh_2> hanging around somewhere
<Josh_2> Not sure if it works properly though
anticomputer has quit [Ping timeout: 258 seconds]
<trocado> how can I get a namestring with the extension?
<Josh_2> ?
anticomputer has joined #commonlisp
<jackdaniel> (namestring "/tmp/foo.lisp") ;-> "/tmp/foo.lisp"
<trocado> #p"foo/bar.baz" -> "foo/bar"
<trocado> something like this...
<jackdaniel> so without the extension, not with the extension?
<trocado> *without (sorry...)
<jackdaniel> (namestring (make-pathname :type nil :defaults #P"/tmp/foo.lisp"))
<trocado> thank you!
<jackdaniel> sure
<trocado> filenames in cl kill me every time
<jackdaniel> many people are not fond of common lisp pathnames
<jackdaniel> even less so of logical pathnames
<Josh_2> Theres 1000 doc generation libraries and I dont like any of them
<Josh_2> I should write my own
<Josh_2> jk ofc
eddof13 has joined #commonlisp
<jackdaniel> don't laugh ato some scenarios that recur in the common lisp ecosystem
<jmercouris> Josh_2: https://xkcd.com/927/
<jackdaniel> s/ato/at/
<Josh_2> Thats why I was laughing
<Josh_2> jmercouris: exactly :sunglasses:
* jmercouris puts on sunglasses on top of sunglasses
<kakuhen> autogenerated documentation is the devil; the libraries all suck because autogenerated documentation sucks
<jmercouris> kakuhen: I want to say absolute statements are wrong, but I am having trouble thinking of a counter-example
tyson2 has quit [Remote host closed the connection]
<kakuhen> every time I search for documentation of some CL library and the first result is quickref of all things, I correctly guess that there's literally nothing in the quickref package and it just exists because quicklisp will do this to every dist
<jackdaniel> reference manual as a part of the proper documentation may be generated alright
<kakuhen> nothing in the quickref docs*
<Josh_2> I should have been more specific kakuhen
<Josh_2> Quickref is extremely annoying
<Josh_2> All documentation should be a nice LaTeX pdf
<jackdaniel> please no
<Josh_2> LaTeX can be exported to html :sunglasses:
<Josh_2> Also not one that has to be built manually, should just be in the repo
<jackdaniel> latex is really awful to write documentation with. texinfo is awful (although a bit less), I'm not sure whether there are no-awful documentation-writing systems, but latex is not one of them
<kakuhen> latex is fine by me -- what's not fine by me are PDFs; awful for searching text and people do evil things like distilling text to a bunch of curves (effectively requiring OCR to even search within the document)
perrierjouet has quit [Quit: WeeChat 3.7.1]
igemnace has quit [Remote host closed the connection]
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<jmercouris> anyone know of any UI/UX designers?
<jmercouris> I'm looking to hire someone for a contract
eddof13 has joined #commonlisp
<Josh_2> You reworking the Nyxt UI?
ec has quit [Remote host closed the connection]
<jmercouris> Yes, just trying to make it more pleasing
perrierjouet has joined #commonlisp
<Helmholtz> Nyxt dev lurks in #commonlisp...nice
<Josh_2> The default layout jmercouris ?
<Josh_2> Didn't theming just get a big rework :thinking:
<jmercouris> yes, theming just got a big rework, but I am not happy with our start page XD
<Josh_2> Ah
matt` has joined #commonlisp
<Josh_2> Time to get the designers rather than the programmers to take a stab :joy:
<Josh_2> Although hopefully if it does get a rework it doesn't end up looking "corporate"
Everything has quit [Quit: leaving]
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
<kakuhen> jmercouris: about a year ago i believe i was told to contact you for helping maintain mac os support. i guess my question for you right now "has anyone cared about that since you've stepped down?"
elderK has joined #commonlisp
<jmercouris> kakuhen: no, nobody has done a thing
morganw has joined #commonlisp
<kakuhen> i have to deal with the awfulness of this operating system daily and i do things to work around its awfulness, so i'd be fine attempting to help out
<Josh_2> Did you try spinning up a VM :P
<kakuhen> provided that builds are not broken beyond hope on mac os i may be able to help out with ensuring it works
<jmercouris> kakuhen: all help is appreciated, if you need help getting started you can email me directly: john@atlas.engineer
<kakuhen> will do!
<jackdaniel> are here any ggplot2 experts?
<Bike> i am definitely not an expert, but i have used it a little.
<jackdaniel> when you have the positional adjustment jitter, default values for width and height are based on data "resolution", but this term is nowhere defined; do you happen to know what is it? (https://ggplot2.tidyverse.org/reference/position_jitter.html)
<Bike> i have not, but maybe it's this? https://ggplot2.tidyverse.org/reference/resolution.html
<Bike> have not seen that before, i mean
<jackdaniel> but if jitter is to avoid overplotting, then we assume that two points may coincide, and then the resolution would be 0, and 40% of 0 is still zero, so this kind of defeats the purpose
<jackdaniel> there is the 'zero' argument on the other hand
<Bike> kind of an incomprehensible description, there
<jackdaniel> (for curious folks what has it to do with common lisp, I've resumed the work on polyclot - clim application for plotting)
<Bike> the jitter plot says it's "particularly useful" for small datasets, where you are less likely to have coincident points, i guess?
<Bike> or, well, no, the resolution function says it's the smallest _non-zero_ distance between points
<Bike> so the resolution won't be zero just because two points coincide
<jackdaniel> alright, let's take this at face value - thanks for bearing with me on that
<jackdaniel> I guess I'll fix it if someone notices that something is not right and will be able to articulate the complaint
ec has joined #commonlisp
<matt`> jackdaniel: Looks like `resolution` also has some special behaviour when inputting a list of integers vs. floats as well, an integer will always return a resolution of 1, so the default width will make sure it doesn't jitter points to go across categories in say a boxplot.
lisp123 has joined #commonlisp
<jackdaniel> right, and it allows optionally including "0" in the set; thanks
matt`` has joined #commonlisp
matt`` has quit [Remote host closed the connection]
matt` has left #commonlisp [ERC 5.4.1 (IRC client for GNU Emacs 29.0.50)]
tmpee has joined #commonlisp
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale has joined #commonlisp
tmpee has quit [Ping timeout: 250 seconds]
MajorBiscuit has joined #commonlisp
aartaka has quit [Ping timeout: 250 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ec has quit [Ping timeout: 258 seconds]
_cymew_ has quit [Ping timeout: 250 seconds]
ec has joined #commonlisp
jmdaemon has joined #commonlisp
eddof13 has joined #commonlisp
mathrick has quit [Ping timeout: 250 seconds]
tyson2 has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
lisp123 has quit [Ping timeout: 272 seconds]
mariari has quit [Read error: Connection reset by peer]
m5zs7k has quit [*.net *.split]
zachel has quit [*.net *.split]
rdrg109_ has quit [*.net *.split]
scymtym has quit [*.net *.split]
sirufer has quit [*.net *.split]
robin has quit [*.net *.split]
sveit has quit [*.net *.split]
beach has quit [*.net *.split]
phileasfogg has quit [*.net *.split]
kaskal has quit [*.net *.split]
lieven has quit [*.net *.split]
Jach has quit [*.net *.split]
empwilli has quit [*.net *.split]
sirufer has joined #commonlisp
beach has joined #commonlisp
empwilli has joined #commonlisp
kaskal has joined #commonlisp
lieven has joined #commonlisp
<Josh_2> Nice to see that in the book The Art of Postgresql the code is written in CL :P
zachel has joined #commonlisp
Jach has joined #commonlisp
<Josh_2> (other than the SQL ofc)
markasoftware has joined #commonlisp
robin has joined #commonlisp
phileasfogg has joined #commonlisp
sveit has joined #commonlisp
m5zs7k has joined #commonlisp
rdrg109_ has joined #commonlisp
<jcowan> I have two entirely hypothetical, "what if?" questions about how CL might have been
<jcowan> (beach may wish to cover his ears)
scymtym has joined #commonlisp
dra has joined #commonlisp
<jcowan> 1) What if keywords were not symbols, but a disjoint type? 2) What if keywords were not even forms, while remaining S-expressions? That is, what if (eval :foo) was an error while (eval ':foo) => :foo?
matt` has joined #commonlisp
<jcowan> How much would the practice of CL programming be impacted by these changes?
<Catie> Would the keyword part of &key arguments then have to be quoted?
<aeth> the problem is that you can just ad hoc create your own &key arguments at any time inside of a macro with a destructuring-bind (which can't always just fit in the macro lambda-list because e.g. what if you have a list of foos instead of just one foo?)
<aeth> really just a way to parse a plist tail
_cymew_ has joined #commonlisp
mariari has joined #commonlisp
genpaku has quit [Remote host closed the connection]
akoana has joined #commonlisp
genpaku has joined #commonlisp
Guest235 has quit [Quit: WeeChat 3.6]
<Bike> it is occasionally useful to have keyword parameters that are not actually keywords but rather symbols in whatever package. for example you can use them for initargs that you don't want to make part of the external interface to a class.
lisp123 has joined #commonlisp
zyni-moe has joined #commonlisp
zyni-moe has quit [Quit: died]
Oddity has joined #commonlisp
_cymew_ has quit [Ping timeout: 272 seconds]
MajorBiscuit has quit [Ping timeout: 272 seconds]
perrierjouet has quit [Ping timeout: 260 seconds]
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
shka has quit [Ping timeout: 250 seconds]
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
perrierjouet has joined #commonlisp
Vjalmr has quit [Remote host closed the connection]
matt` has quit [Remote host closed the connection]
lisp123 has quit [Read error: Connection reset by peer]
Vjalmr has joined #commonlisp
<ecraven> can I "fork" in a C program *without* creating a new address space? so that the new thread runs in exactly the same environment as the old one?
<phoe> no, the definition of forking implies a new address space
<phoe> you very likely want to create a thread
<phoe> like, pthreads sort of thing, without forking
<ecraven> but doesn't even pthread create some context switching structures?
yottabyte has quit [Quit: Connection closed for inactivity]
cosimone` has joined #commonlisp
<phoe> what do you mean by context switching structures? if you mean if it's cheaper to switch between threads within a process or to switch between processes altogether, then threads are gonna be a bit cheaper
cosimone has quit [Ping timeout: 272 seconds]
pve has quit [Quit: leaving]
<phoe> you can ease that a bit with things like software transactional memory or shared memory or what not
<phoe> but welp we are on #commonlisp
<phoe> #lispcafe maybe?
<jcowan> Catie: no, it wouldn't, only when you want to use a keyword as a form
<jcowan> e.g. (eq foo ':baz)
<jcowan> aeth: good point about destructuring-bind
<jcowan> I had forgotten about ((keyword-name var) initform) syntax
<_death> jcowan: they are used as forms in a call like (foo :key val)
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
molson has joined #commonlisp
<Catie> (let ((variable :keyword))
<Catie> Sorry, hit enter out of habit then realized it wouldn't fit in a single message anyway. Anyway, there's this: https://paste.rs/VRM
<jcowan> In particular, given the call (foo :bar baz), we know that :bar is a keyword argument of foo, even if foo is otherwise not known.
<Catie> So the evaluator would use an unquoted keyword as the name of an argument, but a quoted keyword as the argument itself?
<jcowan> Right
<Catie> Is there a benefit to that?
<_death> jcowan: basically you're asking something like, what if I take out the guts of this human? what would be the impact?
<jcowan> Well, if you like, but that's rather bloody.
<Josh_2> Death
<_death> the answer is: unpleasantness
tyson2 has joined #commonlisp
<Catie> It could be nice having a separate type for keywords so they're not symbols. But if they're not symbols then you couldn't bind anything to them, so they'd only be useful when quoted to be used as a constant, like how we use keyword symbols now. And if evaluating it serves no purpose, then why not just have them self-evaluate?
<jcowan> For one thing, (foo :bar) and (foo :bar :baz) become a syntax error
<jcowan> for another, keyword-value pairs can be placed anywhere in the call: (a :href "foodoc.html" "documentation for foo")
<jcowan> whose lambda list is (&rest title &key href)
<Catie> Okay I could see that, and it would help with the "mixing &optional and &key parameters" problem
<_death> (foo :href "x" "a" :rel "dunno" "b")
<_death> you could of course do your own processing to get such an interface
<jcowan> Sure. But by the same token you don't need extended lambda lists at all, just &rest (or improper lists, like Scheme). The advantage to making this extension part of the language is that the compiler can treat it more efficiently.
<_death> and what about apply
<jcowan> That's the rub.
<Catie> If you had lists like '(:keyword (quote :argument)) it could still work
hayley has quit [Changing host]
hayley has joined #commonlisp
<_death> doesn't make sense to me
<jcowan> (keyword-apply fn hashtable arg ... arglist) is the simplest approach I can think of
<Catie> _death: I would think that the elements of the list you're passing to apply would still be evaluated, so the quote form would be as well? But I might be working off of a hell of a misunderstanding here
<_death> apply doesn't evaluate arglist items
<Catie> Yeah, that felt pretty wrong once I started thinking about it
<_death> like you demonstrated with your paste, keyword processing can be done at runtime
<_death> in the common case the compiler can check/optimize and that's great, but the CL programmer can still enjoy that flexibility when needed (which is more often than initially seems: apply.. the flip side is that it may be a performance gotcha that you need to work around)
<_death> in CL a rest list also includes the keyword arguments, and it is in the same order as supplied.. it may even need no allocation (dynamic extent)
<_death> *heap allocation
molson has quit [Remote host closed the connection]
elderK has quit [Quit: Connection closed for inactivity]
molson has joined #commonlisp
molson has quit [Ping timeout: 240 seconds]
morganw has quit [Remote host closed the connection]
molson has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
akoana has quit [Quit: leaving]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
dra_ has joined #commonlisp
son0p has joined #commonlisp
son0p has quit [Killed (NickServ (GHOST command used by son0p-))]
son0p has joined #commonlisp
dra has quit [Ping timeout: 246 seconds]
random-nick has quit [Ping timeout: 250 seconds]
dipper has joined #commonlisp
dra_ has quit [Remote host closed the connection]
pdietz has joined #commonlisp