phoe 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.4.16, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
trocado has quit [Ping timeout: 245 seconds]
khisanth_ has joined #lisp
cdegroot has joined #lisp
karlosz has quit [Quit: karlosz]
cdegroot has quit [Remote host closed the connection]
cdegroot has joined #lisp
shifty has quit [Ping timeout: 252 seconds]
karlosz has joined #lisp
dddddd has quit [Remote host closed the connection]
mindCrime has joined #lisp
karlosz has quit [Quit: karlosz]
milanj has quit [Quit: This computer has gone to sleep]
Blukunfando has quit [Ping timeout: 246 seconds]
ltriant has joined #lisp
quazimodo has quit [Ping timeout: 246 seconds]
quazimodo has joined #lisp
<asarch> Thank you!
<asarch> Thank you very much! :-)
<asarch> Any librari to handle gzipped tarballs?
<asarch> *library
mindCrime_ has quit [Read error: Connection reset by peer]
mindCrime_ has joined #lisp
<Bike> doesn't quicklisp have one? DEFLATE?
torbo has joined #lisp
notzmv has quit [Ping timeout: 246 seconds]
<asarch> Thank you!
<asarch> Thank you very much! :-)
<Xach> DEFLATE is cool
rumbler31 has joined #lisp
<asarch> Yeah!
asarch has quit [Quit: Leaving]
oni-on-ion has joined #lisp
cdegroot has quit [Remote host closed the connection]
mindCrime has quit [Ping timeout: 258 seconds]
mindCrime has joined #lisp
<drmeister> Hi lispers!
<drmeister> Do we have any ASDF hackers online? I'm interested in getting POIU (ASDF extension that uses fork to build systems in parallel) working with the latest ASDF.
<Xach> drmeister: I think only Fare can provide insight there.
<drmeister> I emailed him today about it. He'd be interested in helping. I'm trying to figure out how to make it happen.
<drmeister> I'm casting about for more expertise.
<Xach> happy casting!
<drmeister> Bike and karlosz made some fantastic strides with implementing and improving inlining performance in Cleavir in the last couple of weeks.
<drmeister> But Cando is very dependent on quicklisp and ASDF - and llvm will always be a slow compiler backend - so I'm trying to figure out how to make better use of parallelism. POIU would be very valuable - if it was updated to work with modern ASDF.
<drmeister> Since I have you here - we compile ASDF as part of building Clasp. Then when we build quicklisp (load "~/quicklisp/setup.lisp") it builds another version of ASDF. Do you have any quick pointers on how to not build ASDF twice?
<drmeister> We could not build our version of ASDF as part of building Clasp - we only use ASDF within quicklisp.
<Xach> drmeister: do you build and load or just build?
<Xach> asdf, that is
<Bike> is it quicklisp's doing? quicklisp bundles a really old asdf, i don't think that's what gets loaded
<drmeister> We build and don't load ASDF. Maybe that's the problem? Should we (require :asdf) before we build quicklisp? Trying that...
<Xach> ensure-asdf-loaded is the thing doing the work. the docstirng is a little off; first it tries doing nothing.
<Xach> if asdf is loaded quicklisp will not try to load it again.
<Xach> if it is not loaded, it will.
<drmeister> I'm worried that it may not recognize that it's loaded and silently build ASDF. I have to hack quicklisp/startup.lisp to be sure. When I load quicklisp it sits there for a while while it builds itself.
<Bike> so perhaps clasp does not properly commmunicate that asdf has been built already
<Xach> drmeister: the code to do the recognition is there to peruse in ensure-asdf-loaded.
<Xach> and it's not called ensure-asdf-built. it's gotta be loaded.
<drmeister> Thank you - I'm looking into ensure-asdf-loaded now. That's a very welcome pointer.
_ark_ has quit [Ping timeout: 248 seconds]
<Bike> i always require :asdf before i load quicklisp and it still takes a while
mindCrime has quit [Ping timeout: 248 seconds]
<drmeister> ensure-asdf-loaded looks pretty straightforward - I'll hack it up and see what's going on.
<drmeister> Bike: Yeah - that's been my feeling as well. But I've grown accustomed to waiting for our compiler.
igemnace has joined #lisp
<drmeister> ensure-asdf-loaded tried (require 'asdf) - yet it still builds ASDF - so somethings wrong.
zotan has quit [Ping timeout: 248 seconds]
zotan has joined #lisp
karlosz has joined #lisp
mindCrime has joined #lisp
akoana has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
Bike has quit [Quit: Lost terminal]
mindCrime_ has quit [Read error: No route to host]
mindCrime_ has joined #lisp
orivej has joined #lisp
mindCrime has quit [Ping timeout: 258 seconds]
<beach> Good morning everyone!
pillton has joined #lisp
wigust- has joined #lisp
<margaritamike> ^_______^
<margaritamike> that's pretty exciting
wigust has quit [Ping timeout: 252 seconds]
notzmv has joined #lisp
<drmeister> margaritamike: Neat! Thank you!
<margaritamike> :))
<drmeister> We want to go a different direction - there is a C++ kernel called...
mindCrime_ has quit [Ping timeout: 246 seconds]
<drmeister> It's what Python is moving to.
<drmeister> If we move to that - then we lower our maintenance burden.
<drmeister> Oh wait - this is #lisp - not #clasp.
<drmeister> FYI - we have developed and depend on a Jupyterlab interface in Cando based on cl-jupyter.
<drmeister> It's integral to our evil plans.
<drmeister> Well, jupyterlab is - not so much cl-jupyter if we go with Xeus. 'cause it's C++ and we are the folks that deal with C++ so you don't have to.
t58 has quit [Quit: Night]
adolby has quit [Quit: No Ping reply in 180 seconds.]
adolby has joined #lisp
<oni-on-ion> =)
<margaritamike> :O
<margaritamike> how does that lower the maintenance burden
<margaritamike> what are the ultimate evil plans :)
marusich has joined #lisp
varjag has joined #lisp
varjag has quit [Ping timeout: 246 seconds]
manualcrank has quit [Quit: WeeChat 1.9.1]
<oni-on-ion> tower of babel
<oni-on-ion> ohh, CL for jupyter - this is new ?
pankajgodbole has joined #lisp
<drmeister> It's been around for a while. We've had it for almost 2 years.
<drmeister> When I (require :asdf) (load "~/quicklisp/setup.lisp") it falls through ensure-asdf-loaded but starts compiling ASDF with this...
<drmeister> (let ((*compile-print* nil) (*compile-verbose* nil) (*load-verbose* nil) (*load-print* nil)) (asdf:oos 'asdf:load-op "quicklisp" :verbose nil))
orivej has quit [Ping timeout: 248 seconds]
torbo has quit [Remote host closed the connection]
zooey has quit [Remote host closed the connection]
zooey has joined #lisp
nirved_ has joined #lisp
nirved has quit [Ping timeout: 248 seconds]
mulk has quit [Quit: ZNC - http://znc.in]
akoana has left #lisp [#lisp]
mulk has joined #lisp
Nomenclatura has joined #lisp
rwlisp has quit [Quit: rwlisp]
vlatkoB has joined #lisp
dale has quit [Quit: dale]
caltelt has quit [Ping timeout: 246 seconds]
rumbler31 has quit [Remote host closed the connection]
sauvin has joined #lisp
pierpal has quit [Ping timeout: 252 seconds]
libertyprime has quit [Ping timeout: 250 seconds]
varjag has joined #lisp
TheWild has joined #lisp
orivej has joined #lisp
JohnMS_WORK has joined #lisp
Inline has quit [Quit: Leaving]
varjag has quit [Ping timeout: 258 seconds]
campy_fellow has quit [Ping timeout: 255 seconds]
campy_fellow has joined #lisp
p9fn has joined #lisp
asarch has joined #lisp
Folkol_ has joined #lisp
gxt has quit [Ping timeout: 252 seconds]
mooshmoosh has quit [Ping timeout: 244 seconds]
mooshmoosh has joined #lisp
libertyprime has joined #lisp
Folkol_ has quit [Read error: Connection reset by peer]
libertyprime has quit [Ping timeout: 248 seconds]
libertyprime has joined #lisp
t58 has joined #lisp
ltriant has quit [Quit: leaving]
asarch has quit [Quit: Leaving]
mooshmoosh has quit [Read error: Connection reset by peer]
mooshmoosh has joined #lisp
kushal has quit [Ping timeout: 256 seconds]
kushal has joined #lisp
juki has joined #lisp
andrei-n has joined #lisp
gxt has joined #lisp
bgardner has quit [Ping timeout: 255 seconds]
bgardner has joined #lisp
scymtym has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
schweers has joined #lisp
brundleticks has quit [Ping timeout: 268 seconds]
pierpal has joined #lisp
pierpal has quit [Ping timeout: 248 seconds]
Arcaelyx has quit [Ping timeout: 250 seconds]
bgardner has quit [Ping timeout: 245 seconds]
bgardner has joined #lisp
campy_fellow has quit [Read error: Connection reset by peer]
campy_fellow has joined #lisp
marusich has quit [Remote host closed the connection]
dmiles has quit [Ping timeout: 252 seconds]
fivo has joined #lisp
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
pankajgodbole has quit [Ping timeout: 245 seconds]
smokeink has quit [Remote host closed the connection]
smokeink has joined #lisp
kajo has joined #lisp
libertyprime has quit [Ping timeout: 248 seconds]
libertyprime has joined #lisp
<shka_> good morning
<Nomenclatura> good night
<shka_> how to call a function that substitutes multiple elements in the sequence according to the mapping provided as the hash-table
<shka_> ?
libertyprime has quit [Ping timeout: 248 seconds]
<shka_> substitute-multiple? translate?
libertyprime has joined #lisp
Nomenclatura has quit [Quit: q]
varjag has joined #lisp
<beach> Hello shka_.
<shka_> beach: hi, i hope you day is going well!
dddddd has joined #lisp
<makomo> shka_: i was going to say translate is too general, but iirc python has something similar and it's also named translate, right?
longshi has joined #lisp
<makomo> but i think it works specifically on strings
<TMA> shka_: generally this is called MAP, but that's taken. map-with-hashtable?
<shka_> yeah, but python is not benchmark on quality of anything
<makomo> shka_: lol yeah
mooshmoosh has quit [Ping timeout: 268 seconds]
<shka_> TMA: funny, clojure maps are actually funcallable
mooshmoosh has joined #lisp
juki has left #lisp ["ERC (IRC client for Emacs 26.1)"]
<TMA> shka_: I know. that's whence the inspiration
<shka_> so if that's how it would be in CL, it would turn into (mapcar hash-table source)
<shka_> i didn't thought about that, thanks
<beach> shka_: Yes, very well so far, thank you. It's a holiday here, so no distractions.
karlosz has quit [Quit: karlosz]
v88m has quit [Read error: Connection reset by peer]
v88m has joined #lisp
libertyprime has quit [Ping timeout: 268 seconds]
mingus has quit [Read error: Connection reset by peer]
Folkol_ has joined #lisp
lumm has joined #lisp
mingus has joined #lisp
lumm_ has joined #lisp
lumm has quit [Ping timeout: 258 seconds]
lumm_ is now known as lumm
longshi has quit [Ping timeout: 248 seconds]
lumm_ has joined #lisp
lumm has quit [Ping timeout: 250 seconds]
lumm_ is now known as lumm
lumm has quit [Ping timeout: 248 seconds]
Folkol has quit [Read error: Connection reset by peer]
Folkol has joined #lisp
lumm has joined #lisp
lumm has quit [Client Quit]
lumm has joined #lisp
ricekrispie2 has joined #lisp
ricekrispie has quit [Ping timeout: 258 seconds]
lumm has quit [Ping timeout: 246 seconds]
libertyprime has joined #lisp
esrse has joined #lisp
hhdave has joined #lisp
pierpal has joined #lisp
lumm has joined #lisp
pierpal has quit [Ping timeout: 245 seconds]
<jackdaniel> s/mapcar/map seqtype/
<pjb> shka_: (lambda (sequence table) (map 'vector (lambda (key) (gethash key table)) sequence))
<pjb> shka_: ((lambda (sequence table) (map 'vector (lambda (key) (gethash key table)) sequence)) '(:one :two :three) (hashtable :elements '((:one 1) (:two 2) (:three 3)))) #| --> #(1 2 3) |#
<no-defun-allowed> jackdaniel: hey, are you particularly busy now? would you mind if I PM you about something?
pierpal has joined #lisp
<jackdaniel> I don't mind, go ahead ;)
<shka_> pjb: what?
cosimone has joined #lisp
ebrasca has quit [Remote host closed the connection]
_whitelogger has joined #lisp
kajo2 has joined #lisp
kajo has quit [Ping timeout: 248 seconds]
dmiles has joined #lisp
oni-on-ion has quit [Ping timeout: 250 seconds]
josemanuel has joined #lisp
sz0 has joined #lisp
nowhereman has joined #lisp
<pjb> shka_: you asked for the name of a function that substitutes multiple elements in the sequence according to the mapping provided as the hash-table. A lambda expression is the "name" of a(n anonymous) function!
<shka_> pjb: not very practical
<phoe> pjb: if he wants to call a function, I most likely think he wants to assign a name to it
<phoe> assigning no name is not an option in that case
<shka_> duh
<phoe> shka_: I'd suggest substitute-by-hash-table
<phoe> it is equivalent to cl:substitute but the newitem and olditem, or newitem and predicate, are replaced by a hashtable mapping
<jackdaniel> (defgeneric translate (sentence dictionary)) and specialize on sequence/hashtable
hvxgr has quit [Ping timeout: 245 seconds]
<phoe> ...or what jackdaniel suggested
<shka_> yeah, i named it translation
<pjb> You can still call it map, but make it a generic function that accepts hash-tables as well as a-lists or functions.
<pjb> (defgeneric gmap (result-type mapper sequence) (:method (result-type (mapper hash-table) sequence) (gmap result-type (lambda (key) (gethash key mapper)) sequence))) …
milanj has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
hvxgr has joined #lisp
esrse has quit [Ping timeout: 252 seconds]
brundleticks has joined #lisp
nowhereman has quit [Ping timeout: 246 seconds]
Folkol_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nowhereman has joined #lisp
orivej has joined #lisp
ggole has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
lumm has quit [Ping timeout: 245 seconds]
Folkol_ has joined #lisp
lumm has joined #lisp
mooshmoosh has quit [Ping timeout: 248 seconds]
josemanuel has quit [Quit: leaving]
mooshmoosh has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
lumm has quit [Quit: lumm]
lumm has joined #lisp
Bike has joined #lisp
orivej has quit [Ping timeout: 255 seconds]
kajo2 is now known as kajo
scymtym has quit [Ping timeout: 248 seconds]
<dim> `echo foo | tr o e` prints fee in unix, so I guess translate is pretty usual for such a processing
jmercouris has joined #lisp
mhinz has joined #lisp
rwlisp has joined #lisp
mooshmoosh has quit [Ping timeout: 248 seconds]
mooshmoosh has joined #lisp
jmercouris has quit [Remote host closed the connection]
LiamH has joined #lisp
pfdietz has joined #lisp
amerlyq has joined #lisp
asdf_asdf_asdf has joined #lisp
libertyprime has quit [Ping timeout: 252 seconds]
orivej has joined #lisp
saravia has joined #lisp
saravia has quit [Remote host closed the connection]
orivej_ has joined #lisp
saravia has joined #lisp
orivej has quit [Read error: Connection reset by peer]
<pfdietz> Does this concept have a name: a macro in which, for any macro form for that macro, every subform of the form appears in the macroexpansion of the macro form.
<pfdietz> Many common macros have this property (and the stronger property that each subform occurs exactly once in the expansion).
igemnace has quit [Quit: WeeChat 2.4]
<beach> I think you need to invent a name for it.
<Bike> i don't know of any name
orivej_ has quit [Read error: Connection reset by peer]
<shka_> pfdietz: could you show example of such macro?
<shka_> please
orivej has joined #lisp
<TMA> pfdietz: in languge theory those are noncontracting grammars
<beach> shka_: WHEN?
<shka_> i guess?
<beach> shka_: (when form1 form2 ... formn) turns into (if form1 (progn form2 .. formn) nil).
<shka_> obviously
<beach> shka_: So every subform (i.e., form1 ... formn) appears in the expansion.
<shka_> and just once, yes
<beach> Yes.
lucasb has joined #lisp
<jackdaniel> I'm not sure if I read Q/A or an affirmation sequence ;-)
<Bike> also and, or, multiple-value-list, prog2, return, nth-value (maybe), unless, with-condition-restarts, with-package-iterator, lambda
<shka_> yeah, now i can understand what pfdietz ment
<Bike> looking at standard macros
<Bike> oh not with-package-iterator actually.
otwieracz has quit [Ping timeout: 264 seconds]
otwieracz has joined #lisp
wxie has joined #lisp
<TMA> also not: let, flet, labels, do
smokeink has quit [Read error: Connection reset by peer]
<Bike> some of those are special operators, but yeah
selwyn has joined #lisp
Inline has joined #lisp
orivej_ has joined #lisp
LiamH has quit [Read error: Connection reset by peer]
shifty has joined #lisp
orivej has quit [Ping timeout: 255 seconds]
LiamH has joined #lisp
TheWild has quit [Quit: TheWild]
orivej_ has quit [Remote host closed the connection]
orivej has joined #lisp
<pfdietz> with-package-iterator can be implemented to have that property.
<Bike> i'm pretty sure its first form would have to be pulled apart.
<pfdietz> (name package-list-form &rest symbol-types) ? That's not a form.
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.1)]
<Bike> well, sexp, whatever. so it's okay to pull those apart?
Josh_2 has joined #lisp
<pfdietz> Yes. I am concerned with forms as defined in the standard: "1. any object meant to be evaluated."
<pfdietz> The use case here is walking over code, and have traceability back to the original code. If the macros satisfy that property then every subform of the original code will eventually be recognizable during code walking/macroexpansion.
<Bike> well, that covers almost all macros i think, then
<Bike> not setf
<Bike> i guess the place isn't a form
<pfdietz> Right
saravia_ has joined #lisp
selwyn has quit [Ping timeout: 258 seconds]
saravia has quit [Ping timeout: 248 seconds]
<pfdietz> Well, actually it is defined to be a form, but for my purpose here it's not.
<pfdietz> If there were places with control flow then I'd have to reconsider. (setf (if x y z) 'foo)
rippa has joined #lisp
Josh_2 has quit [Read error: Connection reset by peer]
<pfdietz> (I think)
Josh_2 has joined #lisp
<Bike> oh, places are forms. that's news to me
<Bike> in that case it kind of is an issue
<Bike> like on sbcl (setf (car x) y) => (sb-kernel:%rplaca x y), (car x) is gone
anewuser has joined #lisp
jsjolen has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
<Bike> also, even if the access-form of the expansion is used, there's a good chance it uses gensyms and stuff instead of the original place
asdf_asdf_asdf has quit [Ping timeout: 252 seconds]
saravia_ has quit [Ping timeout: 252 seconds]
lumm has quit [Ping timeout: 246 seconds]
saravia has joined #lisp
wxie has quit [Quit: wxie]
saravia has quit [Ping timeout: 258 seconds]
saravia has joined #lisp
sjl_ has joined #lisp
saravia_ has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
saravia has quit [Read error: Connection reset by peer]
mindCrime has joined #lisp
moldybits has quit [Read error: Connection reset by peer]
maxxcan has joined #lisp
moei has joined #lisp
hhdave has quit [Ping timeout: 246 seconds]
hhdave has joined #lisp
asdf_asdf_asdf has joined #lisp
zotan has quit [Ping timeout: 248 seconds]
dyelar has joined #lisp
dyelar has quit [Client Quit]
quazimodo has quit [Ping timeout: 248 seconds]
zotan has joined #lisp
Folkol has quit [Read error: Connection reset by peer]
jsjolen has quit [Ping timeout: 248 seconds]
Folkol has joined #lisp
anewuser has quit [Ping timeout: 248 seconds]
ggole has quit [Quit: Leaving]
milanj has quit [Quit: This computer has gone to sleep]
notzmv has quit [Ping timeout: 255 seconds]
notzmv has joined #lisp
manualcrank has joined #lisp
anewuser has joined #lisp
moldybits has joined #lisp
Arcaelyx has joined #lisp
anewuser has quit [Ping timeout: 255 seconds]
nullman` has joined #lisp
cage_ has joined #lisp
FreeBirdLjj has joined #lisp
maxxcan has quit [Quit: maxxcan]
anewuser has joined #lisp
anewuser has quit [Read error: Connection reset by peer]
<pfdietz> Right. Morally, I don't think of the places as forms, since they aren't being evaluated. I'm interested in things that, if control flow reached that point, would be evaluated.
campy_fellow has quit [Ping timeout: 255 seconds]
maxxcan has joined #lisp
maxxcan has quit [Read error: Connection reset by peer]
anewuser has joined #lisp
idlus has quit [Remote host closed the connection]
idlus has joined #lisp
lumm has joined #lisp
campy_fellow has joined #lisp
anewuser has quit [Read error: Connection reset by peer]
campy_fellow has quit [Client Quit]
longshi has joined #lisp
campy_fellow has joined #lisp
JohnMS_WORK has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
anewuser has joined #lisp
anamorphic has joined #lisp
jkordani has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
anamorphic has quit [Client Quit]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
anewuser has quit [Ping timeout: 250 seconds]
schweers has quit [Ping timeout: 248 seconds]
fivo has quit [Quit: WeeChat 1.9.1]
schjetne has quit [Ping timeout: 252 seconds]
saravia_ has quit [Remote host closed the connection]
Lord_of_Life has joined #lisp
<dim> phoe: hi! BTW if you want to help with the lisp side of pgloader and some intricate/advanced bugs I don't know how to handle, have a look at https://github.com/dimitri/pgloader/issues/962
anamorphic has joined #lisp
SenasOzys has joined #lisp
Lord_of_Life has quit [Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine]
Lord_of_Life has joined #lisp
campy_fellow has quit [Ping timeout: 248 seconds]
campy_fellow has joined #lisp
Folkol_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
hhdave has quit [Ping timeout: 248 seconds]
corvidzz has quit [Ping timeout: 246 seconds]
terpri has quit [Remote host closed the connection]
v88m has quit [Read error: Connection reset by peer]
dan64 has quit [Ping timeout: 245 seconds]
v88m has joined #lisp
oni-on-ion has joined #lisp
dan64 has joined #lisp
orivej has joined #lisp
gxt has quit [Ping timeout: 255 seconds]
anamorphic has quit [Quit: anamorphic]
jcob has joined #lisp
igemnace has joined #lisp
<jcob> Hey I have a quick q: I'm trying to write a junit test runner in abcl, but when I do this: http://ix.io/1Iqf it gives me an error: http://ix.io/1Iqh
<jcob> despite the fact that the jars are actually downloaded correctly
<jcob> has anyone had this problem and if so have they resolved it? thanks
<jcob> Actually this is what causes the error: http://ix.io/1Iqg
<Xach> Wish I could help but I don't use abcl or java, sorry.
<Bike> me neither, but that filename looks kind of messed up?
<jcob> anyone else? I know a guy who goes by defunkydrummer on reddit who uses abcl sometimes
nowhereman has quit [Ping timeout: 245 seconds]
<jcob> Yeah I'm guessing that it only wants one filename rather than like ten million seperated by colons? Idk
FreeBirdLjj has quit [Remote host closed the connection]
<Bike> i would think so
<Bike> no idea where that's coming from, though
FreeBirdLjj has joined #lisp
<jcob> Ok i have a simpler question then. Whats the fast way to concatenate strings in a loop in lisp
<jcob> (in common lisp)
FreeBirdLjj has quit [Ping timeout: 248 seconds]
dieggsy has quit [Remote host closed the connection]
<Bike> i don't know what kind of loop you have in mind, but (concatenate 'string "hello" " " "world") => "hello world"
longshi has quit [Ping timeout: 252 seconds]
<jcob> Alright I suppose I'll do it that way. I just mean sometimes languages have faster ways of concatenating strings bc concatenating arrays of chars is kinda aweful runtime wise
<jcob> (in a loop)
<Bike> it is, but i'm not sure what you have in mind, since a string is an array of characters
<jcob> Well you know maybe if there was something like a StringBuilder or a gap buffer or some such to shove the strings in temporarily
<jcob> before constructing the final array
<sjl_> clhs with-output-to-string
<Bike> oh, you could use a string stream if you want.
<Bike> i have no idea whether that's faster, though.
<jcob> oh ok nice :)
<sjl_> so, looking at that second paste, that looks like a classpath, not a filename
<jcob> yeah :( I got that example from the abcl manual but obvs it doesnt work
<sjl_> but I think java:add-to-classpath wants a single jar path, at least from reading the docs
<sjl_> it's possible the abcl manual is out of date
<sjl_> (java:add-to-classpath (abcl-asdf:as-classpath (abcl-asdf:resolve ...)))
<jcob> oh really! thats great thank you!
<sjl_> though maybe that won't work either, I'm not sure
<sjl_> If not, what you'll probably want to do is split the classpath on : and pass the things one-by-one to java:add-to-classpath
<jcob> well it doesn't error so :P
<sjl_> which would be something like: (ql:quickload :split-sequence) (map nil #'java:add-to-classpath (split-sequence:split-sequence #\: "foo:bar:baz"))
<sjl_> Not signaling an error is a good sign.
orivej has quit [Ping timeout: 248 seconds]
hiroaki has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
rsch has quit [Quit: leaving]
pfdietz has quit [Quit: Page closed]
gxt has joined #lisp
oni-on-ion has quit [Remote host closed the connection]
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
asdf_asdf_asdf has quit [Ping timeout: 245 seconds]
lumm has quit [Remote host closed the connection]
slyrus_ has quit [Remote host closed the connection]
slyrus_ has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
lumm has joined #lisp
asdf_asdf_asdf has joined #lisp
lumm has quit [Remote host closed the connection]
anamorphic has joined #lisp
dyelar has joined #lisp
dyelar has quit [Client Quit]
pierpal has joined #lisp
gjvc has joined #lisp
lumm has joined #lisp
nowhereman has joined #lisp
anamorphic has quit [Quit: anamorphic]
<gjvc> hello, i would like to define a function with both &key parameters and a variable number of other arguments without putting them in a list but I keep bumping into "odd number of &KEY arguments"
<Bike> yeah, if you have &key then all &rest arguments have to be keyword arguments.
<Bike> cos otherwise it's not obvious when the keyword arguments start.
<gjvc> right, so i tried this instead
<gjvc> (defun fix-message (&rest fields &key version message-type-name) t)
<Bike> sure, that's fine (though the variables are unused and the compiler will probably complain about that)
<gjvc> ok
<Bike> did you hit any problems with it?
<gjvc> well, that was when i bumped into "odd number of &KEY arguments"
* gjvc goes back to the repl for a bit
<gjvc> hang on...
sauvin has quit [Ping timeout: 246 seconds]
lumm has quit [Quit: lumm]
<gjvc> yes, that's when i git the problem
<gjvc> hit
lumm has joined #lisp
<Bike> What did you do, specifically, that resulted in that error.
<gjvc> making a pastebin
makomo has quit [Quit: WeeChat 2.4]
<aeth> gjvc: What are you trying to do with your API? Perhaps there's an idiomatic solution
terpri has joined #lisp
<Bike> uh, yeah. you pass fix-message a bunch more arguments, those fix-field calls.
<Bike> what did you expect that to do?
<gjvc> the results of those should appear in &rest
<gjvc> right?
<Bike> No, I told you, if you specify &key the entire rest list must be keyword arguments.
<gjvc> oh
<Bike> You can't have keyword arguments and then other stuff.
<Bike> The system has no way to know where the keywords stop.
<gjvc> can i put the keyword arguments at the end ?
<Bike> If you have &key, the entire rest list must be keyword arguments.
<gjvc> i seeee
nowhere_man has joined #lisp
<gjvc> i think i'll just add a :fix-fields keyword then
nowhereman has quit [Ping timeout: 245 seconds]
<Bike> that should work, though you'll have to explicitly make a list of course (like (list (fix-field ...) ...))
<gjvc> yes, trying that now.
Lord_of_Life has quit [Ping timeout: 248 seconds]
Zaab1t has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
<aeth> You could also use a macro to indirectly create the list, but that would really just be going from "(foo bar) :baz 42" to "(list foo bar) :baz 42" anyway. You'd still need the extra parens.
<gjvc> oh well, i thought it was too good to be true when i transformed this from the original XML :-)
<aeth> Although actually with a macro you could just put the *keys* in a list instead. Like (defmacro ((&key foo bar baz) &rest rest) ...)
longshi has joined #lisp
<aeth> s/defmacro/defmacro foobar/
<aeth> Never code outside of an IDE. :-)
<gjvc> i'm using slime
* gjvc == lisp beginner
<aeth> Yeah, I mean I wasn't using SLIME so I wrote my defmacro incorrectly.
<gjvc> it's working out pretty well so far, but i haven't had cause write macros yet
<gjvc> can you guys present recommend a good library for reading xml (along with decent examples) ?
<aeth> gjvc: Basically, if you really wanted to have a &rest with a bunch of keywords, it can be done in a macro because a macro can essentially nest lambda lists in lambda lists so normally a &key is the end, but you can just turn that into its own list
<aeth> like this: (defmacro foobar ((&key foo bar baz) &rest rest) `(values ,foo ,bar ,baz (progn ,@rest))) (foobar (:bar 42 :foo 43 :baz 44) 45)
<aeth> I wouldn't recommend it if you can avoid it, though. It adds a lot of complexity. Especially for a beginner.
<gjvc> agree, this data was originally xml, and this is a bit yak-shavy
<Bike> i think cxml is the usual library
<gjvc> thanks Bike -- i'll give it another go
<gjvc> lisp is not as scary as i thought it would be! :-)
cage_ has quit [Remote host closed the connection]
cyberoctopi has joined #lisp
mindCrime has quit [Ping timeout: 255 seconds]
mindCrime has joined #lisp
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 246 seconds]
anamorphic has joined #lisp
vlatkoB has quit [Remote host closed the connection]
<alandipert> does anyone know where i might find more information about why EQUAL is not generic? i know this was considered (http://clhs.lisp.se/Issues/iss143_w.htm) but i haven't found any more context anywhere. thanks in advance for pointers
<dlowe> alandipert: http://www.nhplace.com/kent/PS/EQUAL.html has some answers
orivej has joined #lisp
anamorphic has quit [Quit: anamorphic]
anamorphic has joined #lisp
<davve> what is a good thumb rule for testing equality?
<Josh_2> Personally I use = for numbers char=/string= for chars and strings and equal for everything else
<alandipert> dlowe thank you, this looks great
elazul has joined #lisp
idlus has quit [Ping timeout: 256 seconds]
<aeth> gjvc: if you want to see scary Common Lisp, then look up reader macros.
<gjvc> chapter 4 of LoL :-)
<aeth> An example of reader macros in action, but of course there's no requirement to use parentheses around the reader macro which makes things look clean: https://gitlab.com/mbabich/cl-brainfuck/blob/master/brainfuck-examples.lisp
<aeth> Just suddenly your reader sees +++++++++[>++++++++<-]>.<+++[>++++++++<-]>+++++.+++++++..+++.>++++[>++++++++<-]>.<<<+++[>--------<-]>.<+++[>++++++++<-]>.+++.------.--------.>>+.<++++++++++. and says "yeah, sure, that looks like normal Common Lisp to me"
<gjvc> brainfuck just angers me :-)
xkapastel has joined #lisp
<aeth> The general idea around reader macros is to not use them because, obviously, your tools will probably break around them.
Arcaelyx has quit [Quit: Textual IRC Client: www.textualapp.com]
varjag has joined #lisp
elazul has quit [Ping timeout: 250 seconds]
<aeth> I've seen some #h(:foo 42 :bar 43) hash table syntax, for instance, but that doesn't seem to be better than a regular macro (hash :foo 42 :bar 43) and the latter will indent properly
kajo has quit [Ping timeout: 252 seconds]
Zaab1t has quit [Quit: bye bye friends]
<gjvc> i heard baggers mention them on his little bits of lisp podcast
Arcaelyx has joined #lisp
dyelar has joined #lisp
dyelar has left #lisp [#lisp]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
Lord_of_Life has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
Lord_of_Life_ has joined #lisp
slyrus__ has joined #lisp
Lord_of_Life has quit [Ping timeout: 255 seconds]
equwal has quit [Ping timeout: 250 seconds]
anamorphic_ has joined #lisp
vibs29 has quit [Ping timeout: 250 seconds]
zcid- has joined #lisp
Mayoi has joined #lisp
Grue` has quit [Ping timeout: 250 seconds]
froggey has quit [Ping timeout: 250 seconds]
MetaYan has quit [Ping timeout: 250 seconds]
vibs29 has joined #lisp
whartung_ has joined #lisp
<sjl_> davve: http://www.nhplace.com/kent/PS/EQUAL.html is worth a read if you haven't seen it yet
anamorphic has quit [Ping timeout: 250 seconds]
slyrus_ has quit [Ping timeout: 250 seconds]
anamorphic_ is now known as anamorphic
aeth has quit [Ping timeout: 250 seconds]
whartung has quit [Ping timeout: 250 seconds]
cranes has quit [Ping timeout: 250 seconds]
cpape has quit [Ping timeout: 250 seconds]
zcid has quit [Ping timeout: 250 seconds]
whartung_ is now known as whartung
erkin has quit [Ping timeout: 250 seconds]
zcid- is now known as zcid
<sjl_> (though it's a bit longer than a "rule of thumb")
joast has quit [Ping timeout: 250 seconds]
adolby has quit [Ping timeout: 250 seconds]
svillemot has quit [Ping timeout: 250 seconds]
loke` has quit [Ping timeout: 250 seconds]
AdmiralBumbleBee has quit [Ping timeout: 250 seconds]
<davve> sjl_: thanks, I tried but got paranthesis anxiety
adolby has joined #lisp
aeth has joined #lisp
elderK has joined #lisp
MetaYan has joined #lisp
<davve> was not expecting lisp to be so fussy about equality :)
<davve> i read somewhere that equal for symbols and eq for everything else
<Xach> davve: that is bad.
<aeth> Never use EQ.
<grewal> davve: you got those two backwards
Lord_of_Life_ has quit [Ping timeout: 258 seconds]
<jackdaniel> *sometimes* use EQ ;-)
<davve> oh.. good thing i asked then
<davve> thanks #lisp
amerlyq has quit [Quit: amerlyq]
<aeth> jackdaniel: "never" means "unless you know what you're doing"
<aeth> Well, you know what I meant. That line is a bit invalid still
anamorphic has quit [Quit: anamorphic]
froggey has joined #lisp
<jackdaniel> I don't like the rules "never do something". while people who sayi them originally usually mean what you've said "unless you know what you are doing", recipents often take that at face value and start a religion
<jackdaniel> point in case: goto statement
cranes has joined #lisp
<sjl_> CLR's rule of thumb is: https://i.imgur.com/pgcXrre.png
<jackdaniel> I wonder how much very bad code has been written to avoid goto?
Mayoi is now known as erkin
<sjl_> And there's a couple more pages after that going over the details. The book is worth picking up.
<edgar-rft> in case of aeth "never" and "unless you know what you're doing" might be the same
<davve> it's all about moderation.. sensible programmers wouldn't oppose goto by itself I think
anamorphic has joined #lisp
Lord_of_Life has joined #lisp
AdmiralBumbleBee has joined #lisp
<davve> it's usually those starting out that get told, like you say
<davve> I'm struggling to think of ways I'd want to use them... I've seen them used to do cleanup when something goes wrong which was pretty neat
<davve> (C code)
kajo has joined #lisp
<grewal> davve: That's the biggest use case, since C doesn't have exceptions. A switch statement is a disguised goto. All looping constructs are essentially translated into gotos, but you really shouldn't be using goto in those situations
* jackdaniel could think of a few other valid use cases, but C is offtopic on this channel - I've provided it as an illustration of "why you should never say never"
<grewal> But this also applies to lisp: avoid using tagbody if there's a higher level abstraction available
<grewal> But if it'll get the job done in the cleanest way, use it
<davve> cool
<edgar-rft> tagbody was introduced to simplify the translation of Fortan code, it's not recommended to use it for anything else.
Lord_of_Life has quit [Ping timeout: 245 seconds]
<jackdaniel> and progn to simplify writing algol-like code ,-)
<jackdaniel> good night
<davve> sleep well
<edgar-rft> hmm, in Lisp everything is inside a progn :-(
idlus has joined #lisp
joast has joined #lisp
Lord_of_Life has joined #lisp
<Xach> You can use things for something other than their intended purpose if they work well.
<davve> are they useful? i've only seen them used with ifs
<aeth> tagbody is a good macro target and is usually used in e.g. the implementation of the DO macro
<aeth> Don't ignore structured programming, but make your own structured programming.
<davve> if you want to do something before returning, in a function?
<aeth> progn is useful in any place without an implicit progn, e.g. unwind-protect's first form (arguably they got that one backwards and the part that should have the implicit progn doesn't and the part that doesn't really need it as often does
<aeth> )
<davve> you lost me in the second part, but i take your point :)
Lord_of_Life has quit [Ping timeout: 246 seconds]
<davve> seems if should have implicit progns
<davve> I wonder why it's not
<grewal> There's when and unless
<davve> those are nicer
<davve> imo!
<davve> ah you mean they have implicit progns ?
<grewal> yes
<gjvc> what is "progn" short for ?
Lord_of_Life has joined #lisp
<Bike> "return the values from the PROGram form numbered N as in conventional algebraic terminologoy"
<edgar-rft> compare progn to prog1 and prog2 and you'll instantly undstand
<gjvc> will look -- thank you
<sjl_> (prog1 f1 f2 ... fn) returns f1. (prog2 f1 f2 ... fn) returns f2. (progn f1 f2 ... fn) returns fn.
<sjl_> (minus the bug in the spec)
anamorphic has quit [Quit: anamorphic]
<grewal> Please Return Objects Given by Nth form
mindCrime has quit [Ping timeout: 246 seconds]
rdh has joined #lisp
jealousmonk has joined #lisp
<moldybits> what bug?
longshi has quit [Quit: WeeChat 2.4]
<Bike> the spec for prog2 says it shoud return the first form.
<Bike> clhs prog2
<moldybits> ah. i wish they were named prog0 prog1, to be honest.
<rdh> hello, if i am using (run-program ...) how the heck do i get the output stream to a variable to evaluate it?
<rdh> (just started learning lisp)
<sjl_> rdh: which run-program? UIOP's? SBCL's?
<rdh> sjl_, clisp, it's packaged with Ubuntu
idlus has quit [Ping timeout: 256 seconds]
<Xach> rdh: I don't know offhand, but the clisp "implementation notes" have a ton of reference material and that's where I'd look to find out.
<sjl_> it says if you do (run-program ... :output :stream) it'll return a stream
<rdh> sjl_, thanks
idlus has joined #lisp
<sjl_> I don't use clisp but something like (loop :with s = (ext:run-program "ls" :output :stream) :for line = (read-line s nil) :while line :collect line) might help you
<rdh> OK so then... (read (run-program "whoami" :output :stream))
<sjl_> probably not (read), because that's the function that you use to read Lisp forms
<rdh> but it reads it as all uppercase, is there another function that allows me to read the stream like it should be?
<rdh> sjl_, ok.
<sjl_> and most unix tools don't output serialized lisp forms
<sjl_> if you want a line, (read-line) will work
<rdh> sjl_, hmmmm ok.
<sjl_> if you want to just read ALL the data, annoyingly there's nothing built in
<sjl_> unless I've forgotten something
longshi has joined #lisp
<sjl_> there's the extravagantly-named alexandria:read-stream-content-into-string though
<rdh> sjl_, lol ok, (setf user-name (read-line(run-program "whoami" :output :stream))) does what i was trying to do
<Xach> yay!
<sjl_> yeah, if it's just one line that's all you need
<rdh> wow... i think lisp is gonna be my new fav language
<Xach> it's my old favorite language! (it is old)
<sjl_> but is it your favorite old language
<Xach> it really is. never got into fortran.
<edgar-rft> Fortran is too old for us.
dacoda has joined #lisp
idlus has quit [Ping timeout: 256 seconds]
idlus has joined #lisp
oni-on-ion has joined #lisp
orivej has joined #lisp
jealousmonk has quit [Quit: Leaving]
idlus has quit [Ping timeout: 256 seconds]
campy_fellow has quit [Ping timeout: 255 seconds]
mindCrime_ has joined #lisp
campy_fellow has joined #lisp
LiamH has quit [Quit: Leaving.]
charh has quit [Ping timeout: 245 seconds]
idlus has joined #lisp
andrei-n has quit [Remote host closed the connection]
charh has joined #lisp
charh_ has joined #lisp
nowhere_man has quit [Ping timeout: 248 seconds]
charh has quit [Ping timeout: 255 seconds]
asdf_asdf_asdf has quit [Remote host closed the connection]
charh_ has quit [Ping timeout: 252 seconds]
varjag has quit [Ping timeout: 258 seconds]
asdf_asdf_asdf has joined #lisp
longshi has quit [Ping timeout: 257 seconds]
python476 has joined #lisp
sjl_ has quit [Quit: WeeChat 2.3-dev]
idlus has quit [Ping timeout: 256 seconds]
lumm has quit [Quit: lumm]
idlus has joined #lisp
<phoe> dim: acknowledged, will look
<dim> thanks! it's related to SBCL Garbage Collector, I think there are two ways to look at it, either we need to improve memory profile (consing) of pgloader or talk with SBCL guys and provide enough information for them to help us (either again reduce consing, or maybe with improving SBCL's GC)
<dim> typical CCL run-time profile is stable at ~400MB of memory used
<dim> anyway, my attempts at profiling the consing properties of pgloader, or optimizing (lowering) the memory usage/pressure, have led to nowhere
<dim> phoe: also you wanted to help fix the Travis builds, it badly needs a more recent SBCL version, you can hack at https://github.com/dimitri/pgloader/blob/master/.travis.sh#L18 to make that happen ;-)
nullman` has quit [Ping timeout: 252 seconds]
idlus_ has joined #lisp
<dim> well I'm going to try that myself actually
<phoe> dim: the version seems to be easily changeable
moei has quit [Quit: Leaving...]
python476 has quit [Ping timeout: 268 seconds]
idlus has quit [Ping timeout: 256 seconds]
<dim> easy enough yeah, once I figured I needed to run shasum --algorithm 256 ~/Downloads/sbcl-1.5.2-source.tar.bz2 (and get dac6aef3ec7628c284a31f2222ede5d47d9d94f9cfdffe0f00ef40f9531e3c3f) to obtain the checksum
PuercoPop has left #lisp ["Killed buffer"]
Folkol has quit [Read error: Connection reset by peer]
idlus_ has quit [Ping timeout: 256 seconds]
Folkol has joined #lisp
<phoe> dim: well then, run it (;
<dim> yeah it's failing
idlus_ has joined #lisp
<dim> shasum: WARNING: 1 computed checksum did NOT match
Jesin has quit [Quit: Leaving]
<dim> ahah
<dim> I downloaded and computed the checksum of the sbcl-1.5.2-source.tar.bz2
<dim> Unable to save compressed core: this runtime was not built with zlib support
<dim> ok I'm quite fed up with the whole Travis situation anyways
libertyprime has joined #lisp
wxie has joined #lisp
idlus_ has quit [Ping timeout: 256 seconds]
nowhere_man has joined #lisp
Bike_ has joined #lisp
ltriant has joined #lisp
Jesin has joined #lisp
asdf_asdf_asdf has quit [Remote host closed the connection]
Bike has quit [Disconnected by services]
Bike_ is now known as Bike
<phoe> wait a second
corvidzz has joined #lisp
<phoe> you are downloading SBCL sources?...
<phoe> and not binaries?
<phoe> are you building SBCL on each and every Travis run?
Demosthenex has quit [Ping timeout: 246 seconds]
idlus_ has joined #lisp
cdegroot has joined #lisp
idlus_ has quit [Ping timeout: 256 seconds]
<t58> What's up with quicklisp.org? it occasionally shows up as a malicious website
mindCrime_ has quit [Ping timeout: 258 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 248 seconds]
Lord_of_Life_ is now known as Lord_of_Life
Kundry_Wag has joined #lisp
cyberoctopi has quit [Ping timeout: 246 seconds]
Kundry_Wag has quit [Ping timeout: 255 seconds]
wxie has quit [Quit: wxie]
igemnace has quit [Quit: WeeChat 2.4]
karlosz has joined #lisp
idlus_ has joined #lisp
t58 has quit [Quit: Night.]
karlosz has quit [Quit: karlosz]
idlus_ has quit [Ping timeout: 256 seconds]