p_l changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | ASDF 3.3.4
Fare has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
wsinatra has quit [Ping timeout: 260 seconds]
wsinatra has joined #lisp
wsinatra has quit [Quit: WeeChat 2.8]
gko has joined #lisp
red-dot has joined #lisp
mcsuper5 has left #lisp ["Leaving"]
stoneglass has quit [Quit: stoneglass]
shifty has quit [Ping timeout: 265 seconds]
stepnem has quit [Ping timeout: 246 seconds]
stepnem has joined #lisp
zaquest has quit [Quit: Leaving]
rumbler31 has joined #lisp
Guest30230 is now known as holycow
holycow is now known as Guest15636
wsinatra has joined #lisp
rpg has joined #lisp
gko has quit [Ping timeout: 272 seconds]
ajb` has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
bitmapper has quit [Ping timeout: 265 seconds]
CrazyPython has joined #lisp
shifty has joined #lisp
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 258 seconds]
X-Scale` is now known as X-Scale
_whitelogger has joined #lisp
Fare has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
Fare has joined #lisp
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Guest15636 has quit [Quit: Lost terminal]
ayuce has joined #lisp
jruiz has joined #lisp
pjb has joined #lisp
mono has joined #lisp
monok has quit [Ping timeout: 272 seconds]
CrazyPython has quit [Remote host closed the connection]
CrazyPython has joined #lisp
Josh_2 has quit [Ping timeout: 272 seconds]
dale has joined #lisp
dddddd has quit [Remote host closed the connection]
wsinatra has quit [Quit: WeeChat 2.8]
CrazyPython has quit [Remote host closed the connection]
CrazyPython has joined #lisp
lxbarbosa has quit [Ping timeout: 246 seconds]
nwoob has joined #lisp
Fare has quit [Ping timeout: 246 seconds]
mono has quit [Remote host closed the connection]
jruiz has quit [Remote host closed the connection]
refpga has quit [Ping timeout: 272 seconds]
Fare has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
turona has quit [Ping timeout: 272 seconds]
turona has joined #lisp
VPS has quit [Quit: Departure requested.]
lonjil2 has joined #lisp
cgw has joined #lisp
ArthurStrong has quit [Ping timeout: 260 seconds]
ArthurStrong has joined #lisp
refpga has joined #lisp
shifty has quit [Remote host closed the connection]
shifty has joined #lisp
corpix has quit [Ping timeout: 240 seconds]
efm has quit [Ping timeout: 264 seconds]
cgw has quit [Ping timeout: 256 seconds]
corpix has joined #lisp
efm has joined #lisp
cgw has joined #lisp
ahungry has joined #lisp
CrazyPython has quit [Ping timeout: 260 seconds]
cgw has quit [Remote host closed the connection]
__jrjsmrtn__ has quit [Ping timeout: 240 seconds]
_jrjsmrtn has joined #lisp
ArthurStrong has quit [Ping timeout: 246 seconds]
ArthurStrong has joined #lisp
<beach> Good morning everyone!
<ArthurStrong> beach: good morning indeed
<no-defun-allowed> marcoxa: Is it supposed to be read as "HEAP" or "HELP"?
<no-defun-allowed> Or as ηελρ but uppercase?
entel has quit [Quit: Connection closed for inactivity]
vlatkoB has joined #lisp
shka_ has joined #lisp
rwcom34 has quit [Read error: Connection reset by peer]
rwcom34 has joined #lisp
zaquest has joined #lisp
pilne has quit [Quit: Say What?]
ArthurStrong has quit [Quit: leaving]
ayuce has quit [Remote host closed the connection]
Bike has quit [Quit: Lost terminal]
jeosol has joined #lisp
Nilby has joined #lisp
Archenoth has joined #lisp
refpga has quit [Ping timeout: 246 seconds]
renzhi_ has quit [Ping timeout: 260 seconds]
pjb has joined #lisp
toorevitimirp has joined #lisp
torbo has quit [Remote host closed the connection]
refpga has joined #lisp
ahungry has quit [Remote host closed the connection]
pjb has quit [Ping timeout: 244 seconds]
shifty has quit [Ping timeout: 265 seconds]
rwcom34 has quit [Quit: Ping timeout (120 seconds)]
rwcom34 has joined #lisp
rwcom341 has joined #lisp
whythat has joined #lisp
rwcom34 has quit [Ping timeout: 260 seconds]
CrazyEddy has quit [Remote host closed the connection]
notzmv has quit [Ping timeout: 260 seconds]
whythat has quit [Ping timeout: 240 seconds]
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
sdumi has quit [Ping timeout: 272 seconds]
gravicappa has joined #lisp
narimiran has joined #lisp
shka_ has quit [Ping timeout: 265 seconds]
shka_ has joined #lisp
sdumi has joined #lisp
refpga has quit [Ping timeout: 260 seconds]
refpga has joined #lisp
Oladon has quit [Quit: Leaving.]
theosvoitha has joined #lisp
JohnMS_WORK has joined #lisp
Nilby has quit [Quit: 👽愛🆑]
whythat has joined #lisp
whythat has quit [Ping timeout: 240 seconds]
epony has quit [Ping timeout: 258 seconds]
Oladon has joined #lisp
epony has joined #lisp
wxie has joined #lisp
MilenaDevi has joined #lisp
shifty has joined #lisp
MilenaDevi has quit [Client Quit]
toorevitimirp has quit [Ping timeout: 260 seconds]
holycow has joined #lisp
ayuce has joined #lisp
gxt has quit [Quit: WeeChat 2.8]
ayuce has quit [Read error: Connection reset by peer]
gxt has joined #lisp
whythat has joined #lisp
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
random-nick has joined #lisp
whythat has quit [Ping timeout: 240 seconds]
Fare has quit [Ping timeout: 240 seconds]
ayuce has joined #lisp
wxie has quit [Ping timeout: 244 seconds]
Jesin has quit [Ping timeout: 256 seconds]
duncan_ has joined #lisp
ljavorsk has joined #lisp
sz0 has joined #lisp
Oladon has quit [Quit: Leaving.]
ljavorsk has quit [Remote host closed the connection]
ljavorsk has joined #lisp
pjb has joined #lisp
karlosz has quit [Quit: karlosz]
Cymew has joined #lisp
karlosz has joined #lisp
rogersm has quit [Quit: Leaving...]
asarch has joined #lisp
orivej_ has quit [Ping timeout: 260 seconds]
redeemed has joined #lisp
Bourne has quit [Remote host closed the connection]
pjb has quit [Ping timeout: 272 seconds]
SGASAU has joined #lisp
whythat has joined #lisp
Aishawhite has joined #lisp
Aishawhite has quit [Client Quit]
jprajzne has joined #lisp
pve has joined #lisp
rgherdt has joined #lisp
doomlist3 has joined #lisp
rogersm has joined #lisp
holycow has quit [Quit: leaving]
nopf has joined #lisp
pjb has joined #lisp
ggole has joined #lisp
<doomlist3> in functional programming if i print something is it purely functional?
<beach> Who cares?
<beach> Common Lisp is not a functional programming language in that sense anyway.
<edgar-rft> doomlist3: if you're using a printing device that returns a value depending on whether "something" was printed or not, then yes
nwoob`` has joined #lisp
nwoob has quit [Ping timeout: 258 seconds]
Bourne has joined #lisp
elinow has joined #lisp
jeosol has quit [Remote host closed the connection]
<no-defun-allowed> Probably not, but it wasn't a side effect that, say, the Scheme developers must have cared about. There, the relevant function is named DISPLAY, not DISPLAY!
<ralt> any I/O should be considered a side effect
<Shinmera> purely functional programming is purely useless because you can't put your result anywhere.
<ralt> which is why you have monads
whythat has quit [Ping timeout: 240 seconds]
<ralt> I mean, all told, a monad in X is just a monoid in the category of endofunctors of X, with product × replaced by composition of endofunctors and unit set by the identity endofunctor.
<ralt> (yes, I copy pasted that)
Jesin has joined #lisp
<phoe> the construct of a monad is required in the purely functional languages because it makes them actually useful - as Shinmera said, even if a program can accept input as a part of its source code, it can't store the result anywhere without a monad that bridges the pure world of computation and the impure world of side effects
<phoe> this implies that CL doesn't really need them, as an "impure" language
<p_l> the not-really-a-monad haskell monads were created as "nice hack" by Glasgow University to make IO in Haskell not suck
<p_l> before that, all I/O had to be wrapped in functions that consumed Future and returned Past
<p_l> which is a bit of a bother, believe me
* phoe moves to #lispcafe
rogersm has quit [Quit: Leaving...]
doomlist3 has quit [Ping timeout: 260 seconds]
<MichaelRaskin> People do use monads in Common Lisp / Scheme, usefully — for some data structure generalisations, for instance
nmg has joined #lisp
IRC-Source_21 has joined #lisp
doomlist3 has joined #lisp
<p_l> they make sense when you explicitly want to encapsulate certain behaviours, instead of the Haskell sense of "we need a trapdoor out of purity"
rwcom341 has quit [Remote host closed the connection]
<Odin-> It seems to me that CL tries to make whatever paradigm of programming you want to use available to you, rather than being particularly opinionated on any of them.
rwcom341 has joined #lisp
* White_Flame again, as always also points to "functional programming" also naming a style of programming where you pass around first-class function objects
<p_l> well, yeah, purity invasion happened long after Lisp defined functional programming
whythat has joined #lisp
<phoe> yes, there's a difference between functional programming as functions-as-first-class-objects and functional programming as in force-all-side-effects-into-cages
<phoe> Lisp is in the first camp
<White_Flame> and of course if you're passing them around to be called willy-nilly, they'll usually be functional-in-the-mathematical sense because side effects will stack, but that only describes that function, not the entire system
<p_l> to put it into perspective - lisp happened few years after McCarthy introduced modern-looking IF statement to the world
<Odin-> I rather suspect that JavaScript's use of that paradigm means it's disregarded as a serious thing by many.
<Odin-> And in that sense, JS is _heavily_ functional.
<aeth> you generally want side effects at the outermost layer if possible... but when you can't, that's what streams in dynamic variables are for... just rebind *standard-output*
rwcom341 has quit [Quit: Ping timeout (120 seconds)]
rwcom341 has joined #lisp
<White_Flame> Odin-: yeah, I wonder if there's a clear distinction between continuation-oriented imperative functions and transformative functions for things like the MAP functions
<White_Flame> in terms of style
pjb has quit [Ping timeout: 265 seconds]
akoana has quit [Remote host closed the connection]
<phoe> aeth: in a way, (with-output-to-string (*standard-output* ...) ...) is a purifying operation
<aeth> :o
akoana has joined #lisp
<aeth> that's a good point... I've never noticed
<no-defun-allowed> (I mean, Haskell has a monad for "localised" state, which is not dissimilar in purpose to with-output-to-string.)
rwcom341 has quit [Quit: Ping timeout (120 seconds)]
rwcom341 has joined #lisp
<no-defun-allowed> (ST, I believe)
<aeth> And another angle to look at is, I use with-output-to-string a lot in macros... which makes sense, since the DEFMACRO itself must be pure (with some caveats we discussed the other day)
ljavorsk_ has joined #lisp
ljavorsk has quit [Remote host closed the connection]
heisig has joined #lisp
asarch has quit [Quit: Leaving]
jonatack has quit [Quit: jonatack]
fourier has joined #lisp
rogersm has joined #lisp
jonatack has joined #lisp
sdumi has quit [Read error: Connection reset by peer]
sdumi has joined #lisp
joshcom has joined #lisp
ljavorsk_ has quit [Remote host closed the connection]
nwoob`` has quit [Read error: Connection reset by peer]
nwoob`` has joined #lisp
IRC-Source_21 has quit [Ping timeout: 240 seconds]
liberliver has joined #lisp
varjag has joined #lisp
karlosz has quit [Quit: karlosz]
davsebam1e has joined #lisp
McParen has joined #lisp
flazh has quit [Quit: flazh]
Necktwi has joined #lisp
milanj has joined #lisp
davsebamse has quit [Ping timeout: 260 seconds]
flazh has joined #lisp
dale has quit [Quit: My computer has gone to sleep]
entel has joined #lisp
joshcom has quit [Ping timeout: 272 seconds]
karswell_ has joined #lisp
ebrasca has joined #lisp
Necktwi has quit [Ping timeout: 265 seconds]
nwoob`` has quit [Ping timeout: 265 seconds]
ljavorsk has joined #lisp
motersen has joined #lisp
scymtym_ has joined #lisp
scymtym has quit [Ping timeout: 264 seconds]
dddddd has joined #lisp
rgherdt has quit [Ping timeout: 272 seconds]
rogersm has quit [Ping timeout: 240 seconds]
scymtym_ has quit [Remote host closed the connection]
joshcom has joined #lisp
refpga has quit [Ping timeout: 246 seconds]
scymtym has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
refpga has joined #lisp
pjb has joined #lisp
marcoxa has joined #lisp
Lord_of_Life_ has joined #lisp
cosimone has joined #lisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life_ is now known as Lord_of_Life
rgherdt has joined #lisp
theosvoitha has quit [Quit: Connection closed for inactivity]
rgherdt has quit [Read error: Connection reset by peer]
<jmercouris> so subseq complains if we go PAST the bounds of a list, alternative?
<jmercouris> to set the maximum length of a list?
<jmercouris> (subseq listy 0 5) ;; problem when list length less than 5
jonatack has quit [Ping timeout: 246 seconds]
jonatack has joined #lisp
<phoe> jmercouris: (subseq list 0 (min 5 (length list)))
<jmercouris> ah, I didn't think of min
<jmercouris> thank you
<jmercouris> I was going to use a conditional
joshcom has quit [Ping timeout: 260 seconds]
<phoe> that's equivalent
<jmercouris> I know, but it looks nicer with min
monokrom has joined #lisp
shangul has joined #lisp
fourier has quit [Ping timeout: 260 seconds]
bitmapper has joined #lisp
<Shinmera> (loop for el in list repeat 5 collect el)
<Shinmera> avoids potentially counting a long list.
<jmercouris> right because length wont break out
cosimone has quit [Quit: Quit.]
<Xach> this is a chance to use the underused ldiff
<Xach> not a good chance but a chance nonetheless
rozenglass has quit [Ping timeout: 272 seconds]
* Shinmera muses about a 'symbol popularity poll'
<jmercouris> could write a nice little script to figure out
pjb has quit [Ping timeout: 272 seconds]
<jmercouris> that could actually be really useful to know
<phoe> I vote for NIL
<Xach> I thought SIGNUM was obscure but then someone told me "oh if you use fortran a lot it's obvious"
<Xach> owned by fortranners
<Shinmera> Signum is nice but I often have to write a SIGNUM* that makes 0 be +1
gxt has quit [Ping timeout: 240 seconds]
nwoob`` has joined #lisp
karswell_ is now known as karswell
gxt has joined #lisp
nwoob`` has quit [Ping timeout: 272 seconds]
rozenglass has joined #lisp
rogersm has joined #lisp
rogersm has quit [Ping timeout: 240 seconds]
Bike has joined #lisp
nwoob`` has joined #lisp
fourier has joined #lisp
<flip214> I oppose NIL and so want T, or perhaps :T to sit on the throne, just because
<MichaelRaskin> For me «signum» is «yes, that's how we always read sgn in formulas on the blackboard»
cosimone has joined #lisp
Plazma has joined #lisp
doomlist3 has quit [Ping timeout: 272 seconds]
refpga has quit [Ping timeout: 260 seconds]
gko has joined #lisp
<jmercouris> Shinmera: I'm getting Binding stack exhausted. with Plump
<jmercouris> just doing the following: (plump:text (plump:parse html))
<jmercouris> on a large document
fourier has quit [Ping timeout: 240 seconds]
<phoe> why is there foreign code on the stack
<jmercouris> let me provide a new stack
<Bike> ...does plump use ffi? i didn't think it did
<Shinmera> It does not.
<jmercouris> i may have clicked the wrong sldb
<jmercouris> sorry
* phoe facepalms
refpga has joined #lisp
<Bike> an html parser that uses a constraint solver sounds exciting though
<Shinmera> the <center> cannot hold
<phoe> brb, implementing a html parser via restarts
<jmercouris> this is the correct buffer http://dpaste.com/34STF3W
<jmercouris> not sure why it doesn't show the actual lisp
<jmercouris> but frame 0 is of course where the problem is
<Bike> because it's not running any, looks like.
<Bike> i mean. there is no plump code here.
<jmercouris> well, it loses its mind when I try to parse the HTML
<jmercouris> yes there i
<jmercouris> s/i/is
<Bike> not in this thread.
<phoe> if there is, I can see no plump on the stack
<Bike> and this thread is the one blowing its stack.
<jmercouris> you are right
<Bike> it's even running fixpoints or something, certainly sounds like an expensive computation
duuqnd has joined #lisp
<jmercouris> there is a red herring here, I thought it was plump code, sorry
Josh_2 has joined #lisp
ayuce has quit [Read error: Connection reset by peer]
<jmercouris> it seems the problem occurs when javascript has to return too large of a value
<jmercouris> probably a product of our C code
<Bike> such as the one plump returns. seems plausible
<Bike> really am curious what the hell it's doing in this stack though. compiling javascript?
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
<jmercouris> no, I am only trying to return document.body.innerHTML
<jmercouris> and of course that can be very large
<jmercouris> not sure why it is doing all of that nonsense
<Bike> you might be, but the stack is doing some quite involved computation
refpga has quit [Ping timeout: 264 seconds]
<jmercouris> for some reason that's how we have to get the javascript result value from webkit
refpga has joined #lisp
<jmercouris> don't ask me why the interface is so obtuse
ebrasca has quit [Remote host closed the connection]
<jmercouris> apparently it doesn't like long strings
yankM has joined #lisp
<jmercouris> here is the full context if you are interested: https://github.com/joachifm/cl-webkit/blob/master/webkit2/webkit2.web-view.lisp
<Bike> maybe it's garbage collection? that's what "JSC::Heap::collectInMutatorThread()" sounds like
<jmercouris> I have no idea, there's so many moving parts
<jmercouris> I can reproduce this crash on specific sites
<jmercouris> I believe it is just the length of the document
<Bike> you're somewhere in line 1391
<Bike> well, i already debug enough weird c++ at my day job so i'll leave you to it
<jmercouris> lol
<jmercouris> what a joy :-)
<jmercouris> I'll just set a limit in JS for now...
rgherdt has joined #lisp
pjb has joined #lisp
refpga has quit [Ping timeout: 260 seconds]
refpga has joined #lisp
pjb` has joined #lisp
ayuce has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
pjb` has quit [Client Quit]
pjb has joined #lisp
refpga has quit [Ping timeout: 258 seconds]
refpga has joined #lisp
<froggey> results of the first(?) CL symbol popularity contest are in: https://gist.github.com/froggey/ad9dc12aeefd60e74db2b128efba6f8c
zulu-inuoe has joined #lisp
<froggey> calculated by instrumenting the mezzano reader (counting whenever a symbol was read) and doing a full build, so this includes mezzano and a bunch of supporting libraries
nmg` has joined #lisp
nmg has quit [Remote host closed the connection]
<phoe> froggey: surprisingly satisfying
IRC-Source_21 has joined #lisp
<phoe> I however find your lack of LOAD-LOGICAL-PATHNAME-TRANSLATIONS worrying
<pjb> jmercouris: (defun length-to (list n) (loop for len from 0 while (and list (plusp n)) do (decf n) (pop list) finally (return len))) (length-to '(1 2 3) 5) #| --> 3 |# (length-to '(1 2 3 4 5 6 7 8 9) 5) #| --> 5 |#
rogersm has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
Guest35617 has quit [K-Lined]
duuqnd has quit [Read error: Connection reset by peer]
duuqnd has joined #lisp
Fare has joined #lisp
rpg has joined #lisp
red-dot has joined #lisp
<Shinmera> froggey: That's... surprisingly in line with what I expected!
<Shinmera> I was intending on doing this with the Eclector reader, but hooking intern to just count instead.
dvdmuckle has quit [Remote host closed the connection]
<Shinmera> Maybe some other day, though.
dvdmuckle has joined #lisp
rogersm has quit [Quit: Leaving...]
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
shka_ has quit [Ping timeout: 272 seconds]
shka_ has joined #lisp
patlv has joined #lisp
amerlyq has joined #lisp
IRC-Source_2162 has joined #lisp
IRC-Source_21 has quit [Ping timeout: 260 seconds]
JohnMS_WORK has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
fourier has joined #lisp
<bitmapper> froggey: needs more defmacro
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
<flip214> froggey: more DEFUN than WHEN, more DEFMETHOD than IF.... definitely functional programming ;)
<flip214> sadly SETF is at place #3, just after DEFUN ;(
fourier has quit [Ping timeout: 260 seconds]
<Bike> lotta streams...
ahungry has joined #lisp
orivej has joined #lisp
theosvoitha has joined #lisp
CrazyPython has joined #lisp
<jackdaniel> defun is essentially setf ;)
<jackdaniel> setf fdefinition symbol lambda-block
<flip214> jackdaniel: but on a meta-level!
<phoe> hey, no fair
<phoe> this is just read-level, no macroexpanding there
refpga has quit [Read error: Connection reset by peer]
dyelar has joined #lisp
refpga has joined #lisp
<jackdaniel> on reader level setf is side effect free
<jackdaniel> qed
<jackdaniel> :p
<flip214> jackdaniel: from an OS level, only save-lisp-and-die is meaningful
stepnem has quit [Ping timeout: 272 seconds]
<MichaelRaskin> phoe: if only there was a method to auto-macroexpand-everything…
stepnem has joined #lisp
<phoe> "If only there was a method to auto-macroexpand-everything" - Michael Raskin
<phoe> I'm calligraphing this and hanging it above my bed
igemnace has quit [Ping timeout: 272 seconds]
rpg has quit [Quit: Textual IRC Client: www.textualapp.com]
CrazyPython has quit [Read error: Connection reset by peer]
ChoHag has quit [Ping timeout: 264 seconds]
<flip214> MichaelRaskin: swank:macroexpand-all? or simply COMPILE and then decompile.
<Bike> lol simply.
liberliver has quit [Ping timeout: 265 seconds]
<MichaelRaskin> flip214: well, you can also just call your compiler's macroexpand-all
ChoHag has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
theosvoitha has left #lisp [#lisp]
karswell has quit [Remote host closed the connection]
karswell_ has joined #lisp
<phoe> (ql:quickload :trivial-macroexpand-all)
<phoe> oh, it actually exists
<MichaelRaskin> The more interesting question is how up to date it is, of course
<phoe> 20 Oct 2017
sjl_ has joined #lisp
<MichaelRaskin> (Although all this does not matter, you start from top-level, that's the easy case)
ChoHag has quit [Ping timeout: 240 seconds]
liberliver has joined #lisp
ChoHag has joined #lisp
lonjil2 has quit [Quit: WeeChat 2.8]
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
<jmercouris> (defparameter s (cl-ppcre:create-scanner "[A-Za-z]")) (cl-ppcre:scan s "</textarea>")
<jmercouris> returns whereas I want ONLY strings with alphabetical ONLY
<jmercouris> do I have to ^ at the front or something?
<jmercouris> seems so...
<jmercouris> I guess this does behave like Perl
igemnace has joined #lisp
<phoe> one of the letters in PPCRE stands for Perl, so
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
IRC-Source_2162 has quit [Quit: Connection closed]
red-dot has joined #lisp
duuqnd has quit [Remote host closed the connection]
duuqnd has joined #lisp
theseb has joined #lisp
ayuce has quit [Remote host closed the connection]
theseb has quit [Read error: Connection reset by peer]
<jmercouris> when in Lisp, how to print version and implementation?
theseb has joined #lisp
motersen has quit [Ping timeout: 260 seconds]
<theseb> Are there different kinds of macros? i just read about reader, runtime, compile time and symbol macros!? The only kind i know are the kind that generate Lisp code....what kind is that?
<_death> all of them generate lisp code
nmg` has quit [Remote host closed the connection]
<theseb> _death: all the code generation and substitution all happens before evaluation of the final code so they all seem the same
<Bike> there's no distinction of "runtime" and "compile time" macros
<Bike> reader macros are different in that they operate in the reader, rather than later in the evaluator or compiler
<Bike> symbol macros are just macros that transform symbol forms intead of cons forms
ljavorsk has quit [Ping timeout: 246 seconds]
fourier has joined #lisp
<theseb> Bike:whoa...symbol macros operate on symbols....interesting...thanks
<phoe> not really "operate on symbols"
<phoe> if normal macros are bound in the function namespace, then symbol macros are bound in the variable namespace
<phoe> because of that, they can't directly accept arguments, but most symbol macros don't need to do that when used properly
whythat has quit [Ping timeout: 240 seconds]
<Aurora_v_kosmose> Is there some recommended FFI bridge for Objective C?
<jmercouris> Aurora_v_kosmose: There is one by fiddlerwoaroof and one built into CCL
sdumi has quit [Ping timeout: 260 seconds]
<jmercouris> Aurora_v_kosmose: the one built into CCL is mature and works well
<jmercouris> Aurora_v_kosmose: here is the fiddlerwoaroof one: https://github.com/fiddlerwoaroof/objc-lisp-bridge
sdumi has joined #lisp
<Aurora_v_kosmose> Ah thanks.
<jmercouris> Aurora_v_kosmose: you can read about CCL here: https://ccl.clozure.com/docs/ccl.html#the-objective-c-bridge
<Aurora_v_kosmose> I'll probably go with fiddlerwoaroof's, CCL isn't available in my distro.
<jmercouris> good luck if you are trying to do anything with Cocoa
<Aurora_v_kosmose> Does messing with GNUstep/WMaker count?
<jmercouris> 2
<jmercouris> no
<Aurora_v_kosmose> Alright. Thanks.
<jmercouris> no problem
<jmercouris> so, no way to print current lisp implementation?
<Bike> as travv0 said, it's lisp-implementation-type
<jmercouris> oh I didn't see that
<jmercouris> thank you travv0
whythat has joined #lisp
<travv0> no problem
<Bike> if you look at the "Environment" dictionary you can see there are also functions to get information about the OS or machine, if you want that too
<jmercouris> what about *features*
<Bike> what about it?
<jmercouris> could I look there too?
<Bike> sure, but it's not very standardized.
<Bike> i think there's a library for doing some normalization
<jmercouris> Bike: what is the "Environment" dictionary you are talking about?
<Bike> in clhs.
<Bike> up from the page travv0 linked.
<jmercouris> I'm on that page
fourier has quit [Ping timeout: 260 seconds]
<jmercouris> I don't see Environment
<jmercouris> what do you mean "Up?"
<jmercouris> oh the arrows
<marcoxa> jmercouris quicklisp has a number of environment introspection functionalities, you could look at its guts. Same for UIOP, which caomes with ASDF (and which, IMHO, should be split from it).
marcoxa has quit [Quit: Time's up!]
hiroaki has joined #lisp
redeemed has quit [Quit: q]
ajb` has left #lisp ["ERC (IRC client for Emacs 25.2.2)"]
theseb has quit [Remote host closed the connection]
Cymew has quit [Ping timeout: 256 seconds]
ayuce has joined #lisp
scymtym_ has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
gko has quit [Ping timeout: 246 seconds]
whythat has quit [Ping timeout: 240 seconds]
shka_ has quit [Ping timeout: 246 seconds]
ayuce has quit [Remote host closed the connection]
shka_ has joined #lisp
ayuce has joined #lisp
whythat has joined #lisp
toorevitimirp has joined #lisp
shangul has quit [Ping timeout: 265 seconds]
jeosol has joined #lisp
red-dot has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
rozenglass has quit [Quit: WeeChat 2.3]
rozenglass has joined #lisp
notzmv has joined #lisp
jmarciano has joined #lisp
shka_ has quit [Ping timeout: 256 seconds]
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
ayuce has quit [Remote host closed the connection]
ayuce has joined #lisp
akoana has left #lisp ["Leaving"]
nwoob``` has joined #lisp
nwoob`` has quit [Ping timeout: 260 seconds]
rogersm has joined #lisp
gravicappa has quit [Ping timeout: 256 seconds]
rumbler3117 has joined #lisp
gravicappa has joined #lisp
rogersm has quit [Quit: Leaving...]
phoe is now known as phoe_krk
phoe_krk is now known as phoe
IRC-Source_21 has joined #lisp
rgherdt has quit [Quit: Leaving]
rumbler3117 has quit [Ping timeout: 245 seconds]
whythat has quit [Ping timeout: 240 seconds]
efm_ has joined #lisp
efm_ has quit [Client Quit]
efm has quit [Ping timeout: 265 seconds]
whythat has joined #lisp
|Pirx| has joined #lisp
whythat has quit [Ping timeout: 240 seconds]
ahungry has quit [Ping timeout: 260 seconds]
whythat has joined #lisp
ahungry has joined #lisp
efm has joined #lisp
rumbler3161 has joined #lisp
IRC-Source_21 has quit [Ping timeout: 258 seconds]
Bourne has quit [Read error: Connection reset by peer]
shka_ has joined #lisp
AmyGoal has joined #lisp
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
heisig has quit [Quit: Leaving]
AmyGoal has quit [Client Quit]
Lord_Nightmare has joined #lisp
choegusung has joined #lisp
choegusung has quit [Client Quit]
ayuce has left #lisp ["ERC (IRC client for Emacs 28.0.50)"]
jmarciano has quit [Read error: Connection reset by peer]
whythat has quit [Quit: whythat]
karlosz has joined #lisp
ebrasca has joined #lisp
seok has quit [Ping timeout: 245 seconds]
sauvin has quit [Ping timeout: 265 seconds]
vutral has joined #lisp
vutral has quit [Changing host]
vutral has joined #lisp
shifty has joined #lisp
marcoxa has joined #lisp
xuxuru has joined #lisp
<gendl> marcoxa: uiop is indeed split from asdf. We build production Gendl images which contain uiop but not asdf.
<Fare> The hard problem is not splitting uiop from asdf. The hard problem is convincing vendors to deliver the two as separate modules.
<gendl> the monolithic compile bundle stuff in asdf is a bit broken though the last time I checked for the case of systems which depend-on uiop — so we have to include its fasl explicitly in the build.
<Fare> (although there *are* interesting issues with splitting uiop from asdf, they are comparatively simple)
<gendl> yes, asdf by default comes as one inseparable thingie including uiop. You have to clone asdf sources to get uiop as a separate item. Or (I think) you can get it (some version of it) thru Quicklisp.
Bourne has joined #lisp
duuqnd has quit [Quit: Leaving]
Josh_2 has quit [Remote host closed the connection]
Josh_2 has joined #lisp
vlatkoB has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
liberliver has quit [Ping timeout: 272 seconds]
karayan has quit [Ping timeout: 260 seconds]
karayan has joined #lisp
cosimone has quit [Ping timeout: 244 seconds]
ralt has quit [Quit: Connection closed for inactivity]
karswell_ has quit [Read error: Connection reset by peer]
<jackdaniel> "asdf's" uiop should have a different package name than "a library" uiop
<jackdaniel> same goes for the system name
<jackdaniel> since uiop is a preloaded system, quicklisp does not download a new one unless it is manually placed in a known location
pilne has joined #lisp
<jackdaniel> furthermore if you upgrade asdf (imo the upgrade mechanism is pita), your "old" uiop is loaded over
cosimone has joined #lisp
elinow has quit [Ping timeout: 260 seconds]
ralt has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
ljavorsk has joined #lisp
jonatack has quit [Ping timeout: 272 seconds]
fourier has joined #lisp
jonatack has joined #lisp
xuxuru has quit [Quit: xuxuru]
rumbler3161 has quit [Ping timeout: 245 seconds]
yankM has quit [Ping timeout: 240 seconds]
nymphet has joined #lisp
ebrasca has quit [Remote host closed the connection]
loli has quit [Ping timeout: 260 seconds]
nymphet is now known as loli
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
Lycurgus has joined #lisp
pve has quit [Quit: leaving]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
yankM has joined #lisp
McParen has left #lisp [#lisp]
dvdmuckle has quit [Remote host closed the connection]
ggole has quit [Quit: Leaving]
dvdmuckle has joined #lisp
bendersteed has joined #lisp
narimiran has quit [Ping timeout: 256 seconds]
fourier has quit [Ping timeout: 260 seconds]
ljavorsk has quit [Ping timeout: 260 seconds]
<jackdaniel> is there a rule somewhere in the spec which says, that you can't use custom keyword argument names in long defsetf variant?
<jackdaniel> i.e (defsetf abc (place &key ((x a))) (arg) `(setf (car ,place) (+ ,a ,arg)))
<phoe> clhs defsetf
<phoe> clhs 3.4.7
<Bike> the page on defsetf lambda list explicitly allows that.
<jackdaniel> and then (setf (abc *something* 'x 1) 2)
<jackdaniel> on both ecl and sbcl I get, that x is an unknown keyword during macroexpansion
<phoe> seems like this is allowed: note (keyword-name var) in there
<jackdaniel> that's why I'm confused
<jackdaniel> let's see what ccl says
<jackdaniel> on ccl it works
<jackdaniel> hm, thank you
<phoe> on SBCL it says that 'X is an unknown keyword argument
<jackdaniel> or rather "thank you", and separately "hm"
<jackdaniel> indeed
<phoe> that smells of bugs: it's still quoted
<phoe> perhaps it worked until now because no one did things like (setf (abc *something* ':x 1) 2)
<phoe> that, the way I understand, would be equivalent to the version without the quote
notzmv has quit [Remote host closed the connection]
ahungry has quit [Remote host closed the connection]
marcoxa has quit [Quit: Time to go to bed.]
shifty has quit [Ping timeout: 246 seconds]
shifty has joined #lisp
karayan has quit [Remote host closed the connection]
gravicappa has quit [Ping timeout: 272 seconds]
karayan has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
corpix has quit [Ping timeout: 240 seconds]
corpix has joined #lisp
duncan_ has quit [Ping timeout: 246 seconds]
Fare has quit [Ping timeout: 260 seconds]
<Bike> defsetf is more like defmacro, though, so it doesn't evaluate the arguments
<Bike> so maybe you should do (setf (abc *something* x 1) 2) instead
<phoe> oh! is that allowed?
* phoe reads more
<jackdaniel> Bike: then I have "Unknown &key argument: #:A2059", so the problem is still there
<Bike> that's because of defsetf arranging for once-only
<Bike> so uh. i don't know how to make it work.
<phoe> ...
<phoe> short form of defsetf calls the update-fn with newval as its *last* argument
<phoe> why
<phoe> #'(setf foo) is supposed to get newval as its *first* argument
<Bike> you don't use defsetf for setf functions.
dddddd_ has joined #lisp
<Bike> having it get the new value last means evaluation order can work in the more obvious way, i suppose
<phoe> Bike: I'm aware
<phoe> wait a second though...
<phoe> clhs defsetf
<phoe> "It must be the case that the function or macro named by access-fn evaluates all of its arguments."
<phoe> if I understand this correctly, then 'X must be evaluated to produce X in jackdaniel's example
random-nick has quit [Ping timeout: 272 seconds]
<phoe> to have it consistent with (abc *something* 'x 1) which would be a function call or a macro call that evaluates all arguments
shka_ has quit [Ping timeout: 256 seconds]
dddddd has quit [Ping timeout: 258 seconds]
<Bike> evaluated by the expansion.
<jackdaniel> I'm not using ccl daily, but when I do it often surprises me how it got right things which are wrong/unsatisfying in ecl and even in sbcl
<phoe> Bike: I don't understand, evaluated by the expansion
<Bike> okay, so when you write a long form defsetf you're kind of writing a macroexpander.
<phoe> no no, I understand that
<Bike> the macroexpander gets forms.
<phoe> it's just that this sentence says nothing about the expansion; just about the original function for which we define setf
<Bike> i just mean the macroexpander isn't going to get the symbol X if you write (abc 'x), because evaluation isn't don eyet.
<phoe> yes, it gets (QUOTE X) at that point
<phoe> but I mean that if ACCESS-FN must evaluate all its arguments, then it seems weird if SETF ACCESS-FN does something different
<Bike> well yes, but that doesn't affect what the macroexpander gets.
<phoe> that's correct
<Bike> the thing is that defsetf also has to arrange that the macroexpander doesn't have to take care of once-only.
<Bike> so the expander doesn't get the actual input forms.
<phoe> ...this gets complicated really quickly though
<phoe> ...so if it gets a &key, it should actually recognize that it is given quoted symbols, unquote them, and properly bind them
<jackdaniel> setf expansions are a real brain stretch :)
<phoe> worse, what if it's given symbols bound to lexical variables, or provided via function calls
<phoe> oh golly
<jackdaniel> either way there is a bug, I'm happy with this conclusion and I carry on :)
<jackdaniel> no-defun-allowed: thank you for fixing the issue in flexichain for ecl
<jackdaniel> or, to be correct, thank you kpoeck, got mislead by the commiter
<phoe> no-thanks-allowed
<Bike> if defsetf has to handle keywords but also work like a function then it probably can't handle keywords that will be evaluated. sorta like define-compiler-macro.
<Bike> i figure the spec writers just did not consider this scenario.
<phoe> so, basically, all symbols that aren't from the KEYWORD package and that don't name constants
<phoe> it should be possible to defer some lambda list parsing to execution-time though, if that's required
<Bike> i mean, say you have a function foo with lambda list (&key x), and you write a defsetf foo, and then you write (setf (foo y 4) nv). what's the defsetf expander get?
<Bike> y might evaluate to be :x, or it might not.
<phoe> that should be doable with a execution-time destructuring-bind that will signal a destructuring error if Y does not evaluate to :X and will signal a compile-time warning if Y turns out to be unbound
<phoe> dirty and execution-time, but would work
<Bike> what, like, it expands the macro at runtime and evaluates the result?
<Bike> or you expand the macro ahead of time under the assumption that x will be the 4 form?
<phoe> the macro expands into something like (let ((args (list y 4))) (destructuring-bind (&key x) args ...))
<phoe> with once-only and such
<Bike> (defsetf foo (&key x) (nv) (print x) nv), what's printed at compile time?
<Bike> if there are multiple evaluated keys does it expand more than once and select between them at runtime?
jfrancis has quit [Read error: Connection reset by peer]
<Bike> it's just way too stupid.
jfrancis has joined #lisp
<jackdaniel> ccl expands into (let (yadayada) (other-yada () ((lambda (place &key ((a #:a))) ,@do-magic) ,@yada-arguments)))
<jackdaniel> (expands the setf form into*)
shifty has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
shifty has joined #lisp
* edgar-rft didn't know that Common Lisp is a yada-oriented language
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
|Pirx| has quit [Ping timeout: 240 seconds]
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
MichaelRaskin has quit [Ping timeout: 256 seconds]
notzmv has joined #lisp
ArthurStrong has joined #lisp
Kingsy has joined #lisp
<Kingsy> anyone here use paredit with vim?
amerlyq has quit [Quit: amerlyq]
shifty has quit [Ping timeout: 272 seconds]
shifty has joined #lisp
MichaelRaskin has joined #lisp
<Xach> Kingsy: i don't know, but i didn't think that existed - does it?
cosimone has quit [Quit: Quit.]
stepnem has quit [Ping timeout: 256 seconds]
stepnem has joined #lisp
<Kingsy> yeah I have it installed but its just an absolute pain in the ass.
<Kingsy> I am thinking about removing it but I wanted to see if anyone finds it useful first.
pjb has quit [Ping timeout: 256 seconds]
<dlowe> it's definitely a shift in thinking and I don't know how well the vim translation is
<dlowe> s/well/good/
pjb has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
<Kingsy> yeah I removed it, I didnt like it :D
jonatack has quit [Ping timeout: 246 seconds]
sjl_ has quit [Ping timeout: 260 seconds]
Oladon has joined #lisp
jonatack has joined #lisp
stepnem_ has joined #lisp
stepnem has quit [Read error: Connection reset by peer]
shifty has quit [Ping timeout: 246 seconds]
dvdmuckle has quit [Remote host closed the connection]
shifty has joined #lisp
dvdmuckle has joined #lisp
Fare has joined #lisp
SGASAU has quit [Remote host closed the connection]
shifty has quit [Ping timeout: 256 seconds]
SGASAU has joined #lisp
shifty has joined #lisp
asarch has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life_ is now known as Lord_of_Life
shifty has joined #lisp
<markasoftware> Can I (find-symbol) using the package that was at read time, rather than the dynamic *package*?
<markasoftware> i know i can manually specify a package as the last argument. But is there a way without specifically naming the package?
<Bike> the runtime code doesn't know what *package* was when the code was read.
<Bike> you could save it, and do something like (find-symbol name #.*package*)
<Bike> kind of ugly to use symbols like this, tho
Lycurgus has quit [Remote host closed the connection]
<markasoftware> oof
<pjb> (find-symbol name #.*package*) or more sturdy: (find-symbol name #.(package-name *package*))
<markasoftware> i'm mainly trying to convert keyword symbols to symbols in my package.
<markasoftware> because i'm using them for equality checks.
<pjb> you can use string=
<pjb> (string= 'foo :foo) #| --> t |#
<markasoftware> woah
<markasoftware> it gets th e names? That's neat
<pjb> clhs string=
<markasoftware> cool, string1 and string2 are indeed string designators
<markasoftware> i would never have guessed. Thank you!
<pjb> (find-symbol name #.(package-name *package*)) contains a string in the source, while (find-symbol name #.*package*) contains a package. The CL system may have difficulties storing the package in the object file when compiling this.
<Fare> or, use Scheme hygienic macros.
jeosol has quit [Remote host closed the connection]
<aeth> oh, weird, I'd normally intern or manually stringify in such situations
<markasoftware> i had no idea string designators worked for all these functions, including string-downcase and stuff