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/>
donleo has quit [Ping timeout: 244 seconds]
<Pixel_Outlaw> Don't know if this helps anyone but I'm cataloging my Lisp and related books. This might give you some new reads with ISBN. https://imgur.com/2vPeCl7.png
<Bubblegumdrop> Thanks!
<Pixel_Outlaw> Sure thing, the book scanning app might have an ISBN mistake or two. But the titles should get you new material.
robin is now known as terpri
terpri is now known as robin
kevingal has quit [Remote host closed the connection]
<kagevf> "Let's talk LISP" hardcover 1976 :)
tam has quit [Quit: The Lounge - https://thelounge.chat]
tam has joined #commonlisp
scymtym has quit [Ping timeout: 252 seconds]
scymtym has joined #commonlisp
<zwr> Pixel_Outlaw: thanks, downloaded a bunch of titles there
chomwitt has quit [Ping timeout: 272 seconds]
edgar-rft_ has joined #commonlisp
edgar-rft` has quit [Ping timeout: 252 seconds]
shawnw has quit [Ping timeout: 252 seconds]
v88m has quit [Remote host closed the connection]
v88m has joined #commonlisp
herjazz has joined #commonlisp
bjorkintosh has quit [Ping timeout: 260 seconds]
akoana has joined #commonlisp
Akbar-Birbal has joined #commonlisp
v88m has quit [Read error: Connection reset by peer]
v88m has joined #commonlisp
v88m has quit [Read error: Connection reset by peer]
v88m has joined #commonlisp
decweb has quit [Ping timeout: 252 seconds]
jonatack has quit [Read error: Connection reset by peer]
jonatack has joined #commonlisp
<Pixel_Outlaw> zwr, it's best to make a sale for the authors though if the book is still in print. Though some of the Common Lisp books are going for the $100 mark.
<Pixel_Outlaw> I think On Lisp was very high a while back. Don't know if it's still the case.
<Pixel_Outlaw> kagevf, Yeah, that book is interesting. It's an older dialect. It doesn't require parens around the toplevel sexp.
<random-nick> I don't think Paul Graham needs book money
<random-nick> and didn't he publish it for free as a pdf? or was it some other book of his
v88m has quit [Read error: Connection reset by peer]
<Pixel_Outlaw> Yes, you can get it here. I was just saying a lot of the books are expensive now. https://paulgraham.com/onlisptext.html
<ixelp> Download
v88m has joined #commonlisp
<kagevf> in 1976, it looks like maclisp, lisp machine lisp, and some others were around ... 6 years before CL?
<random-nick> afaik CL is a combination of various maclisps, lisp machine lisp, interlisp (?) and some ideas from scheme (like lexical scope), along with novel features which appeared in the lisp world during CL development, like LOOP and CLOS
v88m has quit [Read error: Connection reset by peer]
<Pixel_Outlaw> Yeah, they did a pretty good job considering they had to bridge a lot of languages.
<Pixel_Outlaw> Well, dialects.
lucasta has quit [Quit: Leaving]
<Pixel_Outlaw> There are some oddities in Lisps such as the IF that has as many else statements as you want, the InterLisp IF which uses IF THEN ELSE, and the dreaded "super paren" which didn't make the cut.
tucktuck has quit [Ping timeout: 265 seconds]
v88m has joined #commonlisp
random-nick has quit [Ping timeout: 252 seconds]
v88m has quit [Read error: Connection reset by peer]
v88m has joined #commonlisp
v88m has quit [Read error: Connection reset by peer]
cornett has joined #commonlisp
akoana has quit [Quit: leaving]
v88m has joined #commonlisp
brokkoli_origin has quit [Ping timeout: 252 seconds]
brokkoli_origin has joined #commonlisp
bjorkintosh has joined #commonlisp
v88m has quit [Read error: Connection reset by peer]
v88m has joined #commonlisp
<boigahs> I must know more of the "super paren"
<beach> I think it was ] that closed all open (.
<boigahs> I see
shawnw has joined #commonlisp
<bjorkintosh> that was introduced in interlisp, wasn't it?
* beach wouldn't know.
<Pixel_Outlaw> I know it exists there, MacLisp might also have it.
<Pixel_Outlaw> Now, the dark side of things is that you have both left and right. :) And the right closes only to the leftmost one.
<Pixel_Outlaw> It's an arguably terrible thing. :)
X-Scale has joined #commonlisp
<zwr> what causes so many Lisps to exist?
<bjorkintosh> zwr: lithperth.
v88m has quit [Remote host closed the connection]
<bjorkintosh> fairly innocuouth thpeech defect which can be corrected with thome training.
<beach> zwr: I am guessing that it was (is?) relatively easy to implement, at least if extreme performance is not required.
<Pixel_Outlaw> Yeah, excellent simplicity to parsing and a single consistant form in the s-expression.
<beach> And very simple semantics.
<Pixel_Outlaw> You don't realize how powerful s-expressions are until you realize that languages that grow by syntatic amalgamation via reserved symbols and keywords grow poorly.
<Pixel_Outlaw> Blocks, statements, operators... those are unified in Lisp.
<Pixel_Outlaw> *and conditionals
<Pixel_Outlaw> They captured a core idea that is so flexible and simple those parts need not exist.
<beach> zwr: Writing a toy Lisp system is a common thing to want from people who are relatively new to Lisp.
<aeth> zwr: most non-Lisps never get past the syntax... by having effectively "no" syntax, you get past designing syntax and get a toy Lisp rather than having your toy language die at the design/syntax part
<aeth> because it's easy to write a Lisp reader
<aeth> and most of your syntax decisions are made for you
<aeth> and some of them just reuse the host Scheme/CL's syntax, too
v88m has joined #commonlisp
<aeth> Pixel_Outlaw: and, yes, s-expressions can make a basic intermediate-representation if you're not going to do anything fancy, too... so that saves yet another stage and you can get to the semantics part
<aeth> It's kind of a what-you-see-is-what-you-get language... You can turn (+ x y) into something you can work with directly instead of having to make sense of what exactly a "x + y" is
<Pixel_Outlaw> Or having a bunch of infix operations and having to possibly take the expression out of order.
<aeth> oh, yes, precedence is not fun, and nobody agrees on it, and once you bikeshed precedence and operators and stuff, some people get ideas like making x/0 defined rather than undefined, etc., etc.
<aeth> and then people spend forever on how they want to do operator overloading and letting you define your own operators, etc., etc., stuff that doesn't really matter if it's just a function instead
<aeth> You can similarly bikeshed a dozen ways on how to handle the dot-notation method call that most languages have when instead you can just... use the same syntax for methods, just like operators (which are functions) and functions
<aeth> And any time spent on designing syntax is time not spent on designing semantics.
<aeth> The temptation to create a language that only you can read is a very strong one when you can just edit a few lines of the syntax yourself. At least a toy Lisp can be recognizably Lisp.
<Pixel_Outlaw> My favorite moment is just after implementing primitives and you start pulling more and more standard forms from nothing. That's powerful. Your language grows naturally because it's made of itself. (and maybe some macros).
v88m has quit [Remote host closed the connection]
<Pixel_Outlaw> So I can grow even a toy lisp into a respectable citizen.
<Pixel_Outlaw> Well, aside from it not being as powerful as a highly optimized implementation of Common Lisp.
<aeth> Yes, right, exactly, all you need is IF (and derive the often-more-convenient COND into IF), and some kind of iteration/recursion, and maybe LAMBDA.
<aeth> And then whatever functions you want to allow like +, and some kind of DEFINE and/or LET binding functionality if you want it to be actually usable
Fare has joined #commonlisp
k_hachig1 has joined #commonlisp
k_hachig1 is now known as k_hachig
olnw has quit [Ping timeout: 240 seconds]
elderK has joined #commonlisp
<elderK> Hey guys, I think I may have found a bug either in ASDF or SBCL. Probably SBCL.
<elderK> Just about to have dinner here so I guess I'll report it in full later, just as a sanity check.
<elderK> But in a nutshell: I have three packages, A, B and C. B uses C with a package local nickname and exports a public function. A makes use of that function. That function refers to something in C via the PLN defined in B. That should be okay, from my view, since the function is defined in B where the PLN is also defined.
<elderK> But when I call that function from A (fully qualified, so say, B:public-function), it fails because the PLN for C doesn't exist.
<elderK> I would have imagined that if you call a function from some package like B, any PLNs active in B would be active during the execution of the function that was defined in B. So, if you call B:function from A, it would just work.
<elderK> I'd also like to check that calling (find-symbol "SOMETHING" 'c) where 'c is a PLN for some package with a long name, is sane. It seems to be supported but fails if that (find-symbol ...) call is done in a situation as above.
<elderK> After dinner, I'll post a minimal way to reproduce this. What are your thoughts?
<elderK> As an extra: I also found that the ASDF shipping with SBCL (on Debian) doesn't seem to support PLNs. At lesat, package-inferred-systems fails to find dependencies when you use PLNs. Checking ASDF's source, I see it is supported so I suspect SBCL's ASDF is just a little too old.
olnw has joined #commonlisp
ello has quit [Quit: ZNC 1.9.1 - https://znc.in]
ello has joined #commonlisp
Pixel_Outlaw has quit [Quit: Leaving]
<beach> elderK: I think you may be confused.
rainthree3 has joined #commonlisp
<beach> elderK: Packages are all about symbols, not about functions or anything else. Symbols and packages are resolved by the reader, so whether B:<something> is valid, depends on the current package when that symbol is read.
<beach> elderK: I can't imagine a case where you will get an error from a missing package-local nickname when a function is called, unless you are doing something very unusual. It should all be taken care of at read time.
treflip has joined #commonlisp
shka has joined #commonlisp
euandreh has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 248 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<Fare> I had trouble again upgrading stumpwm... but after updating sbcl, stumpwm, quicklisp and my config files, it eventually worked. Sigh.
wacki has joined #commonlisp
<beach> Hello Fare. Are you planning to go to ELS 2025? I mean, it would be appropriate, but perhaps not required.
alcor has joined #commonlisp
k_hachig has quit [Ping timeout: 260 seconds]
Equill has joined #commonlisp
k_hachig1 has joined #commonlisp
k_hachig1 has quit [Ping timeout: 260 seconds]
<Posterdati> hi
<Posterdati> cffi and gsll are broken under openbsd and netbsd as ever, I fixed cffi and netbsd but I'm tired to see that my proposed fixes are ignored...
<phoe> Posterdati: I have merge rights in cffi, which PRs are yours?
<Posterdati> I did a couple of time in the past
<phoe> what's your github username?
<Posterdati> tapioco71
<Posterdati> they should be very old
<phoe> I cannot see any open PRs with that name
pkal has quit [Read error: Connection reset by peer]
<phoe> two were merged, one was closed without merging in 2020
pkal has joined #commonlisp
<Posterdati> mmmmh
<phoe> https://github.com/cffi/cffi/pull/153 was the unmerged one
<ixelp> Fixed c-toolchain.lisp to work on OpenBSD. by tapioco71 · Pull Request #153 · cffi/cffi · GitHub
<Posterdati> should be on gsll too
<Posterdati> and a couple on cffi
<ixelp> Pull requests · cffi/cffi · GitHub
<ixelp> Pull requests · malcolmreynolds/GSLL · GitHub
mishoo has joined #commonlisp
<elderK> beach: Thanks the input above :) We're on the same page, I'm just using bad terminology.
<elderK> I'll paste an example in a few moments to clarify the issue I've hit.
donleo has joined #commonlisp
attila_lendvai has joined #commonlisp
<elderK> Hey guys, this is sufficient to hit the issue: https://pastebin.com/JYhyy9yQ
<ixelp> (defpackage #:package-a (:export #:some-symbol #:a-function) ( - Pastebin.com
<elderK> If you call find-some-symbol while the current package is package-b, everything works. If you call package-b:find-some-symbol while you're in another package (such as package-c) it will fail.
<phoe> elderK: that's expected, the symbol designator PA is not a nickname of any package in PACKAGE-C
<elderK> That is, if you call it in another package where the PLN "pa" doesn't exist, it will fail.
<elderK> phoe: Okay, that's good to know - I thought that would be the issue. Doesn't this kind of break composition, though?
<elderK> Like, you can't use a shorthand within some package (that defines a PLN) and export a function that makes use of that shorthand.
<elderK> I've worked around it in my real thing by just using the full package name.
<phoe> if you want to pin the package, use #.(find-package 'pa) instead of just 'pa
<phoe> or the full package name
<elderK> Thanks phoe :)
<phoe> and yes, it kind-of breaks composition, but it also means that structuring your code properly will mean that 'pa can point to different packages - that's a net plus you cannot get if the package is hardcoded
<phoe> you need to keep in mind that L21 of your code is going to execute at runtime in context of the current value of *PACKAGE*, every time
McParen has joined #commonlisp
<elderK> I'm curious about structuring your code properly.
<phoe> because this break of composition that you meantion is a direct consequence of *PACKAGE* being a dynamic variable, and if we use this sort of logic, then dynavars break composition as well in some way
<elderK> pa can point to different packages: I understand, that's the point of PLNs, right?
<elderK> Okay, that's fair.
<beach> I don't understand the code, I guess.
<phoe> yes, that's the point of PLNs
<elderK> In the find-symbol call, I am directly specifying which package it should search in. I imagine the PLNs are being searched for in the current package, whatever *package* which is why it doesn't find the PLN.
<phoe> you are not directly specifying it
<phoe> you are passing not a package object itself, but a string designator
<beach> I don't see any function named SOME-FUNCTION in PACKAGE-B.
<phoe> that string designator is used as an argument to FIND-PACKAGE, which is called in the current dynamic context
<elderK> beach: Good catch: I did a quick edit.
<elderK> SOME-FUNCTION should be find-some-symbol.
<phoe> if you want to directly specify the package, find the package yourself and pass it directly instead of deferring the call until runtime
<beach> No wonder I don't understand it.
<phoe> e.g. the #. trick will do it
<elderK> Thanks phoe.
<phoe> or just use a global variable in package-b
<elderK> I think I'll do exactly that. Thank you very much :)
<phoe> (in-package #:package-b) (defvar *package-to-lookup-in* (find-package :pa)) (defun find-some-symbol () (find-symbol (symbol-name 'some-symbol) *package-to-lookup-in*))
<phoe> no ambiguity this time, because there are no more runtime package lookups in FIND-SOME-SYMBOL
<elderK> Is there any reason to prefer the defvar vs. #.(....) ?
<elderK> Personally, I like the defvar but I've seen #.(....) used a lot in different cases.
<elderK> That executes something at read time, right?
<phoe> yes
<phoe> #. will be a bit more efficient because there'll be one variable lookup less on each call
<phoe> but it's not much of a problem unless your loop is really hot
<elderK> Thank you :)
<phoe> no problem
pve has joined #commonlisp
Equill has quit [Ping timeout: 252 seconds]
dino_tutter has joined #commonlisp
shka has quit [Quit: Konversation terminated!]
shka has joined #commonlisp
rainthree3 has quit [Ping timeout: 248 seconds]
<Posterdati> phoe: now, for submit the new patches?
<Posterdati> phoe: I do not fully understand why, at every release, thing got screwed again...
<Posterdati> phoe: regardless my fix
awlygj has joined #commonlisp
awlygj has quit [Client Quit]
awlygj has joined #commonlisp
rainthree3 has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
<Posterdati> ...
jack_rabbit has quit [Ping timeout: 252 seconds]
elderK has quit [Quit: WeeChat 4.4.2]
shka has quit [Quit: Konversation terminated!]
shka has joined #commonlisp
<phoe> Posterdati: I cannot see any other patches in cffi and gsll other than the three you've sent
alternateved has joined #commonlisp
treflip has quit [Remote host closed the connection]
bendersteed has joined #commonlisp
<Posterdati> phoe: ok, but why those patches never been used in the code?
Equill has joined #commonlisp
<Posterdati> phoe: every time new releases of cffi and gsll come out same problem appears for *bsd systems!
random-nick has joined #commonlisp
treflip` has joined #commonlisp
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
bendersteed has quit [Quit: bendersteed]
wacki has joined #commonlisp
<phoe> Posterdati: cffi did not have a new release
<phoe> if I get it correctly then https://github.com/quicklisp/quicklisp-projects/blob/master/projects/cffi/source.txt points at the current master branch rather than some tag
<ixelp> quicklisp-projects/projects/cffi/source.txt at master · quicklisp/quicklisp-projects · GitHub
<phoe> where do you get your cffi from?
Equill has quit [Ping timeout: 252 seconds]
treflip` has quit [Ping timeout: 260 seconds]
McParen has left #commonlisp [#commonlisp]
nerap has joined #commonlisp
shawnw has quit [Ping timeout: 260 seconds]
decweb has joined #commonlisp
chomwitt has joined #commonlisp
nerap has quit [Ping timeout: 276 seconds]
mrcom has quit [Quit: Leaving]
X-Scale has joined #commonlisp
euandreh1 has joined #commonlisp
euandreh has quit [Ping timeout: 244 seconds]
euandreh1 is now known as euandreh
cage has joined #commonlisp
euandreh has quit [Remote host closed the connection]
cage has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
lucasta has joined #commonlisp
chomwitt has quit [Ping timeout: 272 seconds]
rainthree3 has quit [Read error: Connection reset by peer]
anticomputer has quit [Ping timeout: 260 seconds]
euandreh has joined #commonlisp
anticomputer has joined #commonlisp
chomwitt has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
herjazz has quit [Quit: leaving]
chomwitt has quit [Ping timeout: 245 seconds]
jack_rabbit has joined #commonlisp
euandreh has quit [Remote host closed the connection]
euandreh has joined #commonlisp
euandreh has quit [Client Quit]
bitspook has joined #commonlisp
<bitspook> When making some HTTP requests using dexador, I've come across a server that *requires* http2. I haven't found anything ready to use in CL land which can do http2 POST requests. Any chance someone here knows of something? If not, for now I am going to =run-program= curl :-/
Equill has joined #commonlisp
<kpg> hmm, there may be some public cffi bindings to libcurl...
<kpg> https://cl-curl.common-lisp.dev/ - no tests though (-:
<ixelp> cl-curl, an interface to the libcurl library
kevingal has joined #commonlisp
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<alcor> Never seen a server that strictly requires http2. If you have control over it, maybe it might be misconfigured?
McParen has joined #commonlisp
<alcor> Shelling out to curl or using cl-curl might be the only option if h2 is a must. Otherwise, maybe having a sidecar h1→h2 proxy may help?
jack_rabbit has quit [Ping timeout: 252 seconds]
wacki has joined #commonlisp
bitspook has quit [Read error: Connection reset by peer]
awlygj has quit [Quit: leaving]
Bubblegumdrop_ has joined #commonlisp
mgl_ has joined #commonlisp
Bubblegumdrop has quit [Ping timeout: 252 seconds]
notzmv has quit [Ping timeout: 272 seconds]
Akbar-Birbal has left #commonlisp [#commonlisp]
chomwitt has joined #commonlisp
amb007 has joined #commonlisp
chomwitt has quit [Ping timeout: 248 seconds]
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
X-Scale has joined #commonlisp
X-Scale has quit [Ping timeout: 256 seconds]
kevingal has quit [Ping timeout: 244 seconds]
attila_lendvai_ has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
attila_lendvai has quit [Ping timeout: 248 seconds]
Bubblegumdrop_ is now known as Bubblegumdrop
rendar_ has quit [Quit: Leaving]
rendar has joined #commonlisp
spdegabrielle has joined #commonlisp
kevingal has joined #commonlisp
chomwitt has joined #commonlisp
CrashTestDummy has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 29.4]
CrashTestDummy has quit [Client Quit]
dnhester26 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
fe[nl]ix has quit [Quit: Valete!]
ldb has joined #commonlisp
ldb has quit [Client Quit]
fe[nl]ix has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
McParen has left #commonlisp [#commonlisp]
Pixel_Outlaw has joined #commonlisp
jonatack has quit [Ping timeout: 252 seconds]
jon_atack has joined #commonlisp
tam9 has joined #commonlisp
tam has quit [Ping timeout: 255 seconds]
tam9 is now known as tam
wacki has quit [Read error: Connection reset by peer]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
wacki has joined #commonlisp
akoana has joined #commonlisp
pve has quit [Quit: leaving]
varjag has joined #commonlisp
amb007 has quit [Ping timeout: 255 seconds]
shka has quit [Quit: Konversation terminated!]
attila_lendvai_ has quit [Ping timeout: 276 seconds]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
varjag has quit [Remote host closed the connection]
varjag has joined #commonlisp
Equill has quit [Ping timeout: 260 seconds]
mishoo has quit [Ping timeout: 276 seconds]
Pixel_Outlaw has quit [Read error: Connection reset by peer]
mgl_ has quit [Ping timeout: 272 seconds]
Pixel_Outlaw has joined #commonlisp
gorignak has joined #commonlisp
varjag has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 244 seconds]
spdegabrielle has quit [Quit: Connection closed for inactivity]
alternateved has quit [Remote host closed the connection]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
ldb has joined #commonlisp
dino_tutter has quit [Ping timeout: 244 seconds]
chomwitt has quit [Ping timeout: 252 seconds]