jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | offtopic --> #lispcafe
cyraxjoe has joined #lisp
gingerale has joined #lisp
<etimmons> I can pretty much guarantee that the devs would object to removing the linkage table. They just purged the last arches that didn't use it.
mathrick has quit [Remote host closed the connection]
<ralt> I meant conditionally, based on the staticness
<etimmons> Are you objecting most to recompiling the lisp code, the runtime, or both?
<ralt> I'm mostly annoyed by having to recompile sbcl for every different app.
mathrick has joined #lisp
<etimmons> Because I think the reader conditionals in the lisp code for os-provides-dl* could be replaced with runtime checks for dlsym in the linkage table. I suspect that would be enough to make the core reusable, so long as you're careful when you rebuild the runtime.
<ralt> Basically the ideal experience is that you apt-get install sbcl and then you (asdf:make :foo) and it builds your static binary
<ralt> And we can make enough automation in e.g. cffi or asdf wrappers or upstream
<etimmons> I think that's possible, so long as sbcl.o is present.
<ralt> right, sbcl.o is a requirement
<ralt> That's ok
<ralt> Although right now it's not built by default...
<ralt> Anyway, exciting times
<etimmons> I think if we can get rid of the need for :os-provides-dl* in the lisp code, your vision becomes much more feasible.
<ralt> I gotta go now, have a good evening
<etimmons> Thanks, you too
rgherdt has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 246 seconds]
random-nick has quit [Ping timeout: 264 seconds]
dabr has joined #lisp
frodef has quit [Ping timeout: 246 seconds]
karlosz has quit [Quit: karlosz]
benjamindc has quit [Remote host closed the connection]
dabr has left #lisp ["WeeChat 3.0"]
<Xach> win 3
gaqwas has quit [Ping timeout: 264 seconds]
abhixec has quit [Ping timeout: 264 seconds]
dabr has joined #lisp
<ck_> (the command more commonly known as tic-tac-toe)
<Xach> etimmons: welcome to jurassic park
benjamindc has joined #lisp
mrcom has quit [Ping timeout: 265 seconds]
mrcom has joined #lisp
benjamindc has quit [Remote host closed the connection]
benjamindc has joined #lisp
imode has quit [Ping timeout: 246 seconds]
nicktick has joined #lisp
mrcom has quit [Ping timeout: 265 seconds]
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
wxie has joined #lisp
mrcom has joined #lisp
imode has joined #lisp
mrcom_ has joined #lisp
mrcom has quit [Ping timeout: 265 seconds]
dabr has quit [Ping timeout: 264 seconds]
abhixec has joined #lisp
benjamindc has quit [Ping timeout: 260 seconds]
troydm has joined #lisp
saturn2 has quit [Quit: WeeChat 1.0.1]
clone_of_saturn has joined #lisp
clone_of_saturn is now known as saturn2
rogersm has joined #lisp
rogersm has quit [Ping timeout: 240 seconds]
dbotton has joined #lisp
benjamindc has joined #lisp
luckless has quit [Quit: luckless]
luckless has joined #lisp
benjamindc has quit [Remote host closed the connection]
benjamindc has joined #lisp
benjamindc has quit [Remote host closed the connection]
benjamindc has joined #lisp
benjamindc has quit [Ping timeout: 260 seconds]
<dbotton> So my project CLOG - The Common Lisp Omnificent GUI is coming along well. It binds all the browser objects (window, screen, document, etc.) and all the connectivity needed for HTML (supports getter and setters for general properties and styles, binding events on elements etc.)
<dbotton> In particular if anyone has the time can comment on the code base so far if have some time.
<dbotton> There is still much left before I can do some cool demos, ie direct creation of forms, canvas, multi media stuff etc.
<dbotton> clog-connection that package is the glue between browser and the lisp interface which is contained in package clog which the rest of the code is in (files divide up functionality and various CLOS objects).
benjamindc has joined #lisp
<dbotton> The idea behind it is you can do full local GUIs that are cross platform by just setting up a project in electron (which gives you a browser window in a native app on win, osx, linix etc) or various projects on ios android etc and all use the same lisp code base and you easily can use the same app for the web.
<dbotton> The idea works well and I've used it for years for my projects in Ada, this is a Common Lisp rewrite which so far is much easier to write GUIs in.
benjamindc has quit [Ping timeout: 260 seconds]
<saturn2> interesting...
<dbotton> If have time let me know what can improve the code base
<dbotton> I am about 1/2 way done
<dbotton> The rest is just tedious work on creating various elements in Lisp
<saturn2> on first glance, it looks like there is a lot of very repetitive code that could use more abstraction
semz has quit [Ping timeout: 260 seconds]
<dbotton> Perhaps but there are small changes here and there that prevent much but open to hear where and what to do
scymtym_ has joined #lisp
<etimmons> Xach: Awesome, thanks!
<dbotton> (Meaning the some of the binding to styles and properties have various nuances)
benjamindc has joined #lisp
scymtym_ has quit [Remote host closed the connection]
scymtym has quit [Ping timeout: 246 seconds]
scymtym has joined #lisp
<saturn2> you can write a macro that accepts these nuances as parameters, so you can write (define-style foo :this-nuance (a b c) :that-nuance (x y z)) instead of copying and pasting the same code many times
benjamindc has quit [Ping timeout: 264 seconds]
rpg has quit [Ping timeout: 265 seconds]
semz has joined #lisp
semz has joined #lisp
<pfdietz> What might be done with code generators in other languages is done in Common Lisp with macros. The macros can perform arbitrary computations at macroexpansion time. For example, one could write a parser generator and implement it in a macro.
<dbotton> This I know, I just wanted to write code already, rather than spend time yet on macros. I've written a number while learning the language
<dbotton> But for sure will refactor the code with them later
<aeth> yeah
<aeth> I do the same.
<aeth> Write it plain and simple, and then see where macros can make sense.
nij has joined #lisp
<aeth> Plus, it's fun removing a 1000+ lines of code
<nij> Someone mentioned stumpwm for me a few weeks ago. I'm on it now and I love it. Thank you <3
<moon-child> yeah but
<moon-child> wouldn't it be even nicer if you didn't have to write those 1k oc in the first place?
<dbotton> I actually look forward to it on this code, would have saved much time typing to start with it, but my macro foo not good enough yet
<aeth> moon-child: coffee
<aeth> moon-child: Often coffee makes me just write, with quality not really relevant. Then I can clean it up later.
<aeth> Rarely, I code myself into a giant mess that I have to rewrite, but that was like 3-4 times total.
<pfdietz> (1) produce a limited prototype, (2) identify common patterns and macroize, (3) finish filling out the prototype, now using the macros.
miasuji has quit [Ping timeout: 260 seconds]
<aeth> yeah
<dbotton> For sure moon-child but like I said I wanted to code asap :)
<aeth> pfdietz: You abstract before you finish, definitely.
<dbotton> I need certain tools for my ideas like CLOG
<dbotton> And cleaning up this code will also help me get the macro experience I need cleaning it up
<dbotton> Like I said before I wish I started on lisp a good 20 years ago
rpg has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
<dbotton> Once done with CLOG have some Visual Basic "style" tools I'd like to make with CLOG for lisp.
<dbotton> I estimate should be done with CLOG in a few more weeks
<dbotton> (At least first version before refactoring, etc)
<nij> Anyone knows how to control stumpwm from the repl (slime or sly @@), if possible?
rumbler31_ has quit [Ping timeout: 240 seconds]
vutral has joined #lisp
benjamindc has joined #lisp
<dbotton> b
<aeth> nij: yes
akoana has joined #lisp
<aeth> nij: I think you can start a swank server via the execute-a-command command
<nij> aeth: Thanks for the keyword!
<nij> Any promising terminal emulator written in Lisp?!
<aeth> A terminal + a POSIX shell is a nice project for someone to do.
benjamindc has quit [Ping timeout: 260 seconds]
edgar-rft has quit [Quit: Leaving]
<aeth> nij: There's an outside chance that |3b| might have something like a terminal emulator in CL...
<aeth> iirc |3b| has run Emacs in OpenGL before, which is harder
<pfdietz> Is there an s-expression editor in CL, like the old sedit in Interlisp?
<mfiano> plisp has uncursed. |3b| has 3bst
benjamindc has joined #lisp
wxie1 has joined #lisp
wxie has quit [Ping timeout: 264 seconds]
wxie1 is now known as wxie
luckless has quit [Quit: luckless]
luckless has joined #lisp
dbotton has quit [Quit: This computer has gone to sleep]
rogersm has joined #lisp
imode1 has joined #lisp
imode1 has quit [Client Quit]
imode has quit [Ping timeout: 256 seconds]
rogersm has quit [Ping timeout: 256 seconds]
imode has joined #lisp
pfdietz has quit [Remote host closed the connection]
Oladon has joined #lisp
<nij> aeth: What does it mean by a "CL port" of st?
<MetaYan> nij: From the README at https://github.com/3b/3bst : "CL port of the terminal emulation part of st (http://st.suckless.org/)"
<nij> Yes, this is what I'm curious about.
<nij> What is a "CL port" of xyz?
<MetaYan> Ah, I misunderstood your question.
<nij> Is it a program written in CL that mimicks st?
<nij> Or is it st but allows users to control/config it in the lang CL?
Alfr_ has joined #lisp
zaquest has joined #lisp
<MetaYan> nij: It looks like a rewrite in CL. So ported to CL sounds right.
<nij> I see.
Alfr has quit [Ping timeout: 265 seconds]
Jesin has quit [Read error: Connection reset by peer]
<waleee-cl> seems to miss dependencies that would allow it to run outside of a host terminal?
<aeth> oh...
<aeth> Interesting. A minimalist C program, probably not to hard to mechanically translate and then clean up if the license is nice.
<beach> Good morning everyone!
<aeth> I did suspect |3b| was running emacs via a ported terminal
<aeth> Probably wouldn't be too hard to port other such programs
<aeth> I think the Java community loves to do this sort of thing.
<beach> VincentVega: Minimal verbosity is not the main objective of maintainability. But one is "minimal surprise to the maintainer". To Norvig and Pitman, that "idiom" is surprising, and I agree with them. The value is not a Boolean, yet it is tested as if it were.
<beach> The NIL value is not a Boolean, it is a "default value", and it should be obvious from the code that this is what is meant, i.e. (UNLESS (<default-value-p> VALUE) ...) In this case the predicate happens to be NULL.
notzmv has quit [Remote host closed the connection]
notzmv has joined #lisp
miasuji has joined #lisp
skapata has quit [Ping timeout: 260 seconds]
skapata has joined #lisp
dbotton has joined #lisp
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
troydm has joined #lisp
galex-713_ has quit [Ping timeout: 272 seconds]
wxie has quit [Ping timeout: 240 seconds]
rpg has quit [Quit: Textual IRC Client: www.textualapp.com]
galex-713 has joined #lisp
Iolo has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
rogersm has joined #lisp
mathrick has quit [Ping timeout: 265 seconds]
mathrick has joined #lisp
Iolo has joined #lisp
rogersm has quit [Ping timeout: 246 seconds]
gabot has quit [Ping timeout: 246 seconds]
abhixec has quit [Ping timeout: 246 seconds]
karlosz has joined #lisp
gko_ has joined #lisp
miasuji has quit [Remote host closed the connection]
Bike has quit [Quit: Lost terminal]
wxie has joined #lisp
benjamindc has quit [Remote host closed the connection]
sm2n_ is now known as sm2n
Oladon has quit [Quit: Leaving.]
orivej has joined #lisp
jprajzne has quit [Quit: Leaving.]
abhixec has joined #lisp
narimiran has joined #lisp
abhixec has quit [Quit: Lost terminal]
wxie has quit [Ping timeout: 260 seconds]
notzmv has quit [Ping timeout: 264 seconds]
gko_ has quit [Ping timeout: 272 seconds]
wxie has joined #lisp
dbotton has quit [Quit: Leaving]
aartaka has joined #lisp
karlosz has quit [Quit: karlosz]
mrios22 has joined #lisp
ym has quit [Quit: Leaving]
Bahman has quit [Remote host closed the connection]
waleee-cl has quit [Quit: Connection closed for inactivity]
<mrios22> Hi, I have a question about ASDF. Yesterday (asdf:load-system :myproject) worked fine in SLIME. I rebooted my computer, and now ASDF cannot find :myproject. The files for :myproject are in the local-projects directory of quicklisp, so I thought ASDF would be able to find them. I'm new to creating projects and using asdf. Is there anything obvious that I am missing? Thanks.
<beach> You may want to do (ql:register-local-projects) (once) before calling ASDF.
<mrios22> beach, thank you, I will try that.
<beach> I can't explain why it worked yesterday and not today, though.
<mrios22> It's possible that I had loaded every file in the project into my inferior lisp so ASDF had no trouble finding all of the symbols I was asking it to look for.
<beach> Yes, that would be one possible explanation.
<mrios22> beach -- the (ql:register-local-projects) command worked after I restarted my inferior common lisp process in slime. However, I'll have to do this every time I start SLIME. The solution is to never shut off my computer :)
dbotton has joined #lisp
<beach> No, once should do.
<beach> Next time you start a new image, all your .asd files should be known to ASDF.
<mrios22> That's curious. I did (ql:register-local-projects), restarted my inferior lisp, and then tried (asdf:load-system :myproject). I got the same error that I got before.
<beach> That's very strange.
<beach> I have no explanation for that.
<mrios22> Then I did (ql:register-local-projects). After that, my asdf:load-system worked.
<beach> Maybe the place where Quicklisp stores this information is not writable?
<beach> I am making wild guesses here.
<mrios22> Let me check my home directory to see what the flags are.
wxie has quit [Ping timeout: 246 seconds]
<mrios22> Everything in my ~/quicklisp directory seems to be writeable.
<beach> I am afraid I don't know where Quicklisp stores this information.
<mrios22> In any case, I should get to work. Thanks for the advice.
<beach> Sure. Sorry I wasn't able to give more help.
<mrios22> No need to apologize, your advice saved me a lot of trouble and frustration :) Thank you.
Stanley00 has joined #lisp
<beach> Sure. Good luck!
makomo has joined #lisp
rogersm has joined #lisp
wxie has joined #lisp
sauvin has joined #lisp
rogersm has quit [Ping timeout: 246 seconds]
kaftejiman_ has joined #lisp
kaftejiman has quit [Ping timeout: 246 seconds]
jprajzne has joined #lisp
mathrick has quit [Ping timeout: 246 seconds]
mathrick has joined #lisp
pankajsg has joined #lisp
ralt has joined #lisp
mindCrime has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
mindCrime has joined #lisp
ebrasca has quit [Remote host closed the connection]
fitzsim has quit [Read error: Connection reset by peer]
Nilby has joined #lisp
galex-713 has quit [Read error: Connection reset by peer]
rogersm has joined #lisp
frost-lab has joined #lisp
wxie1 has joined #lisp
lottaquestions_ has joined #lisp
lottaquestions has quit [Ping timeout: 264 seconds]
rogersm has quit [Ping timeout: 260 seconds]
wxie has quit [Ping timeout: 265 seconds]
wxie1 is now known as wxie
amb007 has quit [Read error: Connection reset by peer]
frodef has joined #lisp
amb007 has joined #lisp
anticrisis has quit [Read error: Connection reset by peer]
<beach> I uploaded a new (still very preliminary) version of my paper on call-site optimization: http://metamodular.com/SICL/call-site-optimization.pdf
<beach> As usual, I would appreciate any remarks, in particular remarks indicating that the explanation is not good enough. But also, if someone has information on other types of call-site optimization no matter the programming language, please let me know.
<beach> There are now some figures as well that might help communicating the idea.
dbotton has quit [Quit: This computer has gone to sleep]
mindCrime has quit [Ping timeout: 260 seconds]
mrios22 has quit [Ping timeout: 264 seconds]
rgherdt has joined #lisp
galex-713 has joined #lisp
andreyorst has joined #lisp
lottaquestions_ has quit [Quit: Konversation terminated!]
lottaquestions_ has joined #lisp
* frodef plan to read beach's paper soonish.
ggoes has quit [Ping timeout: 260 seconds]
<beach> Thanks. I appreciate it.
<beach> It subsumes your technique with multiple entry points according to the number of arguments, for instance.
sunset_NOVA has joined #lisp
ggoes has joined #lisp
<frodef> beach: sounds interesting, now I just need to get my printer to connect to the network, sigh.
<beach> I see. I hate that kind of stuff.
<frodef> now add: the wiring up in the crawlspace, which is now at -15 degrees...
<frodef> ...so if I have any comments for you later, I hope you /really/ appreciate them ;-)
<beach> Heh, yes, I understand.
<beach> Where do you live these days? I didn't realize it was that cold.
<frodef> there was just a substantial temperature drop in oslo.
<beach> Oh, wow.
<splittist> phoe's interview on 47degrees (47signals? 47syscalls?) was great. The interviewer was engaging - staying out of the way, but giving nice reaction shots. I was surprised to see rainbow parens, for some reason.
jonathan| has quit [Ping timeout: 264 seconds]
<beach> I agree it was very good.
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
liberliver has joined #lisp
jonathan| has joined #lisp
rogersm has joined #lisp
pyc_ is now known as pyc
pyc has quit [Changing host]
pyc has joined #lisp
rogersm has quit [Ping timeout: 264 seconds]
ex_nihilo has joined #lisp
aartaka has quit [Ping timeout: 256 seconds]
pve has joined #lisp
Stanley00 has quit [Ping timeout: 246 seconds]
nicktick has quit [Ping timeout: 260 seconds]
frodef has quit [Ping timeout: 256 seconds]
<dim> typo alert: “This optimization was introduced by Gerd Moellmann in 2002, and has since been includes also in SBCL” <-- includes/included
<beach> Thanks.
hendursaga has quit [Ping timeout: 240 seconds]
<beach> Fixed!
<dim> wow that's a nice round-trip latency ;-)
<beach> Heh, thanks!
<dim> I like what I'm reading so far, it makes me feel like I'm smart enough to understand what you're talking about ;-) also I wonder if boa-constructors belong to the topic in some ways?
<beach> Oh, didn't think of those. I'll have a look. Thanks for the hint. They may fall into the same category as MAKE-INSTANCE.
<beach> I am thinking that, with this technique, Common Lisp could have function calls as fast as (or faster than) those in static programming languages.
<beach> Doesn't dynamic linking require at least one indirection for function calls?
<beach> I know access to global variables does.
<dim> tyop-of-a-kind alert: “but it crucially allows us” -- try using “and” instead of “but”, if the meaning of the sentence is kept, then you certainly would better use “and”
<beach> I'll add an "also" instead.
<beach> That's more like what I meant.
<dim> dynamic linking would do that yeah, and it's a complete mess (in C at least) if you ever load more than once, or if you can't find the symbol the code expects to find... openssl in particular is a trouble maker in that space, the CFFI bindings for CL are a constant hurdle
<dim> the proof reader of my book often replaced and/also with “moreover” which I ended-up liking a lot
<beach> OK, that's a good hint. Thanks.
<dim> also I think a part of what you're talking about in your paper would be typically implemented in C like systems by the linker phase of compilation, right?
<beach> I think link-time optimization is a kludge to compensate for the lack of information resulting from separate compilation, yes.
<dim> I mean each .c file is used to produce a .o object file, with a map of function entry-points, and then the linker's job is to concatenate them all together and edit a new “global” map of entry points for the final binary, at least that's my understanding
<beach> Traditional static languages have really made a mess of everything, just because they insist on making us believe that we are programming slow machines without an operating system.
<dim> ahah that's a good one
<dim> or maybe because Unix was meant as a quite dumbed down OS to boot (not as complex as the Multics beast) and then became the standard expectation for an OS layer?
<beach> We (Common Lisp programmers) are lucky in that we always have the entire code for the system immediately available. We now just have to take advantage of that fact.
<beach> Unix was meant to be as large a subset as possible of Multics that would also run on a PDP-11.
<beach> Or was it PDP 8?
<dim> I began to understand what Stallman meant with the 4 rights of the GPL when I started hacking Emacs Lisp, that's where I first had that experience you're alluding to I suppose
<beach> I don't see the relation, sorry.
<dim> I mean having the whole “system” code available and easily recompiled at run-time makes it obvious that you want to have the right to study and edit the code
<beach> Ah, yes, I see.
<dim> when using Unix and say “apt install tmux” or whatever software, if you want to look at the code you need to “apt source tmux” and that needs a specific source entry in your sources list, and then if you want to edit the code and recompile it you need “apt-get build-dep tmux” and then with debian you actually have a good chance you can build your custom program, thanks debian, and still it is quite complex
<dim> in Emacs and then in Common Lisp, you just C-. on the symbol and hack away, C-c C-c, and benefit now
<beach> I should re-read my (signed) copy of "Linkers and Loaders". If there is an indirection for function calls, I can include that fact in the paper.
<beach> Sure. But that's not quite what I meant. I meant that we don't have separate compilation.
mathrick has quit [Ping timeout: 256 seconds]
<dim> I though we had compilation units of sorts?
<beach> But they don't start with an empty global environment the way C and C++ do.
mathrick has joined #lisp
<beach> And once they are loaded into the system, they are present just like the rest of the system, and can be transformed, since we have the compiler available at run-time.
<beach> Before link-time optimization, those languages had to fill up the environment using includes for each compilation, and they have to produce object code without knowing the rest of the system.
<dim> ah yeah, the empty global env and the #include and pre-processor thing still makes me sad/mad
VincentVega has joined #lisp
<Nilby> When I ran lisp on a pdp8 it was the whole OS booted off a floopy. But then the pdp8 was also a desk.
<phoe> splittist: I love rainbow parens
VincentVega has quit [Remote host closed the connection]
<splittist> phoe: interesting
<Nilby> phoe: thanks for the awesome talk on 47˚, you made me realize i didn't have a retry restart in my repl.
<phoe> Nilby: gasp! what REPL do you use?
<phoe> splittist: my eyes react very well to colors, rainbow parens give me additional depth information, especially with this six-color palette that I got used to after some years
<phoe> but that's already the category of personal lifehacks
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
<Nilby> phoe: a crappy one i wrote, gasp
<phoe> oh! so you can add the restart yourself easily
<Nilby> i did :)
<phoe> :D
<Nilby> but 'retry it is actually in sb-ext
<phoe> actually, it can be in any package you want or need
<phoe> you can fetch the symbol itself via restart-name if needed
<phoe> if you use string= for comparing restart names, then you can match FOO:RETRY, BAR:RETRY, SB-EXT:RETRY, and what else
<phoe> e.g. the slime debugger doesn't show packages of restart names
<Nilby> I guess I could change the debugger not to show package names. Now that I'm further in the video, I see you wrote your own debugger too.
andreyorst_ has joined #lisp
ex_nihilo_ has joined #lisp
ex_nihilo has quit [Ping timeout: 264 seconds]
<phoe> spice it up with trivial-custom-debugger and you can install a custom debugger mostly anywhere
<beach> phoe: Do you have any feedback from people other than Common Lisp programmers on the video?
<beach> I had to leave early, so I didn't see the end of the chat.
<beach> I mean, I don't know what crowd was to be expected, given the topic, and the "channel".
<phoe> beach: not much, but it was good overall
<beach> Great!
<phoe> glad to have the video out there so it can pick up on popularity in an asynchronous manner.
rogersm has joined #lisp
kaftejiman_ has quit [Remote host closed the connection]
hendursaga has joined #lisp
rogersm has quit [Ping timeout: 264 seconds]
<dim> thanks!
<beach> ralt: Can you give a quick explanation of the purpose of this work, other than putting SBCL inside the kernel?
<ralt> beach: this one is unrelated to the kernel, see the first paragraph under "Background"
<beach> Thanks!
<ralt> and it's done by etimmons, not me :)
<beach> Yes, I know. But you mentioned that the work is related.
<dim> the context I have for such tools in general is how to deliver an application binary to users who don't care that it's been written in Common Lisp
<beach> ralt: OK, got it. Thanks!
<beach> Makes sense.
<ralt> dim: that's exactly why I pinged you, given pgloader
<dim> we seem in the CL community to be quite hermetic, we seem to avoid delivering what we do to people who are not CL users/hackers themselves
<beach> ... but then they are all going to complain that "Hello world!" takes tens of megabytes.
<dim> we're missing a lot of infra to make it simple to use software written in CL as a non-CL or a non-programmer end user
<ralt> agreed. that's why I made linux-packaging.
<dim> beach: not anymore, see Go builds and Rust and others, people are getting used to it
<beach> Oh, good! :)
<dim> ralt: +1, thanks for that, I need to dive into it someday
<ralt> dim: to be fair, Go and Rust builds are a couple of MBs, not tens :P
pve has quit [Ping timeout: 260 seconds]
<ralt> but yes, people care less.
<dim> well then compare to docker images maybe
<ralt> hehehe
pve has joined #lisp
<dim> I am nowadays working on a tool named pg_auto_failover, written in C, the main binary is 1MB large, and the minimum docker image based on debian that I could make is around 280MB
<ralt> does pg work in alpine those days?
<ralt> alpine docker images are ~6MB iirc
ik` has joined #lisp
<dim> yeah I could use alpine too, but then it's not the same libc and reasons-reasons, I did not
<ralt> fair enough
ik` has quit [Remote host closed the connection]
<ralt> speaking of postgresql, I recently (a few months ago) found out about multicorn
<ralt> I so want to redo it with ECL.
<ralt> maybe you could rewrite pg_auto_failover in Lisp :P
Stanley00 has joined #lisp
gaqwas has quit [Remote host closed the connection]
mathrick has quit [Ping timeout: 256 seconds]
mathrick has joined #lisp
ljavorsk has joined #lisp
frost-lab has quit [Quit: Connection closed]
ljavorsk has quit [Ping timeout: 246 seconds]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
j0nd0e has joined #lisp
frost-lab has joined #lisp
mathrick has quit [Ping timeout: 264 seconds]
mathrick has joined #lisp
andreyorst_ has quit [Ping timeout: 264 seconds]
wxie has quit [Ping timeout: 268 seconds]
rogersm has joined #lisp
saganman has joined #lisp
vutral has quit [Quit: Connection closed for inactivity]
rogersm has quit [Ping timeout: 260 seconds]
<dim> my colleagues and the Postgres community at large would not appreciate that, even Python was out: we want to make it dead simple to install and use the product, and focus on having the same set of dependencies (build and run-time) as Postgres itself
random-nick has joined #lisp
ljavorsk has joined #lisp
mathrick has quit [Ping timeout: 264 seconds]
quazimodo has joined #lisp
<pyc> I am using SBCL. I don't need to install Quicklisp to get "uiop". Am I right about this? (require "uiop") seems to work for me. Is this guaranteed to work in any SBCL implementation?
mathrick has joined #lisp
<phoe> pyc: SBCL bundles ASDF and UIOP
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
<pyc> phoe: thanks!
<phoe> but there's a question of which version it bundles!
<pyc> phoe: how do I figure the version number?
<ralt> (asdf:asdf-version) I think?
<jackdaniel> mind that not putting "uiop" in :depends-on of your system may break executables that are not produced with save-lisp-and-die
<jackdaniel> also fact that it is preloaded means, that if you want to bundle uiop with your sources, you must download it manually (because asdf won't complain that the system is not present, hence quicklisp won't download it)
sunset_NOVA has quit [Ping timeout: 258 seconds]
mankaev has quit [Ping timeout: 268 seconds]
VincentVega has joined #lisp
<dim> ralt: do you know if the method outlined in https://www.timmons.dev/posts/static-executables-with-sbcl.html would be compliant with static-linking openssl and sqlite, and maybe other code?
fc2020apt[m] has quit [Quit: Bridge terminating on SIGTERM]
dieggsy has quit [Quit: Bridge terminating on SIGTERM]
arichiardi[m] has quit [Quit: Bridge terminating on SIGTERM]
quanta[m] has quit [Quit: Bridge terminating on SIGTERM]
cairn has quit [Quit: Bridge terminating on SIGTERM]
psebcc[m] has quit [Quit: Bridge terminating on SIGTERM]
Gnuxie[m] has quit [Quit: Bridge terminating on SIGTERM]
ThaEwat has quit [Quit: Bridge terminating on SIGTERM]
malaclyps_ has quit [Quit: Bridge terminating on SIGTERM]
DanielCheng[m] has quit [Quit: Bridge terminating on SIGTERM]
MrtnDk[m] has quit [Quit: Bridge terminating on SIGTERM]
katco has quit [Quit: Bridge terminating on SIGTERM]
raamdev[m] has quit [Quit: Bridge terminating on SIGTERM]
infra_red[m] has quit [Quit: Bridge terminating on SIGTERM]
santiagopim[m] has quit [Quit: Bridge terminating on SIGTERM]
kaisyu[m] has quit [Quit: Bridge terminating on SIGTERM]
solideogloria[m] has quit [Quit: Bridge terminating on SIGTERM]
dmiles[m] has quit [Quit: Bridge terminating on SIGTERM]
loke[m] has quit [Quit: Bridge terminating on SIGTERM]
etimmons has quit [Quit: Bridge terminating on SIGTERM]
jonas[m]1 has quit [Quit: Bridge terminating on SIGTERM]
zstest3[m] has quit [Quit: Bridge terminating on SIGTERM]
amb007 has quit [Ping timeout: 266 seconds]
exit70[m] has quit [Quit: Bridge terminating on SIGTERM]
even4void[m] has quit [Quit: Bridge terminating on SIGTERM]
ckoz[m] has quit [Quit: Bridge terminating on SIGTERM]
<dim> ralt: I would also like to see PL/CL same way we have PL/Python in Postgres ; and I think it's going to be more complex, because ideally we might want to have a single CL image running in the background in the Postgres process tree, and each Postgres backend would have its own CL thread that can communicate with the central image application / objects
susam has quit [Quit: Bridge terminating on SIGTERM]
emys[m] has quit [Quit: Bridge terminating on SIGTERM]
clar[m] has quit [Quit: Bridge terminating on SIGTERM]
ms[m] has quit [Quit: Bridge terminating on SIGTERM]
keizerrijk[m] has quit [Quit: Bridge terminating on SIGTERM]
aartaka has joined #lisp
mathrick has quit [Ping timeout: 264 seconds]
mathrick has joined #lisp
v88m has quit [Ping timeout: 246 seconds]
ljavorsk has quit [Ping timeout: 260 seconds]
amb007 has joined #lisp
dmiles[m] has joined #lisp
dabr has joined #lisp
andreyorst_ has joined #lisp
ljavorsk has joined #lisp
<VincentVega> beach: I think it's just the reality of the language and how you accept it. A value in question is treated in boolean terms: as nil or non-nil. That non-nil happens to be treated as t is just the fact of the language. Quirky? Maybe. Surprising? Even newcomers are doing it.
<VincentVega> beach: And the nature of a surprise is, you see it once, and it isn't a surprise anymore.
<VincentVega> beach: Moreover, I would say that judging lisp code with its custom dsls based on the surprise factor is a bit unfair in the first place. I will go as far as to say it is counter to lisp's philosophy. Macros let you get succinctness. If succinctness buys you power of expression at the cost of immediate understandability, then you just learn how a
<VincentVega> construct works and that's a positive tradeoff in the long run.
<VincentVega> beach: "The NIL value is not a Boolean": not what the hyperspec says "The type boolean contains the symbols t and nil, which represent true and false, respectively."
mathrick has quit [Ping timeout: 246 seconds]
mathrick has joined #lisp
<phoe> VincentVega: it's not a question of what the language accepts but a question of what the programmer expects
<VincentVega> phoe: yes, this is what I account for
<phoe> NIL is a symbol, a boolean, a list, a sequence, and a T all at once, and code that provides appropriate operations on that help fix the resulting confusion
ljavorsk has quit [Ping timeout: 246 seconds]
<VincentVega> I don't think there's any confusion there. It's a question of habit.
<VincentVega> My point is, if a programmer writes in a language, then a programmer has to come to terms with what a language can do if he doesn't want to be working against it.
<Nilby> Lisp seems to make it so I'm only really working against myself (and time and physics).
<phoe> yes, and there's also the question of the social layer atop a language
<VincentVega> I mean, would you seriously prefer (or (null a) (null b) (null c)) to (and a b c)?
<phoe> depends on context :D
<phoe> the social layer is why e.g. some C++ projects disallow exceptions even though they're, in theory, a part of standard C++
<jackdaniel> stylistic suggestions from norvig's style guide are just that - suggestions
vegansbane6 has quit [Quit: The Lounge - https://thelounge.chat]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<VincentVega> suggestions can be unfounded at times
<VincentVega> thanks I'll read it
Oddity- has quit [Ping timeout: 260 seconds]
<jmercouris> I'm using this library: https://github.com/andy128k/cl-gobject-introspection
<VincentVega> phoe: if there's any social layer to this issue it all, I am pretty sure that you will find a lot more (when value ...)'s than unless nulls
<jackdaniel> most remarks I've found in the norvig's document had a very good rationale behind them - you may disagree, still you should take it into consideration
Oddity has joined #lisp
<jmercouris> I'm looking at the example at the very top " (gir:nget *gtk* "WindowType" :toplevel)"
<jmercouris> how do they know that WindowType exists? Is there a way to list the arguments that 'new for class Window accepts?
frodef has joined #lisp
even4void[m] has joined #lisp
cairn has joined #lisp
psebcc[m] has joined #lisp
emys[m] has joined #lisp
loke[m] has joined #lisp
katco has joined #lisp
exit70[m] has joined #lisp
susam has joined #lisp
MrtnDk[m] has joined #lisp
Gnuxie[m] has joined #lisp
ms[m] has joined #lisp
santiagopim[m] has joined #lisp
etimmons has joined #lisp
quanta[m] has joined #lisp
infra_red[m] has joined #lisp
malaclyps_ has joined #lisp
dieggsy has joined #lisp
raamdev[m] has joined #lisp
kaisyu[m] has joined #lisp
ThaEwat has joined #lisp
tolko-zhenshiny[ has joined #lisp
DanielCheng[m] has joined #lisp
arichiardi[m] has joined #lisp
clar[m] has joined #lisp
jonas[m]2 has joined #lisp
ckoz[m] has joined #lisp
solideogloria[m] has joined #lisp
keizerrijk[m] has joined #lisp
zstest3[m] has joined #lisp
<VincentVega> jackdaniel: i am not criticizing their whole document, i haven't read it, just this one thing i happened to see mentioned here yesterday
<jmercouris> nget-desc?
<jackdaniel> I'm not saying you do, I'm suggesting that you may benefit from reading rationale behind this particular one thing (and then disagree :) I personally agree with you, that there is no harm in writing (when foo …)
<jackdaniel> that said I find myself usually using (when-let … …)
<VincentVega> If I saw the rationale on it, I would've read it, just seemed like a slide with bullet-points to me. But yes, I'll probably be reading up on it : )
<jackdaniel> I've got curious myself and tried to find this particular advice in the document, but I've failed. the only part is that you should be specific (and, or for boolean value only, when/unless for statements, if for expressions and cond for multi-branch statement/expression
<VincentVega> I see. As for and/or thing, by the way, the (and (numberp x) (cos x)) isn't even a real example unless cos can suddenly yield a nil.
<VincentVega> like, common, they made this stuff up, just for the sake of a slide
<jackdaniel> I saw code like this, the first clause in and is to ensure the proper type, and the second is called for the value
<v3ga> ...
<jackdaniel> i.e (let ((name (and window (window-name "foo"))) …)
<jmercouris> s/common/come on
<VincentVega> actually yes, thinking about it, (and condition (error ..)) i did a couple of times too. well, fine.
<jackdaniel> my example should be if, and your example should be when :)
<jackdaniel> either way, time to get to double buffering in mcclim, see you later
<VincentVega> the need for specificity of when/if i do agree with
<VincentVega> yeah, c ya : )
igemnace has quit [Remote host closed the connection]
Stanley00 has quit []
mankaev has joined #lisp
mankaev has quit [Ping timeout: 272 seconds]
vegansbane6 has joined #lisp
<ralt> dim not sure about openssl, etimmons might know. For sqlite I don't see it as hard, at worse you can compile it as part of your build.
<ralt> I did that here https://gitlab.com/ralt/ballish if you look at the .asd file
<ralt> (so it's already doable with asdf:static-program-op)
<ralt> The lisp in postgres thing is interesting... I wonder if you need pl/lisp at all.
surabax has joined #lisp
<ralt> Like what if it exposes a swank server
mankaev has joined #lisp
<ralt> This sounds like doable pretty quickly with ECL even
<etimmons> dim: I have used that method with openssl. Haven't yet extensively tested it, but no issues so far.
nij has left #lisp ["ERC (IRC client for Emacs 27.1)"]
FennecCode has quit [Quit: IRCNow and Forever!]
<beach> VincentVega: You keep referring to language semantics, whereas I am talking about software engineering and maintainability. As you know if you are a professional programmer, the language you should use for good maintainability is a tiny subset of the semantically acceptable language.
<beach> VincentVega: But I guess you must have way more experience than Pitman and Norvig. I certainly don't, so I rely on their wisdom go guide things like that.
<beach> What phoe also said.
matryoshka has quit [Ping timeout: 260 seconds]
matryoshka has joined #lisp
<beach> Also, even though I have seen constructs such as (WHEN EVENT ...) more than once, I am still not only surprised when I see such a construct. I have to pause several seconds to figure out what it means. So I seem to correspond to the people they are referring to in their document.
imode has quit [Ping timeout: 256 seconds]
dbotton has joined #lisp
aartaka has quit [Read error: Connection reset by peer]
<beach> VincentVega: You are of course free to write whatever you like. But when people show their code here in order to get feedback on it, I will continue to point out that such constructs are considered not so great in the eyes of highly experienced and very knowledgeable programmers such as Norvig and Pitman.
<dim> etimmons: thanks, might try it sometime!
j0nd0e has quit [Ping timeout: 272 seconds]
<jackdaniel> beach: I've mentioned that above that I couldn't find that particular advice in the document, do you happen to remember the page it could be found on?
<beach> That precise example is probably not in there.
<jackdaniel> OK
<beach> But I know that the reason I jump when I see it is the same reason I jump when I see the (counter-) examples on page 13.
gko_ has joined #lisp
edgar-rft has joined #lisp
skapata has quit [Remote host closed the connection]
<jackdaniel> it could be argued (and that would be still not contradict the document), that using generalized booleans as a test in whend/unless is still specific; I gather that you disagree with that
<jackdaniel> s/whend/when/
<phoe> when/unless are a bit less affected by NOT NULL than e.g. IF and COND
<phoe> because (when/unless (not (null x)) ...) == (unless/when (null x) ...)
dbotton has quit [Quit: This computer has gone to sleep]
<ralt> jmercouris: I would assume you'd need to look at gobject docs
<beach> Here is how I see that particular example. A function is called that can return an event or a default value that is not an event. You want to do something only when an event is returned. You then have two choices. You check whether you have an event and you say (WHEN (EVENTP EVENT) ...) or something similar, or you check for the default and you say (UNLESS (DEFAULT-VALUE-P EVENT) ...). It is a coincidence that DEFAULT-VALUE-P and
<beach> NULL happen to be the same in this case.
andreyorst_ has quit [Ping timeout: 246 seconds]
<beach> Yet another way of seeing it is to notice how much you have to change your code if the function did not return NIL as the default value but instead, say :NOT-AN-EVENT.
<ralt> jmercouris: sorry, gtk docs https://valadoc.org/gtk+-3.0/Gtk.WindowType.html
rumbler31_ has joined #lisp
matijja``` is now known as matijja
<beach> The opinion that can be summarized as "anything the language specification allows is OK to write" is very strange to me. Perhaps someone did not say it that literally, but many of the opinions I see boil down to that.
chrpape has quit [Remote host closed the connection]
<VincentVega> beach: On the contrary, I mostly based my opinion on the philosophy behind the language + the fact that while succinctness costs you "surprise", the surprise wears off.
rogersm has joined #lisp
<VincentVega> beach: Appeal to authority? Man, no need to get all caustic about it : )
<beach> Not authority. Experience.
<jackdaniel> I agree that when you may be specific with eventp it is clearly better; by mentioning generalized booleans I've meant a difference between (when (not (null X)) …) versus (when X …)
<VincentVega> right
<beach> I am not going to continue this argument, because I have said what I want so many times in the past. It is getting boring.
<VincentVega> agreed there
<beach> jackdaniel: The alternative is (unless (null X) ...) not (when (not (null X))).
<jackdaniel> VincentVega: I recommend you to read some SICL code written by beach - it is very clearly written and easy to read; that may be a good indicator that it is not appeal to authority but rather a practical advice
<jackdaniel> beach: ah, OK
v88m has joined #lisp
rogersm has quit [Ping timeout: 272 seconds]
<VincentVega> jackdaniel: I hear you.
<jmercouris> ralt: thanks Florian, that's what I've been doing
<jmercouris> ralt: just wondering if there was a built-in introspection mechansim for listing...
<jmercouris> I've had luck with slime-inspect-presentation-at-point on the result of (gir:nget *gtk* "Xyz" 'method)
<jmercouris> (gir:nget *gtk* "Xyz" 'method) returns a closure of all things :-D
attila_lendvai has quit [Quit: Leaving]
flazh1 has quit [Ping timeout: 264 seconds]
frost-lab has quit [Quit: Connection closed]
flazh1 has joined #lisp
quazimodo has quit [Remote host closed the connection]
dabr has quit [Ping timeout: 246 seconds]
phoe6 has joined #lisp
quazimodo has joined #lisp
dbotton has joined #lisp
rogersm has joined #lisp
bitmapper_ has joined #lisp
dbotton_ has joined #lisp
saganman has quit [Quit: WeeChat 1.6]
dbotton__ has joined #lisp
dbotton has quit [Ping timeout: 240 seconds]
dbotton__ has quit [Client Quit]
v_m_v has joined #lisp
Bike has joined #lisp
dbotton_ has quit [Ping timeout: 272 seconds]
<pyc> just like there is uiop:read-file-string is there an equivalent of uiop:write-file-string?
mrios22 has joined #lisp
bitmapper_ is now known as bitmapper
<phoe> alexandria:write-string-into-file
<phoe> there's uiop:call-with-output-file
<phoe> I assume you can (call-with-output-file pathname (alexandria:curry #'princ string))
gareppa has joined #lisp
gareppa has quit [Remote host closed the connection]
v_m_v has quit [Remote host closed the connection]
* Xach uses setf for that sometimes
v_m_v has joined #lisp
<phoe> setf?
<Xach> (setf (file-contents file) data) or similar
<phoe> there is no #'(SETF UIOP:READ-FILE-STRING) though
<phoe> hmmm
<Xach> Very true. I define my own as needed.
<ralt> Never thought of using setf for that
v_m_v has quit [Ping timeout: 264 seconds]
wsinatra has joined #lisp
<Xach> i remember the discussion of a unix interface that did stuff like (setf (uid user) 42) and did the work underneath to update the system to reflect what's desired, rather than getting hung up on what might be possible only through simple operations
<pyc> alexandria does not be present in SBCL but uiop is present. does alexandria need to be installed separately?
<Xach> pyc: yes
<pyc> thanks
<Xach> UIOP is a separate library that is provided with sbcl, but alexandria is a separate library that is not
<ralt> Well for file operations I'm rather concerned on memory usage
<ralt> You know, memory is typically much more bounded than disk
<Xach> setting the file contents is much simpler than changing a user uid but it did inspire me to think about presenting straightforward interfaces to possibly complex and multi-step operations.
<ralt> For (uid user) that's actually a pretty good idea
<ralt> In my abstraction world, a file is a stream, and you can't setf a stream
<Xach> and also that SETF doesn't have to mutate a binding or an in-memory thing
<phoe> (setf pi 3.2d0) ;; for Lisp code running in Indiana
<Xach> ralt: a disk is a two dimensional array of bits, 8 by 8,796,093,022,208!
<phoe> ralt: (defclass file () ...) (defmethod contents ((file)) ...) (defmethod (setf contents) (new-value (file file)) ...)
<phoe> in this world, a file is an instance, and you can call a generic function with it as an argument
<ralt> Yes, sure. My point is just that typically, you don't fit all your disk in your memory, so it's easier to treat files as streams
<phoe> why fit them in memory
<phoe> or rather
<phoe> why need to fit one kind of memory in another kind of memory
<ralt> If you do a setf content, it means you have content in-memory
<phoe> no
<phoe> it means whatever #'(setf content) does under the hood
<ralt> Of course, you don't _have to_
<phoe> that's encapsulation - you don't need to care whether the real stuff is in RAM, hard disk, over the network, or hand-calligraphied onto a piece of paper
<ralt> Just like you don't have to have a disk bigger than your ram
<ralt> I'm talking about the typical case, though
<phoe> all you care is that #'CONTENTS returns it for you as a string and that #'(SETF CONTENTS), after accepting a string, modifies the state of this thing so that future calls to #'CONTENTS return the new string
<phoe> s/all you care/all you need to care/
<ralt> You made me remember something fun
<ralt> Encapsulation is great until reality comes down to punch you in the face
<phoe> I'm not saying that encapsulating all the things is a good idea
<phoe> I'm just saying that SETF is not required to operate solely on RAM contents
<phoe> or even solely on the contents of your machine's volatile and non-volatile memory
dabr has joined #lisp
<phoe> I imagine that you could (setf (system::cpu-fan-speed 0) 300) to set the fan speed of the 0th fan of your machine to 300 RPM
<Nilby> a lot of setf'able OS things require root, I haven't fixed the forker yet, and I don't even know how to do it on windows.
aartaka has joined #lisp
<phoe> all you need to do on Windows is to exploit your way into kernelspace and then use it to kexec() Linux
* phoe hides
<Nilby> if wsl was default installed, i'd consider it
<dim> it's available by default in the windows store on all windows 10 devices, I think, right?
waleee-cl has joined #lisp
thecoffemaker has quit [Ping timeout: 260 seconds]
thecoffemaker has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
rogersm has quit [Remote host closed the connection]
rogersm has joined #lisp
rogersm has quit [Remote host closed the connection]
fitzsim has joined #lisp
sunset_NOVA has joined #lisp
cosimone has joined #lisp
pfdietz has joined #lisp
pfdietz has quit [Remote host closed the connection]
nicktick has joined #lisp
pfdietz has joined #lisp
luni has joined #lisp
luckless has quit [Quit: luckless]
luckless has joined #lisp
andreyorst_ has joined #lisp
phoe6 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
luckless has quit [Quit: luckless]
luckless has joined #lisp
rogersm has joined #lisp
sjl has joined #lisp
rogersm has quit [Ping timeout: 256 seconds]
akoana has left #lisp ["Leaving"]
andreyorst_ has quit [Ping timeout: 264 seconds]
alexcutie has quit [Quit: ZNC 1.8.2 - https://znc.in]
dabr has quit [Quit: WeeChat 3.0]
makomo has quit [Changing host]
makomo has joined #lisp
makomo has quit [Quit: WeeChat 2.9]
makomo has joined #lisp
miasuji has joined #lisp
matryoshka has quit [Quit: ZNC 1.8.2 - https://znc.in]
makomo has quit [Client Quit]
makomo has joined #lisp
matryoshka has joined #lisp
andreyorst_ has joined #lisp
ex_nihilo_ has quit [Ping timeout: 260 seconds]
_jrjsmrtn has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 265 seconds]
ex_nihilo has joined #lisp
gko_ has quit [Ping timeout: 246 seconds]
notzmv has joined #lisp
rogersm has joined #lisp
rogersm has quit [Ping timeout: 256 seconds]
mrios22 has quit [Ping timeout: 260 seconds]
rumbler31_ has quit [Ping timeout: 256 seconds]
notzmv has quit [Remote host closed the connection]
notzmv has joined #lisp
[d] has joined #lisp
hnOsmium0001 has joined #lisp
chrpape has joined #lisp
VincentVega has quit [Ping timeout: 245 seconds]
ym has joined #lisp
stzsch has quit [Read error: Connection reset by peer]
rumbler31_ has joined #lisp
stzsch has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
sunset_NOVA has quit [Quit: Leaving]
dyelar has quit [Quit: Leaving.]
j0nd0e has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 27.1)]
failproofshark has joined #lisp
nij has joined #lisp
<failproofshark> i apologize if this has been asked before but is there an html parsing library for CL similar to python's beautiful soup?
<failproofshark> i asked in #lispweb before but i'm not sure if it was answered as I had to log out before a reply was given (and I don't know if that channel has readable logs)
ecm has joined #lisp
<phoe> failproofshark: XML parsers exist
<phoe> I use Plump
<ecm> failproofshark: you can use any xml parser for html parsing
<phoe> it seems to do what you want... you can then use e.g. lquery to inspect the resulting DOM
<ecm> plump is nice, haven't looked into any other ones
kaftejiman has joined #lisp
nij has left #lisp ["ERC (IRC client for Emacs 27.1)"]
luni has quit [Quit: Connection closed]
<travv0> I’ll “third” the plump recommendation
ecm has quit [Quit: ERC (IRC client for Emacs 27.1)]
liberliver has quit [Quit: liberliver]
vaporatorius__ has quit [Read error: Connection reset by peer]
notzmv has quit [Remote host closed the connection]
vaporatorius__ has joined #lisp
notzmv has joined #lisp
[d] has quit [Ping timeout: 246 seconds]
anticrisis has joined #lisp
j0nd0e has quit [Ping timeout: 260 seconds]
Jesin has joined #lisp
makomo has quit [Quit: WeeChat 2.9]
j0nd0e has joined #lisp
andreyorst_ has quit [Ping timeout: 246 seconds]
<jasom> failproofshark I don't know if it has readable logs either, but I said "plump" in that channel after you logged out just in case
kaftejiman_ has joined #lisp
kaftejiman has quit [Ping timeout: 240 seconds]
dbotton has joined #lisp
surabax_ has joined #lisp
rpg has joined #lisp
surabax has quit [Ping timeout: 260 seconds]
nij` has joined #lisp
<nij`> I try to customize stumpwm, but get stuck while I'm importing packages into my config. The error is given here.. https://bpa.st/BXOA
v88m has quit [Read error: Connection reset by peer]
<phoe> well, the error is self-explaining
<phoe> something is trying to load an ASD file and that file doesn't exist
<nij`> Yeah, but when I interact with it from SLIME, it doesn't happen @@
Nilby has quit [Read error: Connection reset by peer]
<phoe> hmmmm
<phoe> (asdf:system-source-directory :cl-unicode)
<phoe> what does it say in slime?
<nij`> #P"/home/nij/.+PLUGS/Local/.quicklisp/dists/quicklisp/software/cl-unicode-20190521-git/"
v88m has joined #lisp
<phoe> so it correctly resolves the system location
<phoe> whereas stumpwm doesn't
<phoe> I wonder why
pankajsg has quit [Ping timeout: 256 seconds]
skapata has joined #lisp
<nij`> cl-launch.asd is the only file presented in /usr/share/common-lisp/systems
rogersm has joined #lisp
v88m has quit [Read error: Connection reset by peer]
<phoe> likely your stumpwm doesn't have the Quicklisp ASDF directories configured
<phoe> don't know how exactly to solve it
v88m has joined #lisp
abhixec has joined #lisp
rogersm has quit [Ping timeout: 246 seconds]
nij` is now known as nij
ex_nihilo has quit [Quit: Leaving]
kaftejiman_ has quit [Remote host closed the connection]
kaftejiman has joined #lisp
<travv0> nij if I remember correctly, I had that same error way back when I first set up stumpwm. when I’m back at a computer I’ll check my config to see if I can tell what I did to get it working
<nij> travv0: phoe: thank you folks :D
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life_ is now known as Lord_of_Life
scymtym has quit [Ping timeout: 264 seconds]
<jasom> Someone on reddit asked about mixing C++ and Lisp, with the example of doing a GUI in C++. I couldn't quickly find a simple example, so I wrote one: https://git.sr.ht/~jasom/qt-lisp-gui/tree
<nij> I used pacman to get stumpwm, and this seems to be why.
<nij> I will remove it and compile from scratch.
rogersm has joined #lisp
<jasom> nij: no need to do that, you can just load setup.lisp in your stumpwm config, right?
<nij> Yeah I think so @@
j0nd0e has quit [Ping timeout: 240 seconds]
mindCrime has joined #lisp
<nij> lemme try
v88m has quit [Ping timeout: 264 seconds]
<nij> jasom: do you mean (load "/home/nij/.quicklisp/setup.lisp")? (ps my quicklisp root is $HOME/.quicklisp)
<jasom> nij: yup
<nij> I did that @@ but it doesnt' work
<nij> I think the way that will resolve everything is to understand how sbcl and quicklisp really work.
<nij> Any account with details?
<Fade> in your environment, what is the value of $SBCL_HOME ?
<nij> I have been relying on my package manager too much, and it's only going to kill more of my time. I want to start learning from scratch.
<nij> Fade: It outputs nothing.
<nij> $ echo $SBCL_HOME => ""
<Fade> do you have an .sbclrc?
<jasom> oh, I just looked at the error message; you'll need to reinitialize the ASDF package registry probably
<nij> Yep! file content is here: https://bpa.st/ZNZA
<Fade> anyhow, we discussed this in #stumpwm
<nij> OK. It seems I need to read the manuals of ASDF, quicklisp, and sbcl.
<Fade> well, your stump was built in the system directories, and it's using a lot of pathing from that environment.
<nij> Yeah. It's all messed up.
<Fade> I've never tried doing it that way.
<nij> Nope. I shouldn't have.
sunset_NOVA has joined #lisp
<Fade> but your quicklisp setup is also non-standard, so you have many moving pieces at odds with each other.
<nij> Yeah. I should move my stuff out from $HOME.
<Fade> well...
<nij> $HOME is only for programs' configs.
<nij> I just wanted it to look clean @@
<Fade> i dunno if that's the takeaway I'd take, but it's your time and system. :)
<Fade> bbl
<nij> :D Thanks Fade
sauvin has quit [Read error: Connection reset by peer]
oni-on-ion has joined #lisp
mindCrime has quit [Ping timeout: 246 seconds]
scymtym has joined #lisp
miasuji has quit [Ping timeout: 256 seconds]
v88m has joined #lisp
v88m has quit [Read error: Connection reset by peer]
mindCrime has joined #lisp
nij has quit [Remote host closed the connection]
v88m has joined #lisp
jeosol has quit [Remote host closed the connection]
luckless has quit [Remote host closed the connection]
aartaka has quit [Read error: Connection reset by peer]
luckless has joined #lisp
surabax_ is now known as surabax
sxmx has quit [Remote host closed the connection]
aartaka has joined #lisp
sxmx has joined #lisp
v_m_v has joined #lisp
andreyorst_ has joined #lisp
pve has quit [Quit: leaving]
luni has joined #lisp
rogersm has quit [Quit: Leaving...]
aartaka has quit [Read error: Connection reset by peer]
<failproofshark> thanks ill try out plump!
rumbler31 has joined #lisp
aartaka has joined #lisp
failproofshark has quit [Quit: Lost terminal]
rumbler31 has quit [Remote host closed the connection]
andreyorst has quit [Remote host closed the connection]
andreyorst_ is now known as andreyorst
Steeve has joined #lisp
rogersm has joined #lisp
imode has joined #lisp
Duuqnd has joined #lisp
rogersm has quit [Ping timeout: 260 seconds]
frgo has joined #lisp
FennecCode has joined #lisp
heisig has quit [Quit: Leaving]
narimiran has quit [Quit: leaving]
aorst has joined #lisp
andreyorst has quit [Ping timeout: 260 seconds]
jw4 has quit [Read error: Connection reset by peer]
FennecCode has quit [Quit: IRCNow and Forever!]
jw4 has joined #lisp
v_m_v has quit [Remote host closed the connection]
dilated_dinosaur has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
dilated_dinosaur has joined #lisp
frgo has quit []
rumbler31 has quit [Ping timeout: 246 seconds]
miasuji has joined #lisp
<etimmons> ralt: I have a second version of the patch that requires only a relink of the runtime to make it static and the core can be shared between the dynamic and static runtimes
<etimmons> I'll post it once I test it a bit more. But it's passing smoke tests at the moment
<ralt> wooo
<ralt> amazing
bilegeek has joined #lisp
sunset_NOVA has quit [Quit: Leaving]
FennecCode has joined #lisp
amerigo has joined #lisp
Cesdo has joined #lisp
<Cesdo> Hi all
euandreh has joined #lisp
wsinatra has quit [Quit: WeeChat 3.0]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<frodef> hello
<Cesdo> Merry Christmas to everyone!
<frodef> Cesdo: a bit early, isn't it? :)
<Cesdo> No, it's 12:51 am already
<Cesdo> 7 January starts)
<frodef> early in the year..?
<lotuseater> oh maybe it's celebrated there on 7th January
<Cesdo> frodef: I don't know where are you from, but I'm from Russia. We have Russian Orthodox Church, and we celebrate Christmas every 7 January)
<Cesdo> lotuseater: yeah!
<fe[nl]ix> oh yes, the Eastern Christmas
<lotuseater> then Merry Christmas to you too Cesdo :)
karlosz has joined #lisp
<Cesdo> lotuseater: thanks))
<lotuseater> i had something like that in mind, here in Germany we call it "Heilige drei Könige", the day when the wise men arrived at Bethlehem
mindCrime has quit [Ping timeout: 264 seconds]
amb007 has quit [Read error: Connection reset by peer]
<frodef> Cesdo: I see, merry christmas then!
aindilis` has joined #lisp
aindilis has quit [Ping timeout: 260 seconds]
amb007 has joined #lisp
<Cesdo> lotuseater: oh, it's interesting))
<moon-child> happy boxing day y'all!
<frodef> Cesdo: here we wrapped up christmas about two weeks ago :)
<Cesdo> frodef: thanks)
<Cesdo> frodef: where are you from?
<Cesdo> moon-child: Is English football paid to watch in your country?
<moon-child> I have no idea
<frodef> Cesdo: norway
<Cesdo> moon-child: Ehm... Boxing-day is in English Premier League, isn't it?
<jasom> frodef: Last day of christmas here for Lutherans; Latin-rite Catholics get 3 more days
<moon-child> Cesdo: idk in england but in canada boxing day is just the day after christmas
<Cesdo> frodef: Oh, Linus was born not far from your country))
<Cesdo> moon-child: oh, it's interesting. Why it's called boxing day??
<Cesdo> moon-child: I thought, you're football fan))
<jasom> Cesdo: OED says it's because servants would receive a Christmas box.
<frodef> Cesdo: closer to yours, actually..
dbotton has quit [Quit: This computer has gone to sleep]
<lotuseater> so now we had just two of some slightly offtopic stuff: religion and sports :)
<lotuseater> now politics and it's complete. but some quote states "Common Lisp is not art, it's politics."
<ralt> I mean
<ralt> just open any news channel if you want some politics
luni has quit [Quit: Connection closed]
<ralt> you know, with people breaking into the Capitol in Washington, DC
<fiddlerwoaroof> Can someone help me with some Javascript?
<fiddlerwoaroof> :)
<lotuseater> no I'm not much into it, too wibbli-wobbly-tiny-winy
<fe[nl]ix> all off-topic :)
<lotuseater> fiddlerwoaroof: same with JS :D
<fe[nl]ix> let's return to Lispy things
miasuji has quit [Read error: Connection reset by peer]
miasuji has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
luis has quit [Ping timeout: 264 seconds]
luis has joined #lisp
leilamag has joined #lisp
miasuji has quit [Remote host closed the connection]
miasuji has joined #lisp
dbotton has joined #lisp
vutral_ has joined #lisp
_whitelogger has joined #lisp
rogersm has joined #lisp
andreyorst has quit [Ping timeout: 260 seconds]
dbotton has quit [Quit: This computer has gone to sleep]
rogersm has quit [Ping timeout: 256 seconds]
miasuji has quit [Remote host closed the connection]
miasuji has joined #lisp
rumbler31_ has quit [Ping timeout: 264 seconds]
random-nick has quit [Ping timeout: 260 seconds]
sjl has quit [Ping timeout: 264 seconds]
aindilis` has quit [Remote host closed the connection]
aindilis has joined #lisp
matryoshka has quit [Quit: ZNC 1.8.2 - https://znc.in]
matryoshka has joined #lisp
miasuji has quit [Remote host closed the connection]
miasuji has joined #lisp
matryoshka has quit [Client Quit]
rumbler31_ has joined #lisp
save-lisp-or-die has left #lisp ["The Lounge - https://thelounge.chat"]
matryoshka has joined #lisp
<White_Flame> beach: interesting paper. My musing along such lines in the past was to have multiple entry points into the function, but that explodes out in too many combinations to optimize for
<White_Flame> customizing it per use is probably much more practical. It could be advantageous for cache purposes to have multiple call sites share the same thunk, though that would make it a call instead of jump
miasuji has quit [Ping timeout: 264 seconds]
<White_Flame> btw, I thought the concept itself was very easily presented in the paper, but again that could be because I've spent time thinking about this in the past as well
<phoe> I know that beach was exploring the concept of multiple entry points
<White_Flame> I also enjoyed the "We would like to thank." Nice simple blanket statement ;)
<phoe> :D
<phoe> I giggled at that, too
rogersm has joined #lisp
rogersm has quit [Ping timeout: 256 seconds]
Steeve has quit [Quit: end]
frodef has quit [Ping timeout: 246 seconds]
kaftejiman has quit [Ping timeout: 246 seconds]
igemnace has joined #lisp
Xach has left #lisp [#lisp]
scymtym has joined #lisp