<republican_devil> xach what do youuse for lisp powered websites?
notzmv has joined #lisp
red-dot has joined #lisp
<jmercouris> republican_devil: I don't know what Xach uses, but Shinmera has a framework called radiance, is quite nice
<jmercouris> republican_devil: https://shirakumo.github.io/radiance-homepage/
Kaisyu has joined #lisp
<phoe_> I tried lucerne, it's pretty okay as well.
jmercouris has quit [Ping timeout: 276 seconds]
<Xach> gavino hasn't been here in a while
turkja has joined #lisp
__sigjuice has joined #lisp
__sigjuice has left #lisp [#lisp]
moei has quit [Quit: Leaving...]
kjak has quit [Quit: leaving]
<drmeister> Is there a way to control what C compiler asdf uses?
<drmeister> I believe that ASDF is using the system clang compiler and I need it to use a different clang compiler
astronav_ has joined #lisp
<drmeister> ASDF does compile C source - correct? I see the pzmq library generates a grovel__grovel.c file - that is compiled somehow to a .o file.
astronavt has quit [Ping timeout: 250 seconds]
<jfe> drmeister: unfortunately i'm an amateur on asdf. but i had a question for you. the other day i asked why compilers aren't more frequently written in high-level languages like lisp. if i understand correctly, you wrote the clasp compiler in c++. why did you choose c++ instead of lisp?
astronav_ is now known as astronavt
jibanes has quit [Ping timeout: 240 seconds]
SuperJen has joined #lisp
jibanes has joined #lisp
lagagain has joined #lisp
<drmeister> jfe: I did not write the clasp compiler in C++. Clasp has one interpreter written in C++ and two compilers written in Common Lisp.
JenElizabeth has quit [Ping timeout: 248 seconds]
terpri has quit [Ping timeout: 276 seconds]
momofarm has joined #lisp
shka has quit [Read error: Connection reset by peer]
<jfe> drmeister: ah, i see. i listened to your presentation of clasp at google and must have misheard. thanks.
shka has joined #lisp
<Fade> jfe: symbolics wrote a very advanced C compiler in common lisp.
<drmeister> Clasp interoperates with C++ (links with C++ libraries and C++ calls interleave with CL calls).
EvW has quit [Ping timeout: 240 seconds]
<Xach> drmeister: asdf does not compile c source.
<Xach> drmeister: cffi includes a part for asdf that compiles c source
<Xach> drmeister: config-wise, i think you would start with cffi's grovel mechanism
<drmeister> Thank you - I'm digging into it.
<drmeister> Something associated with groveling C code is generating malformed llvm-IR
k-stz has quit [Remote host closed the connection]
<Xach> boo
lisp_guest has quit [Ping timeout: 250 seconds]
pierpa has quit [Quit: Page closed]
Kundry_Wag has quit [Remote host closed the connection]
Arcaelyx has quit [Ping timeout: 255 seconds]
Arcaelyx_ has joined #lisp
rumbler31 has joined #lisp
SuperJen has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
SuperJen has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
moei has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Ping timeout: 255 seconds]
wigust_ has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 268 seconds]
orivej has quit [Ping timeout: 260 seconds]
wooden has joined #lisp
yeticry has joined #lisp
wooden has quit [Read error: Connection reset by peer]
jameser has joined #lisp
wooden has joined #lisp
shka has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
Jen has joined #lisp
rumbler31 has quit [Remote host closed the connection]
Jen is now known as Guest76257
shka has joined #lisp
rumbler31 has joined #lisp
shka has quit [Excess Flood]
SuperJen has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Remote host closed the connection]
shka has joined #lisp
rumbler31 has joined #lisp
rumbler31 has quit [Remote host closed the connection]
jameser has quit [Ping timeout: 260 seconds]
aphprentice has quit [Quit: Connection closed for inactivity]
dddddd has quit [Ping timeout: 248 seconds]
jameser has joined #lisp
yeticry has quit [Ping timeout: 248 seconds]
SuperJen has joined #lisp
Guest76257 has quit [Ping timeout: 248 seconds]
didi has joined #lisp
<didi> When should I define a PACKAGE-USER package for my package PACKAGE?
jack_rabbit has quit [Ping timeout: 248 seconds]
markong has quit [Ping timeout: 240 seconds]
yeticry has joined #lisp
d4ryus1 has joined #lisp
<Xach> didi: i do it when i think someone might want to in-package to use no prefixes, but don't want to mess with implementation stuff. but it's also trivial to make a new package that uses PACKAGE
<Xach> package-user to me is just (:use cl package)
<didi> Xach: Cool, thank you.
d4ryus has quit [Ping timeout: 240 seconds]
<Ober> how do you get the line number of the offending error on sbcl when compiling and you hit the restarts/debugger?
<didi> Ober: If on SLIME, I type ?v.
jameser has quit [Ping timeout: 240 seconds]
<Xach> I use slime and M-n and M-p
<Ober> i've gone down the backtrace list hitting v and it'as all sbcl
<Ober> thanks
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
phoe has joined #lisp
<didi> Oh, tip: it got nicer once I added (declaim (optimize (speed 0) debug safety)) to my ~/.sbclrc
phoe has quit [Client Quit]
<Ober> cool
<Xach> sb-ext:restrict-compiler-policy is a way to do that in a more durable way too
<didi> Xach: Thank you. I didn't know about `sb-ext:restrict-compiler-policy'.
phoe has joined #lisp
phoe has quit [Client Quit]
jack_rabbit has joined #lisp
<Ober> just ql and sbcl. none of my code.
phoe has joined #lisp
<phoe> there, enough on/off bouncing.
<Xach> Ober: what is the error?
igemnace has joined #lisp
<Ober> one sec. trying to recreate
<Ober> Cannot CHANGE-CLASS objects into CLASS metaobjects.
<Ober> [Condition of type SB-PCL::METAOBJECT-INITIALIZATION-VIOLATION]
<Ober> See also:
<Ober> The Art of the Metaobject Protocol, CLASS [:initialization]
<Ober>
<Ober> rototilling a bunch of code back into a single file, but can't find the line where it's bombing on
<Ober> brb
Kundry_Wag has joined #lisp
<phoe> Ober: give us the code snippet that is causing this, if you can extract it
phoe_ has quit [Quit: Page closed]
LiamH has quit [Quit: Leaving.]
karswell_ has quit [Read error: No route to host]
khisanth_ has quit [Ping timeout: 260 seconds]
shka has quit [Remote host closed the connection]
karswell_ has joined #lisp
shka has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
<loke> phoe: Seems to be as though he might be trying to redeclare a class from a standard class into a metaclass.
<loke> That can be problematic.
<Ober> if I could extract it, I would fix it :P
khisanth_ has joined #lisp
<Ober> ok will dig for it. thanks
<Ober> xb
jameser has joined #lisp
<Ober> allegro built it fine, lw gave this error which seems more useful. Layout for class #<MANARDB:MM-METACLASS FILES 41B0C43E23> has changed from ((VALUE 0 8 MMAP-POINTER T) (IDX 8 8 MMAP-POINTER T))
<Ober>
jameser_ has joined #lisp
jameser has quit [Ping timeout: 268 seconds]
terpri has joined #lisp
damke has quit [Read error: Connection reset by peer]
fikka has joined #lisp
jameser_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jameser has joined #lisp
damke has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
lrvy has joined #lisp
<drmeister> Ironclad generates a different MD5 digest than C++ code that I have and MD5 hash generators on the web - what am I doing wrong?
<drmeister> Output:
<drmeister> MD5 generator from the web: 0cc175b9c0f1b6a831c399e269772661
jfe has quit [Remote host closed the connection]
jfe has joined #lisp
<drmeister> The C++ code (My md5) and the MD5 calculator generate the same result. Ironclad - something different.
<drmeister> Different is not good.
_whitelogger has joined #lisp
<Ober> lw gui shows the exact place of error. thanks for the help
<drmeister> froggey: You mean the trigonometric function SIN?
<froggey> yes
<drmeister> Holy crap
yeticry has quit [Ping timeout: 240 seconds]
<didi> TIL MD5 is a chaotic function ;-)
<drmeister> How accurate does it need to be?
<phoe> drmeister: https://en.wikipedia.org/wiki/MD5 has the precomputed values, you could perhaps check if your sine gives you same hex numbers
<froggey> not sure, I ended up replacing it with a correctly precomputed table
yangby has joined #lisp
* phoe brb
phoe has quit [Quit: leaving]
<drmeister> Ok, that appears to be the problem - thank you.
<drmeister> Wow - not in a million years.
king_idiot has quit [Ping timeout: 240 seconds]
<drmeister> It's weird though - when calculate the integer value - it's fine. It's just when I convert it to a hex string that it zeros the last digits.
<drmeister> In Clasp: (floor (* (expt 2 32) (sin 1))) --> 3614090240
<drmeister> In sbcl: 3614090240
Kundry_Wag has joined #lisp
phoe has joined #lisp
<drmeister> 3614090240
<drmeister> In Clasp: (format nil "~x" (floor (* (expt 2 32) (sin 1)))) --> "D76AA400"
<froggey> I think that's a single-float problem. try (sin (float 1 0.0d0))
<drmeister> In Sbcl: (format nil "~x" (floor (* (expt 2 32) (sin 1)))) --> "D76AA400"
<drmeister> Ugh - that's a red herring.
<phoe> drmeister: these values look the same to me.
<drmeister> They are all the same values.
<drmeister> The MD5 wikipedia page says the value should be: 0xd76aa478
<drmeister> So printing with ~X is zeroing the lowest two digits - I don't know why
<phoe> float precision, like froggey said?
<drmeister> froggey: Thanks so I evaluate (sin (float 1 0.0d0)) in Clasp and Sbcl
<drmeister> Clasp: 0.8414709848078965d0
<drmeister> Sbcl: 0.8414709848078965d0
<phoe> hah, same thing.
<froggey> how does clasp implement sin? calling out to libc?
<drmeister> C++
Kundry_Wag has quit [Ping timeout: 246 seconds]
<froggey> or std::sin
<froggey> iirc that's how sbcl does it, so I'd expect the same result...
yeticry has joined #lisp
<phoe> ...this is crazy. SBCL, CCL, ECL, CLISP all give 0x00 at the end.
<phoe> oooh
<phoe> I got it
<phoe> (setf *read-default-float-format* 'double-float) ;=> DOUBLE-FLOAT
<phoe> (format nil "~x" (floor (* (expt 2 32) (sin 1.0)))) ;=> "D76AA478"
<phoe> drmeister: this *IS* a float precision issue
<phoe> AFAIK you need to explicitly pass double-floats to sin, otherwise it pops out single floats that are not precise enough.
* didi has (setf *read-default-float-format* 'double-float) inside ~/.sbclrc
<drmeister> This is what Ironclad uses to calculate those numbers:
lagagain has quit [Quit: Connection closed for inactivity]
<loke> phoe: If you pass a single-float to SIN, it will pop out a single float.
<phoe> drmeister: (format nil "~x" (floor (* (expt 2 32) (sin (coerce 1.0 'double-float))))) ;=> "D76AA478"
<phoe> loke: yes.
<loke> phoe: That's not really an "issue", IOMHO.
<phoe> drmeister: this smells like a bug in ironclad.
<loke> phoe: You should be able to just use (sin 1d0)
<phoe> loke: you are correct.
<phoe> But wait a second.
<phoe> ironclad has 0.0d0 there, which is a double-float.
<phoe> So double-floats should be constructed.
<loke> phoe: yes.
<phoe> https://pastebin.com/a3LjhXpJ <- when followed step-by-step, this is what I see.
<phoe> drmeister: can you execute the same series of steps in Clasp?
<phoe> If we are lucky, we will be able to see where the output deviates.
kolko has quit [Ping timeout: 248 seconds]
<drmeister> Hang on - trying some other things
<phoe> Okiedokie
kolko has joined #lisp
fikka has joined #lisp
aindilis has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 248 seconds]
<drmeister> I wrote a function to generate the table and ran it in Clasp and Sbcl - I get the same results.
<drmeister> Spot checking the hex values with the Wikipedia page - the values match.
<drmeister> I don't know what the problem is with md5 right now.
shka has quit [Read error: Connection reset by peer]
<drmeister> This is what clasp generates
shka has joined #lisp
<drmeister> (defun ccc () (let ((*print-base* 16)) (print (loop for i from 0 below 64 collect (truncate (* 4294967296 (abs (sin (float (1+ i) 0.0d0)))))))))
<drmeister> Sbcl:
<drmeister> I clipped the last line off of clasp's values - here they are complete...
<drmeister> ediff says they match, visual inspection says they match.
BitPuffin|osx has joined #lisp
<froggey> that's probably not it then
jfe has joined #lisp
brandonz has quit [Quit: WeeChat 1.9.1]
quazimodo has joined #lisp
heurist` has quit [Ping timeout: 246 seconds]
heurist`_ has joined #lisp
jameser has quit [Ping timeout: 268 seconds]
ebrasca has quit [Read error: Connection reset by peer]
ebrasca has joined #lisp
ahungry has joined #lisp
jameser has joined #lisp
shka_ has joined #lisp
shka has quit [Ping timeout: 268 seconds]
jameser_ has joined #lisp
jameser_ has quit [Remote host closed the connection]
jameser has quit [Ping timeout: 248 seconds]
jameser has joined #lisp
quazimodo has quit [Ping timeout: 248 seconds]
shka_ has quit [Ping timeout: 258 seconds]
jameser has quit [Client Quit]
karswell_ has quit [Remote host closed the connection]
mson has joined #lisp
karswell_ has joined #lisp
shka_ has joined #lisp
EvW has joined #lisp
EvW has quit [Ping timeout: 255 seconds]
kartik1 has joined #lisp
kartik2 has joined #lisp
astronavt has quit [Remote host closed the connection]
shka_ has quit [Read error: Connection reset by peer]
kartik1 has quit [Ping timeout: 255 seconds]
Arcaelyx has joined #lisp
wooden has quit [Read error: Connection reset by peer]
Arcaelyx_ has quit [Ping timeout: 255 seconds]
shka_ has joined #lisp
kartik2 has quit [Quit: WeeChat 1.4]
kark has joined #lisp
wooden has joined #lisp
shka_ has quit [Ping timeout: 240 seconds]
karswell_ has quit [Read error: Connection reset by peer]
shka_ has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
maxirater has joined #lisp
shka_ has quit [Ping timeout: 248 seconds]
didi has quit [Remote host closed the connection]
shka_ has joined #lisp
quazimodo has joined #lisp
shka_ has quit [Ping timeout: 250 seconds]
shka_ has joined #lisp
ak5 has quit [Quit: WeeChat 2.0]
we_in has joined #lisp
d4ryus1 is now known as d4ryus
red-dot has joined #lisp
quazimodo has quit [Ping timeout: 255 seconds]
quazimodo has joined #lisp
shka has joined #lisp
shka_ has quit [Ping timeout: 240 seconds]
quazimodo has quit [Ping timeout: 240 seconds]
maxirater has quit [Quit: Leaving]
we_in has quit [Remote host closed the connection]
we_in has joined #lisp
SaganMan has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
whoman has quit [Read error: Connection reset by peer]
zmt00 has quit [Quit: Leaving]
damke has quit [Ping timeout: 240 seconds]
whoman has joined #lisp
oleo has quit [Quit: Leaving]
damke has joined #lisp
ahungry has quit [Remote host closed the connection]
kolko_ has joined #lisp
kolko has quit [Ping timeout: 250 seconds]
tomw has quit [Ping timeout: 276 seconds]
jfe has quit [Ping timeout: 268 seconds]
jameser has joined #lisp
``Erik has quit [Ping timeout: 268 seconds]
``Erik has joined #lisp
raphaelss has quit [Remote host closed the connection]
terpri has quit [Ping timeout: 240 seconds]
lisp_guest has joined #lisp
Karl_Dscc has joined #lisp
asarch has quit [Quit: Leaving]
Xal has quit [Ping timeout: 260 seconds]
Xal has joined #lisp
Fare has joined #lisp
jameser_ has joined #lisp
jameser has quit [Ping timeout: 246 seconds]
jameser_ has quit [Remote host closed the connection]
jameser has joined #lisp
dec0n has joined #lisp
vlatkoB has joined #lisp
hajovonta has joined #lisp
flamebeard has joined #lisp
test1600 has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
mson has quit [Quit: Connection closed for inactivity]
Jen has joined #lisp
Jen is now known as Guest26413
jameser_ has joined #lisp
SuperJen has quit [Ping timeout: 248 seconds]
jameser has quit [Ping timeout: 248 seconds]
jameser has joined #lisp
jameser_ has quit [Ping timeout: 255 seconds]
fikka has joined #lisp
angavrilov has joined #lisp
jameser has quit [Remote host closed the connection]
jameser has joined #lisp
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
zaquest has joined #lisp
vap1 has joined #lisp
jameser_ has joined #lisp
vaporatorius has joined #lisp
Kundry_Wag has quit [Ping timeout: 276 seconds]
jameser has quit [Ping timeout: 246 seconds]
SamSkulls has quit [Ping timeout: 260 seconds]
jameser_ has quit [Remote host closed the connection]
jameser has joined #lisp
lrvy has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lrvy has joined #lisp
lisp_guest has quit [Ping timeout: 250 seconds]
easye has joined #lisp
knobo has joined #lisp
yeticry has quit [Ping timeout: 260 seconds]
yeticry has joined #lisp
Amplituhedron has joined #lisp
varjag has joined #lisp
rgrau has quit [Ping timeout: 255 seconds]
mishoo has joined #lisp
fikka has joined #lisp
yeticry has quit [Ping timeout: 246 seconds]
terpri has joined #lisp
jameser_ has joined #lisp
jameser has quit [Ping timeout: 240 seconds]
xificurC has joined #lisp
jameser_ has quit [Remote host closed the connection]
jfb4 has quit [Ping timeout: 246 seconds]
<xificurC> when running a script with #!/usr/bin/sbcl --script is there a way to drop into a repl?
jameser has joined #lisp
jfb4 has joined #lisp
yeticry has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<pjb> xificurC: don't use --script.
pyx has joined #lisp
<xificurC> pjb: what do you mean
<pjb> Let's try it.
fikka has joined #lisp
orivej has joined #lisp
jameser_ has joined #lisp
<pjb> xificurC: well, it kind of works, but without --script, it doesn't run the script.
<pjb> xificurC: so you have two choices: either call the repl toplevel at the end of the script (and use --script), or write a script to run sbcl without --script, but loading and running your lisp script.
<xificurC> pjb: how can I call the repl toplevel programmatically?
jameser has quit [Ping timeout: 240 seconds]
<pjb> calling SB-IMPL::TOPLEVEL-REPL I think.
<pjb> Alternatively, you can use
<pjb> COM.INFORMATIMAGO.COMMON-LISP.INTERACTIVE.INTERACTIVE:REPL
<xificurC> (sb-impl::toplevel-repl nil) works, thanks
jameser_ has quit [Quit: Textual IRC Client: www.textualapp.com]
<pjb> it might be a good idea to wrap it in a handler-case if you want the script to keep control, and to redefine quit to exit sb-impl::toplevel-repl instead of killing sbcl if you want to take over after the repl.
nowhere_man has quit [Ping timeout: 248 seconds]
rumbler31 has joined #lisp
shka has quit [Ping timeout: 268 seconds]
nowhere_man has joined #lisp
damke_ has joined #lisp
rumbler31 has quit [Ping timeout: 255 seconds]
<easye> Lisp 101 question: how do I distinguish between a reference to proper list and a dotted list? The form (not (consp (cdr reference))) seems ridiculously non-terse, so I fear I am missing something basic.
<pjb> xificurC: it may also be a good idea to call (sb-impl::toplevel-init) first.
damke has quit [Ping timeout: 240 seconds]
<pjb> easye: by walking the list.
<pjb> You may use com.informatimago.common-lisp.cesarum.list:proper-list-p alexandria.0.dev:proper-list-p #+ccl ccl::proper-list-p
<xificurC> pjb thanks
<easye> pjb: ok, I guess that makes sense. Just thought there should be something in ANSI to do this. I was a bit surprised that LISTP acts as a complete synonym for CONSP.
<pjb> Efficiency.
Cymew has joined #lisp
<pjb> Remember, lisp was implemented in 1960 on computers that were barely able to perform 1 million operations a second.
EvW has joined #lisp
Cymew has quit [Client Quit]
kark has quit [Ping timeout: 248 seconds]
EvW has quit [Ping timeout: 248 seconds]
<tfb> easye: distinguishing a proper list from something that isn't is non-trivial in general: is #1=(a b #1#) proper (no, but knowing it's not requires an occurs check)
ebrasca has left #lisp ["ERC (IRC client for Emacs 25.2.1)"]
<easye> tfb: Yeah. I'm just having one of those moments of realizing my internal model of CONS structures needs some refreshing.
<easye> Funny how I can actually get something done without remembering such basics.
<tfb> I spend my working life looking at a million lines of fortran and wondering much the same
<easye> FORTRAN was my first language: studying a Decwriter printout of Colossal Cave and some of the Hollerith cards. Real fun for a pre-teen.
nowhere_man has quit [Ping timeout: 276 seconds]
jfb4 has quit [Ping timeout: 240 seconds]
nowhere_man has joined #lisp
quazimodo has joined #lisp
SuperJen has joined #lisp
jfb4 has joined #lisp
hhdave has joined #lisp
Guest26413 has quit [Ping timeout: 268 seconds]
knobo has quit [Ping timeout: 260 seconds]
Jen has joined #lisp
Jen is now known as Guest26679
lrvy has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
SuperJen has quit [Ping timeout: 260 seconds]
quazimodo has quit [Ping timeout: 240 seconds]
lrvy has joined #lisp
quazimodo has joined #lisp
dddddd has joined #lisp
SuperJen has joined #lisp
Guest26679 has quit [Ping timeout: 250 seconds]
Tobbi has joined #lisp
knobo has joined #lisp
yangby has quit [Quit: Go out for a walk and buy a drink.]
momofarm has quit [Ping timeout: 248 seconds]
cess11 has quit [Ping timeout: 240 seconds]
we_in has quit [Quit: Leaving]
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
JenElizabeth has joined #lisp
SuperJen has quit [Ping timeout: 240 seconds]
tcr has joined #lisp
himmAllRight has quit [Ping timeout: 240 seconds]
SaganMan has quit [Ping timeout: 248 seconds]
<schweers> I have code which passes double-floats and '(unsigned-byte 64) values to helper functions and recieves them back. After reading about block compilation in the CMUCL manual I wanted to try it, but SBCL (which I use) removed support. So I put my helper functions into a LABELS form and put both DECLARE forms and defuns (which have preceding toplevel DECLAIM forms) into the LABELS form. I still get efficiency notes like th
<schweers> unsigned word to integer coercion (cost 20) to "<return value>"
<schweers> Am I doing something wrong?
<pjb> What does block compilation do?
<schweers> one can specify a block of code which may consist of multiple functions, and specify which of them are callable from outside of the block. this means that the other functions can be implemented with local calls
<schweers> at least that is how I understood the manual
<pjb> Efficiency notes are just that. Nothing fundamentally wrong or erroneous. This only means that sbcl thinks that it could generate more efficient code if you did something else. But do YOU want to do something else?
<schweers> I want the efficient code :)
jfb4 has quit [Ping timeout: 268 seconds]
<pjb> schweers: well, by default all the functions in a single compilation unit can be called between them with local calls.
<schweers> the CMUCL manual claims that block compilation can be used to pass non-descriptor values from and to funcions without boxing them
<pjb> I think sbcl performs this optimization automatically.
<schweers> hmm. now that you say that, it does seem reasonable.
<pjb> Ask in #sbcl to be sure.
<schweers> yet all calls to the helper functions in the labels form are known at compile time, so I’m confused about the notes
<schweers> will do, thanks
jfb4 has joined #lisp
<pjb> Now, you may want to add type declarations, and provide public API functions that will check-type the arguments to ensure the declarations are fullfilled.
<pjb> If you have a lot of them, you can split them over several files, as long as you compile them in a with-compilation-unit. I don't know how to do that with asdf however.
yeticry has quit [Ping timeout: 258 seconds]
yeticry has joined #lisp
knobo has quit [Ping timeout: 248 seconds]
<schweers> I put ftype declarations in place, both for the global and local functions.
<schweers> is there something wrong with code of the following form: (labels ((helper (...) ...)) (defun foo (...) (helper ...)))
igemnace has quit [Quit: WeeChat 2.0]
knobo has joined #lisp
<Shinmera> schweers: Yes, why not just use a global function for the helper
<schweers> I thought I had to put the code in /local/ functions in order to utilize non-discriptor representations
dddddd has quit [Remote host closed the connection]
lrvy has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Shinmera> I'm not sure I understand exactly what you want to do-- why not put the lables inside the defun if you want to share locals?
<schweers> because I have more than one defun
<Shinmera> In that case I would advise a definition for the helper and requesting inlining.
<schweers> I have several “global” functions which use the same set of helpers which are not needed outside of these defuns
<schweers> does inlining work nicely with recursion?
<schweers> nevermind
<schweers> its tail recursive
test1600 has quit [Read error: Connection reset by peer]
<schweers> seems reasonable, would make the code much more pretty
<schweers> I’ll try that
krasnal has joined #lisp
manualcrank has quit [Quit: WeeChat 1.9.1]
<Shinmera> If you have non-tail recursion you can do local inlining to avoid the function-to-be-inlined to inline itself infinitely.
<schweers> with a local (declare (notinline foo))?
<Shinmera> Yes.
<schweers> thanks for the info
<Shinmera> Or alternatively not declaiming it inline and using declare inline where you want it inlined. I think in that case it won't recursively inline.
<Shinmera> Though I'm not sure that case is entirely specified...?
<schweers> or not inlining the recursive function itself but defining a wrapper function which can be declared inline?
<Shinmera> Then what's the point of inlining at all?
<Younder> schweers, notinline?
<Younder> New one to me
<schweers> ugh, you’re right that would not have solved my problem
<schweers> nevermind, was a brainfart
<Younder> As they say Lisp is not old it just smells fully ;)
yeticry has quit [Ping timeout: 240 seconds]
<pjb> schweers: there's nothing wrong, but it should be equivalent to (defun … (labels ((do-not-name-it-helper-or-anything-like-that …)) …))
<pjb> schweers: the only downside of having defun not as a toplevel form, is that the compiler cannot make note that a function is defined, so it may issue undefined function warnings.
<schweers> okay, that makes sense
Kundry_Wag has joined #lisp
<pjb> schweers: the only case where you would need to put defun in a non-toplevel labels, would be if your local functions would have to be used by several defun. Then you have to ask yourself seriously why not making them global functions.
Achylles has joined #lisp
<Younder> pjb, I have found myself using flet in macros
markong has joined #lisp
<pjb> Younder: Of course.
<schweers> pjb: that is exactly the situation I had. I’ve now declared the helper functions to inlined. I’m not entirely happy with the notes yet, but I’ll do some more testing etc before I continue banging at it.
<schweers> I’m off for lunch, thanks for the tips!
<pjb> You know that optimizing type declarations and notes, will give you only 1 or 2% improvement.
<pjb> If you want to optimize things, design a better algorithm and data structure!
<loke> pjb: actually, not always. My implementation of the simplex noise algorithm ended up 10× or so faster by adding delcarations.
Kundry_Wag has quit [Ping timeout: 248 seconds]
<Younder> pjb: the optimization structure for Lisp is hard to understand. Perhaps you could come up with some simple rules. Like don't cons up.
<loke> pjb: Here's the code. You can remove the declarations to see the difference:
<Younder> I seem to remember 40x penalty for using temporary list's in calculations. Estimates of cource
damke has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
<tfb> I think the first-order story about declarations is: it matters for float-intensive code
yeticry has joined #lisp
eSVG has quit [Ping timeout: 246 seconds]
<Younder> tfb, For float intensive, you need AFX or better still GPU. So tap into something like LAPACK
<tfb> Younder: you don't (and you can trust me on this: I run float-intensive code on thousands of cores)
yeticry has quit [Ping timeout: 276 seconds]
<Younder> Well I have two Titan blacks only. And 10 Pi2's is my cluster.
m00natic has joined #lisp
<Younder> So my experience may be limeted., But feel free to share experiences :)
<Younder> Afterall it was all ever a makeshift approximation.
<Younder> A test for MPI, CUDA and OpemML. And of late Open ACC.
knobo has quit [Ping timeout: 240 seconds]
eSVG has joined #lisp
<Younder> tfb: Are you telling me you are running computing intensive applications on a cluster entirely in Lisp?
<tfb> Younder: No, sorry. All our HPC code is fortran. What I meant was that if you have float code which falls back to generic arithmetic that's often a factor of ~100, so if the system should be spending 1% of its time in float code, it's now spending half of it. So making sure float code doesn't fall back to generic arithmetic really matters if there is even a very small amount of it
<Younder> Well I have tried a simulation of 65000 star galaxy similar to the Magellan cloud on my Titans
<Younder> It's bit but has a self similar structure.
<Younder> I studied physics in my time, and have a particular fondness for celestial mechanics.
<Younder> The old Newtonian type
<Younder> (The Mag doesn't seem to have any major Black holes)
<Younder> That said It wasn't written in lisp, but on a CGI compiler in C.
mingus has quit [Remote host closed the connection]
<Younder> My PI2's were spendt for a simulation of telephone central system. MPI and C again.
<Younder> Though I expect Lisp could have been used here.
<Younder> Cool though this is I have moved mostly into embedded comping these days. Designing a drone which is totally anonymous.
<Younder> 6 cameras, a NVidea TX1 and more C. Though RUST is coming up as a solid alternative.
<Younder> A circuit boar with a Xilix FPGA implementation of G5 with a Digital Devices MEMS antenna on a M2 port with PCIe that will fit on a credit card is the current challenge.
<Younder> But feel free to ignore me as I make to many grammatical and syntactical mistakes, being dyslexic
mingus has joined #lisp
lrvy has joined #lisp
mooshmoosh has joined #lisp
Tobbi has joined #lisp
schweers has quit [Remote host closed the connection]
Amplituhedron has quit [Ping timeout: 248 seconds]
yeticry has joined #lisp
yeticry has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
knobo has joined #lisp
DeadTrickster_ has quit [Remote host closed the connection]
<Zhivago> Ok.
Amplituhedron has joined #lisp
yeticry has joined #lisp
lrvy has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eSVG has quit [Ping timeout: 246 seconds]
lrvy has joined #lisp
<Xach> ASDF 3.3.1 reports fatal circular dependencies that ASDF 3.1.5 does not. I wonder if it's in error or something else.
<Xach> One example is simple-date-postgres-glue and another is tinaa-and-cl-markdown.
<Xach> hmm, the latter has asdf-system-connections, which is I think a pit of trouble these days.
<Xach> hmm, both non-primary systems
JuanDaugherty has joined #lisp
Achylles has quit [Quit: Leaving]
vap1 has quit [Quit: Leaving]
lrvy has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
yeticry has quit [Read error: Connection reset by peer]
<Xach> dim: are you in any position to investigate and perhaps propose changes to simple-date to make things work again?
<Xach> dim: I think the whole glue thing might be a candidate for removal and simplification at the expense of a little more cross-dependency.
MrBismuth has quit [Read error: Connection reset by peer]
<Shinmera> Xach: I've been having even more issues with ASDF 3.3: https://github.com/Shinmera/qtools/issues/25
<Shinmera> Something about invoking QL or ASDF while it's trying to load another system is messing it up
yeticry has joined #lisp
<Shinmera> Haven't had time to investigate yet, but this was never a problem until the recent ASDF updates in SBCL.
Amplituhedron has quit [Remote host closed the connection]
<Xach> ugh
cess11 has joined #lisp
cess11_ has joined #lisp
Younder has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
knobo has quit [Ping timeout: 240 seconds]
drcode_ has quit [Ping timeout: 260 seconds]
knobo has joined #lisp
<dim> Xach: I could see about devoting some time to it... my gut feeling is that we have bugs in ASDF tho
jfb4 has quit [Ping timeout: 240 seconds]
<dim> also, who's maintaining postmodern these days?
rumbler31 has quit [Ping timeout: 240 seconds]
<dim> looks like it would be Cyrus Harmon (slyrus on github)
<Xach> dim: marijn merges PRs but there is no primary development
jfb4 has joined #lisp
<dim> I'm not sure I've learnt enough CL to see about improving Postmodern yet... last I tried I sure wasn't there yet ;-)
FreeBirdLjj has joined #lisp
<Xach> I think it's postmodern's system of conditionally loading something via asdf
<Xach> And I think it could be made unconditional
<Xach> ASDF problems make my skin crawl and this month is bad.
<dim> do you have to upgrade asdf?
<Xach> It is now part of sbcl 1.4.2.
<Xach> I feel awful about giving neutral feedback about its impact. I didn't test properly or something.
Younder has joined #lisp
<dim> well that happens
<dim> the only way to never make a mistake is to never do anything, as my mother would say ;-)
<Zhivago> Which would be a mistake, so you're screwed either way.
<dim> also, well, ASDF is known to be buggy, where QL mostly just works
<Xach> a function of its relative simplicity, i think.
<dim> can SBCL release 1.4.3 with the previous ASDF and remove 1.4.2 from mirrors?
rgrau has joined #lisp
<Xach> perhaps the former but the latter seems outlandish to me
<Xach> scymtym, any thoughts on the matter?
Kundry_Wag has joined #lisp
FreeBirdLjj has quit [Ping timeout: 260 seconds]
nickb has joined #lisp
<dim> as a second step I would question the release process of asdf, really
<nickb> Hi. I'm trying to install sqlite3 on a Windows system using quicklisp. I know nothing about lisp, just need to build an application using it. I get an error: https://gist.github.com/anonymous/9d632dff0f9e26e84ba91458d3ff5eea (doesn't tell me much). Any advice?
Kundry_Wag has quit [Ping timeout: 258 seconds]
<tfb> Younder: rust looks like an interesting thing. But fortran is so embedded for the stuff we do I am sure it will live for ever, unfortunately
<pjb> nickb: you would have to learn how the sqlite3 library is named on MS-Windows, and to know where it's stored, to configure cffi to find it there.
<pjb> nickb: configure cffi:*FOREIGN-LIBRARY-DIRECTORIES*
<pjb> (check it's value for the default paths searched).
<pjb> nickb: and of course, you need to have installed sqlite3 on MS-Windows first.
<nickb> the latter I have done already :)
<nickb> first 2 require at least some basic knowledge on how lisp works which I'm lacking as of now. Point me towards something to read please
<nickb> Thank you very much.
mooshmoosh has quit [Ping timeout: 268 seconds]
EvW1 has joined #lisp
krasnal has quit [Ping timeout: 276 seconds]
Amplituhedron has joined #lisp
murii has quit [Ping timeout: 255 seconds]
xificurC has quit [Remote host closed the connection]
eSVG has joined #lisp
turkja has quit [Ping timeout: 260 seconds]
joga has quit [Changing host]
joga has joined #lisp
rgrau has quit [Read error: Connection reset by peer]
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<hajovonta> hi
<knobo> When I do (select-dao 'some-postmodern-class) columns with null value is returned as :null. Can my slots be unbound in stead?
<knobo> does postmodern have a feature like that?
turkja has joined #lisp
<phoe> knobo: grepping the manual tells me not. You can try some manual processing of the returned daos if you really want it, as in, loop for all slot-values if :null then slot-makunbound.
Amplituhedron has quit [Ping timeout: 255 seconds]
<phoe> But this may have consequences I am not yet aware of.
Tobbi has joined #lisp
<nickb> pjb: CFFI should be able to find my sqlite3 libs. The only lib (sqlite3.dll) is in PATH, shouldn't that be enough?
<Shinmera> nickb: Does it have any dependencies that are unfulfilled?
<Shinmera> Windows (unfortunately) just reports the library as missing if its dependencies can't be found, even if the library itself can be.
knobo has quit [Ping timeout: 240 seconds]
<nickb> I can't tell; the only error I get when trying to install "sqlite3" is that the name is not resolved
<nickb> ah
<nickb> so it requires Alexandria and Babel
<Shinmera> No that's not what I meant
<Shinmera> I meant the dependencies of the dll.
rgrau has joined #lisp
<nickb> yeah dll is fine
<nickb> it only needs KERNEL32.dll and msvcrt.dll
<Shinmera> Okey.
<nickb> so.. How can I learn what is the library name for Windows?
<phoe> nickb: dependency walker
<phoe> download it, use it, enjoy it
<nickb> uhm.. Thats for windows
<phoe> oh wait
<phoe> what is the library name for windows?
<phoe> check inside the sqlite CL package
<nickb> I can't install it either
<nickb> (at least with quicklisp)
<phoe> looks like sqlite3.dll will match
<nickb> > WARNING: the Windows port is fragile; Maybe thats it and I should give up :)
<Shinmera> That message is not really any more applicable
jfb4 has quit [Ping timeout: 260 seconds]
<nickb> Ok when I get an error that the library is missing I have an option to enter alternative name instead. So I enter: ("sqlite3-lib") and get and error: Unable to load foreign library (SQLITE3-LIB-625). Am I doing this completely wrong?
murii has joined #lisp
jfb4 has joined #lisp
knobo has joined #lisp
grumble has quit [Remote host closed the connection]
brendyn has quit [Ping timeout: 268 seconds]
<pjb> nickb: you may also directly load the library.
<pjb> At least to test that the ffi part works.
<nickb> How would I go about it? With ql:quickload?
<pjb> (cffi:LOAD-FOREIGN-LIBRARY #P"c:\…\sqlite3.dll")
grumble has joined #lisp
<pjb> well, \\ not \
fikka has quit [Ping timeout: 240 seconds]
<pjb> You should switch to Linux or macOS…
<nickb> The whole point is to build pgloader _for_ Windows. Doubt I can do that in macOS or Linux :(
<nickb> no luck
<nickb> https://gist.github.com/anonymous/86260013ea5acab933ea9ed025f348e5 (this path is what MSYS2 understands; I've tried with different formats as well)
<pjb> You cumulate the difficulties: Using MS-Windows, Using sbcl (with his uninformative error messages)…
``Erik_ has joined #lisp
wigust has joined #lisp
didi has joined #lisp
``Erik has quit [Ping timeout: 240 seconds]
<didi> I am certain I asked this before, but I can't remember the answer, sorry: Why doesn't (let ((x 42)) (loop for x = x then (+ x 1))) work? i.e. SBCL complains that NIL isn't of type NUMBER. I suspect the second X from the LOOP form isn't bound to 42.
fikka has joined #lisp
LiamH has joined #lisp
<lieven> the x of 'for x' already gets defined in the loop prologue and shadows the outer x of the let
<didi> lieven: oic. I was expecting the same behavior of DO, I guess, as in the second X gets the value of the environment.
cromachina has quit [Read error: Connection reset by peer]
oleo has joined #lisp
yeticry has quit [Ping timeout: 268 seconds]
lisp_guest has joined #lisp
yeticry has joined #lisp
oleo has quit [Remote host closed the connection]
<lieven> yeah I think they could have gone that way. No idea why they didn't.
oleo has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
<tfb> didi: I suspect strongly that it's undefined which happens
dddddd has joined #lisp
<tfb> (both implementations I have easy access to 'work' with (let ((x 1)) (loop for x from x below ... do ...)
whoman has quit [Read error: Connection reset by peer]
ebrasca has joined #lisp
mson has joined #lisp
<ebrasca> Is hunchensocket alive?
fikka has joined #lisp
whoman has joined #lisp
SaganMan has joined #lisp
knobo has quit [Ping timeout: 268 seconds]
<jackdaniel> If software starts to live, it's time to run
<lieven> there's an exception in 6.1.1.4 made for loop-as-then that is not made for the others so testing with from x might not be relevant
wxie has joined #lisp
<ebrasca> Is hunchensocket recomended for WebSockets and Hunchentoot?
<lieven> http://clhs.lisp.se/Issues/iss222_w.htm deals with this example
<jackdaniel> we use it in production and works fine, using it is a sane choice
warweasle has joined #lisp
<whoman> ebrasca, i am also going to use it
<didi> lieven: Ah, cool.
<lieven> I just don't know why they treated as-equals-then differently
nika_ has joined #lisp
<lieven> of course, 'for x = <form1>' is a shorthand for 'for x = <form1> then <form1>' and it will evaluate <form1> for each step of the iteration
<lieven> so it would be a bit awkward to have it refer to another binding for the first step
<didi> Heh, I thought <form1> from `for x = <form1>' was evaled only once.
<lieven> that would be `with x = <form1>'
* didi nods
wxie has quit [Remote host closed the connection]
<tfb> lieven: oh, yes, for-as-equals-then is really weird in the spec
rippa has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<tfb> lieven: but your argument about '(loop for x = ... do ...)' smells right
<jdz> ebrasca: hunchensocket works for me.
Kundry_Wag has joined #lisp
dmiles has quit [Read error: Connection reset by peer]
<jdz> Although I'm not sure it's feasible for internet-facing apps.
nickb has left #lisp [#lisp]
xrash has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
beach has quit [Disconnected by services]
beach has joined #lisp
himmAllRight has joined #lisp
<beach> Good evening everyone!
dmiles has joined #lisp
<warweasle> beach: Yo
wigust_ has joined #lisp
FreeBirdLjj has joined #lisp
wigust has quit [Ping timeout: 240 seconds]
attila_lendvai has quit [Ping timeout: 260 seconds]
rumbler31 has joined #lisp
<pjb> didi: basically, for is not a binding keyword. loop creates all the variables it need before.
<pjb> didi: this is also what makes the variable available in the loop epilog in practice (even if using them is not well defined).
<Ober> is there a function to convert octet vectors to strings?
<didi> pjb: Thank you.
warweasle has quit [Read error: Connection reset by peer]
<pjb> Ober: several.
warweasle has joined #lisp
<Ober> ok babel it is
<pjb> Ober: (defun octet-vector-to-string (os) (prin1-to-string os)) (octet-vector-to-string (coerce #(1 2 3) '(vector (unsigned-byte 8)))) #| --> "#(1 2 3)" |#
<jdz> Ober: if it's not unicode then plain (map 'string #'code-char input) works just fine.
<beach> Ober: No, because it is not clear what you would like for such a conversion to do.
<pjb> jdz: no guarantee that code-char returns a character.
<pjb> jdz: code-char returns a predicate (char-p)
<pjb> jdz: so it should be at the very least: (map 'string (lambda (x) (or (code-char x) #\?)) codes)
<Ober> convert this #(159 31 191 95 191) to "there". leveldb does encoding to vector, but does not do the reverse on fetching
<Ober>
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
LiamH has quit [Read error: Connection reset by peer]
<pjb> Oh! (defun convert (x) (when (equalp x #(159 31 191 95 191)) "there")) (convert #(159 31 191 95 191)) #| --> "there" |# works.
Bike is now known as Bicyclidine
<_death> Ober: I use babel:string-to-octets/octets-to-string for that
epony has quit [Read error: Connection reset by peer]
epony has joined #lisp
<Ober> _death: yeah as i mentioned above, i'm using that. bombs on utf8 stuff though.
<beach> Ober: But you never mentioned that your vector contains octets representing UTF-8-encoded characters.
warweasle is now known as warweasle_afk
<_death> Ober: why would it bomb?
<jdz> pjb: for which non-unicode character code do you get NIL from CODE-CHAR?
<Ober> because that is how it is written. Illegal :UTF-8 character starting at position 0. [Condition of type BABEL-ENCODINGS:INVALID-UTF8-CONTINUATION-BYTE]
<Ober>
<jdz> I guess there are some such characters in clisp...
<_death> Ober: utf-8 encoded "there" => #(116 104 101 114 101) so your input is weird
hexfive has joined #lisp
<Ober> nothing crazy. (leveldb:put mydb "hi" "there")
<pjb> jdz: in an implementation working with US-ASCII, any code >127 could return NIL.
<_death> Ober: are you using my leveldb bindings or other?
<Ober> hey pjb, have not see you at the godemiche meetup lately. good to see you still are a member though.
<_death> (leveldb:with-open-db (db "/tmp/foo") (leveldb:puts db "hi" "there") (leveldb:gets db "hi")) => "there"
beach has quit [Remote host closed the connection]
beach has joined #lisp
<Ober> _death: yes, the same.
flamebeard has quit [Quit: Leaving]
<Ober> will try with that.
<Ober> thanks
<Ober> ahh puts/gets vs put/get
LiamH has joined #lisp
<Ober> (leveldb::octets-to-string (leveldb:get mydb "hi")) was causing the utf8 error btw
<Ober> thanks _death for the help, and the package
<_death> Ober: put and get take octet vectors, not strings
<Ober> gotcha. makes more sense.
<_death> Ober: I think I wrote this while working on some bitcoin code some years ago.. the blockchain was several gigs so didn't work with strings
beach has quit [Remote host closed the connection]
beach has joined #lisp
<pjb> Ober: now, look what you've done: you ask a meaningless question, I asked for clarification, you further added overly specific specifications, I provided a faithful implementation, and instead of starting to think, you started to insult.
Jesin has joined #lisp
warweasle_afk is now known as warweasle
fikka has joined #lisp
eSVG has quit [Ping timeout: 240 seconds]
EvW1 has quit [Ping timeout: 246 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
<ebrasca> whoman , jdz: ok
FreeBirdLjj has joined #lisp
voidlily has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 255 seconds]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
voidlily has joined #lisp
dec0n has quit [Read error: Connection reset by peer]
Jesin has quit [Quit: Leaving]
<Ober> _death: how did you serialize arbitrary objects into vectors for storing in leveldb?
<pjb> implementing arbitrary methods.
lisp_guest has quit [Ping timeout: 250 seconds]
kozy has quit [Quit: No Ping reply in 180 seconds.]
kozy has joined #lisp
<_death> Ober: they weren't arbitrary objects.. I suppose if you want that you can use a serialization library like cl-store
k-stz has joined #lisp
Bike has joined #lisp
<Ober> yeah with a stream backend of a with-open-vector sort of thing, is what I was thinking
<_death> Ober: then you miss some leveldb functionality, however.. for example the fact that keys are ordered
<Ober> right. just lookign at the right hand size, values for objects tm
<Ober> atm
murii has quit [Quit: WeeChat 1.4]
tokik has quit [Ping timeout: 240 seconds]
<Ober> just trying to pickle the list object into a vector for the value.
knobo has joined #lisp
SuperJen has joined #lisp
<phoe> Ober: (coerce list 'vector)
fikka has joined #lisp
<Ober> yeah thanks.
JenElizabeth has quit [Ping timeout: 248 seconds]
damke has quit [Ping timeout: 240 seconds]
nullman has quit [Ping timeout: 240 seconds]
Jesin has joined #lisp
eudoxia has joined #lisp
notzmv has quit [Quit: WeeChat 2.0]
nullman has joined #lisp
tokik has joined #lisp
beach has quit [Remote host closed the connection]
beach has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
asarch has joined #lisp
red-dot has joined #lisp
megha213 has joined #lisp
<scymtym> Xach: are you asking specifically about going back to ASDF 3.1.5 for SBCL 1.4.3?
j0nd0e has joined #lisp
zooey has quit [Remote host closed the connection]
yeticry has quit [Ping timeout: 260 seconds]
zooey has joined #lisp
yeticry has joined #lisp
fourier has joined #lisp
damke has joined #lisp
beach has quit [Remote host closed the connection]
beach has joined #lisp
damke has quit [Ping timeout: 252 seconds]
hajovonta has quit [Quit: hajovonta]
beach has left #lisp [#lisp]
megha213 has quit [Quit: Leaving]
k-stz has quit [Remote host closed the connection]
nhandler has quit [Read error: Connection reset by peer]
<phoe> why not 3.2.0.1? I found it to be stable enough
nhandler has joined #lisp
Jen has joined #lisp
Jen is now known as Guest86136
smurfrobot has quit [Remote host closed the connection]
jfb4 has quit [Ping timeout: 255 seconds]
drcode has joined #lisp
fourier has quit [Ping timeout: 240 seconds]
knobo has quit [Ping timeout: 260 seconds]
jfb4 has joined #lisp
SuperJen has quit [Ping timeout: 260 seconds]
rgrau has quit [Ping timeout: 240 seconds]
papachan has joined #lisp
damke_ has joined #lisp
cess11 has quit [Quit: Lost terminal]
fikka has joined #lisp
jfb4 has quit [Ping timeout: 240 seconds]
jfb4 has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
whoman has quit [Ping timeout: 240 seconds]
mson has quit [Quit: Connection closed for inactivity]
lagagain has joined #lisp
jfb4 has quit [Ping timeout: 248 seconds]
jfb4 has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
Karl_Dscc has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
damke_ has joined #lisp
smurfrobot has joined #lisp
anunnaki has joined #lisp
cess11 has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<Fare> is there anything wrong with ASDF 3.3.1 ?
lisp_guest has joined #lisp
fikka has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
<Fare> Xach: 3.3.1 tracks staging dependencies between systems. Its granularity is the file, not the individual top-level expression. Therefore if there are multiple stages in a sin
<Fare> gle file, that is now considered an error.
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<dim> why did it work before, and why does it not work now?
ineiros has quit [Ping timeout: 248 seconds]
ineiros has joined #lisp
hhdave has quit [Ping timeout: 258 seconds]
beach has joined #lisp
smurfrobot has quit [Remote host closed the connection]
<Fare> using load-system within perform is a big no-no
gaurav__ has joined #lisp
<Fare> simple-date.asd has a completely bogus method at the end that is guaranteed to not do what the author intended and derail asdf
tcr has quit [Ping timeout: 255 seconds]
<didi> Converting (values) to nil as in (null (values)) => t is a defined behavior? I want to depend on it.
<Zhivago> Yes.
<didi> Eer, I don't want to depend on it anymore, but the question still stands. ;-)
<didi> Zhivago: Thank you.
eli has joined #lisp
eli has quit [Changing host]
eli has joined #lisp
<Fare> looks like a poor bad reinvention of asdf-system-connections, too
damke has joined #lisp
m00natic has quit [Remote host closed the connection]
damke_ has quit [Ping timeout: 240 seconds]
<Posterdati> hi
BitPuffin|osx has quit [Ping timeout: 268 seconds]
Kaisyu has quit [Quit: Connection closed for inactivity]
quazimodo has quit [Ping timeout: 260 seconds]
<Posterdati> please how can I determine the integer-length of an (unsigned-byte *) array? Thanks
turkja has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 255 seconds]
rm8 has joined #lisp
<pjb> Posterdati: that doesn't make sense. integer-length works on integers, not on arrays.
<pjb> You could compute: (reduce '+ (make-array (reduce '* (array-dimensions array) :displaced-to array) :key 'integer-length))
<Posterdati> yes I need element size
<pjb> but I fail to fathom what use you could have of it.
<pjb> (and (subtypep '(unsigned-byte *) '(integer 0)) (subtypep '(integer 0) '(unsigned-byte *))) #| --> t ; t |#
<pjb> and obviously, the maximum integer-length for (integer 0) is ∞
shka has joined #lisp
<Posterdati> I need to convert an intger word to an array (unsigned-byte x)
<Posterdati> for example
<pjb> And why do you want to specify the element types?
<pjb> Who cares about types?
<Posterdati> #x55aa -> #(aa 55)
<Posterdati> or
<Posterdati> #55aa -> #(#x55 #xaa)
tomlukeywood has joined #lisp
<pjb> So what's the problem?
<Xach> Fare: what is the fix?
<Posterdati> and I need the array to word function too
<aeth> Posterdati: If you mean you want to cut up an integer into smaller integers, ldb is one way.
<pjb> Posterdati: parse error.
<Posterdati> aeth: I know ldb and dpb
<pjb> Posterdati: http://sprunge.us/JKUh
<pjb> (coerce (decompose-base #x55aa 256) '(vector (unsigned-byte 8))) #| --> #(170 85) |#
<Fare> Xach: for simple-date? I'm preparing a PR right now.
smurfrobot has joined #lisp
<pjb> (compose-base (coerce #(170 85) 'list) 256) #| --> 21930 |#
<Posterdati> pjb: I do not need how, I need a way to find the element size (in bit) of an array element
<aeth> Posterdati: (array-element-type (make-array 42 :element-type '(unsigned-byte 32))) => (UNSIGNED-BYTE 32)
quazimodo has joined #lisp
<pjb> Posterdati: like: (array-element-type (make-array 1 :element-type '(unsigned-byte 13))) #| --> (unsigned-byte 16) |#
<Posterdati> aeth: yes, it is implementation dependant
<pjb> Posterdati: the upgraded element type designator can be of any form, and if it's T how will you determine it? And again what for?
<pjb> Posterdati: It is better to use a parameter word-size (or base).
<Fare> Xach: thanks
<Posterdati> pjb: yes, but on sbcl it worked, not on ecl wich answer like (unsigned ext:byte8)
<pjb> See what I mean?
<Fare> what postmodern was guaranteed not to work, even with the old ASDF.
<pjb> Posterdati: You're deep in implementation specific shit here.
<Posterdati> pjb: yes, nevertheless I need a way to do that
<pjb> (cond ((equalp type '(unsigned ext:byte8)) 8) …)
<pjb> (cond #+ecl ((equalp type '(unsigned ext:byte8)) 8) #+ …)
<pjb> Have fun.
<aeth> Posterdati: The only way to make it not implementation dependent would be to (1) only support some implementations (and avoid clisp, you're doing something numerical) and (2) wrap the parts that don't work with implementation-specific things
<Posterdati> pjb: I was thinking to apply integer-length to the maximum of array
<Fare> it would only appear to work when you specifically loaded cl-postgres or simple-date as the toplevel request, and not otherwise.
mson has joined #lisp
<Fare> for any other user, it would have been a NOP
<Bike> Posterdati: why do you want this?
<Xach> Now it is a fatal error that breaks everything that uses postmodern.
varjag has joined #lisp
<Xach> Whether or not you rely on simple-date working properly with it.
<pjb> Posterdati: Right. (reduce 'max (decompose-base 257 256) :key 'integer-length) #| --> 1 |# so you will try to decompose into base 1?
<Fare> Repairing the .asd files.
``Erik_ has quit [Ping timeout: 240 seconds]
<pjb> Posterdati: 101 can be a representation in any base! Perhaps it represents (compose-base '(1 0 1) 1000000) #| --> 1000000000001 |# !
damke_ has joined #lisp
j0nd0e has quit [Ping timeout: 255 seconds]
<pjb> Posterdati: remember, there's always *print-base* and *read-base*!
``Erik has joined #lisp
damke has quit [Ping timeout: 240 seconds]
<pjb> Posterdati: now, you could use a representation where the first slot of the vector would contain the maximum digit.
Younder has quit [Quit: Leaving]
<pjb> (compose-base (subseq representation 1) (1+ (aref representation 0))) (concatenate 'vector (vector (1- base)) (decompose-base word base))
<pjb> (let ((representation (let ((base 256) (word #x55aa)) (concatenate 'vector (vector (1- base)) (decompose-base word base))))) (compose-base (subseq representation 1) (1+ (aref representation 0)))) #| --> 21930 |#
quazimodo has quit [Ping timeout: 250 seconds]
smurfrobot has quit [Remote host closed the connection]
<pjb> Posterdati: but obviously, it's not that good a representation because it's O(n) to wrap and unwrap. It would be better to use a structure with two fields.
<pjb> Posterdati: but again, this is still silly, because in general you work only with one base, so you just keep it in a global variable.
fikka has joined #lisp
quazimodo has joined #lisp
jfb4 has quit [Ping timeout: 240 seconds]
damke has joined #lisp
<Fare> I don't know when you found these issues, but the asdf-devel mailing-list is the right place to report them.
jfb4 has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
SaganMan has quit [Quit: WeeChat 1.6]
zmt00 has joined #lisp
quazimodo has quit [Ping timeout: 268 seconds]
quazimodo has joined #lisp
damke_ has joined #lisp
gaurav__ has quit [Ping timeout: 276 seconds]
<Posterdati> pjb: it is not desiderable to determine the size of element based on the maximum element in the array
<Xach> I wish there was a pull request that did not also change many unrelated things.
<jackdaniel> this PR is bogus: :depends-on ("alexandria" (:feature :ccl)) will break on CCL
<jackdaniel> which has ASDF 3.1.5
<Posterdati> pjb: for example #(1 2 3) -> #b011011
<jackdaniel> and I see such thing in postmodern system (:feature :postmodern-use-mop "closer-mop")
<Xach> jackdaniel: the (:feature ...) thing is not in 3.1.5?
<Posterdati> pjb since size of 3 i bit is 2
<jackdaniel> :if-feature is broken as well for ECL < 16.2.0 (due to bug in ASDF which was fixed after 3.2.0)
damke has quit [Ping timeout: 240 seconds]
nika_ has quit [Quit: Leaving...]
remi`bd has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
Ven`` has joined #lisp
<jackdaniel> Xach: well, I've tried it in repl (I have ccl session turned on)
<jackdaniel> and it failed
<Xach> Ok
<jackdaniel> ah, no
<jackdaniel> I typed it bad in repl
<jackdaniel> my mistake
sz0 has joined #lisp
zaquest has quit [Quit: Leaving]
zaquest has joined #lisp
xor-xor has joined #lisp
murii has joined #lisp
<Posterdati> Bike: I need these routine for a spi driver I wrote
gaurav__ has joined #lisp
cyberlard is now known as PickleLard
<Fare> OK, I fixed the build of chanl, too, but not its race conditions (that at least its test suite now find)
<pjb> Posterdati: Again, the base is not intrisic. This is an external element, determined by convention or explicitely specified in a protocol. So you need to use an external value bound to a separate parameter.
yeticry has quit [Ping timeout: 255 seconds]
Ven`` has quit [Ping timeout: 260 seconds]
knobo has joined #lisp
tomlukeywood has quit [Quit: Leaving.]
<Bike> Posterdati: and you are incapable of specifying a bit width beforehand?
Kundry_Wag has joined #lisp
Ven`` has joined #lisp
<Posterdati> pjb: I did so
yeticry has joined #lisp
<Fare> Xach: I've sent a mail to asdf-devel looking for candidate maintainers to do more of that work together. If some failures are more urgent than others to address, please warn the mailing-list so we handle them first.
<pjb> Posterdati: ok.
whoman has joined #lisp
<pjb> Posterdati: often, it's even hardwired (since usually you want efficiency and it's specified on paper, so it doesn't changes willy-nilly).
Kundry_Wag has quit [Ping timeout: 255 seconds]
<pjb> Posterdati: ie. instead of writing and using the functions I sprung'ed, you could write a macro that would generate efficient base conversion functions for hardwired word sizes.
<Fare> jackdaniel, how is :feature broken on asdf 3.1.5? Works fine for me.
<Posterdati> pjb: :)
<jackdaniel> read follow up message
knobo has quit [Ping timeout: 248 seconds]
smurfrobot has joined #lisp
<Posterdati> pjb: hardware devices and common lisp did come on the opposite side :)
<Fare> Ah, OK. For the record, I don't remember :feature or :if-feature being broken since I made them work in 2.27. They are rather simple features (unlike one of the two ASDF 1 era homonymous "feature" features, which was removed in 2.27)
<jackdaniel> it was a problem with map-dependencies "missing" deps for some operations
<jackdaniel> but it got fixed after 3.2.0 (maybe unintentionally) so I didn't bother to report
<Fare> Xach: the fishpack issues smells like a bug in the sbcl register allocator, indeed.
<jackdaniel> for normal load it worked fine, but when used with bundling op (either with delivery-op and make-build) it missed dependencies if if-feature was present (disregarding the content)
<Fare> jackdaniel, oh. I remember touching that part of the code recently indeed, fixing issues along the way, but the details are out of cache.
<Fare> jackdaniel, was it an upgrade bug?
Ven`` has quit [Ping timeout: 240 seconds]
<jackdaniel> no, I can dig up the report in ECL issues if you are really interested in it
<Fare> I have a patch in a branch slated for 3.3.2 that fixes bugs that happen when you upgrade from e.g. ASDF 3.1.7
<Fare> jackdaniel, not really interested if it has disappeared.
* jackdaniel gets back to CLX test suite
quazimodo has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
alexmlw has joined #lisp
Ven`` has joined #lisp
Guest86136 has quit [Remote host closed the connection]
Guest86136 has joined #lisp
Ven`` has quit [Ping timeout: 240 seconds]
quazimodo has joined #lisp
<whoman> hey Shinmera i missed your stream. is it still available online somewhere ?
<jackdaniel> according to the website it is
Ven`` has joined #lisp
dyelar has joined #lisp
smurfrobot has quit [Remote host closed the connection]
xor-xor has left #lisp ["ERC (IRC client for Emacs 25.2.3)"]
<Posterdati> Shinmera: ps4?
<Shinmera> Posterdati: what?
<Posterdati> Shinmera: do you play with the ps4?
<Shinmera> No
<whoman> Shinmera, ty!
<whoman> ah can't find the UI stuff
<Shinmera> The episodes are all labelled Treehouse and have a date.
fikka has quit [Ping timeout: 248 seconds]
didi has left #lisp ["there are always reasons to /part"]
damke has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
murii has quit [Quit: WeeChat 1.4]
jfb4 has quit [Ping timeout: 240 seconds]
jfb4 has joined #lisp
raynold has quit [Quit: Connection closed for inactivity]
gaurav__ has quit [Ping timeout: 246 seconds]
jfb4 has quit [Ping timeout: 240 seconds]
xrash has quit [Ping timeout: 268 seconds]
jfb4 has joined #lisp
jmercouris has joined #lisp
``Erik_ has joined #lisp
xrash has joined #lisp
alexmlw has quit [Quit: alexmlw]
jmercouris has quit [Remote host closed the connection]
``Erik has quit [Ping timeout: 240 seconds]
jmercouris has joined #lisp
fikka has joined #lisp
eudoxia has quit [Quit: Leaving]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
fikka has quit [Ping timeout: 260 seconds]
jack_rabbit has quit [Ping timeout: 248 seconds]
vlatkoB has quit [Remote host closed the connection]
jack_rabbit has joined #lisp
quazimodo has quit [Ping timeout: 260 seconds]
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
aindilis has joined #lisp
jmercouris has quit [Ping timeout: 248 seconds]
jmercouris has joined #lisp
oleo has quit [Read error: Connection reset by peer]
Ven`` has quit [Ping timeout: 248 seconds]
Ven`` has joined #lisp
oleo has joined #lisp
warweasle has quit [Quit: away]
fikka has joined #lisp
mson has quit [Quit: Connection closed for inactivity]
Ven`` has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 240 seconds]
Ven`` has joined #lisp
yeticry has quit [Ping timeout: 244 seconds]
knobo has joined #lisp
Guest86136 has quit [Remote host closed the connection]
Guest86136 has joined #lisp
DeadTrickster has joined #lisp
Ven`` has quit [Ping timeout: 240 seconds]
attila_lendvai has quit [Ping timeout: 260 seconds]
king_idiot has joined #lisp
quotation_ has joined #lisp
happy_gnu[m] has left #lisp ["User left"]
__rumbler31 has joined #lisp
koenig1 has joined #lisp
loke` has joined #lisp
fluxi- has joined #lisp
sword` has joined #lisp
margeas has joined #lisp
orivej_ has joined #lisp
Cthulhux` has joined #lisp
hhdave has joined #lisp
gorgor_ has joined #lisp
cess11__ has joined #lisp
razzy_ has joined #lisp
guaqua_ has joined #lisp
ski_ has joined #lisp
crypto has joined #lisp
djh_ has joined #lisp
whyNOP_ has joined #lisp
Ven`` has joined #lisp
z0d has quit [Disconnected by services]
crypto is now known as z0d
koenig has quit [Disconnected by services]
damke_ has joined #lisp
drot_ has joined #lisp
copec_ has joined #lisp
swflint_away has joined #lisp
wigust has joined #lisp
SlashLife_ has joined #lisp
dvdmuckle_ has joined #lisp
ikopico_ has joined #lisp
rumbler31 has quit [*.net *.split]
damke has quit [*.net *.split]
wigust_ has quit [*.net *.split]
cess11_ has quit [*.net *.split]
JuanDaugherty has quit [*.net *.split]
markong has quit [*.net *.split]
orivej has quit [*.net *.split]
antismap has quit [*.net *.split]
sword has quit [*.net *.split]
Cthulhux has quit [*.net *.split]
ym has quit [*.net *.split]
ski has quit [*.net *.split]
eschatologist has quit [*.net *.split]
whyNOP has quit [*.net *.split]
dvdmuckle has quit [*.net *.split]
mfiano has quit [*.net *.split]
loke has quit [*.net *.split]
SlashLife has quit [*.net *.split]
guaqua has quit [*.net *.split]
swflint has quit [*.net *.split]
fluxit has quit [*.net *.split]
drot has quit [*.net *.split]
copec has quit [*.net *.split]
gorgor has quit [*.net *.split]
ikopico has quit [*.net *.split]
razzy has quit [*.net *.split]
ccl-logbot has quit [*.net *.split]
Nikotiini has quit [*.net *.split]
djh has quit [*.net *.split]
swflint_away is now known as swflint
copec_ is now known as copec
SlashLife_ is now known as SlashLife
ikopico_ is now known as ikopico
dvdmuckle_ is now known as dvdmuckle
remi`bd has quit [Quit: leaving]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
butterthebuddha has quit [Ping timeout: 260 seconds]
mishoo has quit [Ping timeout: 268 seconds]
JuanDaugherty has joined #lisp
mfiano has joined #lisp
Nikotiini has joined #lisp
ym has joined #lisp
antismap has joined #lisp
ineiros has quit [Ping timeout: 260 seconds]
butterthebuddha has joined #lisp
ccl-logbot has joined #lisp
ineiros has joined #lisp
MrBusiness has joined #lisp
jdz has quit [Ping timeout: 264 seconds]
brendyn has joined #lisp
Tobbi has joined #lisp
jdz has joined #lisp
Ven`` has quit [Ping timeout: 260 seconds]
mson has joined #lisp
Ven`` has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
moei has quit [Quit: Leaving...]
Ven`` has quit [Client Quit]
Amplituhedron has joined #lisp
Ven`` has joined #lisp
xrash has quit [Read error: Connection reset by peer]
waynecolvin has quit [Quit: WeeChat 2.0]
Ven`` has quit [Read error: Connection reset by peer]
Ven` has joined #lisp
eschatologist has joined #lisp
eschatologist has quit [*.net *.split]
hhdave has quit [Quit: hhdave]
attila_lendvai has quit [Read error: Connection reset by peer]
yeticry has joined #lisp
Ven` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
koenig1 is now known as koenig
LiamH has quit [Quit: Leaving.]
<fe[nl]ix> Xach: is there a way to download and unpack all projects into a directory ?
<fe[nl]ix> I want to check if there are users of Bordeaux-threads recursive locks
<Shinmera> There are.
<jmercouris> You want to grep all common lisp on quicklisp?
<jmercouris> Why don't you just search github
yeticry has quit [Ping timeout: 248 seconds]
<Shinmera> github search is awful
<Bike> have you ever tried github search
<Bike> it blows
<jmercouris> Yes
<Shinmera> And does not encompass all of Quicklisp
<jmercouris> You can use a diffrent type of API search I think to look for regex/lines of code IIRC
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
<Shinmera> fe[nl]ix: You can download all projects to Quicklisp's internal dist folder using: (mapc #'ql-dist:ensure-installed (ql-dist:provided-systems (ql-dist:find-dist "quicklisp")))
smurfrobot has joined #lisp
<jmercouris> Here's what I was talking about: https://help.github.com/articles/searching-code/
<fe[nl]ix> is it possible to specify a directory other than the default one ? I don't want to taint my installed systems
<jmercouris> I think it only allows searching one repository/organization at a time but there should be a way to do it for all repositories of a specific language or something
SuperJen has joined #lisp
<Shinmera> fe[nl]ix: could set up a quick separate Quicklisp directory.
Jen has joined #lisp
Jen is now known as Guest35307
smurfrobot has quit [Ping timeout: 246 seconds]
Guest86136 has quit [Ping timeout: 240 seconds]
yeticry has joined #lisp
__rumbler31 has quit [Ping timeout: 248 seconds]
kark has joined #lisp
SuperJen has quit [Ping timeout: 240 seconds]
<Shinmera> I can't see any obvious way otherwise to get it to a specific directory. ql-dist:install has no other arguments.
kartik1 has joined #lisp
<jmercouris> You could move your current directory to a temp directory
quazimodo has joined #lisp
<jmercouris> What do you think a good way of implementing hooks in common lisp is? (something akin to emacs hooks)
<jmercouris> from the emacs documentation, it seems that hook is just a list of functions that get called at a given time
<jasom> anybody have a good pattern for I want to do N things in parallel, but I must perform a side-effect on the results in-order? Right now I'm doing this, which works but is slightly convoluted: https://github.com/jasom/sqlitestore/blob/master/sqlitestore.lisp#L231
<jmercouris> so let's say I want to have a hook after action XY
<jmercouris> should I have a list called something like (defparameter XY-Hooks ()) and add functions to that list to invoke upon event XY?
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
<Shinmera> That's a bad idea because then you can't redefine
damke has joined #lisp
<jasom> (quick description of how it works: I create a promise for each chunk of work and push the promise onto a queue; I then have a separate task poping from the queue, forcing the promise, and performing the side-effect.
<jmercouris> Shinmera: What do you mean by "can't redfine"?
<Shinmera> jmercouris: If you store function objects in the list, then when you want to redefine your hook function, it won't be able to find the old one to remove it before adding the new one.
<Shinmera> So you'd just keep on adding functions.
<basket> You could just add their names to the list instead
<jasom> Shinmera: use the function names solves that problems
<Shinmera> Usually in Lisp you want to have some kind of name->definition mapping to avoid this.
kark has quit [Ping timeout: 250 seconds]
<Shinmera> jasom: That fills the global function namespace with garbage
<jasom> (push 'foo *xy-hooks*)
<Shinmera> The hooks are usually not useful as standalone functions
<jasom> Shinmera: I assumed the functions already have names?
<jmercouris> The functions are named functions
damke_ has quit [Ping timeout: 246 seconds]
<jasom> Shinmera: whether or not they are useufl as standalone functions is orthogonal to whether or not they should be named
<basket> How does it preclude the use of packages, Shinmera?
<jmercouris> But I don't see what the issue with (push '(lambda ()) *xy-hooks*) is
<Shinmera> jasom: I'm not arguing against names, I'm arguing for a separate namespace.
<jasom> Shinmera: i.e. my routing library gives each route a function name, which aids in debugging for backtraces
<jmercouris> I guess one may not be able to remove an item from the hook without a reference to it, but that should be the problem of the user that adds that hook no?
<basket> jmercouris: Because then it makes it difficult to change that function later. You have to find it somehow, remove it from the list, and add a new one
<jmercouris> basket: Ok yes, in the scenario of (push 'named-func *xy-hooks*), one should be able to remove it though yes?
<jasom> jmercouris: pushing an anonymous function makes it hard to redefine; pushing the name of a function makes it trivial.
<basket> Yes jmercouris
<jasom> and I disagree with Shinmera on the "polluting the function namespace issue" they are functions, they are named, ergo the function namespace is perfectly appropriate
<jmercouris> Shinmera: When you say "redefine your hook function" do you mean, "redefine your function that is called by the hook XY"?
<Shinmera> :shrug: I just like separate concepts separate in their namespace too.
<Colleen> ‾\(ツ)/‾
<jmercouris> lol nice bot
<Shinmera> jmercouris: Well, when you redefine the hook, to be precise. Defining a hook usually involves creating a new function object to call.
<jasom> jmercouris: any time you push an actual function object, e.g. (push (lambda () ...) ...) or (push #'foo () ...) it becomes difficult to locate one of those hooks later should you want to remove it or change its behavior
<jasom> jmercouris: if you push the name of the function, you get redefinition for free, and locating it obviously becomes easier too.
<fe[nl]ix> Shinmera: thanks, that works
<jmercouris> jasom: Okay, I get the disctinction now! thanks!
<Fare> Shinmera, calling asdf:load-system or ql:quickload from within a perform method is a big no-no
raphaelss has joined #lisp
<Shinmera> Apparently so, I have my reasons for doing it though.
<jmercouris> Shinmera: I was saying "define a hook" as in the creation of *xy-hook-list* and then (loop for function in *xy-hook-list* do (funcall function))
<Shinmera> I'll elaborate in the issue ticket tomorrow.
fikka has joined #lisp
<jmercouris> Shinmera: Adding a function to the hook would be just adding a hook
<jmercouris> Maybe I'm using terminology wrong here, but I think we're on the same page
<Fare> Shinmera, what are you trying to do???
<Shinmera> Fare: I need to do some nasty stuff to get qt-libs to work the way it should. Anyway, as I said, I'll elaborate tomorrow. Too tired now.
<jmercouris> Ah, good times with QT
<jmercouris> I'm so glad I don't have to work with QT anymore
<Fare> also, traverse-action in not a gf anymore
<Shinmera> This has nothing to do with Qt
<Shinmera> It's purely a lisp issue.
<jmercouris> I don't really know anything about your issue, I'm just reminiscing on QT quality
<Fare> is this related to there being no good way for cffi and asdf to properly declare dependencies on .so 's?
<jmercouris> There was nothing wrong with the QT lisp system I was using, it was the QT code itself...
<Shinmera> Fare: It's related to me needing to change how another system works, and then optionally needing to load other systems during the loading.
<Shinmera> Anyway, tomorrow.
astronavt has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
Bike has quit [Ping timeout: 260 seconds]
<fe[nl]ix> oh wow, there is so much duplicate code for locks and threading
<fe[nl]ix> and even one project that copied recursive locks from BT because dependencies are scary :(
jmercouris has quit [Ping timeout: 248 seconds]
kartik1 has quit [Quit: WeeChat 1.4]
<Shinmera> fe[nl]ix: What were you intending on doing? Removing recursive locks?
Jesin has quit [Quit: Leaving]
wxie has joined #lisp
cromachina has joined #lisp
<jasom> also recursive locks in BT are broken on sbcl
<jasom> they only work if you use with-recursive-lock, not with the lock functions
<Shinmera> I don't see how that's broken?
<Shinmera> Oh wait
<Shinmera> Ech, I shouldn't try to read things anymore at this hour, never mind me.
pierpa has joined #lisp
wxie has quit [Remote host closed the connection]
moei has joined #lisp
Bicyclidine is now known as Bike
<_death> jasom: why not just pmapcar do dolist
attila_lendvai has quit [Ping timeout: 260 seconds]
<fe[nl]ix> Shinmera: I think it would be a good thing, but apparently lots of people use recursive locks
<fe[nl]ix> Shinmera: and the only system that uses the broken acquire-recursive-lock is simple-tasks
<fe[nl]ix> hint hint
<Shinmera> Hooray
<fe[nl]ix> if I could remove {acquire,release}-recursive-lock it would already be very good
<Shinmera> That's what I get for not writing my own threads library :^)
<fe[nl]ix> :)
<Shinmera> I'll see if I can get rid of the acquire/release calls.
<Shinmera> Tomorrow.
cpape` has joined #lisp
banjiewen has quit [Ping timeout: 258 seconds]
jeremyheiler has quit [Ping timeout: 258 seconds]
billstclair has quit [Ping timeout: 258 seconds]
terrorjack has quit [Ping timeout: 258 seconds]
lonjil2 has joined #lisp
alphor has quit [Ping timeout: 258 seconds]
antoszka has quit [Ping timeout: 258 seconds]
aaronjensen has quit [Ping timeout: 258 seconds]
tobel has quit [Ping timeout: 258 seconds]
lonjil has quit [Ping timeout: 258 seconds]
cpape has quit [Ping timeout: 258 seconds]
Lord_of_Life has quit [Excess Flood]
Lord_of_Life has joined #lisp
jfb4 has quit [Ping timeout: 268 seconds]
tobel has joined #lisp
aaronjensen has joined #lisp
terrorjack has joined #lisp