jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language<http://cliki.net/> logs:<https://irclog.whitequark.org/lisp,http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.5, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
actuallybatman has joined #lisp
meepdeew has joined #lisp
Balooga_ has joined #lisp
shrdlu68 has quit [Quit: WeeChat 2.0.1]
asarch has joined #lisp
ober has quit [Ping timeout: 252 seconds]
anewuser has quit [Read error: Connection reset by peer]
graphene has quit [Remote host closed the connection]
laqq3 has quit [Quit: Leaving]
meepdeew has quit [Remote host closed the connection]
frodef has quit [Ping timeout: 245 seconds]
anewuser has joined #lisp
rumbler31 has joined #lisp
Kundry_Wag has joined #lisp
rumbler31 has quit [Ping timeout: 244 seconds]
Kundry_Wag has quit [Ping timeout: 240 seconds]
pierpal has joined #lisp
mange has quit [Ping timeout: 240 seconds]
flazh has quit [Ping timeout: 245 seconds]
dddddd has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Essadon has quit [Quit: Qutting]
Kundry_Wag has quit [Ping timeout: 245 seconds]
Balooga_ has quit [Quit: Balooga_]
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
Roy_Fokker has quit [Quit: Leaving]
Balooga_ has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
rpg has joined #lisp
scottj has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
meepdeew has joined #lisp
esrse has joined #lisp
pjb has quit [Ping timeout: 252 seconds]
lavaflow has quit [Ping timeout: 272 seconds]
Kundry_Wag has joined #lisp
lavaflow has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
robotoad has quit [Quit: robotoad]
rumbler31 has joined #lisp
robotoad has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
rumbler31 has quit [Ping timeout: 244 seconds]
Kundry_Wag has quit [Ping timeout: 246 seconds]
rtypo has quit [Ping timeout: 272 seconds]
adam4567 has joined #lisp
Kundry_Wag has joined #lisp
djuber has joined #lisp
djuber has left #lisp [#lisp]
Kundry_Wag has quit [Ping timeout: 244 seconds]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
flazh has joined #lisp
rpg has quit [Quit: Textual IRC Client: www.textualapp.com]
equwal has joined #lisp
dale has joined #lisp
<beach> Good morning everyone!
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
<Fare> good morning, beach!
vmmenon has quit [Quit: vmmenon]
Oladon has quit [Quit: Leaving.]
Kundry_Wag has quit [Ping timeout: 244 seconds]
xificurC has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
Pixel_Outlaw has quit [Remote host closed the connection]
<no-defun-allowed> morning beach
rozenglass has quit [Read error: Connection reset by peer]
<SaganMan> It's fairly good morning today. Mangkhut has passed China and things are already back to normal.
<beach> Good. That was a nasty one.
<SaganMan> yeah, I'm now talking to friend who lives in Shenzhen. He's safe now but he had hell of experience in typhoon.
<beach> Wow, yes, understandable.
Bike has quit [Quit: Lost terminal]
beach has quit [Ping timeout: 252 seconds]
igemnace has joined #lisp
beach has joined #lisp
Balooga_ has quit [Quit: Balooga_]
anewuser has quit [Quit: anewuser]
vlatkoB has joined #lisp
phadthai has joined #lisp
phadthai has quit [Remote host closed the connection]
phadthai has joined #lisp
<no-defun-allowed> do licensing terms use dynamic or lexical scope?
<no-defun-allowed> (ie: if i say "same license as emacs" is it what license was used when i published the software or does it change automagically when emacs changes?)
<sabrac> I would interpret it as what the emacs license was when you published, but I am not a copyright lawyer in any jurisdiction.
Kundry_Wag has joined #lisp
dale has quit [Quit: dale]
<sabrac> I have seen license language that adds "as amended" or "as amended from time to time", which I would interpret differently.
Kundry_Wag has quit [Ping timeout: 244 seconds]
rumbler31 has joined #lisp
fikka has joined #lisp
<mfiano> Hello all
<beach> Hello mfiano.
<mfiano> I have a DEFUN over a LET over a DEFUN, so I can initialize and also reset the state of the closure. What can do to have the call-sites to the inner function not emit compiler warnings? Is using funcall on a quoted symbol instead of #' here the only thing I can do, because that sort of feels like a hack, and ?
meepdeew has quit [Remote host closed the connection]
<mfiano> sorry, that last part was corruption meant for another window
rumbler31 has quit [Ping timeout: 244 seconds]
<beach> You could try to FMAKUNBOUND it before the inner DEFUN.
fikka has quit [Ping timeout: 245 seconds]
<beach> Perhaps you should show the code on a pastebin and show the warning as well.
<mfiano> Sure, well the code is just a pretty simple memoization closure: https://gist.github.com/mfiano/79694e884f37779b9d1e31be78f8ea77
<mfiano> and call-sites look like (load-texture ...) but will never hit that at runtime until the toplevel initialize function is called
<mfiano> This is only a compile time warning because the load-texture function doesn't exist then
<loke> beach: I've always been a bit confused about the symbol FMAKUNBOUND. It's 11 characters. What system had a length limit of 11 character so as to make it impossible to use the name FMAKEUNBOUND?
<beach> loke: Good question. Old Lisp dialects had plenty of stuff like that.
<beach> mfiano: Oh, so the warning is an the call sites?
<mfiano> Yes
<beach> Why don't you just set it initially to something that calls ERROR then.
<loke> beach: Didn't some system have a limit of 6 characters? ITS Filenames certainly did. Was it originally FMAKUN?
<loke> Or FMAKUB?
<beach> I have never seen either of those.
<loke> Neither have I. Just speculating.
fikka has joined #lisp
<loke> It seems as silly as the Unix system call ‘creat’.
<loke> I don't think they had a 5 character limit.
<mfiano> beach: I suppose that suffices. Thanks.
<beach> mfiano: Sure.
<beach> Or `ls', though that was from Multics. But Multics had a long name and a short name for most commands, so `ls' was short for `list'.
Kundry_Wag has joined #lisp
<mfiano> At first thought I was thinking that'd emit a redefinition warning at runtime when I call the toplevel initialize function. I guess that is not the case
<beach> That's strange, yes.
<loke> beach: Yeah. That's at least explainable.
<loke> Someone on SO mentions radix50 which packs 6 characters in one word (that's what's used for filenames in ITS). But those use 36-bit words, and Unix was for PDP-11. Also, 6 characters would fit ‘create’. :-)
fikka has quit [Ping timeout: 272 seconds]
Kundry_Wag has quit [Ping timeout: 272 seconds]
SenasOzys has quit [Remote host closed the connection]
steiner has quit [Remote host closed the connection]
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
Balooga_ has joined #lisp
suskeyhose has quit [Quit: ERC (IRC client for Emacs 26.1)]
Kundry_Wag has joined #lisp
lagagain has joined #lisp
Kundry_Wag has quit [Ping timeout: 245 seconds]
joga has joined #lisp
fikka has joined #lisp
<Fare> sometimes, a hackish name is a good way to signal that the function is a hack. FMAKUNBOUND sounds like it.
Inline has quit [Quit: Leaving]
fikka has quit [Ping timeout: 252 seconds]
Balooga_ has quit [Quit: Balooga_]
Lycurgus has quit [Ping timeout: 246 seconds]
equwal has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
kooga has quit [Quit: :]
Kundry_Wag has joined #lisp
<no-defun-allowed> hey, postmodern is really nice
mingus has joined #lisp
Kundry_Wag has quit [Ping timeout: 252 seconds]
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
lavaflow has quit [Ping timeout: 252 seconds]
Balooga_ has joined #lisp
frgo has quit [Ping timeout: 272 seconds]
dented42 has joined #lisp
fikka has joined #lisp
v0|d has quit [Remote host closed the connection]
w7b has joined #lisp
v0|d has joined #lisp
v0|d has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 246 seconds]
scymtym has quit [Ping timeout: 252 seconds]
shka_ has joined #lisp
Kundry_Wag has joined #lisp
rumbler31 has joined #lisp
shka_ has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Ping timeout: 252 seconds]
rumbler31 has quit [Ping timeout: 264 seconds]
v0|d has joined #lisp
v0|d has quit [Remote host closed the connection]
moei has quit [Ping timeout: 252 seconds]
Balooga_ has quit [Quit: Balooga_]
SaganMan has quit [Ping timeout: 264 seconds]
steiner has joined #lisp
Kundry_Wag has joined #lisp
fikka has joined #lisp
SaganMan has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
v0|d has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
v0|d has quit [Remote host closed the connection]
svillemot has quit [Quit: ZNC 1.6.5+deb1+deb9u1 - http://znc.in]
v0|d has joined #lisp
v0|d has quit [Remote host closed the connection]
fikka has joined #lisp
v0|d has joined #lisp
dmiles has quit [Ping timeout: 250 seconds]
frodef has joined #lisp
frgo has joined #lisp
frgo has quit [Read error: Connection reset by peer]
frgo_ has joined #lisp
frgo_ has quit [Remote host closed the connection]
frgo has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
gpiero has joined #lisp
svillemot has joined #lisp
w7b has left #lisp ["Leaving"]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
holycow has quit [Quit: Lost terminal]
orivej has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 264 seconds]
scymtym has joined #lisp
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nowhere_man has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 245 seconds]
shrdlu68 has joined #lisp
dmiles has joined #lisp
lavaflow has joined #lisp
shka_ has joined #lisp
asarch has quit [Quit: Leaving]
lavaflow has quit [Ping timeout: 246 seconds]
Balooga_ has joined #lisp
Kundry_Wag has joined #lisp
scymtym has quit [Ping timeout: 250 seconds]
Kundry_Wag has quit [Ping timeout: 250 seconds]
Kundry_Wag has joined #lisp
steiner has quit [Remote host closed the connection]
Balooga_ has quit [Ping timeout: 264 seconds]
Kundry_Wag has quit [Ping timeout: 250 seconds]
Kaisyu has joined #lisp
rumbler31 has joined #lisp
housel has quit [Read error: Connection reset by peer]
nowhere_man has quit [Ping timeout: 245 seconds]
rumbler31 has quit [Ping timeout: 244 seconds]
xificurC has joined #lisp
steiner has joined #lisp
moei has joined #lisp
adam4567 has left #lisp ["ERC (IRC client for Emacs 24.5.1)"]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 252 seconds]
<beach> flip214: When a chunk is in use, there is no reserved word at the end of it. There is only one word at the beginning indicating the size. The rest is user data. That's why there is an additional bit in the following chunk that indicates whether the preceding one is in use or not.
<beach> flip214: Only if it is not in use can the reserved word be accessed.
pierpal has joined #lisp
<beach> flip214: Allocating a chunk involves either finding a free one with the right size or splitting a bigger one. There is no need to mention both cases separately. They are both considered to be allocation.
<beach> flip214: I am not updating the ARM specification right now because it contains incorrect information, and I will very likely eliminate it entirely and instead use ARM 64.
Kundry_Wag has joined #lisp
<frodef> beach: good morning
pierpal has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Ping timeout: 245 seconds]
<beach> Hey frodef. Long time no see.
<no-defun-allowed> i would have guessed for many CL names the authors avoided duplicate letters and vowel/consonant clusters
<no-defun-allowed> compare defun to defmacro for example, the second f is dropped
<frodef> beach: yup. have I missed anyting? :)
<beach> Tons of stuff! :)
<frodef> good!
<beach> Heh!
<beach> flip214: I am not using "downward" or "upward" for the direction of stack growth, because the address space is usually drawn with 0 on top of the page. So a stack that grows toward smaller addresses grows downward when it comes to addresses and upward on the page.
<beach> frodef: I created a #sicl channel to avoid polluting #lisp and #clasp with my own specific stuff.
<beach> frodef: I am making excellent progress with SICL bootstrapping.
<beach> frodef: Your name (or rather that of Movitz) has come up a few times when there are people who come here and ask why there are no operating systems written in Common Lisp.
<no-defun-allowed> frodef: movitz is quite amazing, well done
<frodef> beach: I really want to improve on it.. jumping to x86/64 for starters.
<beach> That would be great.
<beach> You know you have a competitor, right?
<beach> Mezzano runs McCLIM and there is a translator from LLVM to Common Lisp, so that Mezzano can run some C programs.
<frodef> I do seem to remmeber some fun-looking project a while back..
<no-defun-allowed> i appreciate the bareness of movitz though
<no-defun-allowed> fitting on a floppy reminds me of native oberon and that was also a nice OS to hack with
<frodef> no-defun-allowed: thanks.
<beach> frodef: Do you have time for that stuff these days?
<makomo> morning
<frodef> what's the "bootstrap" of mezzano, then?
<beach> I think it uses SBCL.
<beach> But there are some shortcuts.
<frodef> beach: hoping to get back into it now.
<no-defun-allowed> also if it still runs on i386 it can run on an old 1999 machine i have no better purpose for
<beach> It uses some simplified CLOS as I recall.
<beach> frodef: Would you like to help out with SICL and then CLOSOS (the name I have chosen for my planned Lisp OS).
<beach> ?
<jackdaniel> frodef: you are movitz author?
nowhere_man has joined #lisp
<beach> jackdaniel: He is.
phadthai has quit [Remote host closed the connection]
<frodef> is there any movement at all (sicl?) towards modernizing/refreshing (common) lisp?
<frodef> jackdaniel: right
<no-defun-allowed> jackdaniel: frode fjeld looks like frodef
<frodef> indeed
<no-defun-allowed> did your parents name you after your irc nick?
<jackdaniel> nice to meet you :)
<beach> frodef: I am not planning to change the spec, but I am planning to modernize the code. I have a very modest plan to improve the spec. I call it WSCL (pronounce it Whistle) meaning Well Specified Common Lisp.
<beach> no-defun-allowed: Heh.
<no-defun-allowed> that's quite cute if true, my parents named me after a lousy greek legend or something
<beach> frodef: The purpose of WSCL is to specify many of the things that were left unspecified in the Common Lisp HyperSpec.
<j`ey> beach: complete with tests so that every implementation can check that they conform?
<beach> j`ey: WSCL? Sure, good idea.
phadthai has joined #lisp
<shka_> honestly there is not that much that should be added into common lisp standard anyway
<beach> If I had dpANS as a single LaTeX file that I could compile with `pdflatex', I would actually make some progress on WSCL, but it turns out not to be trivial to create such a file.
<frodef> If you'll allow me some herecy, I think there are corners of CL that somewhat (too) rough.
<beach> That's definitely true.
<beach> But it is very hard to get consensus on changes.
<beach> So I wanted to start with a modest proposal.
phadthai has quit [Client Quit]
<shka_> getting cleaner standard is reasonable point
<shka_> less UB, more portability
<shka_> it is cool
<frodef> it's a monthy python situation, isn't it :)
* beach wouldn't know.
<frodef> I think it was one lesson learned from movitz, that staying true to CL incurred lots of work that also resulted in worse code.
<frodef> (although compatibility is of course good)
<beach> frodef: I was half joking about you helping out with SICL and CLOSOS.
<beach> frodef: Can you give an example of such worse code?
<frodef> beach: sorry, I missed the invitation above, I'll get back to you.
shifty has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
<frodef> beach: a small example, something like sequence indexing, I seem to remember.
<beach> What is the issue?
* beach will be back in 10 minutes.
<frodef> beack: (subseq '(0 1 2 3) 3 8) should just return (3), for example.
fikka has joined #lisp
<p_l> frodef: why so?
<p_l> especially considering that it's a common operation in many a language
<p_l> and somehow nobody complains about it there
<frodef> p_l: I find myself writing (subseq x 3 (min (length x) 8)) almost all the time.
<frodef> p_l: also, the spec means it can't be implemented as cdddr
<p_l> ahh, I missed a bit there
<frodef> p_l: nobody complains in other languages, because there it's like I'm proposing here :)
<p_l> frodef: I'd like to see a keyword argument extending SUBSEQ with information on what to do in case of index going out of bounds
<frodef> p_l: I suspect two separate functions would be better.
Kundry_Wag has joined #lisp
<p_l> also, in many a language, it's an error too
<p_l> I'd rather keep stricter default
<beach> frodef: In this case, you can just type (subseq x 3)
<frodef> beach: only if I know the length is below 8, which I don't.
<beach> Oh, I see what you mean.
<p_l> beach: the case is more of "give me upto 8 elements from x starting from 3)
<beach> I get it.
<beach> frodef: I think it will be almost impossible to reach consensus on a change like that.
<frodef> I know :)
<beach> frodef: And we are already very scattered as a community, so I am not going to try it.
alandipert has quit [Quit: Ping timeout (120 seconds)]
<p_l> adding a keyworded option would fit under extension and a CDR document
alandipert has joined #lisp
<_death> but nothing prevents you from having a safe-subseq function..
<loke> Doesn't alexandria already have that?
<p_l> _death: well, it would be more like unsafe-subseq ;)
<jackdaniel> p_l: adding keyword argument as cdr extension -> non-conforming usage of said function which breaks code on implementations which don't implement it. way saner solution is to have a separate function for that
Kundry_Wag has quit [Ping timeout: 252 seconds]
<jackdaniel> preferably with a well-defined package so it can be implemented as a library
<frodef> _death: two problems: substituting such basic operations rather hurts community-wide code readability, and also the performance hit is I think not insignificant.
<_death> I think it's the "traditional" name for such a function.. but I may be wrong
<p_l> jackdaniel: I was more worried about impacting existing conformant code
<p_l> and *FEATURES* should be used for detection... like they are used with code that works only on few implementations
<frodef> beach: OTOH I suspect such warts (this is a small one) also hinders CL adoption. It really reeks of 1970's..
<_death> frodef: well I wrote and used such functions more than once and this community of one has no trouble reading the code :).. also perf has not been an issue, because using subseq is a good indicator that you don't care for it
<p_l> frodef: or smells of 1990's "we have hardon for typed FP"
<p_l> ... which arguably extends to today
<jackdaniel> well, having #+my-cdr(subseq …) #-my-cdr(subseq …) is hardly better than (cdr:subseq* …) ; (and it defeats whole purpose of the extension, you can't "just use it" to write portable code
<p_l> jackdaniel: I was thinking more of having #-cdr-X (error "This code requires implementation supporting CDR-X)
<jackdaniel> even better road towards portability, yeah
<jackdaniel> (especially for a functionality, which doesn't really require melding with the lisp implementation itself)
<beach> frodef: I don't think fixing things like that will have a significant impact on Common Lisp adoption. There are much stronger psychological forces at work.
<p_l> that said, I would also prefer if extensions provided their own packages, true
<p_l> a much bigger issue for CL is universities using ancient crappy tutorials as part of some early courses
fikka has quit [Ping timeout: 252 seconds]
Fare has quit [Ping timeout: 252 seconds]
gpiero has quit [Ping timeout: 264 seconds]
<frodef> beach: Most people are pragmatic, I think... biggest obstacle I'd say is there are no particular reasons to adopt CL (except of course the beauty of parens etc. but pragmatic people don't care about such things.)
gpiero has joined #lisp
<frodef> on another not, is there anyone using ELI rather than sLIME?
<dim> a CL REPL integrated into vscode / atom / $EDITOR of the day would go a long way already, then a very easy way to consume “modern” APIs (http, json, etc), would be my guess
<dim> make it so easy to scrap the web / use APIs interactively in CL than other solutions are looking cumbersome ;-)
<beach> There are tons of reasons to adopt Common Lisp, but I don't think people have enough training, information, or psychological mindset to even consider doing it.
<jackdaniel> hm, CL is being adapted by quite a few people. sure, it could be more popular, but I don't think that lack of people willing to use it is a problem
<p_l> dim: there are some extensions for VS Code and Atom already
phadthai has joined #lisp
<p_l> nowhere close to SLIME but then the competition isn't, either.
<dim> beach: in my (limited) experience, most people (I've talked to) think of CL as a thing of the past, it was tried, it failed, move on
<p_l> frodef: a pragmatic reason to use CL is performance IMO
<jackdaniel> (in fact, I don't think there is any problem, I don't have statistics but my impression is that CL mindshare is steadily growing since I've started using it)
<beach> dim: That's the "not enough information" part.
<p_l> beach: there's also "bad information", often from CS courses where you have a curious mix of LISP 1.5 and Scheme
<dim> beach: well, what I'm saying is that you know they don't have enough information, but they are certain they do have enough of it.
<p_l> (not talking about SICP-using places)
<beach> p_l: Absolutely.
<beach> dim: Yes, that's the "not enough training" part. :)
<p_l> Then there's "people who failed SICP" ;)
nowhere_man has quit [Ping timeout: 264 seconds]
<dim> those people won't try to refresh the information they have, because they have no reason to, they won't make any effort when they know they don't need to, their knowledge is that CL is a funny piece of history, and dead.
<dim> beach: ah, not enough training, that's another angle, sure ;-)
<beach> Exactly.
<p_l> and so they build their stuff in Python and suffer from it ;)
<dim> my view is more that Unix won, and CL doesn't quite fit in the unix model
<frodef> p_l: my 3GHz, 2GB RAM, yet unbearably slow smartphone begs to agree on the performance thing.
<p_l> frodef: Most of smartphone slowness is from bad programming causing latency issues, IMO
<beach> I think (and especially hope) that jackdaniel is right. I am convinced that the only way to fix this problem is to show that we can do great stuff with limited resources.
<p_l> dim: Smalltalk developers would seem to disagree
<p_l> FWIW, we could learn from them
<frodef> beach: yes, having great stuff is the best reason for pragmatic people :)
<dim> my own personnal main difficulty with CL is experienced with pgloader each time I report a bug here: most of you guys try being helpful with advice about fixing the developer/run-time environment, but pgloader users know nothing about CL, they just use another /usr/bin/ tool in unix.
atgreen has quit [Ping timeout: 240 seconds]
atgreen has joined #lisp
<dim> and then the other side is that I get zero contributions on pgloader, because it's written in CL, even from people who are stuck and would hack away something written in Python, Perl, C or something they can relate to
<p_l> dim: how could we help better?
<frodef> p_l: yes, and bad programming results from bad programming systems (language, run-time, etc). Everything just gravitates to big balls of mud because one inevitably loses control and oversight.
<dim> p_l: let's have more of us releasing /usr/bin tools to users who know nothing about CL and are happy to use the tool anyway?
<dim> the problem I don't know how to solve, I feel like I'm the only one who needs to fix them anyway, and that doesn't help: loading the proper .so both at image build time and at run-time on a system you will never have access to, for instance, is one of my current big problems
<p_l> dim: I have an itch I want to scratch that involves a ton of /sbin tools
<dim> so yeah, we have problems to fix with CL if we want to see broader adoption, the model of the lone hacker being the hero of the interactive system is a great story, it can't be the only one
<frodef> dim: so basically, unix won and we all suffer for it :)
<p_l> dim: I have an idea that involves CL used for init system
<jackdaniel> dim: why closing before save-image-and-die and opening so doesn't work for you?
<dim> frodef: that's quite obvious, isn't it?
<p_l> frodef: Unix didn't exactly won
<p_l> we just feel like it because we are in a bubble of sorts
<jackdaniel> s/opening so/opening "so"/
<dim> jackdaniel: I wish I knew, but I just have no idea.
<jackdaniel> do you have a link to the issue?
<jackdaniel> (with backtrace and such!)
<dim> the many issues, I think you mean, let me find recent ones
<frodef> p_l: pretty sure it wasn't symolics that won, at least..
fikka has joined #lisp
<p_l> dim: you might need to write a function that attempts to find the canonical lib, in pure CL, then have it run before the code that will load the library
gpiero has quit [Ping timeout: 252 seconds]
<jackdaniel> thank you
<dim> https://github.com/dimitri/pgloader/issues/437 is interesting too, with many details and a solution at the OS level at the end
<dim> I'll stop here
<beach> frodef: What I think you would like in SICL: first-class global environments, bootstrapping CLOS first, using CLOS machinery for built-in classes fast generic dispatch, fast portable sequence functions, portable compiler, etc.
<dim> the meta-modular approach starts with CLOS, finally? ;-)
<frodef> so no love for ELI? After a decade with SLIME I still miss ELI every time.
<_death> wasn't there an attempt at CL-based TLS implementation
<beach> frodef: How do you like this one, for instance: (defclass t () () (:metaclass built-in-class)?
<_death> that could help replace your openssl woes with cl-tls woes
<dim> yeah, let's replace the old bugs with the new ones!
<frodef> beach: sounds good.. portable compiler sounds like a challenge.
<beach> frodef: Yes, but it's working.
<frodef> beach: targeting what?
<beach> frodef: Clasp, SICL, and now also CLISP are the current clients.
<dim> _death: I can't seem to think of another PL where loading openssl (or other .so) is such a problem as with CL
<beach> frodef: That's customizable.
<beach> frodef: The common part is compilation from CST to AST to HIR and them portable optimizations on HIR.
<beach> s/them/then/
<frodef> beach: what's HIR stand for?
<_death> dim: really? what do you think makes CL special in that regard?
<beach> High-level Intermediate Representation.
<beach> frodef: Oh, you might also like the garbage collector that I am planning for SICL.
<dim> _death: in short, ffi is broken in CL, that's my user experience
<beach> Anyway, lunch time. I need to go.
<_death> dim: that doesn't answer my question
<frodef> beach: sounds good! what backends do you have then? (for the compiler)
<p_l> dim: openssl is a PITA everywhere, but people see it less because either the distro took care of it, or the program they are running bundled its own
<frodef> I used openssl from LW in my last job.
<frodef> beach: how does a GC fit into SICL? I imagined SICL was more high-level?
<p_l> frodef: doesn't LW ship its own SSL interface?
Kundry_Wag has joined #lisp
<frodef> p_l: yes, but I think that was basically an interface to openssl. I did have to fiddle a bit with some .so-files I seem to remember.
<jackdaniel> dim: it would be useful, if you'd require also reporting openssl version in your ticket template
<shrdlu68> I don't even know why I wrote cl-tls. It was fun, though :-)
<jackdaniel> problem with crypto_num_locks may happen on openssl < 0.9.4
<frodef> p_l: ..or I might misremember, perhaps it was something a bit further up in the webservice-stack.
<jackdaniel> (it is cl+ssl bug that it does not detect that)
<dim> shrdlu68: can I use it to connect securely to PostgreSQL and MySQL?
<dim> p_l: the reality is that 1. I don't know 2. I don't want to know
<_death> imagine choosing the path of cl-tls.. there will be problems, and to fix them would mean to fix cl-tls, which could benefit CL pretty good.. DLL hell is not unique to CL and its solutions require end-user participation
<p_l> dim: Yeah, I know, just saying that while users are *usually* sheltered from it OpenSSL is a PITA that happens to many
<p_l> dim: and the end result is that people tend to bundle openssl where necessary
<dim> so maybe the problem is that in CL the users aren't sheltered from it at all?
Lycurgus has joined #lisp
<frodef> beach: seems to be a rather empty backend for x86/64 there?
<shrdlu68> dim: It's in alpha because of lack of testers/users.
<p_l> dim: low rate of delivering end-user applications might be part of the problem
<dim> I would like to be able to bundle OpenSSL statically in SBCL and create a pgloader image with that
<p_l> dim: I think at least Bazel can do that
<p_l> But it's not something one jumps on quickluy
Kundry_Wag has quit [Ping timeout: 240 seconds]
<dim> yeah, well, I need to make time to learn about SBCL compiles now
<p_l> there are ready-made components, iirc, to use Bazel in a way that creates statically compiled SBCL with several libs you want
<dim> as soon as you want to ship a /usr/bin tool, you stumble on FFI and run-time LD hell pretty quickly, really
<Shinmera> Making a bearssl bindings lib is still on my todo, which would help this situation a lot
fikka has quit [Ping timeout: 244 seconds]
<p_l> dim: for macOS builds, it might make sense to bundle OpenSSL
<shrdlu68> dim: As far as I can tell, there are only two minor issues: 1. Implement OCSP stapling. 2. Use hashing to compare the CA cert sent with ones in local cert chain.
gpiero has joined #lisp
<dim> another way to do it for me would be to use ABCL and provide pgloader.jar, so that the problem is on the JVM, and I think they use pure Java bits there ; I would use JDBC rather than the current drivers I am using, too
<shrdlu68> Shinmera: Yeah, a one-man TLS hack doesn't sound trustworthy.
<_death> shrdlu68: that's OK, none of them is trustworthy
<_death> though bearssl is pretty cool :)
<_death> (it's also a one-man hack..)
<sixbitslacker> sorry about the "shop" trigger
cl-arthur has joined #lisp
<sixbitslacker> for some reason setting the trigger variable to be mode-local doesn't seem tow ork
rumbler31 has joined #lisp
igemnace has quit [Quit: WeeChat 2.2]
<beach> frodef: SICL is meant to be a complete Common Lisp implementation.
orivej has quit [Ping timeout: 272 seconds]
<beach> frodef: I am still working on the bootstrapping part. I am still working inside SBCL.
<shka_> eh, if only it could be done sooner
m00natic has joined #lisp
<Xach> dim: i had a weird hack for delivering shared libraries
<Xach> i'm still not sure if it is practical, though
<Xach> and very likely not for your situation
<beach> shka_: Well, people keep distracting me with unrelated things. Like 2-3 trees for instance. :)
rumbler31 has quit [Ping timeout: 272 seconds]
<Shinmera> if you bundle shared libraries it's usually not a big problem. (the deploy system can help with that)
<shka_> great, i always suspected that somehow it is all my fault :P
<beach> shka_: Notice the `:)'
<jackdaniel> beach: it's not that bad, imagine if someone had distracted you with 5 or 6 trees!
<Shinmera> but always wanting to use system ones can be a hassle because of how many different places there are to look
<beach> shka_: I must be easily distracted, I guess.
<beach> jackdaniel: Yes, much worse.
<Xach> I lumped them into the save-lisp-and-died binary, then pulled them out at runtime if needed.
<shka_> 5-or-6-tree
<shka_> eh, i don't even think that it is possible
<p_l> Xach: sounds a bit like AppImage stuff
<Xach> It bloats the binary and requires write access on the target, but in some cases it could be workable.
<p_l> AppImage is essentially a squashfs image wrapped in a program that mounts it on the end-users filesystem and runs
<v0|d> beach: how many hours do you work per day to keep up?
orivej has joined #lisp
<beach> v0|d: I have no idea, frankly. It depends a lot on what counts as work.
<beach> v0|d: As a researcher, I am basically always working, because there are always some ideas in my head.
xrash has quit [Ping timeout: 245 seconds]
<beach> frodef: The SICL specification is extensive, though not complete, and it contains some obsolete stuff. And there is the Cleavir documentation for the compiler. There are also quite a few ELS and ILC papers that concern SICL and Cleavir.
<beach> frodef: Clasp uses the fast generic dispatch that I hinted about.
<v0|d> beach: thnx.
<beach> frodef: Concrete Syntax Tree allows for source tracking, and it is in a separate repository. We also extracted the potentially-source-tracking reader as Eclector to a separate repository, now maintained (and used) by scymtym.
scymtym has joined #lisp
<beach> v0|d: I don't believe in hard work (I don't think it's productive) so I try not to put too much pressure on myself. The past few days with progress on bootstrapping have been an exception to my rule.
Kundry_Wag has joined #lisp
<v0|d> beach: I can tell ppl I'm *always working*. Nobody believes that :(
<v0|d> thought you may have a way around:).
<beach> Not really.
<v0|d> see.
fikka has joined #lisp
<frodef> beach: I just started on an x86/64 assembler, if that's of interest.
Kundry_Wag has quit [Ping timeout: 264 seconds]
<beach> frodef: Depends.
<beach> frodef: I started one too. Mine is the assembler with a difference. It doesn't have a surface syntax specified. It takes input in the form of a list of "instructions" which are standard objects that describe what should be done.
<beach> frodef: I think this surface-syntax business is a result of Unix brainwashing.
<frodef> beach: sounds like my (way over-engineered) assembler for movitz :)
<beach> Oh!
<beach> I find parsing syntax tedious and generic dispatch great.
<beach> The assembler basically works, but I need descriptions of many more instructions if it is going to be generally useful.
dddddd has joined #lisp
<frodef> beach: sure, but reading and writing standard-objects isn't all that nice.
<beach> I don't have to.
<frodef> beach: you just get a student to do it? ;)
<beach> frodef: Time flies. I am close to retirement and do not take on students.
<beach> Plus the Bologna system doesn't quite make it possible to use students as free labor.
<beach> so I haven't taken on any PhD students for more than a decade.
<frodef> what's the baloney system?
<beach> The higher-education system that we all have in EU and many more countries.
<beach> I could pay someone a modest monthly contribution to do it though.
<frodef> sounds fun.
<frodef> beach: anyhow, my experience with movitz was that the standard-objects were just in the way, sexp syntax was more convenient and sometimes a requirement anyway.
<beach> For the assembler, or in general?
<frodef> both, I suppose. Also sexps are much more efficient.
<beach> Not anymore. :)
<beach> Anyway, it seems we are going different directions, so forget about my invitation to SICL and Cleavir. If you are right, it means I will hit the wall sometime in the future.
<frodef> x86 assembling is surprisingly complicated, btw. du to varying length instructions.
<beach> I know. :)
<frodef> beach: if I'm right about what?
<beach> about standard objects being in the way.
<frodef> I just suspect it
<frodef> 's lots of work for little benefit.
<beach> so how do you like this one: (defclass symbol (...) ((symbol-name ...) (symbol-package ...)) (:metaclass built-in-class))?
<beach> rather (... :reader symbol-name) (... :reader symbol-package)
<beach> frodef: Remind me how you bootstrap Movitz.
Kundry_Wag has joined #lisp
<frodef> beach: that defclass seems cool and clean
<beach> That's the point of SICL. Clean code, using standard mechanisms.
<frodef> beach: bootstrap in what sense? It's basicall all regular CL code that generates the bytes that make up a bootable x86 image.
<beach> frodef: So how do you handle CLOS?
<beach> frodef: Like PCL does, i.e. you bolt it onto a non-CLOS Common Lisp implementation?
Kundry_Wag has quit [Ping timeout: 250 seconds]
pierpal has joined #lisp
<beach> If so, does that mean that large parts of the system are written in some subset of Common Lisp like most existing Common Lisp implementations do?
<frodef> beach: kind of I guess.. it's just another part of CL, implemented partly with "simpler" parts of CL and partly with.. well, inline assembly, I guess.
<beach> I see.
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
<beach> I decided that for SICL, it was going to be too hard to maintain if I had to use a subset for some parts.
<frodef> beach: what's the alternative?
<beach> Use the full language to write everything.
<beach> Then the expression of every features looks as "natural" as possible.
<beach> Like the definition of T and SYMBOL above.
<frodef> that doesn't quite suffice.. I assume you don't have e.g. (defun sort (&rest args) (apply 'sort args)) an dso on.._
<frodef> ?
<beach> Sure. I need to implement sort like everybody else.
<frodef> Right.. and how do you implement CAR in a "natural" way?
<beach> (defun car (x) (cond ((consp x) (cleavir-primop:car x)) ((null x) x) (t (error...))))
<beach> where cleavir-primop:car is handled as a special operator by the compiler.
<frodef> beach: what do you have against etypecase? :)
mingus has quit [Ping timeout: 250 seconds]
<LdBeth> There was a C compiler target Super Nintendo implemented in Kyoto Common Lisp
<beach> frodef: Nothing. I guess I could use that.
<Shinmera> frodef: etypecase doesn't allow you to specify the error generated
<beach> Good point.
<beach> frodef: One goal with SICL is to have excellent error messages and excellent debugging support.
<beach> Anyway, I need a break. I'll be back later.
<frodef> beach: those are excellent goals :)
<beach> Thanks.
Kundry_Wag has joined #lisp
<frodef> seriously, unix's lack of dynamic error handling and debugging is what makes all software so shitty, I'm convinced.
<frodef> (for suitable definitions of unix..)
esrse has quit [Ping timeout: 246 seconds]
Kundry_Wag has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 252 seconds]
Kundry_Wag has joined #lisp
<shka_> dynamic error handling is a must
<shka_> absolutely
shrdlu68 has quit [Ping timeout: 252 seconds]
<jackdaniel> is it?
<minion> jackdaniel, memo from phoe: https://www.ifosslr.org/ojs/ifosslr/article/view/75
<minion> jackdaniel, memo from phoe: to akurat jest prawnik
<jackdaniel> hm?
lavaflow has joined #lisp
<jackdaniel> oh, LGPL analysis for Lisp world
<jackdaniel> thanks
Kundry_Wag has quit [Ping timeout: 244 seconds]
<jackdaniel> borodust: that link is actual attorney analysis about LGPL for Lisp (luckily conclusions are the same as mine) ↑
lavaflow has quit [Ping timeout: 245 seconds]
<borodust> jackdaniel: yup, phoe linked me it
<borodust> jackdaniel: it's not as clear though
<borodust> i'm gonna read full text, but conclusion still mentions LGPL doesn't cover some Lisp aspects (macros are specifically mentioned)
<borodust> i like "largely unnecessary" part though :)
<shifty> easy way to write "2 to the power of 6" in code? (evaluates at compile to 64)
<jackdaniel> shifty: #.(expt 2 6)
<no-defun-allowed> ^^
<LdBeth> I don’t see why macro make big deals. C has preprocessor and m4
<jackdaniel> (so it is even better, it evaluates *before* compile time ;)
<no-defun-allowed> Yay for read macros
<no-defun-allowed> Or, write in 64. It's self evaluating so it was evaluated before it even got to lisp.
<jackdaniel> LdBeth: because software licenses are often about source code; macro is a way of transferring one code into another
<shka_> shifty: use constant
<shka_> if it is magic number
<jackdaniel> in this sense it is a compiler. borodust and in this light macros are results of calling library functions
<jackdaniel> er, macro expansions are results of calling library functions
<jackdaniel> at compilation time
<jackdaniel> and even GPL doesn't cover resulting work of the application (i.e gcc doesn't relicense your binaries you build with it)
<jdz> But what about bundling GCC with an application?
<LdBeth> It does not mention generated macros
<jdz> In a sense a macro is a compiler, that is in the same image as the application.
bmansurov|ooo is now known as bmansurov
<shifty> shka_: it's magic, but my example is not contrived: it's a power of two.
<no-defun-allowed> The greatest License: https://coinsh.red/csl/
<jackdaniel> jdz: if you bundle gcc with an application (and they are combined work), then indeed what you have is a derivative
<jackdaniel> and whole work has a combined work license
<jackdaniel> but this is offtopic here, sorry :p
<shka_> shifty: yeah, but always the same exponent?
<jackdaniel> (I mean - I'm sorry for dragging this topic forward)
<jdz> I just steer clear of GPL.
<shifty> shka_: magic numbers are (0 2 4 8 16 ...)
<jdz> No 1?
<shifty> anyway, #.(expt 2 6) really does solve my needs and wants
<no-defun-allowed> Yeah whered the 1 go?
<_death> and why 0
<no-defun-allowed> Maybe it was a typo
<shifty> jdz: no, I don't like the number 1. It's too... single. (OK, my bad.)
<jdz> (expt 2 0) => 1
gpiero has quit [Ping timeout: 272 seconds]
SenasOzys has quit [Ping timeout: 240 seconds]
gpiero has joined #lisp
pierpal has quit [Ping timeout: 244 seconds]
scymtym has quit [Ping timeout: 252 seconds]
lavaflow has joined #lisp
Essadon has joined #lisp
schweers has joined #lisp
orivej has joined #lisp
<TMA> no-defun-allowed: I am a bit baffled by the "definition e." that appears to
<no-defun-allowed> It could be a sung program.
mindCrime_ has joined #lisp
<TMA> no-defun-allowed: [be missing its end.]
<no-defun-allowed> Yeah...
mindCrime has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
Lycurgus has quit [Quit: Exeunt]
Kundry_Wag has joined #lisp
rumbler31 has quit [Ping timeout: 250 seconds]
atgreen has quit [Ping timeout: 246 seconds]
Kundry_Wag has quit [Ping timeout: 240 seconds]
sauvin is now known as Sauvin
Bike has joined #lisp
jkordani has joined #lisp
jkordani_ has joined #lisp
w7b has joined #lisp
jkordani has quit [Ping timeout: 272 seconds]
dddddd has quit [Ping timeout: 272 seconds]
mindCrime_ has quit [Remote host closed the connection]
mindCrime_ has joined #lisp
igemnace has joined #lisp
fikka has quit [Quit: Lost terminal]
shrdlu68 has joined #lisp
Kundry_Wag has joined #lisp
mindCrime_ has quit [Ping timeout: 252 seconds]
atgreen has joined #lisp
Kundry_Wag has quit [Ping timeout: 244 seconds]
APic has quit [Quit: Lost terminal]
LiamH has joined #lisp
milanj has joined #lisp
scymtym has joined #lisp
warweasle has joined #lisp
kooga has joined #lisp
Kundry_Wag has joined #lisp
Sauvin has quit [Ping timeout: 240 seconds]
Sauvin has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
Kundry_Wag has joined #lisp
Sauvin has quit [Ping timeout: 245 seconds]
<shka_> shifty: ok, that's fine
orivej has quit [Ping timeout: 272 seconds]
<shka_> define-constant is really cool sometimes, though
APic has joined #lisp
<shka_> everything depends on that constant
<shka_> types and stuff
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
<jackdaniel> what is cool about that particular constant?
<shka_> jackdaniel: 5 corresponds to 32 bits, if you want to switch to 64 bits, you can change it to 6, recompile and voila, it works
<shka_> which is cool imho
SaganMan has quit [Ping timeout: 246 seconds]
Sauvin has joined #lisp
<jackdaniel> maybe word cool mislead me into overthinking and trying to find any non-trivial usage of this operator
<jackdaniel> (this is a property of parameters too)
azahi has joined #lisp
SaganMan has joined #lisp
Inline has joined #lisp
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
SenasOzys has joined #lisp
SenasOzys has quit [Remote host closed the connection]
SenasOzys has joined #lisp
NB0X-Matt-CA has quit [Excess Flood]
mindCrime has joined #lisp
orivej has joined #lisp
NB0X-Matt-CA has joined #lisp
NB0X-Matt-CA has joined #lisp
trittweiler has quit [Ping timeout: 240 seconds]
dale_ has joined #lisp
dale_ is now known as dale
<sixbitslacker> hmm.
NB0X-Matt-CA has quit [Excess Flood]
rumbler31 has joined #lisp
NB0X-Matt-CA has joined #lisp
<shka_> jackdaniel: nah, it is pretty trivial, but handy
rumbler31 has quit [Ping timeout: 252 seconds]
Kundry_Wag has joined #lisp
housel has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
varjag has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 246 seconds]
pierpal has joined #lisp
pierpal has quit [Client Quit]
pierpal has joined #lisp
Kundry_Wag has joined #lisp
shrdlu68 has quit [Ping timeout: 240 seconds]
w7b has left #lisp ["Leaving"]
Kundry_Wag has quit [Ping timeout: 245 seconds]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 252 seconds]
Kundry_Wag has joined #lisp
johnjay has joined #lisp
Kundry_Wag has quit [Ping timeout: 252 seconds]
rann has left #lisp [#lisp]
steiner has quit [Remote host closed the connection]
pierpal has quit [Read error: Connection reset by peer]
meepdeew has joined #lisp
meepdeew has quit [Remote host closed the connection]
cage_ has joined #lisp
steiner has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
Kundry_Wag has joined #lisp
bradcomp has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
shifty has quit [Ping timeout: 245 seconds]
varjag has joined #lisp
gpiero has quit [Remote host closed the connection]
Pixel_Outlaw has joined #lisp
Kundry_Wag has joined #lisp
papachan has joined #lisp
frgo has quit [Read error: Connection reset by peer]
frgo_ has joined #lisp
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
<beach> What am I doing wrong? (typep '(setf car) '(cons (eql setf) symbol)) => NIL on SBCL.
actuallybatman has quit [Ping timeout: 252 seconds]
Kundry_Wag has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 246 seconds]
FreeBirdLjj has joined #lisp
<Bike> beach: it's not a dotted list
meepdeew has joined #lisp
<phoe> (cons (eql setf) (cons symbol null))
<beach> Bike: Oh, right you are. Thanks.
<meepdeew> Does anyone know if (and if so, where) one can find electronic copies of either of the following books recommended in the preface of PAIP: (1) A Programmer's Guide to Common Lisp by Deborah G . Tatar, or (2) Common Lisp by Wade L. Hennessey.
<beach> Too late in the day.
schweers has quit [Ping timeout: 240 seconds]
<phoe> meepdeew: they both concern CLtL1 as far as I understand, and no contemporary implementations I know are CLtL1 implementations
<phoe> unless you have a very specialized need, I bet you'd be more interested in books about contemporary Common Lisp.
rumbler31 has joined #lisp
<meepdeew> Ah, well then that's even better than an electronic copy, I suppose. The cover art of a person lounging on the beach on Hennessey's book had really drawn me in.
<meepdeew> Thanks phoe. Before I proceed any further then, do you know if Common LISPcraft by Robert Wilensky or LISP (3rd edition) by Patrick H. Winston and Bertold Horn are also CLtL1 specific as well?
FreeBirdLjj has quit [Ping timeout: 252 seconds]
groovy2shoes has joined #lisp
<phoe> woo boy, 1979 and 1986
FreeBirdLjj has joined #lisp
<phoe> where the ANSI Common Lisp standard was finished in 1994
asarch has joined #lisp
<phoe> minion: tell meepdeew about pcl
<minion> meepdeew: please look at pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<phoe> minion: tell meepdeew about gentle
<minion> meepdeew: please see gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/
<phoe> These are the two I'd suggest, with Common Lisp Recipes coming afterwards.
<phoe> PCL is good if you had any programming before, Gentle is good if you didn't.
rumbler31 has quit [Ping timeout: 272 seconds]
<phoe> that is, if you're up for learning contemporary Common Lisp, if that is your goal.
<phoe> all in all, Portacle + PCL/Gentle is the beginner's toolkit that I'd suggest for the start.
frgo_ has quit [Remote host closed the connection]
<meepdeew> That's the goal. I've read Gentle, and much of PCL. Was looking into starting PAIP as my next but saw Gentle at the top of Norvig's recommended intro books in the preface so I figured his list was worth checking out (thus the questions). Thanks for the input, I'll see which I prefer between CLRecipes and PAIP for my next. /end my noobing up of the #lisp channel
FreeBirdLjj has quit [Remote host closed the connection]
mindCrime_ has joined #lisp
mindCrime has quit [Read error: Connection reset by peer]
rtypo has joined #lisp
<dlowe> meepdeew: you'd be welcome in #clschool :)
pjb has joined #lisp
steiner has quit [Remote host closed the connection]
stacksmith has quit [Remote host closed the connection]
frgo has joined #lisp
steiner has joined #lisp
frgo has quit [Ping timeout: 250 seconds]
nowhere_man has joined #lisp
orivej has joined #lisp
aydio has joined #lisp
dented42 has joined #lisp
<aeth> I'd go with Recipies. It was published too late for me, but reading through the book, it generally agrees with the consensus of this channel in most places. The main exception seems to be cl-fad instead of uiop iirc, but that's literally the book author's library so it's no surprise he prefers it.
xrash has joined #lisp
frgo has joined #lisp
Kundry_Wag has joined #lisp
orivej has quit [Ping timeout: 250 seconds]
Kundry_Wag has quit [Remote host closed the connection]
dueyfinster has joined #lisp
Kundry_Wag has joined #lisp
Lycurgus has joined #lisp
pierpal has joined #lisp
Kundry_Wag has quit [Ping timeout: 252 seconds]
m00natic has quit [Remote host closed the connection]
scymtym has quit [Ping timeout: 276 seconds]
terpri has joined #lisp
orivej has joined #lisp
SenasOzys has quit [Ping timeout: 240 seconds]
Kundry_Wag has joined #lisp
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Kundry_Wag has quit [Ping timeout: 252 seconds]
nowhere_man has quit [Ping timeout: 252 seconds]
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
orivej has quit [Ping timeout: 252 seconds]
dueyfinster has joined #lisp
scymtym has joined #lisp
uint has quit [Ping timeout: 264 seconds]
atgreen has quit [Ping timeout: 246 seconds]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
uint has joined #lisp
rumbler31 has joined #lisp
uint has quit [Ping timeout: 250 seconds]
orivej has joined #lisp
SenasOzys has joined #lisp
rumbler31 has quit [Ping timeout: 244 seconds]
uint has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
vlatkoB has quit [Remote host closed the connection]
uint has quit [Ping timeout: 240 seconds]
<flip214> beach: hmmm, I'm used to seeing address 0 at the bottom of the page. Never mind, though.
orivej has quit [Ping timeout: 264 seconds]
[X-Scale] has joined #lisp
uint has joined #lisp
X-Scale has quit [Ping timeout: 252 seconds]
[X-Scale] is now known as X-Scale
dented42 has joined #lisp
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kooga has quit [Quit: :]
Sauvin has quit [Ping timeout: 252 seconds]
aydio has quit [Quit: WeeChat 2.2]
sauvin_ has joined #lisp
sauvin_ is now known as Bocaneri
pierpal has quit [Ping timeout: 246 seconds]
pierpal has joined #lisp
Bocaneri has quit [Ping timeout: 252 seconds]
pierpal has quit [Ping timeout: 264 seconds]
pierpal has joined #lisp
dddddd has joined #lisp
Sauvin has joined #lisp
Sauvin has quit [Max SendQ exceeded]
Sauvin has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
fredsir has joined #lisp
pierpal has joined #lisp
Sauvin has quit [Ping timeout: 245 seconds]
dented42 has joined #lisp
pierpal has quit [Ping timeout: 272 seconds]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
papachan has quit [Ping timeout: 252 seconds]
uint has quit [Ping timeout: 240 seconds]
pierpal has joined #lisp
uint has joined #lisp
cage_ has quit [Quit: Leaving]
orivej has joined #lisp
longshi has joined #lisp
atgreen has joined #lisp
rpg has joined #lisp
rumbler31 has joined #lisp
dented42 has joined #lisp
rumbler31 has quit [Ping timeout: 272 seconds]
Sauvin has joined #lisp
longshi has quit [Quit: WeeChat 2.2]
Lycurgus has quit [Quit: Exeunt]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rpg has joined #lisp
Sauvin has quit [Ping timeout: 272 seconds]
atgreen_ has joined #lisp
Sauvin has joined #lisp
atgreen has quit [Ping timeout: 272 seconds]
rumbler31 has joined #lisp
Sauvin has quit [Ping timeout: 240 seconds]
Jesin has quit [Quit: Leaving]
dented42 has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Remote host closed the connection]
dented42 has joined #lisp
dolohov has quit [Quit: WeeChat 2.2]
Jesin has joined #lisp
azimut has joined #lisp
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rpg has joined #lisp
mindCrime_ has quit [Ping timeout: 264 seconds]
Roy_Fokker has joined #lisp
Bike has quit [Ping timeout: 252 seconds]
atgreen_ has quit [Ping timeout: 240 seconds]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
Sauvin has joined #lisp
nckx has quit [Ping timeout: 240 seconds]
warweasle has quit [Quit: exit]
acolarh has quit [Ping timeout: 272 seconds]
nckx has joined #lisp
Kundry_Wag has joined #lisp
varjag has quit [Ping timeout: 240 seconds]
lavaflow has quit [Ping timeout: 246 seconds]
<makomo> AeroNotix: hey, i was talking a look at your z80 repo and found a bug: your UPDATEF macro has 2 problems: (1) variable capture, (2) multiple evaluation
<makomo> idk whether it was just a toy macro as a test, but wanted to let you know
LiamH has quit [Quit: Leaving.]
acolarh has joined #lisp
Bike has joined #lisp
rpg has joined #lisp
rpg has quit [Client Quit]
rpg has joined #lisp
mange has joined #lisp
rumbler31 has joined #lisp
frodef has quit [Ping timeout: 264 seconds]
anewuser has joined #lisp
robotoad has quit [Quit: robotoad]
rumbler31 has quit [Ping timeout: 252 seconds]
pjb has quit [Ping timeout: 252 seconds]
nckx has quit [Ping timeout: 240 seconds]
nckx has joined #lisp
atgreen_ has joined #lisp
asarch has quit [Quit: Leaving]
Essadon has quit [Quit: Qutting]
robotoad has joined #lisp
Kaisyu has joined #lisp
<AeroNotix> makomo: for (2) I know, it isn't used where that can be a problem.
<AeroNotix> I'll look at (1)
daniel-s has joined #lisp
<makomo> AeroNotix: in your case, both are very easy to solve. your place-based macro falls in the category of "having the place as the first argument and evaluating *all* the other arguments (specifically, in left-to-right order)"
<makomo> AeroNotix: so you can use DEFINE-MODIFY-MACRO
<AeroNotix> makomo: uh, wait, I didn't even use this macro. I think I've not even ran it once
<AeroNotix> yeah it's obviously flawed.
<AeroNotix> There's no way it can work any way
<AeroNotix> for what I wanted to use it for
<AeroNotix> I mean
<AeroNotix> Thanks for mentioning it but yeah, it's not used nor was it ever. I'm not even sure if I ran it even once to try it. I think I got half way through writing updatef and realised the original place I wanted to use it could be implemented in a different way
<makomo> yeah, thought it might be something like that :-)
<makomo> oh, just to clarify, (2) is a problem because of the place's *subforms*. most of the time the final "getter function" used in the get expression is free of side-effects
<makomo> so, for example, (nth (incf i) list)
<AeroNotix> yeah I get that. I usually don't both with dealing with multiple evaluation in macros until a last step. I find the noise of macros quickly builds up so it's easier to write them in the "dumb" way and then fill in with the typical macro safeguards.
<makomo> mhm
<AeroNotix> for these place macros, though, place-utils fills in most of the needs I have.
Kundry_Wag has quit [Remote host closed the connection]
<makomo> yeah, i remember us discussing that :-D
<makomo> true, it's got a lot of great stuff
<AeroNotix> ahhh you told me about it yeah! :)
<makomo> lots of neat implementation tricks as well
<AeroNotix> I need to look into bulkf a bit more. Not sure i fully grok how it works
pjb has joined #lisp
<makomo> AeroNotix: same, i haven't yet read it properly. cachef seemed the most complex to me
<AeroNotix> cachef seems quite scary to use. I don't like somewhat implicit caching behaviour
dale has quit [Quit: dale]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
bradcomp has quit [Ping timeout: 245 seconds]
Kundry_Wag has joined #lisp