jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.5.4, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
Bourne has quit [Ping timeout: 276 seconds]
akoana has joined #lisp
gigetoo has quit [Ping timeout: 240 seconds]
xkapastel has joined #lisp
gigetoo has joined #lisp
buffergn0me has joined #lisp
ebzzry has joined #lisp
varjag has quit [Ping timeout: 252 seconds]
cl-arthur has quit [Quit: Lost terminal]
fanta1 has quit [Quit: fanta1]
cods has quit [Ping timeout: 240 seconds]
raghavgururajan has joined #lisp
notzmv has joined #lisp
random-nick has quit [Ping timeout: 240 seconds]
gigetoo has quit [Ping timeout: 268 seconds]
ahungry has joined #lisp
epony has joined #lisp
shifty has joined #lisp
meepdeew has quit [Remote host closed the connection]
EvW has quit [Ping timeout: 276 seconds]
gigetoo has joined #lisp
icov0x29a has joined #lisp
oni-on-ion has quit [Ping timeout: 245 seconds]
matijja has quit [Ping timeout: 268 seconds]
buffergn0me has quit [Ping timeout: 245 seconds]
gigetoo has quit [Ping timeout: 240 seconds]
Oladon has joined #lisp
buffergn0me has joined #lisp
gigetoo has joined #lisp
bitmapper has quit [Ping timeout: 268 seconds]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
buffergn0me has quit [Remote host closed the connection]
buffergn0me has joined #lisp
libertyprime has quit [Ping timeout: 240 seconds]
clothespin has quit [Ping timeout: 250 seconds]
akoana has left #lisp ["Leaving"]
clothespin has joined #lisp
clothespin has quit [Ping timeout: 240 seconds]
semz has quit [Ping timeout: 252 seconds]
gigetoo has quit [Ping timeout: 268 seconds]
gigetoo has joined #lisp
icov0x29a has quit [Remote host closed the connection]
buffergn0me has quit [Ping timeout: 245 seconds]
sz0 has joined #lisp
clothespin has joined #lisp
libertyprime has joined #lisp
semz has joined #lisp
semz has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
clothespin_ has joined #lisp
clothespin has quit [Ping timeout: 240 seconds]
shifty has quit [Ping timeout: 240 seconds]
lxbarbosa has joined #lisp
gigetoo has quit [Ping timeout: 268 seconds]
gigetoo has joined #lisp
raghavgururajan has quit [Read error: Connection reset by peer]
Oladon has quit [Quit: Leaving.]
notzmv has quit [Remote host closed the connection]
torbo has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
Arcaelyx has joined #lisp
orivej has quit [Ping timeout: 268 seconds]
dale has quit [Quit: My computer has gone to sleep]
dented42 has joined #lisp
tourjin has joined #lisp
ebzzry has joined #lisp
oni-on-ion has joined #lisp
meepdeew has joined #lisp
meepdeew has quit [Remote host closed the connection]
housel has quit [Ping timeout: 276 seconds]
tourjin has quit [Ping timeout: 268 seconds]
gigetoo has quit [Ping timeout: 240 seconds]
gigetoo has joined #lisp
meepdeew has joined #lisp
dddddd has quit [Remote host closed the connection]
jfrancis has quit [Ping timeout: 268 seconds]
gravicappa has joined #lisp
mabox has joined #lisp
<mabox> MIT SANDWITCH STALLMAN DEFENCE AT Cristosan.com
<no-defun-allowed> Fucking again?
dale has joined #lisp
torbo has quit [Remote host closed the connection]
notzmv has joined #lisp
poet has joined #lisp
mabox has quit [Ping timeout: 265 seconds]
vaporatorius has quit [Read error: Connection reset by peer]
_whitelogger has joined #lisp
patrixl has quit [Read error: Connection reset by peer]
patrixl has joined #lisp
buffergn0me has joined #lisp
manualcrank has quit [Quit: WeeChat 1.9.1]
Josh_2 has joined #lisp
notzmv has quit [Remote host closed the connection]
_paul0 is now known as paul0
Bike has quit [Quit: Lost terminal]
Arcaelyx has quit [Quit: Arcaelyx]
aeth has quit [Read error: Connection reset by peer]
davepdotorg has joined #lisp
aeth has joined #lisp
davepdotorg has quit [Ping timeout: 240 seconds]
poet has quit [Ping timeout: 245 seconds]
poet has joined #lisp
wxie has joined #lisp
Josh_2 has quit [Remote host closed the connection]
gigetoo has quit [Ping timeout: 265 seconds]
Nomenclatura has joined #lisp
gigetoo has joined #lisp
atgreen_ has quit [Ping timeout: 240 seconds]
Nomenclatura has quit [Quit: q]
buffergn0me has quit [Ping timeout: 250 seconds]
atgreen_ has joined #lisp
mulk has quit [Ping timeout: 268 seconds]
fanta1 has joined #lisp
gravicappa has quit [Ping timeout: 276 seconds]
dale has quit [Quit: My computer has gone to sleep]
notzmv has joined #lisp
cods has joined #lisp
t3rtius has joined #lisp
ebrasca has joined #lisp
wxie has quit [Ping timeout: 245 seconds]
gigetoo has quit [Ping timeout: 268 seconds]
gigetoo has joined #lisp
t3rtius has quit [Client Quit]
jackdaniel has joined #lisp
t3rtius has joined #lisp
Posterdati has quit [Ping timeout: 240 seconds]
t3rtius has quit [Quit: leaving]
t3rtius has joined #lisp
t3rtius has quit [Client Quit]
t3rtius has joined #lisp
ahungry has quit [Remote host closed the connection]
chip2n has quit [Ping timeout: 240 seconds]
t3rtius has quit [Quit: leaving]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
wxie has joined #lisp
Kevslinger has quit [Quit: Connection closed for inactivity]
wxie has quit [Ping timeout: 240 seconds]
ebzzry has quit [Read error: Connection reset by peer]
Bourne has joined #lisp
atgreen_ has quit [Ping timeout: 240 seconds]
gigetoo has quit [Ping timeout: 240 seconds]
_whitelogger has joined #lisp
_whitelogger has joined #lisp
gigetoo has joined #lisp
khisanth_ has joined #lisp
jackdaniel2 has quit [Ping timeout: 265 seconds]
jackdaniel2 has joined #lisp
rumbler31 has joined #lisp
ggole has joined #lisp
gigetoo has quit [Ping timeout: 268 seconds]
rippa has joined #lisp
rumbler31 has quit [Ping timeout: 252 seconds]
vlatkoB has joined #lisp
space_otter has quit [Ping timeout: 268 seconds]
Posterdati has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
gigetoo has joined #lisp
poet has quit [Ping timeout: 245 seconds]
TLSer has joined #lisp
<TLSer> hey there, currently reading the little schemer and wanna try out my implementations on guile, however I always get "ERROR: Wrong type to apply (a b c)".
<aap> cdr(lat) this can't be right
<TLSer> no sexpr, right?
<aap> also i think this channel isn't about scheme
<aap> you mean (cdr lat)
milanj has joined #lisp
<TLSer> isn't scheme just a dialect, and therefore a subset of lisp, and therefore part of lisp?
<no-defun-allowed> The topic says Common Lisp, and Scheme is not Common Lisp.
<no-defun-allowed> But I don't like telling people to go elsewhere without any consideration, and aap is right in saying that cdr(lat) is probably a typo, which should be (cdr lat).
<aap> the channel name is a bit confusing really
<aap> common lisp isn't the only lisp
<TLSer> ok, thx for the help anyway
gxt has joined #lisp
<beach> aap: There is no consensus about what it means for a language to be "a Lisp". We avoid the ambiguity here by considering only Common Lisp.
<aap> yeah i understand that but i still think the channel name is confusing
<pjb> TLSer: for lisp in general, you want ##lisp, for scheme in particular you want #scheme, and for guile specifically, #guile.
<pjb> TLSer: note: once you've tested for null?, you only know that lat is not (), so (car lat) can fail, because you haven't tested for (cons? lat).
wxie has joined #lisp
shka_ has joined #lisp
jackdaniel2 has quit [Read error: Connection reset by peer]
jackdaniel3 has joined #lisp
cosimone has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
vaporatorius has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
<flip214> when writing a macro, is there some library that allows to attach source forms to parts of the resulting code so that errors during runtime can display the correct part of the input?
vaporatorius has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
florest has joined #lisp
jmercouris has joined #lisp
ArthurStrong has joined #lisp
gigetoo has quit [Ping timeout: 268 seconds]
<ArthurStrong> Hi all. Don't you think that PS/PDF versions of Guy Steele book CTLT is somewhat pale? I can't read it :( I tried to recomplie it from source code, but it requires too old Latex :( What can I do?
<pjb> flip214: There's &whole and you can use it yourself in your error messages. You don't need a library for that!!!
<pjb> ArthurStrong: install an old linux with an old latex in a VM.
<pjb> This is the easiest.
<ArthurStrong> pjb: oh, too hard-core
gigetoo has joined #lisp
<pjb> flip214: but sometimes you want to give better human readable context, and the error can be detected outside of the macro, so you can do something like this: https://pastebin.com/ibMtzUsN
wxie has quit [Ping timeout: 268 seconds]
beach has quit [Remote host closed the connection]
raghavgururajan has joined #lisp
<jmercouris> ArthurStrong: what about changing the contrast of your display?
_whitelogger has joined #lisp
chip2n has joined #lisp
random-nick has joined #lisp
stepnem_ is now known as stepnem
<ArthurStrong> jmercouris: maybe I'm paranoid, but it's like letters are too thin
<ArthurStrong> jmercouris: TeX's quirk maybe
jmercouris has quit [Ping timeout: 265 seconds]
cosimone has quit [Remote host closed the connection]
beach has joined #lisp
<ArthurStrong> Hi all. What do you use instead of assert()?
<jackdaniel> (assert (= 1 2))
<ArthurStrong> jackdaniel: I see, thanks. Is this standard or in external module?
<no-defun-allowed> clhs assert
gxt has quit [Ping timeout: 260 seconds]
<ArthurStrong> thanks!
<jackdaniel> it is a standard macro
<jackdaniel> clhs assert
<jackdaniel> oh
ravenousmoose has joined #lisp
<jackdaniel> if you want a testing framework otoh, then you have too many options. if you are a minimalist take 1am, otherwise I'd advise you to choose between fiveam and fiasco
<Shinmera> My very biased recommendation would be parachute.
<pjb> I'm partial to com.informatimago.common-lisp.cesarum.simple-test.
<Shinmera> But there's a new one pretty much every month, so pyp
gxt has joined #lisp
jmercouris has joined #lisp
duuqnd has joined #lisp
TLSer has quit [Ping timeout: 265 seconds]
<jmercouris> (format t "hello world")
<ArthurStrong> Which lisp has the best Windows support? Had issues with SBCL...
<no-defun-allowed> do you even write-line
<jmercouris> sometimes
<jmercouris> ArthurStrong: corbol lisp
<jmercouris> sorry corman
<jmercouris> ArthurStrong: you can find it here: https://github.com/sharplispers/cormanlisp
<Shinmera> no
<jmercouris> yes
<Shinmera> corman is very broken.
<jmercouris> that it is, but he said "Windows support"
<ArthurStrong> OK, thanks anyway
<Shinmera> CCL is currently the best bet, though I have not experienced any problems with it myself.
<Shinmera> *with SBCL myself
enrio has joined #lisp
<jmercouris> what about Lispworks or Allegro?
<Shinmera> We're on Freenode
<pjb> freenode is about free software.
<jmercouris> and...?
<pjb> we don't discuss much commercial software here.
<pjb> I'd guess most of us don't use much commercial software either, anyways.
vaporatorius has quit [Read error: Connection reset by peer]
<jmercouris> I do!
<jackdaniel> jmercouris: please do not recommend corman lisp - it is a very cool project but it is far less stable than other free implementations
<jackdaniel> presenting uninformed opinions as informed recommendations may put person who ask for a recommendation in a peculiar situation
<jmercouris> woah woah! I'm very informed, I'm well aware of the problems
<jmercouris> however it says "Windows support" which has a very nebulous meaning, does he mean integration with a windows compiler toolchain?
<jmercouris> does he mean "designed" for windows?
<jackdaniel> if you are informed then please live up to that claim
enrioog has joined #lisp
<jmercouris> :-) aye aye captain
<pjb> In any case, using CL implementations more on MS-Windows can only improve them, by finding and correcting bugs.
<pjb> So go ahead, use sbcl or ccl!
enrio has quit [Ping timeout: 268 seconds]
<ArthurStrong> After installing CBCL on Windows, it just can't find sbcl.core during startup. Wrong path...
<jmercouris> I would very much suggest Lispworks
<jmercouris> you can play with the demo version or you can get a one month trial if you contact them
<jmercouris> failing that, I would choose another OS to develop on
<ArthurStrong> jmercouris: I see, thanks
gxt has quit [Ping timeout: 260 seconds]
<jackdaniel> ArthurStrong: if you want a working environment without much effort please take a look at portacle ( Shinmera's project)
t3rtius has joined #lisp
<jackdaniel> minion: plesae tell ArthurStrong about portacle
<minion> watch out, you'll make krystof angry
<jackdaniel> ArthurStrong: https://portacle.github.io/
gigetoo has quit [Ping timeout: 245 seconds]
Bourne has quit [Ping timeout: 240 seconds]
<jmercouris> who is krystof?
gigetoo has joined #lisp
libertyprime has quit [Quit: leaving]
jackdaniel has quit [Quit: jackdaniel]
Bike has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
gravicappa has joined #lisp
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
atgreen_ has joined #lisp
cosimone has joined #lisp
Oddity has quit [Read error: Connection reset by peer]
ravenousmoose has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
enrioog has quit [Read error: Connection reset by peer]
cosimone has quit [Quit: Quit.]
pfdietz74 has joined #lisp
cosimone has joined #lisp
<pfdietz74> I've recently been using SBCL under Windows Subsystem for Linux on Windows 10. There are some issues, but they are WSL issues. Waiting for the "real" WSL to be available.
nowhere_man has quit [Ping timeout: 276 seconds]
jmercouris has quit [Ping timeout: 245 seconds]
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cosimone has quit [Quit: Quit.]
mulk has joined #lisp
refpga has joined #lisp
dddddd has joined #lisp
kajo has quit [Ping timeout: 276 seconds]
ravenousmoose has joined #lisp
amz3 has joined #lisp
amz3 has left #lisp ["WeeChat 2.4"]
jackdaniel has joined #lisp
matijja has joined #lisp
kajo has joined #lisp
guna_ has joined #lisp
guna has quit [Ping timeout: 276 seconds]
refpga has quit [Read error: Connection reset by peer]
bitmapper has joined #lisp
t3rtius has quit [Ping timeout: 240 seconds]
cosimone has joined #lisp
gxt has joined #lisp
cosimone_ has joined #lisp
cosimone has quit [Ping timeout: 250 seconds]
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
atgreen_ has quit [Ping timeout: 265 seconds]
makomo has joined #lisp
ebzzry has joined #lisp
refpga has joined #lisp
analogue has joined #lisp
lucasb has joined #lisp
mouseghost has joined #lisp
orivej has joined #lisp
orivej has quit [Ping timeout: 276 seconds]
matijja` has joined #lisp
orivej has joined #lisp
refpga has quit [Remote host closed the connection]
gxt has quit [Ping timeout: 260 seconds]
hiroaki has joined #lisp
cosimone_ has quit [Remote host closed the connection]
Inline__ has joined #lisp
cosimone_ has joined #lisp
Inline has quit [Ping timeout: 264 seconds]
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ravenousmoose has joined #lisp
matijja has quit [Ping timeout: 265 seconds]
jackdaniel has quit [Quit: jackdaniel]
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rixard_ has joined #lisp
rixard has quit [Ping timeout: 245 seconds]
florest has quit [Quit: Leaving]
cosimone_ has quit [Quit: Quit.]
oni-on-ion has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
Kevslinger has joined #lisp
slyrus__ has joined #lisp
slyrus_ has quit [Ping timeout: 276 seconds]
hiroaki has quit [Ping timeout: 276 seconds]
fivo has joined #lisp
ebrasca has quit [Remote host closed the connection]
gxt has joined #lisp
xuxuru has joined #lisp
nowhere_man has joined #lisp
t3rtius has joined #lisp
bitmapper has quit [Remote host closed the connection]
refpga has joined #lisp
dddddd has quit [Ping timeout: 245 seconds]
dddddd has joined #lisp
rixard has joined #lisp
rixard_ has quit [Ping timeout: 240 seconds]
refpga has quit [Remote host closed the connection]
mulk has quit [Ping timeout: 240 seconds]
benkard has joined #lisp
benkard is now known as mulk
atgreen_ has joined #lisp
vms14 has joined #lisp
<vms14> Xach, has quicklisp a logo?
<vms14> or will have?
Bourne has joined #lisp
xuxuru has quit [Quit: xuxuru]
ravenousmoose has joined #lisp
Arcaelyx has joined #lisp
pfdietz74 has quit [Ping timeout: 260 seconds]
pfdietz83 has joined #lisp
benkard has joined #lisp
mulk has quit [Ping timeout: 268 seconds]
benkard is now known as mulk
Jeanne-Kamikaze has joined #lisp
torbo has joined #lisp
mulk has quit [Ping timeout: 240 seconds]
mulk has joined #lisp
jackdaniel has joined #lisp
superkumasan has quit [Ping timeout: 276 seconds]
ralt has joined #lisp
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #lisp
rgherdt has quit [Remote host closed the connection]
Arcaelyx has quit [Ping timeout: 240 seconds]
adip has quit [Ping timeout: 240 seconds]
bitmapper has joined #lisp
vms14 has quit [Remote host closed the connection]
random-nick has quit [Ping timeout: 240 seconds]
cosimone has joined #lisp
fanta1 has quit [Quit: fanta1]
hiroaki has joined #lisp
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
clothespin__ has joined #lisp
clothespin has joined #lisp
clothespin_ has quit [Ping timeout: 268 seconds]
ravenousmoose has joined #lisp
clothespin__ has quit [Ping timeout: 240 seconds]
matijja has joined #lisp
superkumasan has joined #lisp
matijja has quit [Remote host closed the connection]
khisanth_ has quit [Ping timeout: 240 seconds]
<LdBeth> ArthurStrong: you can obtain the dvi file from CMU AI repository, and obtain PDF by running dvipdf (which is part of a modern TeX distribution). This is what I did anyway. If you’re not likely to install TeX I can send you a copy anyway.
fanta1 has joined #lisp
<LdBeth> Actually there’s some hbox overflow issue in the original dvi file. So if you want a some more perfect version I’d recommend do as pjb said, get an old latex distribution, and tuning it to avoid hbox overflow
t3rtius has quit [Quit: leaving]
<ArthurStrong> LdBeth: thanks, I'll try... in my case, texlive entering into compatibility mode with older Latex and fails to process anything...
<LdBeth> Because the compatibility mode it not perfect.
khisanth_ has joined #lisp
pjb has quit [Read error: Connection reset by peer]
bitmapper has quit []
X-Scale` has joined #lisp
pjb has joined #lisp
X-Scale has quit [Ping timeout: 265 seconds]
X-Scale` is now known as X-Scale
<LdBeth> ArthurStrong: if you’re interesting we may start a collaborate project converting it to modern LaTeX
<LdBeth> Actually CLTL2 was prepared on a Macintosh with Bluesky research’s TeX implementation
random-nick has joined #lisp
<LdBeth> Some one has modified the source produced a better version already:)
<LdBeth> Although it’s from the HTML version instead of the latex source
adip has joined #lisp
meepdeew has joined #lisp
<jackdaniel> if I may ask, what do you need cltl2 for?
fanta1 has quit [Quit: fanta1]
gareppa has joined #lisp
gareppa has quit [Remote host closed the connection]
meepdeew has quit [Remote host closed the connection]
ggole has quit [Quit: Leaving]
manualcrank has joined #lisp
gxt has quit [Ping timeout: 260 seconds]
<pjb> cltl2 could be updated for CL…
nowhere_man has quit [Ping timeout: 276 seconds]
adip has quit [Ping timeout: 246 seconds]
<pfdietz83> Before you modify it, make sure you have permission to do that. The right to copy and the right to modify are separate rights under copyright law.
adip has joined #lisp
slyrus_ has joined #lisp
hiroaki has quit [Ping timeout: 246 seconds]
slyrus__ has quit [Ping timeout: 246 seconds]
slyrus__ has joined #lisp
slyrus_ has quit [Ping timeout: 265 seconds]
clothespin_ has joined #lisp
xuxuru has joined #lisp
xuxuru has quit [Client Quit]
emys has joined #lisp
bitmapper has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
clothespin has quit [Ping timeout: 276 seconds]
makomo has quit [Quit: WeeChat 2.4]
EvW has joined #lisp
<ArthurStrong> Well, maybe we can ask Guy Steele himself..
<ArthurStrong> jackdaniel: to read it?
* LdBeth decides to only privately distribute the pdf made from the source
cosimone has quit [Quit: Quit.]
<LdBeth> fun fact: since the release of the source file no one was able to latex it
rien_ has quit []
clothespin_ has quit [Ping timeout: 250 seconds]
analogue has quit [Ping timeout: 240 seconds]
<pjb> Free software must be distributed along with all the sources AND the scripts, makefiles, configuration files, etc needed to rebuild it.
ralt has quit [Quit: Connection closed for inactivity]
<pjb> Therefore: not fun fact: cltl2 is NOT free software.
<ArthurStrong> Guy Steele also known as contributor to tex and latex. Perhaps his installation has specific hacks
Jesin has quit [Quit: Leaving]
lucasb has quit [Quit: Connection closed for inactivity]
<ArthurStrong> s/has/had
varjag has joined #lisp
bbuccianti has joined #lisp
raghavgururajan has quit [Read error: Connection reset by peer]
grobe0ba has quit [Quit: ZNC 1.7.0 - https://znc.in]
pfdietz83 has quit [Ping timeout: 260 seconds]
bbuccianti has quit [Client Quit]
bbuccianti has joined #lisp
<jackdaniel> ArthurStrong: I figured that much. maybe I should ask, why are you interested in reading it? for historical reasons or rather you want to compare how Common Lisp evovled between CLtL2 and the ANSI standard?
bbuccianti has left #lisp [#lisp]
<ArthurStrong> jackdaniel: just want to learn CL. do you mean, Ctlt is outdated already?
<pjb> ArthurStrong: CLtL2 was printed before CL was standardized.
<pjb> ArthurStrong: but just with all books, it's still worth, modulo things that have changed.
<ArthurStrong> so you do not recommend reading it?
<pjb> I would recommend it, but you must take it with a grain of salt, checking everything with the CLHS.
<ArthurStrong> OK, I see
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` has joined #lisp
X-Scale` is now known as X-Scale
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
Arcaelyx has joined #lisp
Jesin has joined #lisp
hiroaki has joined #lisp
vlatkoB has quit [Remote host closed the connection]
<flip214> pjb: thanks for the answer. But given some macro invocation, while there are a few forms that will be kept from the source form, I'd like to know whether I can declare the _whole_ macro expansion as coming from that macro call.
<Bike> flip214: are you talking about what sb-ext:with-current-source-form does?
<Bike> if so, i don't believe there's any portability interface, or even if any implementation besides sbcl exports such a thing
<flip214> Bike: yeah, perhaps. Is there some library that gives me generalization across a few implementations?
jjkola has joined #lisp
TLSer has joined #lisp
<flip214> Bike: thanks for the pointer, though!
<jjkola> hi
<flip214> though that says "in a macroexpander ..." -- that sounds as if it's used sbcl-internally. my macro isn't a macroexpander!?
<flip214> but I'll just try it. Thanks!
<Bike> ...er, whta?
<Bike> you're writing a macro, right? defmacro?
<Bike> you're writing a macroexpander
<Bike> well, you can see examples if you look at sbcl's internal macro definitions, like typecase uses it
<flip214> well, I always considered MACROEXPAND-1 etc. to be the expander
Oladon has joined #lisp
<flip214> and not the macros that just "translate" some forms to other forms
<Bike> well defmacro defines a macro expansion function, i'd say
<Shinmera> macroexpand just calls the macro function
<Bike> but whatever, point is i'm pretty certain it's intended to be used in defmacro and the like
<flip214> I guess so, right
<flip214> Shinmera: macroexpand first has to decide _which_ function to call, if any. it does quite some more things IMO.
<flip214> but never mind -- thanks for the pointer!
Arcaelyx has quit [Ping timeout: 276 seconds]
cosimone has joined #lisp
pfdietz27 has joined #lisp
<pjb> flip214: well, macros are expanded outside in, so yes, I guess, you can declare the whole macro expansion as coming from that macro call. Only, subexpressions can be further expanded.
<jackdaniel> ArthurStrong: yes, please try reading pcl
<jackdaniel> minion: please tell ArthurStrong about pcl
<minion> ArthurStrong: direct your attention towards 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).
<jackdaniel> this is a great book to learn Common Lisp
<jackdaniel> minion: please tell ArthurStrongabout paip
<minion> ArthurStrongabout: paip: Paradigms of Artificial Intelligence Programming. More about Common Lisp than Artificial Intelligence. Now freely available at https://github.com/norvig/paip-lisp
<jackdaniel> ArthurStrong: and this is another great book
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<ArthurStrong> thanks!
duuqnd has quit []
anewuser has joined #lisp
<jackdaniel> sure
random-nick has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
rumbler31 has quit [Remote host closed the connection]
* LdBeth uploaded an image: 螢幕快照 2019-11-10 下午1.03.54.png (94KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/HkRSguwqzWvHDXWhtxaDIgzK >
<LdBeth> after some effort I do get the first chapter of cltl2 source compile
pfdietz27 has left #lisp [#lisp]
pfdietz27 has joined #lisp
pfdietz27 has left #lisp [#lisp]
pillton has quit [Remote host closed the connection]
random-nick has joined #lisp
anewuser has quit [Ping timeout: 268 seconds]
anewuser has joined #lisp
slyrus has joined #lisp
slyrus__ has quit [Ping timeout: 268 seconds]
_whitelogger has joined #lisp
dale has joined #lisp
rumbler31 has joined #lisp
shka_ has quit [Ping timeout: 268 seconds]
Arcaelyx has joined #lisp
montxero has joined #lisp
Lycurgus has joined #lisp
analogue has joined #lisp
rumbler31 has quit [Remote host closed the connection]
nowhere_man has joined #lisp
jackdaniel has quit [Quit: jackdaniel]
anewuser has quit [Ping timeout: 268 seconds]
<semz> Is there a set of guidelines for DSL macros that allow embedded CL code? Think of ITERATE or HTML templating for examples. I'm looking for general designs to keep in mind, common pitfalls, et cetera.
<MichaelRaskin> Common pitfall: doing some partial kind-of-code-walking and not documenting what exactly you do and what are the limitations
<MichaelRaskin> Of course, in the HTML templating case you often define some macros that only walk your own DSL, not general CL code (in this case everything is fine)
<MichaelRaskin> In some cases macrolet is useful.
xkapastel has joined #lisp
meepdeew has joined #lisp
wxie has joined #lisp
fivo has quit [Quit: WeeChat 1.9.1]
jjkola has quit [Quit: Ex-Chat]
meepdeew has quit [Remote host closed the connection]
analogue has quit [Ping timeout: 265 seconds]
vaporatorius has quit [Read error: No route to host]
EvW has quit [Remote host closed the connection]
EvW has joined #lisp
<aeth> MichaelRaskin: a lot of HTML templating does full code walking
TLSer has quit [Remote host closed the connection]
<aeth> All you really need to support, though is lambda and #' and variables though afaik. #'foo is just (function foo), so you'd just special case ((function foo) ...), (lambda ...), and a symbol that's not a keyword.
<aeth> semz: ^
<aeth> and lambda optional since that's by far the trickiest.
<aeth> s/lambda/lambda's/
<semz> aeth: Hm. For the sake of argument rather than any practical purpose: What if the body contains another (maybe even different with overlapping syntax) macro that does code walking? It would seem to me that the outer macro would clobber the inner macro's syntax.
hiroaki has quit [Ping timeout: 252 seconds]
<semz> Actually I guess you could just macroexpand during the code walker. Never mind.
<aeth> semz: No, sorry, my point was that you can avoid a needing code walker if you only support functions and variables.
<aeth> semz: e.g. (:your-macro (:+ foo 42 #'bar))
akoana has joined #lisp
wxie has quit [Ping timeout: 268 seconds]
<semz> Ah, I see now.
<aeth> semz: that could expand to (progn (format stream "~A" foo) (write-string " + " stream) (format stream "~A" 42) (write-string " + " stream) (bar stream))
<aeth> It would be a bit awkward because anything fancy would exist in a flet above the macro
Arcaelyx has quit [Quit: Arcaelyx]
<aeth> but you avoid code walking, you just need to parse (function bar) which is the same as #'bar and then turn it into (bar stream)
<aeth> or more likely (bar stream #|a bunch of keywords|# :allow-other-keys t)
<semz> Yeah that's a pretty neat and clean special case.
<aeth> right, so the only two special cases you need to interface with the outside world are (and (symbolp foo) (not (keywordp foo))) for variables and then in your list parsing check to see if the first element is the symbol cl:function (since #'foo is really the list (function foo))
<aeth> obviously more can be useful
<aeth> e.g. if you guarantee that the first element of a list has to be a keyword in your DLS, you could perhaps support more things
<aeth> s/DLS/DSL/
Arcaelyx has joined #lisp
Lycurgus has quit [Quit: Exeunt]
emys has quit [Ping timeout: 240 seconds]
<aeth> semz: The main issue with only supporting the two that I listed is that you'd have to create a closure in a flet any time you wanted custom input since the function is only called with the stream and possibly some keywords representing configuration or whatever, not something local to the function's context. So to say "Hello, $name" you'd need to create a local function that said that, and then call that function with #'your-local-function
rgherdt has joined #lisp
<aeth> Unless you can represent it as a variable instead, where you can just use name directly.
<aeth> So you might want to be able to express function calls in a more elaborate way, but you still don't need to support the full language in a code walker.
<aeth> Alternatively/additionally, you could implement generic functions that are called by your macro at runtime. Then it's easy to add an :after
emys has joined #lisp
ebrasca has joined #lisp
<aeth> You could turn the list (foo bar baz ...) where it doesn't start with a keyword into (foo bar baz ... stream #| keywords go here |# :allow-other-keys t) though, where the allow-other-keys allows your DSL to add more keywords to its API without making a breaking change.
ArthurStrong has quit [Quit: leaving]
cosimone has quit [Quit: Quit.]
rgherdt has quit [Ping timeout: 246 seconds]