p_l changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | ASDF 3.3.4
loli has quit [Quit: WeeChat 2.7.1]
corpix has quit [Remote host closed the connection]
corpix has joined #lisp
loli has joined #lisp
<anlsh> MichaelRaskin: blame-shifting wouldn't fix anyone's code, but it would provide an incentive to use better coding style (again, with newer packages) and make it easier to add functionality to libraries right?
terpri has joined #lisp
<MichaelRaskin> You say adding functionality to the existing libraries instead of new namespaces like it's a good thing
<MichaelRaskin> And pure blameshifting provides no incentive
MerlinTheWizard has joined #lisp
<MichaelRaskin> I guess if you indeed export a NIL distinct from CL:NIL people are more likely to reconsider whether they want to :use such a library
buffergn0me has joined #lisp
tburdick has joined #lisp
schjetne has quit [Ping timeout: 246 seconds]
<anlsh> Well it's not exactly a *bad* thing, is it? For example, a while back I re-implemented alexandria's median function as a special case of the quick-select algorithm. I suggested that they might as well provide the quick-select function too, but the exporting issue got in the way
rixard has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
rixard has quit [Ping timeout: 260 seconds]
pilne has joined #lisp
efm has quit [Quit: Konversation terminated!]
zaquest has quit [Quit: Leaving]
akoana has quit [Ping timeout: 260 seconds]
akoana has joined #lisp
Jeanne-Kamikaze has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
<MichaelRaskin> Well, the idea of alexandria-2 that would include entire alexandria and then some more also makes sense
tburdick has quit [Ping timeout: 265 seconds]
zaquest has joined #lisp
MerlinTheWizard has quit [Ping timeout: 240 seconds]
buffergn0me has quit [Ping timeout: 240 seconds]
MerlinTheWizard has joined #lisp
cwaydt has quit [Ping timeout: 265 seconds]
patlv has quit [Quit: patlv]
bitmapper has quit [Ping timeout: 265 seconds]
MerlinTheWizard has quit [Remote host closed the connection]
emys has joined #lisp
MerlinTheWizard has joined #lisp
buffergn0me has joined #lisp
shukryzablah has joined #lisp
holycow has quit [Quit: leaving]
ahungry has joined #lisp
emys has quit [Ping timeout: 265 seconds]
Zakkor has quit [Quit: Connection closed for inactivity]
phoe has quit [Ping timeout: 272 seconds]
phoe has joined #lisp
emys has joined #lisp
dmiles has quit [Read error: No route to host]
dmiles has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
EvW has quit [Ping timeout: 240 seconds]
lxbarbosa has quit [Remote host closed the connection]
emys has quit [Ping timeout: 246 seconds]
emys has joined #lisp
Josh_2 has quit [Ping timeout: 260 seconds]
MerlinTheWizard has quit [Ping timeout: 244 seconds]
emys has quit [Ping timeout: 240 seconds]
terpri has quit [Remote host closed the connection]
emys has joined #lisp
schjetne has joined #lisp
MerlinTheWizard has joined #lisp
Demosthenex has quit [Ping timeout: 250 seconds]
Demosthenex has joined #lisp
mono has joined #lisp
ahungry has quit [Ping timeout: 244 seconds]
monokrom has quit [Ping timeout: 260 seconds]
emys has quit [Ping timeout: 240 seconds]
emys has joined #lisp
tburdick has joined #lisp
emys has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 240 seconds]
schjetne has quit [Ping timeout: 260 seconds]
emys has joined #lisp
karlosz has quit [Quit: karlosz]
anlsh has quit [Ping timeout: 240 seconds]
turona has quit [Ping timeout: 265 seconds]
turona has joined #lisp
<White_Flame> hmm, I have a relatively control-flow-twisted question to try to ask, as it's a bit difficult to make a simple test case for
<White_Flame> will RETURN-FROM always return to the exact point in the call stack that its lexical block was established, even if there were intermediary blocks of the same name?
<White_Flame> eg (block foo (do-cps-style (lambda () (return-from foo 3))))
<White_Flame> assumign that in do-cps-style, there are other recursive uses of block foo
<White_Flame> from the same source code
karlosz has joined #lisp
<White_Flame> so, on the call stack, there are multiple places where this same code was called, establishing block foo's. The return-from will return to the exact stack frame it was established in, and not just the first found?
<Bike> White_Flame: yes, it will return to the particular frame.
<White_Flame> thank you veeeeery much
<Bike> it's kind of a tricky point.
<saturn2> block/return-from does the thing you want, and catch/throw does the thing you don't want
<White_Flame> ah, k
<White_Flame> I had tried catch/throw first, but it seemed less right
<White_Flame> (without executing yet, the code I"m refactoring is quite large)
<White_Flame> thanks
emys has quit [Ping timeout: 260 seconds]
emys has joined #lisp
terpri has joined #lisp
dtman34 has quit [Ping timeout: 240 seconds]
tburdick has quit [Ping timeout: 265 seconds]
akoana has left #lisp ["Leaving"]
<karlosz> publickey denied
emys has quit [Ping timeout: 246 seconds]
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
Bike has quit [Quit: Lost terminal]
pilne has quit [Quit: Hard work pays off in the future, laziness pays off now]
terpri has quit [Remote host closed the connection]
_jrjsmrtn has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 244 seconds]
terpri has joined #lisp
emys has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
libertyprime has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
emys has quit [Ping timeout: 260 seconds]
wsinatra has joined #lisp
EvW1 has joined #lisp
wsinatra has quit [Client Quit]
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
<beach> Good morning everyone!
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
libertyprime has quit [Ping timeout: 260 seconds]
terpri has quit [Remote host closed the connection]
libertyprime has joined #lisp
emys has joined #lisp
vhost- has quit [Quit: WeeChat 2.6]
emys has quit [Ping timeout: 244 seconds]
libertyprime has quit [Ping timeout: 260 seconds]
Jeanne-Kamikaze has quit [Remote host closed the connection]
emys has joined #lisp
shka_ has joined #lisp
emys has quit [Ping timeout: 265 seconds]
mixfix41 has quit [Read error: Connection reset by peer]
Bourne has quit [Remote host closed the connection]
emys has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
schjetne has joined #lisp
torbo has quit [Remote host closed the connection]
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
dancynancy has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
clintm has quit [Quit: Textual IRC Client: www.textualapp.com]
EvW1 has quit [Ping timeout: 244 seconds]
dancynancy has left #lisp [#lisp]
renzhi has quit [Ping timeout: 244 seconds]
emys has quit [Ping timeout: 244 seconds]
terpri has joined #lisp
terpri has quit [Client Quit]
emys has joined #lisp
terpri has joined #lisp
Kundry_Wag has joined #lisp
catalinbostan has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
tburdick has joined #lisp
vhost- has joined #lisp
vhost- has joined #lisp
vhost- has quit [Changing host]
emys has quit [Ping timeout: 240 seconds]
stepnem has quit [Ping timeout: 265 seconds]
orblu has joined #lisp
vlatkoB has joined #lisp
schjetne has quit [Ping timeout: 264 seconds]
stepnem has joined #lisp
emys has joined #lisp
emys has quit [Ping timeout: 244 seconds]
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
emys has joined #lisp
Kundry_Wag has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
narimiran has joined #lisp
tburdick has quit [Ping timeout: 265 seconds]
Kundry_Wag has quit [Ping timeout: 244 seconds]
Oladon has quit [Quit: Leaving.]
frgo_ has quit [Remote host closed the connection]
terpri has quit [Remote host closed the connection]
gravicappa has joined #lisp
Cymew has joined #lisp
buffergn0me has quit [Ping timeout: 244 seconds]
schjetne has joined #lisp
jayde has quit [Quit: +_+]
Kundry_Wag has joined #lisp
frgo has joined #lisp
frgo has quit [Read error: Connection reset by peer]
orblu has quit [Ping timeout: 260 seconds]
frgo has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
frgo has quit [Read error: Connection reset by peer]
frgo has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
orblu has joined #lisp
_paul0 has joined #lisp
paul0 has quit [Ping timeout: 265 seconds]
pve has joined #lisp
schjetne has quit [Ping timeout: 246 seconds]
emys has quit [Ping timeout: 246 seconds]
shka_ has quit [Ping timeout: 260 seconds]
emys has joined #lisp
schjetne has joined #lisp
emys has quit [Ping timeout: 240 seconds]
schjetne has quit [Ping timeout: 260 seconds]
random-nick has joined #lisp
emys has joined #lisp
schjetne has joined #lisp
<Shinmera> Day two of ELS here we go
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
<flip214> Here we go again .... give a little bit of your lisp to me
dale has quit [Quit: My computer has gone to sleep]
<Shinmera> I can give you all of my lisp if you take over maintainership
HDurer_ has quit [Remote host closed the connection]
nowhere_man has quit [Ping timeout: 265 seconds]
<flip214> I was mostly citing https://www.youtube.com/watch?v=J9JOut9yh5g, 0:09 and onwards
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
emys has quit [Ping timeout: 265 seconds]
orblu has quit [Ping timeout: 260 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
jprajzne has quit [Client Quit]
rgherdt has joined #lisp
jprajzne has joined #lisp
Oddity has quit [Ping timeout: 265 seconds]
heisig has joined #lisp
emys has joined #lisp
Oddity has joined #lisp
varjag has joined #lisp
duncan_ has joined #lisp
emys has quit [Ping timeout: 265 seconds]
doomlist3 has joined #lisp
<doomlist3> is there CL to C transpilers
<doomlist3> just like abcl is for java
<jdz> doomlist3: There's ECL.
<Shinmera> Neither are 'transpilers' really because they still require their own runtime to work.
<Shinmera> Also I think ABCL emits JVM bytecode, not Java source.
emys has joined #lisp
jonatack has quit [Ping timeout: 244 seconds]
jonatack has joined #lisp
emys has quit [Ping timeout: 244 seconds]
Kundry_Wag has joined #lisp
<doomlist3> runtime is a software , so what is it
ralt has joined #lisp
pfdietz has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
<phoe> ECL, short for Embeddable Common Lisp
<beach> doomlist3: Memory manager, garbage collector, etc.
<phoe> that's the tool you seem to want to use
gxt has joined #lisp
<doomlist3> runtime is glibc for gcc?
<beach> doomlist3: Sort of.
<phoe> not in case of ECL; ECL's runtime is libecl
<beach> doomlist3: But Common Lisp is way more complicated than C, so it needs a lot more run-time support.
<phoe> ^
<Shinmera> the C runtime is your operating system, plus possibly glibc.
<beach> doomlist3: The compiler is required to be present in Common Lisp at run-time. Not so in C.
MerlinTheWizard has quit [Ping timeout: 244 seconds]
orblu has joined #lisp
<doomlist3> (ql:quickload "system-name") what is system-name?
<doomlist3> is it hostname? or username?
<doomlist3> or something else entirely
<jdz> It's the thing you want to load.
<beach> It's the name of a system.
<beach> A "system" in Common Lisp is what is called a "package" in most other languages.
<flip214> perhaps "library" might be a synonym as well
<phoe> doomlist3: sounds like you might want to enroll in #clschool
<doomlist3> what do i need system-name to be to run (ql:system-apropos "vecto")
<no-defun-allowed> (ql:quickload :vecto) ;; Do you want to load the vecto system?
Krystof has quit [Ping timeout: 258 seconds]
<doomlist3> no-defun-allowed: i just want to install quicklisp
<doomlist3> i don't know what is vecto
<no-defun-allowed> There are instructions on https://www.quicklisp.org/beta/
<doomlist3> yes
<doomlist3> that's exactly what i was following before!
<beach> Then you should have it installed.
<doomlist3> i am installing common-lisp-jupyter, so should i activate venv and then install quicklisp and common-lisp-jupyter
<doomlist3> image based , non-image based or quicklisp bundle? https://bpaste.net/ASLQ
<phoe> I have no idea if cl-jupyter has an IRC channel; this is a highly specific question
<doomlist3> i am always specific
<doomlist3> don't you feel jupyter kernels are greatt
<doomlist3> doesn't anyone here use jupyter kernels?
<doomlist3> just curious i will ask on #jupyter if any problems persist.
<White_Flame> if you're doing graphical output stuff, I think it would probably be very beneficial
<White_Flame> but lisp already has a repl
<White_Flame> so for what it takes to set up & initialize, not sure it's better to move to that workflow from SLIME
<doomlist3> but notebooks are super-comfy, i do C stuff do there.
<beach> Good to know.
<White_Flame> from the little that I've used jupyter, it seemed less interactive than SLIME
<White_Flame> and more of a usage testing environment than an actual software development environment
<beach> doomlist3: Try #clasp. They have been working with Jupyter, as I recall.
<doomlist3> i am getting rekt
<White_Flame> first lines: "To continue with installation, evaluate: (quicklisp-quickstart:install)"
<White_Flame> next input: "(ql:quickload :common-lisp-jupyter)" :-P
<White_Flame> the instructions are very well laid out, follow them step by step
<no-defun-allowed> I think you would need to install the headers for zmq. The version has -debian- in the name, so I would guess it's in a libzmq-dev
<jdz> doomlist3: You don't have the ZerqMQ development package installed (with C headers).
orblu has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
<White_Flame> (ah yeah, scrolling down this isn't a QL installation issue itself)
<jdz> On Ubuntu I think it's 'libzmq3-dev'.
shifty has joined #lisp
toorevitimirp has joined #lisp
<White_Flame> filesystem permissions error?
<White_Flame> or do you have some file already named like a directory it wants to create?
<jdz> The former is more likely.
<jdz> If the path was already there ENSURE-DIRECTORIES-EXIST would not have to do anything.
<doomlist3> mkdir .local/share/jupyter/kernels/common-lisp
<doomlist3> mkdir: cannot create directory ‘.local/share/jupyter/kernels/common-lisp’: Permission denied
<doomlist3> using sudo it works but it's user becomes root, but i don't intend dto run it as root
<jdz> doomlist3: Did you mean `mkdir -p ...`?
<doomlist3> mkdir -p yes i fed the directory
<doomlist3> jdz: ok i would like to add the path , but which file
<jdz> It seems you've have done something as a root user already, so you should fix what's broken before proceeding.
<doomlist3> but path which file to feed
<White_Flame> erase whatever you made, so that the scripts can make their own directories
orivej has quit [Ping timeout: 260 seconds]
<doomlist3> i made kernels dir as root which has C kernel inside it
<doomlist3> mkdir .local/share/jupyter/kernels/common-lisp
<doomlist3> mkdir: cannot create directory ‘.local/share/jupyter/kernels/common-lisp’: Permission denied
<doomlist3> sudo chown -R 755 user:user ~/.local/share/jupyter/kernels/
<doomlist3> chown: cannot access 'user:user': No such file or directory
<doomlist3> sorry
<jdz> doomlist3: Remove 755.
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
<doomlist3> https://bpaste.net/JRJQ let's just hope now it begins. i put a lot of effort into this
<doomlist3> ahh finally happiness
frgo has quit [Ping timeout: 246 seconds]
mangul has joined #lisp
MerlinTheWizard has joined #lisp
<doomlist3> jdz: i am happy now.
toorevitimirp has quit [Ping timeout: 246 seconds]
ljavorsk has joined #lisp
rixard has joined #lisp
Fare has quit [Ping timeout: 246 seconds]
Fare has joined #lisp
<jdz> doomlist3: Great, I'm happy you got it working, too!
rixard has quit [Ping timeout: 246 seconds]
rgherdt_ has joined #lisp
Kundry_Wag has joined #lisp
rogersm has joined #lisp
rogersm has quit [Client Quit]
Kundry_Wag has quit [Ping timeout: 260 seconds]
momozor has joined #lisp
<momozor> Hi
rogersm has joined #lisp
rogersm has quit [Client Quit]
<momozor> I wonder when should I choose to use declaim, declare and check-type?
rogersm has joined #lisp
<beach> momozor: Many of us are busy attending ELS.
<momozor> Oh
<momozor> sorry
<jdz> momozor: You can do it too, at https://www.twitch.tv/elsconf
frgo_ has joined #lisp
<beach> Just explaining why some people are not very reactive right now.
<momozor> jdz: thanks for the link
<momozor> beach: also thanks for letting me know
<beach> Sure.
ebrasca has joined #lisp
<no-defun-allowed> To my knowledge, the consequences are undefined if you (declare (type ty p)) and P is not of type TY.
<no-defun-allowed> If you want to assert that a variable is bound to a value of some type, use CHECK-TYPE.
frgo_ has quit [Ping timeout: 264 seconds]
<phoe> momozor: CHECK-TYPE is for type assertions
<phoe> DECLARE is for declarations that are not top-level
<phoe> DECLAIM is for declarations that are toplevel - also called proclamations
<phoe> like, (DECLARE ...) at toplevel is an error, but (DECLAIM ...) is not
<momozor> no-defun-allowed, phoe: CHECK-TYPE will only assert at runtime. I believe?
<phoe> momozor: depends on the compiler. SBCL tends to optimize it away and also warn if it detects a type mismatch at compile-time.
<phoe> also, CHECK-TYPE actually prevents you against supplying an object of wrong type by means of signaling an error
<phoe> type declarations are allowed to just proceed
<phoe> and at that point, the behaviour is undefined.
MerlinTheWizard has quit [Ping timeout: 240 seconds]
* beach observes that phoe is either not interested in his talk, or phoe is a much better multi-processor. :)
terpri has joined #lisp
<momozor> phoe: thanks! :D
nika has joined #lisp
<phoe> momozor: I am multitasking
<phoe> I am currently listening the ELS talks, answering IRC, and handling people who are performing fixes in the flat I'm in
<beach> Impressive!
shifty has quit [Ping timeout: 260 seconds]
<phoe> and annoying
<phoe> but that's when things collide, I wish I could focus on my computer and therefore on Lisp-related things
shifty has joined #lisp
<selwyn> what are they fixing?
<phoe> a pigeon-inflicted balcony malfunction
<selwyn> :/ busy day for you then
<easye> phoe: What the hell do you feed your pigeons in Poland?
<phoe> easye: pierogi and bigos and vodka, they're a part of family
* phoe moves to #lispcafe
Kundry_Wag has joined #lisp
h11 has joined #lisp
ArthurStrong has joined #lisp
copec has quit [Ping timeout: 264 seconds]
Kundry_Wag has quit [Ping timeout: 260 seconds]
copec has joined #lisp
orivej has joined #lisp
Fare has quit [Ping timeout: 240 seconds]
mangul is now known as shangul
Fare has joined #lisp
rtvdenys has joined #lisp
frgo has joined #lisp
<rtvdenys> Hi
<beach> Hello rtvdenys.
<ArthurStrong> Hi indeed
rixard has joined #lisp
<rtvdenys> I am compiling some code with SBCL via ASDF and I see a bunch of warnings
<rtvdenys> However, the warnings do not mention the files and lines in the files where the problem is.
<rtvdenys> Does anybody have recommendations on how to increase the verbosity?
<beach> Try compiling from SLIME and you usually get the code underlined.
<rtvdenys> Tried that but it does not show anything additional.
<beach> And set the DEBUG quality to 3. It is not that high by default.
<beach> Oh, I meant C-c C-k in the Emacs buffer.
<rtvdenys> Is it something I can do without touching the source code?
<beach> Yes, in your .sbclrc
<rtvdenys> For C-c C-k I need to know which file is producing those warnings but I do not know even that.
<beach> (proclaim '(optimize (debug 3) ...))
<beach> That's very strange.
<rtvdenys> Tried a few things. Even in a fresh sbcl session I do not see much if I run this:
igemnace has joined #lisp
<rtvdenys> (proclaim '(optimize (debug 3)))
<phoe> rtvdenys: (asdf:load-system :foo :verbose t :force t) should give you a log
<rtvdenys> (asdf:compile-system "cl-async")
rixard has quit [Ping timeout: 260 seconds]
<rtvdenys> (asdf:compile-system :cl-async :verbose t :force t) made it error and the error is quite unclear. I suspect it did not like those asdf options
<phoe> post the error!
<phoe> also, post (asdf:asdf-version)
<phoe> and please use a pastebin
<rtvdenys> "3.3.1"
<phoe> OK, recent enough
<rtvdenys> debugger invoked on a UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread
<rtvdenys> #<THREAD "main thread" RUNNING {10005504C3}>:
<rtvdenys> COMPILE-FILE-ERROR while compiling #<CL-SOURCE-FILE "cl-async" "src" "tcp">
<rtvdenys> Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
<rtvdenys> restarts (invokable by number or by possibly-abbreviated name):
<rtvdenys> 0: [RETRY ] Retry
<rtvdenys> compiling #<CL-SOURCE-FILE "cl-async" "src" "tcp">.
<rtvdenys> 1: [ACCEPT ] Continue, treating
<rtvdenys> compiling #<CL-SOURCE-FILE "cl-async" "src" "tcp">
<rtvdenys> as having been successful.
<Shinmera> sigh
<rtvdenys> 2: Retry ASDF operation.
<rtvdenys> 3: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
<rtvdenys> configuration.
<rtvdenys> 4: Retry ASDF operation.
<rtvdenys> 5: Retry ASDF operation after resetting the
<rtvdenys> configuration.
<rtvdenys> 6: [ABORT ] Exit debugger, returning to top level.
<rtvdenys> (UIOP/LISP-BUILD:CHECK-LISP-COMPILE-RESULTS NIL T T "~/asdf-action::format-action/" ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "cl-async" "src" "tcp">)))
<rtvdenys> source: (ERROR 'COMPILE-FILE-ERROR :CONTEXT-FORMAT CONTEXT-FORMAT
<rtvdenys> :CONTEXT-ARGUMENTS CONTEXT-ARGUMENTS)
<rtvdenys> Does it look like something decipherable?
rtvdenys was kicked from #lisp by phoe [rtvdenys]
* phoe reloads
rtvdenys has joined #lisp
<Shinmera> rtvdenys: Check the REPL for warning messages
<phoe> rtvdenys: basically, what happens, is: ASDF treats all* compile-time warnings as errors and signals an error
<Shinmera> C-s WARNING
<phoe> You also get the warning file name in the error message - so you know that cl-async/src/tcp.lisp is the faulting file
<phoe> use that to debug your issue
<rtvdenys> Ah.. Makes sense. I see lots of warnings. I guess I will try to identify them one by one and get rid of them.
<rtvdenys> Thank you very much.
jello_pudding has quit [Ping timeout: 246 seconds]
<no-defun-allowed> Can we see a backtrace?
cosimone has joined #lisp
<no-defun-allowed> (:backtrace in the debugger will print that out)
<phoe> rtvdenys: are you installing cl-async from quicklisp?
Blukunfando has quit [Read error: Connection reset by peer]
<phoe> it should work out of the box and compile
<no-defun-allowed> Do you have libuv installed?
<doomlist3> (defun hello-world () (list (3 45)) OUT: end of file on #<SB-IMPL::STRING-INPUT-STREAM {1004BCB213}>
peterhil has joined #lisp
<rtvdenys> Yes, I do have libuv.
<beach> doomlist3: Count your parentheses.
<pve> doomlist3: you need one more ")"
<rtvdenys> I have checked out cl-async from github to figure out how it works and tried to compile it.
<no-defun-allowed> Well, it doesn't appear you are grabbing the quicklisp version. That would probably fare better,
<phoe> rtvdenys: which repo URL?
<rtvdenys> That's the one I check out
<phoe> so it's the same
<phoe> doomlist3: #clschool plus some programming books might benefit you more
<phoe> rtvdenys: I have no idea why you get these warnings; cl-async is supposed to compile cleanly if it is on quicklisp
<beach> doomlist3: This is elementary stuff. You need to grab a book and read it.
<phoe> let me try to reproduce...
<White_Flame> minion: tell doomlist3 about pcl
<minion> doomlist3: please look at pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<doomlist3> minion: i was reading exactly that!
<minion> well, i've never been reading exactly that
<no-defun-allowed> I can load it with (ql:quickload :cl-async)
<Cymew> doomlist3: Learn to use an editor that helps you balance the parens, and it will be much easier.
<Cymew> doomlist3: I don't remember if Peter talks about that, but there are options.
<phoe> rtvdenys: can't reproduce, it compiles cleanly on my machine. What's your repository version and which commit is your repository at?
<beach> doomlist3: Then you will know that (<something> <something-else>) means that <something> is an operator that is applied to <something-else> as an argument.
<Cymew> doomlist3: emacs and slime is probably most commonly used on linux.
<beach> doomlist3: And a number is not a valid operator.
<rtvdenys> 1ea183a31fa6994129625e3ab2e87ff02458a0f2 <- git revision
<phoe> rtvdenys: what does (asdf:system-relative-pathname :cl-async "") give you?
<rtvdenys> oh... looks like my SBCL may be old
<rtvdenys> SBCL 1.5.5.debian
<phoe> rtvdenys: that's not exactly the newest, yep
<rtvdenys> That's what is packaged in Ubuntu 19.10. :(
<phoe> rtvdenys: just to be sure, please give me (asdf:system-relative-pathname :cl-async "")
<rtvdenys> #P"/home/rtvd/src/ALIEN/cl-async/"
<doomlist3> okay and i did (defun hello-world () (list 'bull' 3 "shit")) why is bull an atom and "shit" a string
<rtvdenys> So I should try to get a fresh SBCL and see what happens. Maybe that will sort it out.
<beach> doomlist3: Strings are atoms.
<beach> doomlist3: This is really elementary stuff.
<White_Flame> quote is a unary operator. It is not a string delimeter pair like doublequote
<doomlist3> are double and single quotes the same
<White_Flame> so you really have (list 'bull '3 ...
<White_Flame> no, read the book
<White_Flame> you should at least be able to get the basic syntax rules from reference
<White_Flame> as opposed to just random questions filling in only bits of your understanding
<doomlist3> by reference you mean gigamonkeys.com?
<doomlist3> i am reading that book
<White_Flame> yes, I believe it covers all that
<_death> 'bull = (quote bull)
<phoe> rtvdenys: that's good, the pathname to the system seems to be correct.
karlosz has quit [Quit: karlosz]
emys has joined #lisp
z147 has joined #lisp
karlosz has joined #lisp
<phoe> let me know what happens after the SBCL update
karlosz has quit [Remote host closed the connection]
specbot has quit [Ping timeout: 256 seconds]
mgr_ has quit [Ping timeout: 256 seconds]
corpix_ has joined #lisp
jello_pudding has joined #lisp
corpix has quit [Ping timeout: 240 seconds]
gxt has quit [Ping timeout: 240 seconds]
emys has quit [Ping timeout: 265 seconds]
specbot has joined #lisp
gxt has joined #lisp
mgr_ has joined #lisp
Oddity has quit [Ping timeout: 260 seconds]
emys has joined #lisp
Krystof has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
<rtvdenys> I've built sbcl 2.0.4 from source and it compiles differently but it still fails. Perhaps I should remove all .fasl files as they were compiled by the previous version?
Oddity has joined #lisp
<phoe> that won't really help, FASLs are already invalidated between SBCL versions
<rtvdenys> It seems to be failing on static-vectors.asd at the moment.
<phoe> which version of static-vectors do you have downloaded?
<phoe> also, once again, why aren't you using quicklisp?
<rtvdenys> 1.8.4
<rtvdenys> I think I may have got this one from quicklisp but I am not sure.
<phoe> you should be able to `cd ~/quicklisp/local-projects && git clone cl-async` and then just (ql:quickload :cl-async)
<phoe> I mean, your issues are foreign to me, but then also you have a setup that doesn't resemble mine
narimiran has quit [Ping timeout: 260 seconds]
<phoe> I clone only the projects I edit or whose changes are not yet upstreamed to Quicklisp; the rest, QL pulls for me, including all the dependencies
Kundry_Wag has joined #lisp
<rtvdenys> (quicklisp:quickload :cl-async) works fine. But then it may be hiding some warnings, may it not?
<phoe> rtvdenys: no, it still uses ASDF under the hood
<phoe> ...but wait a second
<_death> (setf ql:*quicklisp-verbose* t) in your rc file
<phoe> again, (asdf:system-relative-pathname :cl-async "")
<phoe> I want to double-check this one because this still looks like two different versions of cl-async
<_death> that is, ql:*quickload-verbose*
<rtvdenys> Hm.. I do not seem to have ql:*quicklisp-verbose*
<rtvdenys> relative pathname of cl-async still points at the version I have checkout of from github
<Xach> (ql:quickload :cl-async :verbose t) will show warnings as it builds - but if it's fasl cached already you won't see compilation warnings.
<phoe> okay, I have no idea why now it compiled fine where previously it didn't compile fine
<phoe> wat.asd
lemoinem has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Ping timeout: 260 seconds]
doomlist3 has quit [Ping timeout: 240 seconds]
lemoinem has joined #lisp
<rtvdenys> When I do it from quicklisp then I see no warnings reported. If I try to do it with asdf:load-system then I see a bunch of warnings
<rtvdenys> Ah...
<rtvdenys> In a fresh session (quicklisp:quickload :cl-async :verbose t) shows warnings
scymtym has joined #lisp
<_death> unimportant warnings
<rtvdenys> OK. Maybe they are unimportant. But still, how do I find out which file do they relate to?
ArthurStrong has quit [Quit: leaving]
<phoe> they don't seem like they come from cl-async
scymtym__ has quit [Ping timeout: 260 seconds]
<_death> rtvdenys: it looks like you didn't compile from scratch..
emys has quit [Read error: Connection timed out]
<phoe> rtvdenys: I'd try to (handler-bind ((style-warning #'break)) (ql:quickload ...)) to capture these style warnings
<phoe> that'll enter the debugger every time a style-warning is signaled
<_death> if you delete the cl-async fasls and load verbose, you'll be able to determine where the warnings come from
momozor has quit [Quit: Lost terminal]
doomlist3 has joined #lisp
<rtvdenys> Found it. The warnings are reported in cl-libuv's grovel file
<rtvdenys> For that I have removed all fasls and ran (quicklisp:quickload :cl-async :verbose t :force t), sending everything to a "less" program.
ark has quit [Ping timeout: 272 seconds]
ark has joined #lisp
<phoe> ooooh
<phoe> I see - then you'll perhaps want to submit a ticket for that
<rtvdenys> Thankyou
emys has joined #lisp
Nilby has joined #lisp
Bike has joined #lisp
emys has quit [Ping timeout: 244 seconds]
schjetne has quit [Ping timeout: 246 seconds]
Lord_of_Life_ has joined #lisp
Kundry_Wag has joined #lisp
Lord_of_Life has quit [Ping timeout: 244 seconds]
Lord_of_Life_ is now known as Lord_of_Life
Kundry_Wag has quit [Ping timeout: 256 seconds]
reggie__ has joined #lisp
Nilby has quit [Ping timeout: 264 seconds]
reggie_ has quit [Ping timeout: 256 seconds]
<doomlist3> hi
<doomlist3> 200 or 2 it gives same spaces column width??
<doomlist3> what's wrong
<ck_> doomlist3: "works for me" .. which lisp are you using?
<doomlist3> common-lisp-jupyter notebook I see only the same spaces not 200 spaces
<doomlist3> which would be a lot and would be visible.
<doomlist3> ck_: can you show me the output
<jdz> doomlist3: I bet it squashes all the spaces.
<jdz> Maybe because that's how the HTML works if the content is not in any of the "pre-formatted" elements.
<phoe> works for me in terminal
<phoe> so that's likely the cl-jupyter bug
<phoe> orrrr something in the config?... I dunno
<phoe> I know nothing about Jupyter itself
schjetne has joined #lisp
<ck_> doomlist3: maybe take a look at the html source to see whether it's actually the browser that modfiies the output
<ck_> also, try comparing the output of these: (format t "~a:~20,1,0@a" :format "test") and (format t "~a:~20,1,0'_@a" :format "test")
shifty has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
<ck_> sorry, the latter is missing a comma before the ' -- it should be (format t "~a:~20,1,0,'_@a" :format "test")
doomlist3 has quit [Ping timeout: 265 seconds]
dddddd has joined #lisp
EvW has joined #lisp
dmiles has quit [Ping timeout: 260 seconds]
dmiles has joined #lisp
heisig has quit [Quit: Leaving]
narimiran has joined #lisp
schjetne has quit [Read error: Connection reset by peer]
schjetne has joined #lisp
ljavorsk has quit [Ping timeout: 240 seconds]
Kundry_Wag has joined #lisp
ljavorsk has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
z147_ has joined #lisp
ljavorsk has quit [Ping timeout: 260 seconds]
shifty has quit [Ping timeout: 246 seconds]
z147 has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
bitmapper has joined #lisp
scymtym has quit [Remote host closed the connection]
Kundry_Wag has quit [Ping timeout: 260 seconds]
kopiyka has quit [Remote host closed the connection]
gko has joined #lisp
keep_learning has quit [Quit: This computer has gone to sleep]
amerlyq has joined #lisp
Josh_2 has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
tankman has joined #lisp
Kundry_Wag has joined #lisp
efm has joined #lisp
scymtym has joined #lisp
patlv has joined #lisp
heisig has joined #lisp
Kundry_Wag has quit [Ping timeout: 246 seconds]
shifty has quit [Ping timeout: 246 seconds]
rixard has joined #lisp
kslt1 has joined #lisp
rixard has quit [Ping timeout: 260 seconds]
tankman has quit [Quit: Leaving]
rixard has joined #lisp
ahungry has joined #lisp
rixard has quit [Ping timeout: 246 seconds]
cosimone has quit [Quit: Quit.]
cosimone has joined #lisp
copec has quit [Ping timeout: 240 seconds]
luckless has quit [Ping timeout: 272 seconds]
efm has quit [Remote host closed the connection]
efm has joined #lisp
egao1980 has joined #lisp
egao1980 has quit [Remote host closed the connection]
sjl_ has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
KorbenDallas has joined #lisp
KorbenDallas has left #lisp [#lisp]
rippa has joined #lisp
egao1980 has joined #lisp
catalinbostan has quit [Quit: Textual IRC Client: www.textualapp.com]
emys has joined #lisp
egao1980 has quit [Ping timeout: 260 seconds]
Cymew has quit [Ping timeout: 264 seconds]
Nilby has joined #lisp
Cymew has joined #lisp
<Nilby> #els2020
<beach> That works?
marcoxa has joined #lisp
marcoxa has quit [Client Quit]
kslt1 has quit [Remote host closed the connection]
scymtym_ has joined #lisp
Nilby has quit [Quit: 👽愛🆑]
efm has quit [Ping timeout: 240 seconds]
scymtym has quit [Ping timeout: 260 seconds]
Kundry_Wag has joined #lisp
Cymew has quit [Ping timeout: 246 seconds]
Cymew has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
arduo has quit [Remote host closed the connection]
emys has quit [Ping timeout: 265 seconds]
Kundry_Wag has joined #lisp
scymtym_ has quit [Remote host closed the connection]
scymtym has joined #lisp
emys has joined #lisp
theseb has joined #lisp
<theseb> So is it customary for an interpreter to only print the value of the LAST expression? (I'm writing my own little implementation)
<theseb> is it ever normal/conventional to print ALL values of ALL the evaluated expressions?
<beach> theseb: It depends on the context.
<beach> theseb: Besides, it might not be an interpreter.
<beach> theseb: Most modern Common Lisp implementations compile on the fly to native code.
<phoe> theseb: is your Lisp going to have a REPL?
<phoe> also, what do you mean, all values of all evaluated expressions
<phoe> if you use a REPL, you talk with the REPL expression-after-expression
<beach> Using LOAD, maybe?
<phoe> if you load or compile a file, it's usually unnecessary to print the results
jcob has quit [Quit: goodbye fellas!]
<phoe> if you have several DEFUNs in there, for instance, I can't really find a use case for printing all the function names to the REPL
<theseb> phoe: my interpreter reads a file of expressions and emits results
EvW1 has joined #lisp
<theseb> phoe: so if i read a file you recommend printing just the last value?
<phoe> theseb: nope, I recommend printing only the result of LOAD
<phoe> clhs load
<phoe> only print if there are explicit PRINT calls in your code
<beach> theseb: It is a Read-Eval-Print-Loop.
<beach> theseb: Nothing is printed when the code is read.
<theseb> beach: not when read but what about when *evaluted*?
<beach> No, not when evaluated.
<beach> The value of the evaluation is printed.
<beach> If you load the file using LOAD, then the value stipulated by LOAD is printed.
<beach> theseb: In the case of Common Lisp LOAD, a single generalized Boolean value is returned, so that is the one that is printed.
<beach> theseb: EVAL is just a function that takes a form and returns a value. No printing there either.
efm has joined #lisp
rogersm has quit [Quit: Leaving...]
emys has quit [Ping timeout: 260 seconds]
aeroful has joined #lisp
mk2 has joined #lisp
emys has joined #lisp
milanj has joined #lisp
vibs29 has joined #lisp
<axion> Xach: I am experiencing some strangeness with zpb-exif
Nilby has joined #lisp
copec has joined #lisp
<Xach> wow, two people mentioning it in a week, that is a record for zpb-exif
<axion> exif-alist works, but ifd-alist is giving a no applicable method error (zpb-exif::entries when called with an exif instance argument)
krid has quit [Ping timeout: 246 seconds]
<Xach> hmm
<Xach> is it an image you can share?
aeroful has left #lisp [#lisp]
<axion> Well it's not jpeg. I'm using 3b's fork that allows parsing an octet vector rather than a file
<axion> But it parses successfully. I can see all the key/values
<Xach> oh
egao1980 has joined #lisp
lemoinem has quit [Ping timeout: 240 seconds]
lemoinem has joined #lisp
<Xach> axion: ifd-alist is called on an ifd, not an exif...
<axion> [Function]
<axion> exif-alist exif &key parsedp => alist
<axion> oops :)
<axion> or rather
<axion> [Function]
<axion> ifd-alist exif &key parsedp => alist
<axion> reading the docs :)
<Xach> that is definitely a doc bug. it's meant to take one of the ifds in the exif, not the exif.
<Xach> like image-ifd, exif-ifd, gps-ifd
<axion> I see, thanks
Cymew has quit [Ping timeout: 246 seconds]
emys has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
<axion> Xach: I get the same alist with (exif-alist exif :parsedp t) that i do with (ifd-alist (image-ifd exif) :parsedp t). Is that correct? I'm not very familiar with this format
<Xach> axion: I don't remember, sorry.
<axion> Ok
<Xach> I *think* it might help to know the exif standard well before using zpb-exif, but I'm not sure.
<Xach> I honestly can't remember why I wrote it. possibly for some graphics website or something.
emys has joined #lisp
<axion> Well regardless, it works and it's better than the only other parser, so thanks! pngload will soon have exif support
<Xach> sweet
<axion> I think 3b is going to send you a PR for reading from an octet vector (simple change, additional non-breaking API function)
dale_ has joined #lisp
dale_ is now known as dale
davd has joined #lisp
<Xach> doc fix would be welcome too!
CrazyEddy has quit [Ping timeout: 260 seconds]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
<|3b|> yeah, will send a PR for the exit octet-vector stuff after testing it a bit more.
rgherdt_ has quit [Remote host closed the connection]
<|3b|> i think exif-alist includes image-ifd and a few other common IFDs, but not all of them, so you need ifd-alist for the rest
stoneglass has joined #lisp
Bourne has joined #lisp
MerlinTheWizard has joined #lisp
Lycurgus has joined #lisp
flip214 has quit [Ping timeout: 258 seconds]
flip214 has joined #lisp
<MerlinTheWizard> In PCL Chapter 20 - The Special Operators, under "Unwinding the Stack", Peter Seibel talks about 'closures' and uses the phrase 'closed over' to mean something that to me doesn't sound any different from 'referenced':
<MerlinTheWizard> What is the difference in that context between a 'closure' and a 'reference'? Can anyone tell me?
<|3b|> if you have a variable binding (let ((x 1)) ...) the binding normally no longer exists after that LET form exits
<|3b|> if it is (let ((x 1)) (lambda () x)), the function returned from the let continues to use that binding, so it continues to exist, and that is called a closure, and x is "closed over"
<Xach> a closure is a function object. the references to enclosing lexical bindings distinguish a mundane function object from a closure.
<Bike> it's a bit more complicated since in this context, rather than closing over a binding, it's closing over an exit point, which does actually cease being valid once the block exits
<|3b|> in particular, if you have (let ((x 1)) (lambda () x) (lambda () (incf x))), both function continue to access the /same/ binding of X, so calling the 2nd will change the value returned by the first
<MerlinTheWizard> |3b|, I very roughly understand that explanation of closure, but it doesn't seem to apply here in this context.
<|3b|> ah, same thing applies to block names and tags, though you can't access those after it exits
<MerlinTheWizard> It looks just like a normal reference to me.
<MerlinTheWizard> Can you explain why?
<|3b|> hmm, to some extent there might not be much difference in that case, since it is limited to the scope of the outer form
<MerlinTheWizard> I mean in this context, BLOCK a just exists for its normal lexical scope. There's no modification of the scope of a reference. So how is it a closure?
<|3b|> though it still has to maintain a reference to the containing environment in the function object
gko has quit [Ping timeout: 246 seconds]
<Bike> because it refers to the same block even if called in a context in which there's another block with the same name
<MerlinTheWizard> 3b, like any ordinary lexical symbol, as far as I know.
<Bike> well, yes, it's like any ordinary lexical variable in that respect
<Bike> lexical variables are also closed over
<|3b|> (lambda (x) x) contains its own environment, and doesn't reference anything outside that function
<|3b|> (let ((x 1)) (lambda () x)) has to keep a ref to the containing environment
<Bike> if you have (block nil (let ((f (lambda () (return-from nil)))) (block nil (funcall f)) (print "H")))), no H is printed
<|3b|> block works the same way
<Bike> since the function knows where it's supposed to return to - it's "closed over" that information
<|3b|> yeah, that :)
<Bike> if you do this with catch/throw (the operators explained a bit farther on in the text), nothing is closed over and H is printed
<MerlinTheWizard> Bike, I need someone to draw me a picture or something. This concept is hard enough to grasp on it's own, but when the term 'closure' is used when 'reference' would do, it makes understanding this idea even harder.
<MerlinTheWizard> Bike, Catch and throw, don't these usually kind of break the lexical environment?
<phoe> MerlinTheWizard: what does "reference" mean in your internal language?
<TMA> MerlinTheWizard: basically, there are two kinds of reference.
<Bike> i don't know what you mean by "break the lexical environment".
<phoe> MerlinTheWizard: lisp CATCH and THROW are dynamic, not lexical
<TMA> MerlinTheWizard: a lexical and a dynamic
<phoe> they are like BLOCK and RETURN-FROM except they work dynamically and can therefore be e.g. in separate functions
<MerlinTheWizard> phoe, yes, that's kind of what I mean.
<phoe> (defun foo () (throw 'shuriken 42)) (defun bar () (catch 'shuriken (foo)))
<phoe> (bar) ;=> 42
<MerlinTheWizard> I guess 'break' might be a harsh word there.
Aurora_v_kosmose has quit [Quit: Пока, мир.]
<phoe> BLOCK and RETURN-FROM work lexically
<MerlinTheWizard> phoe, 'reference' is quite a broad term, a very fundamental term within semantics, and therefore hard to define.
Aurora_v_kosmose has joined #lisp
<Bike> and closure and reference mean different things. casually, i might say that a "closure" "closes over" a variable so that the correct one can be "referenced" when the function is called
<MerlinTheWizard> Usually when a refers to b, a can stand in for b.
<Bike> lisp has lots of side effects, so referential transparency like that isn't quite enough
<MerlinTheWizard> Bike, in this case the semantics of the supposed 'closure' seems to refer to something that happens in any ordinary function return.
<Grue`> what is the context where the word 'closure' can be replaced by 'reference'? seems like refer to completely different things
<MerlinTheWizard> It seems like the 'BLOCK' could just be replaced by a function.
<Bike> you say "ordinary" but this is like, not something that's possible in many languages.
<phoe> MerlinTheWizard: which sort of function?
<MerlinTheWizard> In PCL Chapter 20 - The Special Operators, under "Unwinding the Stack", Peter Seibel talks about 'closures' and uses the phrase 'closed over' to mean something that to me doesn't sound any different from 'referenced':
<Bike> yes, we know that part
<Grue`> i saw that
<phoe> BLOCK is a control flow operator that you can return values from
<Grue`> but i still don't understand your point
<MerlinTheWizard> phoe, precisely, just like a function.
<Bike> huh?
<phoe> MerlinTheWizard: I still don't understand
<MerlinTheWizard> This could be replaced by a pure function with no side effects couldn't it?
<phoe> can you give me a code example?
<phoe> no, why?
<phoe> the code inside the BLOCK can freely perform side effects
<TMA> MerlinTheWizard: do you understand the difference between a dynamic binding and a lexical binding?
<Bike> okay, so let's take the first example in that section of the book there.
shifty has joined #lisp
<phoe> (block nil (print 42) ... (when (foo-p) (return-from nil 42)) ...)
<Bike> the point is that when bar is called, it calls that lambda, which immediately returns from (block a...), so the "Leaving BLOCK" is never executed.
<MerlinTheWizard> TMA, yes. dynamic is sort of global - sort of.
<Shinmera> Wha
<Bike> you could like, rewrite this in continuation passing style or something and then it could be all pure functions. maybe that's what you mean?
<TMA> MerlinTheWizard: if so then 'close over x' means 'keep reference to the lexical binding currently in effect' and closure is the result of that process
<MerlinTheWizard> Bike, that's what happens with typical early 'return', which can happen in a pure function.
<TMA> MerlinTheWizard: so closure is not something that is a reference, but something that keeps the reference inside itself intact
<Bike> MerlinTheWizard: let's back up a moment. you say "typical". what is your reference frame for "typical"? are you thinking of some other programming language or what?
<Grue`> A is "closed over" B is more like B is "referenced" by A. So it's kind of the opposite?
<MerlinTheWizard> Bike, yeah, languages like 'C' and 'Bash' behave this way.
<phoe> MerlinTheWizard: in Lisp you don't have to early-return from a pure function
<phoe> you don't even have to return from a function
<Bike> C does not have closures at all, so the example in the book is not possible.
<Bike> I mean, there's nothing analogous to LAMBDA, right?
<phoe> (if foo-p (block nil ...) (block another-nil ...)) is perfectly fine
<MerlinTheWizard> phoe, there is an implicit return in lisp.
<Bike> You can pass function pointers around, but when a "return" statement is executed, it returns only from the function the statement is in.
<MerlinTheWizard> Bike, is the lambda in bar?
<Bike> Again, I'm talking about the first example in the section you linked. Consider (bar #'(lambda () (return-from a))). How would you write that in C?
<phoe> in the PCL example, an anonymous function is passed to bar as an argument
<MerlinTheWizard> It looks like it's kind of tacked on to bar.
kopiyka has joined #lisp
<phoe> it's not really tacked on, it's a separate function
<Bike> BAR is just a function. (bar #'(lambda () (return-from a))) is a function call with one argument.
toorevitimirp has joined #lisp
<phoe> this is equivalent to (let ((fn (lambda () (return-from a)))) (bar fn))
<MerlinTheWizard> Oh, bar takes a function argument, that's right.
<Bike> right.
<MerlinTheWizard> So the lambda makes bar close over the BLOCK?
<Bike> yes.
<Bike> this function's body is (return-from a). It returns from the (block a...), which is outside the function itself.
<Bike> This is not something you can do in C (I mean there's longjmp, but it sucks)
<MerlinTheWizard> Ok, so block captures the reference. I believe I'm sort of getting it now.
<phoe> the block doesn't capture anything, it just stands there
<phoe> it is the function that now "remembers" where it needs to return to
<Bike> the block kind of is the thing being captured.
<MerlinTheWizard> phoe, I got that. BLOCK is the object referred to.
<phoe> yes
<phoe> in Lisp, and not only, that is called "closing over" some things
<phoe> a function can close over a block and then that function can go into other places
<MerlinTheWizard> So, in a closure, a referenced symbol is always made available outside of it's normal scope?
copec has quit [Ping timeout: 240 seconds]
schjetne has quit [Ping timeout: 244 seconds]
<phoe> it's not really a symbol that is being made available
JuxTApoze has joined #lisp
<Bike> It's still in scope.
<JuxTApoze> o/ all
<phoe> it is the block, in this case
<phoe> JuxTApoze: helloooo
<MerlinTheWizard> Right, so bar is running within that scope. I guess that's what threw me.
<MerlinTheWizard> So why is it a closure then, if it's still in the same scope?
<MerlinTheWizard> Because bar doesn't normally have that block as a thing to return from?
<Bike> Why is the (lambda () (return-from a)) a closure?
<MerlinTheWizard> Yeah.
<phoe> because it refers to a block named by symbol A, even though that block is outside the body of that function
<Bike> I gave an example a while ago. The closure has to "know" where it's returning from. For example, if the body of the BAR function had another (block a ...), that would have no relevance on where the closure would return from.
<MerlinTheWizard> So bar's own lexical binding of 'block a' is shadowed, and that makes it a closure?
<Bike> It's not that it's shadowed, it's just not relevant.
<Bike> What makes (lambda () (return-from a)) a closure is that it refers to a kind of lexical binding outside the function body, so it has to carry information about that binding around.
<Bike> a kind of lexical binding FROM outside*
<Bike> is this not explained earlier in the book for variables?
ayuce has joined #lisp
<MerlinTheWizard> Bike, he might have briefly mentioned closures earlier, but I guess I didn't get it.
<Bike> they're explained in chapter 6, "Variables", it seems
<Bike> in the "Lexical Variables and Closures" section
<MerlinTheWizard> Bike, I've read explanations of closures before. They were always confusing to me.
<MerlinTheWizard> If they always referred to capture of a symbol outside of it's lexical scope, I guess it would make sense to me.
<MerlinTheWizard> But in this case, the lexical scope is preserved from the perspective of the instance (although not from the definition of bar)
<Cymew> MerlinTheWizard: This is a really good explanation of closures, if you don't mind the rust code: https://doc.rust-lang.org/book/ch13-01-closures.html
<Bike> There's the example of (let ((count 0)) #'(lambda () (setf count (1+ count)))) in the Variables chapter. The point is that the function "closes over" the binding of COUNT, so if you call the function repeatedly it updates that same binding.
<Bike> as it says, you can do (defparameter *fn* (let ((count 0)) #'(lambda () (setf count (1+ count))))), and then (funcall *fn*) => 1, (funcall *fn*) => 2, ...
<MerlinTheWizard> Cymew, that looks good, thanks.
<Bike> i would try to understand it with variables before going on to block/return-from, personally
<phoe> yes, I'd go with the classical getter/setter example first
<phoe> (let ((x 0)) (list (lambda () x) (lambda (y) (setf x y))))
<phoe> there, a closure is just a poor man's object
<MerlinTheWizard> phoe, everything is an object in CL, so that's kind of a bad wording.
<Bike> oh shit gottem
fourier has joined #lisp
<Xach> i like to think of a closure as a function that carries around (some of) its defining lexical environment
<phoe> MerlinTheWizard: an object in the traditional OOP sense; something with slots that you can get and set
<phoe> s/slots/fields/ ;; if we want to use more traditional terminology
<fourier> hello all, just want to check if the crowd is here after the conference
<MerlinTheWizard> Ok, that makes more sense.
<phoe> fourier: here and in #els2020
<fourier> oh that channel as well, thanks
<fourier> anyone able to quickload osicat on LispWorks 32bit for Linux ?
<MerlinTheWizard> phoe, yes, that makes sense, it just doesn't really apply to the current example, except that a reference is being carried by a function.
ark has quit [Ping timeout: 244 seconds]
<fourier> I would think the problem could be with any 32bit CL on Linux: Error: Unable to load any of the alternatives: ("librt.so.1" "librt.so")
<MerlinTheWizard> Anyway, I'm probably getting it a little better now, so thanks everyone for your help.
<phoe> MerlinTheWizard: that's the whole point - a reference to this place is carried around by these lambdas
<fourier> while specifying the full path to 32bit variant of librt.so works..
ark has joined #lisp
cosimone has quit [Remote host closed the connection]
MerlinTheWizard has quit [Remote host closed the connection]
cosimone has joined #lisp
MerlinTheWizard has joined #lisp
schjetne has joined #lisp
<fourier> apparently some magic with how cffi searches for libraries
<_death> phoe: cool @ https://i.redd.it/0wgtrq978fv41.jpg .. methinks heisig could put it in the sealable-metaobject repo :d
Josh_2 has quit [Ping timeout: 258 seconds]
<phoe> _death: I don't think JPEGs are supposed to be stuffed in git repos, but oh well
<_death> it's ok if they're small enough and you don't modify them
<phoe> could be good then
<beach> MerlinTheWizard: Not everything in Common Lisp is an object. A comment is not an object for instance. Neither is a place.
emys has quit [Ping timeout: 256 seconds]
emys has joined #lisp
<boeg> does anyone know if let over lambda is available somewhere as epub?
Lycurgus has quit [Ping timeout: 264 seconds]
<phoe> boeg: not in official distribution AFAIK
<boeg> phoe: yeah, thats what i'm seeing too, too bad
Lycurgus has joined #lisp
Lycurgus has quit [Remote host closed the connection]
schjetne has quit [Read error: Connection reset by peer]
sauvin has quit [Read error: Connection reset by peer]
schjetne has joined #lisp
Bourne has quit [Ping timeout: 240 seconds]
emys has quit [Ping timeout: 246 seconds]
himmAllRight has quit [Remote host closed the connection]
himmAllRight has joined #lisp
<Cymew> That metaobject jpg is really neat. :)
merkur has joined #lisp
merkur has quit [Remote host closed the connection]
emys has joined #lisp
himmAllRight has quit [Remote host closed the connection]
fourier has quit [Ping timeout: 244 seconds]
krid has joined #lisp
fourier has joined #lisp
emys has quit [Ping timeout: 260 seconds]
Aurora_v_kosmose has quit [Ping timeout: 240 seconds]
<gendl> Hi, i just installed mysql on my mac with brew, set the root password, and quickloaded clsql in CCL. Can anyone give a quick pointer about how to connect to mysql from CL? And is clsql even what I should be using at this juncture?
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
shangul has quit [Ping timeout: 244 seconds]
<gendl> The manual seems to be missing from here: http://clsql.kpe.io/documentation.html and although Kevin Rosenberg has done some great stuff it seems he's not active these days...
Aurora_v_kosmose has joined #lisp
emys has joined #lisp
gabiruh has quit [Ping timeout: 246 seconds]
<phoe> the doc is in poor shape though
himmAllRight has joined #lisp
<gendl> i just got a connection working with cl-mysql
karlosz has joined #lisp
schjetne has quit [Ping timeout: 260 seconds]
karlosz has quit [Client Quit]
himmAllRight has quit [Remote host closed the connection]
bars0 has joined #lisp
didi has joined #lisp
<didi> Does LOOP's `across' respect an array fill-pointer?
schjetne has joined #lisp
<phoe> clhs 6.1.2.1.5
<phoe> I guess that it does because it makes no sense otherwise, but the LOOP reference is not clear about it...
<didi> phoe: Thanks.
<phoe> I mean, it makes no sense to iterate over vector elements that are not active
fourier has quit [Ping timeout: 244 seconds]
<didi> Can I change the fill-pointer during iteration?
milanj has quit [Quit: This computer has gone to sleep]
<phoe> didi: AFAIK you very much shouldn't
<phoe> but then again, it's gut feeling
<didi> phoe: I see. Thanks again.
<phoe> let me dig into the spec...
himmAllRight has joined #lisp
<phoe> I can't see anything in the spec
emys has quit [Ping timeout: 246 seconds]
<didi> phoe: Cool.
<didi> At least in practice, I can't change the fill-pointer. SBCL reads the array length only once.
<phoe> and I guess that's expected
<Bike> oh, if you're trying to _alter_ the fill pointer in the middle of a traversal, that's definitely not allowed.
<Bike> clhs 3.6
<specbot> Traversal Rules and Side Effects: http://www.lispworks.com/reference/HyperSpec/Body/03_f.htm
<didi> Bike: I am.
<didi> Oh well.
<phoe> Bike: thanks
<didi> oic
<phoe> le gasp
<phoe> nice, no repo pollution
anlsh has joined #lisp
<heisig> Yes, otherwise I wouldn't have added it.
emys has joined #lisp
<_death> awesome
<alandipert> heisig that's so great!
rand_t has quit [Quit: rand_t]
jasom has quit [Ping timeout: 246 seconds]
didi has left #lisp ["O bella ciao bella ciao bella ciao, ciao, ciao."]
Krystof has quit [Read error: Connection reset by peer]
whiteline has quit [Remote host closed the connection]
nika has quit []
whiteline has joined #lisp
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
Inline has joined #lisp
karlosz has joined #lisp
man213__ has joined #lisp
ntqz has joined #lisp
MerlinTheWizard has quit [Ping timeout: 240 seconds]
himmAllRight has quit [Remote host closed the connection]
jasom has joined #lisp
bars0 has quit [Ping timeout: 260 seconds]
emys has quit [Ping timeout: 272 seconds]
jonatack_ has joined #lisp
ayuce has quit [Remote host closed the connection]
ayuce has joined #lisp
emys has joined #lisp
ectlunya has joined #lisp
jonatack has quit [Ping timeout: 256 seconds]
renzhi has joined #lisp
rixard has joined #lisp
himmAllRight has joined #lisp
heisig has quit [Quit: Leaving]
Cymew has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
izh_ has joined #lisp
emys has quit [Ping timeout: 264 seconds]
pve has quit [Quit: leaving]
fourier has joined #lisp
bars0 has joined #lisp
mk2 has quit [Remote host closed the connection]
jonatack_ has quit [Quit: jonatack_]
jonatack has joined #lisp
emys has joined #lisp
ebrasca has quit [Remote host closed the connection]
<_death> jackdaniel: I decided to put my ecl+imgui project on github: https://github.com/death/imcl
karlosz has quit [Quit: karlosz]
vlatkoB has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
jprajzne has quit [Quit: jprajzne]
emys has quit [Ping timeout: 264 seconds]
emys has joined #lisp
pilne has joined #lisp
karlosz has joined #lisp
emys has quit [Ping timeout: 256 seconds]
amerlyq has quit [Quit: amerlyq]
Krystof has joined #lisp
emys has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
ectlunya has quit [Remote host closed the connection]
<fourier> _death: thats cool, I was thinking about connecting imgui to CL in some way but looks like you did it!
narimiran has quit [Ping timeout: 260 seconds]
<fourier> have you done all the bindings yourself?
<_death> yeah
<fourier> fantastic work. will check it out eventually, starred
<fourier> is it tightly bound to ECL or you can use to access it from another implementation eventually
<fourier> ?
<_death> it is tightly bound to ecl
<fourier> nice anyway
<_death> you can check bindings.cpp..
<fourier> yea im looking through them
<_death> it's a total mess, like jackdaniel remarked in his talk, it's easy to make a difference
<fourier> dont say mess, say "proof of concept" :)
efm has quit [Ping timeout: 244 seconds]
ljavorsk has joined #lisp
<_death> a work of art.. between dadaism and surrealism
<_death> there are some vids of me playing with it in https://adeht.org/dump/vids.html
emys has quit [Ping timeout: 260 seconds]
schjetne has quit [Ping timeout: 260 seconds]
renzhi has quit [Ping timeout: 240 seconds]
<fourier> which version of ECL its targeting ? can't compile with 16.1.2
ljavorsk has quit [Ping timeout: 265 seconds]
<fourier> ah I see
<_death> I suppose there could be an ifdef there.. but, good intentions and roads to hell
<fourier> will try to compile latest ecl then before
<jackdaniel> _death: thanks for sharing! I'll gladly play with it :)
<jackdaniel> (and thank you for remembering my request for pinging me when you do that)
<_death> thank you for keeping ECL alive :)
jasom has quit [Ping timeout: 256 seconds]
karlosz has quit [Quit: karlosz]
shifty has quit [Ping timeout: 244 seconds]
karlosz has joined #lisp
shifty has joined #lisp
jayde has joined #lisp
gabiruh has joined #lisp
CrazyEddy has joined #lisp
Oladon has joined #lisp
buffergn0me has joined #lisp
schjetne has joined #lisp
ayuce has quit [Read error: Connection reset by peer]
ayuce has joined #lisp
copec has joined #lisp
schjetne has quit [Ping timeout: 256 seconds]
koenig has left #lisp ["WeeChat 2.7"]
efm has joined #lisp
efm has quit [Client Quit]
emys has joined #lisp
<theseb> Do people typically define their macros in a SEPARATE file or do they mix it with rest of their programs?
<theseb> i'm guessing probably with something as elaborate as a DSL you want to squirrel it away in a separate file at least?
<phoe> theseb: not all macros are worthy being called DSLs
<phoe> e.g. if you have a WITH-FOO macro that expands into a CALL-WITH-FOO function or into a LET binding that binds some *FOO* variable, it's often not worth to define these in a separate file
duncan_ has quit [Ping timeout: 246 seconds]
shifty has quit [Ping timeout: 240 seconds]
efm has joined #lisp
shifty has joined #lisp
ahungry has quit [Remote host closed the connection]
akoana has joined #lisp
jasom has joined #lisp
prefixt has joined #lisp
<prefixt> Hello! Is there an expedient means to generate a kind list of function calls for a program to be loaded in SBCL?
<phoe> prefixt: I enjoyed reading that sentence but did not understand it
<phoe> what program to be loaded? do you mean some Quicklisp system, or do you mean something else?
<fourier> theseb: I even define them inside a function if I'm too lazy with macrolet
<fourier> its a matter of taste, I guess
<theseb> ok
<prefixt> phoe, thank you! I have some lisp programs/scripts. I can read the source fine. I don't know exactly what SBCL is doing with the program internally, but if my program works, I can assume the the functions in my program/script have been executed at some point. I'd assume SBCL contain some of this information, like what functions were executed.
<phoe> prefixt: this sounds like you want to use the TRACE facility
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
keep_learning has joined #lisp
* prefixt searches TRACE
<phoe> before your program gets executed, you might want to TRACE some functions inside it; you should then get a printout of which functions were called with which arguments and then returned which values
<phoe> clhs trace
<phoe> like, if you have (defun foo ...) and (defun bar ...) in your program, then, before executing (foo) or (bar) you might first want to (trace foo bar)
schjetne has joined #lisp
<prefixt> thank you phoe, that's extremely helpful and mostly what I was looking for. Let me look into this :-)
fourier has quit [Ping timeout: 244 seconds]
<phoe> <3
* phoe goes afk for sleep
schjetne has quit [Ping timeout: 256 seconds]
theBlackDragon has quit [Ping timeout: 258 seconds]
emys has quit [Ping timeout: 260 seconds]
bars0 has quit [Ping timeout: 264 seconds]
theBlackDragon has joined #lisp
emys has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<theseb> apparently in addition to the evaluator some people call the thing that expands macros and converts 'a to (quote a) the ''expander" ?
twelvemonkeys has quit [Ping timeout: 260 seconds]
<theseb> so reader -> expander -> evaluator -> printer yes?
<theseb> REPL should be REEPL perhaps
twelvemonkeys has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
efm has quit [Remote host closed the connection]
<Bike> 'a as (quote a) is just the reader
Inline has quit [Remote host closed the connection]
Inline has joined #lisp
shukryzablah has quit [Remote host closed the connection]
shangul has joined #lisp
<theseb> Bike: what about the thing that expands macros?
<theseb> reader too?
<theseb> Bike: i guess we can fold the expansion function into the reader..all of it
Oladon has quit [Quit: Leaving.]
<Bike> uh, no.
<LdBeth> Macro expansion is eval part
<Bike> the reader converts text into s-expressions. macroexpansion converts s-expressions into other s-expressions.
<theseb> ok
<theseb> thanks
schjetne has joined #lisp
emys has quit [Ping timeout: 264 seconds]
orivej has quit [Quit: orivej]
orivej has joined #lisp
ayuce has quit [Remote host closed the connection]
ayuce has joined #lisp
<pjb> theseb: it could be E^n, since in your macro, you could also call (defmacro moo () (funcall (compile nil (eval (macroexpand (read-from-string #|or elsehwhere|# "(foo (bar (baz)))"))))))
<pjb> and so on.
sjl_ has quit [Ping timeout: 246 seconds]
roelj has quit [Remote host closed the connection]
hiroaki has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 244 seconds]
ayuce has quit [Remote host closed the connection]
ayuce has joined #lisp
orivej has joined #lisp
MerlinTheWizard has joined #lisp
torbo has joined #lisp
hiroaki has joined #lisp
keep_learning has quit [Quit: This computer has gone to sleep]
SGASAU has quit [Remote host closed the connection]
didi has joined #lisp
SGASAU has joined #lisp
<didi> How do I freeze the value of a dynamic value inside a lambda? For example, (defvar *foo* 42) (defun make-foo () (lambda () (freeze-now *foo*))) (let ((*foo* 7)) (funcall (make-foo))) => 42 # and not => 7
<no-defun-allowed> You can't, that's why it's dynamic.
<didi> no-defun-allowed: I see.
<Bike> when is freeze-now supposed to do the freezing, exactly?
<Bike> in your example, *foo* is bound to 7 even when the closure is created.
<no-defun-allowed> You could bind the value to a lexical variable outside the LAMBDA and re-bind it to the dynamic variable inside the LAMBDA, though.
<didi> Bike: During the creation of the lambda.
<Bike> but then your example should still return 7, because the (make-foo) call is within the (let ((*foo* 7)) ...)
MerlinTheWizard has quit [Remote host closed the connection]
<didi> Bike: Right, but I want 42. I want the lambda to be independent of the value of *foo*.
MerlinTheWizard has joined #lisp
<didi> no-defun-allowed: Interesting.
shifty has quit [Ping timeout: 244 seconds]
<LdBeth> Well free-now is possible by doing local renaming
<Bike> How could it possibly be 42?
<LdBeth> Like rename foo to a gensym
<Bike> You call make-foo and *foo* is 42 even then.
<Bike> er, is 7.
<didi> LdBeth: Thanks.
shifty has joined #lisp
<didi> Bike: I know it doesn't work. I want a way to make it work.
<Bike> You could do (defun make-foo () (let ((foo *foo*)) (lambda () foo))) as no-defun-allowed alluded to, but your example would still return 7.
<Bike> Because when make-foo is called, *foo* is 7, not 42. am i not being clear?
<didi> Bike: You are.
<Bike> even when the function is created, it's 7.
<_death> likely he meant (let ((foo (make-foo)) (*foo* 7)) (funcall foo))
* LdBeth is confused
ayuce has quit [Ping timeout: 244 seconds]
hiroaki has quit [Ping timeout: 264 seconds]
<didi> No no. I want to (make-foo) to always return the original value of *foo*. No time dependence.
<Bike> What if you (setf *foo* 3) somewhere?
<Bike> Why not just do (defun make-foo () (lambda () 42))?
X-Scale has quit [Ping timeout: 258 seconds]
X-Scale` has joined #lisp
<didi> Oh, well. I will think of something. Thank you.
X-Scale` is now known as X-Scale
renzhi has joined #lisp
davd has quit [Ping timeout: 240 seconds]
<Bike> i mean, really, if you want a value that never changes, do (defconstant +foo+ 42) (defvar *foo* +foo+), and then use +foo+ for the unchanging one.
izh_ has quit [Quit: Leaving]
<didi> Bike: I transverse a tree making lambdas. Some of these lambdas depend on a dynamic variable.
<didi> I'm using `cond' to produce different lambdas, but it's not pretty.
<Bike> you said you wanted the "original value". So even if you bind or set *foo*, the lambdas return the same value and ignore those bindings and sets. Or is that wrong?
Adamclisi has quit [Quit: leaving]
random-nick has quit [Ping timeout: 246 seconds]
frgo has quit [Remote host closed the connection]
<didi> Instead of doing (if *foo* (lambda () 42) (lambda () 7)), I wanted to do (let ((*foo* 42)) (list (lambda () *foo*) (let ((*foo* 7)) (lambda () *foo*)))).
frgo has joined #lisp
<Bike> and those functions return different things?
<didi> Yes.
<Bike> that would make it sensitive to bindings. it's not returning the original value.
<didi> The binding at the time of `lambda' creation.
<Bike> that's what (defun make-foo () (let ((foo *foo*)) (lambda () foo))) gets you, but that's not how it works with your earlier example.
MerlinTheWizard has quit [Ping timeout: 240 seconds]
<Bike> (let ((*foo* 7)) (funcall (make-foo))) => 7.
<didi> Bike: Thank you.
cosimone has quit [Quit: Quit.]
shangul has quit [Ping timeout: 244 seconds]
theseb has quit [Quit: Leaving]
ayuce has joined #lisp
Inline has quit [Ping timeout: 265 seconds]
ayuce has quit [Remote host closed the connection]
Lycurgus has joined #lisp
ayuce has joined #lisp
keep_learning has joined #lisp
keep_learning has quit [Remote host closed the connection]
man213__ has quit [Quit: Going offline, see ya! (www.adiirc.com)]
zooey has quit [Remote host closed the connection]
zooey has joined #lisp
ayuce has quit [Read error: Connection reset by peer]
emys has joined #lisp
choegusung has joined #lisp
rixard has quit [Read error: Connection reset by peer]
rixard has joined #lisp
X-Scale has quit [Ping timeout: 265 seconds]
X-Scale` has joined #lisp
azrazalea has quit [Quit: ZNC 1.6.2+deb2~bpo8+1 - http://znc.in]
X-Scale` is now known as X-Scale
shifty has quit [Ping timeout: 256 seconds]
azrazalea has joined #lisp
choegusung has quit [Ping timeout: 264 seconds]
choegusung has joined #lisp
kristof has joined #lisp
keep_learning has joined #lisp
wxie has joined #lisp
emys has quit [Ping timeout: 240 seconds]
Lycurgus has quit [Quit: Exeunt]
Lord_of_Life_ has joined #lisp
ark has quit [Ping timeout: 244 seconds]
Lord_of_Life has quit [Ping timeout: 246 seconds]
emys has joined #lisp
Lord_of_Life_ is now known as Lord_of_Life
pjb has quit [Ping timeout: 265 seconds]
ark has joined #lisp
JuxTApoze has quit [Ping timeout: 246 seconds]
emys has quit [Ping timeout: 260 seconds]
ayuce has joined #lisp
SlashLife has quit [Quit: Baking more cake ...]
Lycurgus has joined #lisp
SlashLife has joined #lisp
wxie1 has joined #lisp
wxie has quit [Ping timeout: 264 seconds]
wxie1 is now known as wxie
emys has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
SlashLife has quit [Max SendQ exceeded]
SlashLife has joined #lisp
arbv_ has joined #lisp
arbv has quit [Ping timeout: 260 seconds]
arbv_ is now known as arbv
wxie has quit [Ping timeout: 244 seconds]
wxie has joined #lisp
borei has joined #lisp
emys has quit [Ping timeout: 244 seconds]