didi has joined #lisp
<didi> How do I configure the printer so (let ((x (cons nil nil))) (setf (car x) x)) prints, without looping forever?
<jasom> clhs *print-circle*
<jasom> didi: ^^^
<didi> jasom: Thank you, but even after setting *print-circle* to t, it stills loops forever.
<didi> I suspect it has to do with the self referencing at the car, and not at the cdr.
Karl_Dscc has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
<jasom> didi: which implementation? That's a bug
<didi> SBCL.
<didi> jasom: ^
<fiddlerwoaroof> Works for me (sbcl 1.4.1
<jasom> (let ((*print-circle* t)) (prog1 nil (print (let ((x (cons nil nil))) (setf (car x) x))))) ;; <-- works for me
<didi> jasom: Hum. Yours worked.
<didi> Wait.
<fiddlerwoaroof> Weird, I'd assume that PRINT would be called outside the scope of that let
<jasom> The REPL will try to print the results of PRINT, after *print-circle* is no longer bound to t, which is why the prog1 nil is there
<didi> (let ((x (cons nil nil)) (*print-circlke* t)) (setf (car x) x)) loops.
<fiddlerwoaroof> ah
<didi> jasom: oic
<jasom> didi: indeed because the print happens outside of the dynamic scope of your print-circle binding
<fiddlerwoaroof> You have to SETF *print-circle* to make it work in the repl
<didi> TIL. Thank you, jasom.
<didi> fiddlerwoaroof: Thanks.
<fiddlerwoaroof> This is one of those things that always confuses me :)
<jasom> dynamic bindings are useful for some things, but it also quickly becomes obvious why lexical bindings are the default
<jasom> I find myself doing things like (defun foo (arg1 &key (option1 *option1*)) ...) so that I can be explicit when I need it, but not have to have the same 2 arguments passed to every single function everywhere for the common case.
aeth has quit [Ping timeout: 248 seconds]
aeth has joined #lisp
<fiddlerwoaroof> Is there a generic ASDF way to generate an image?
<fiddlerwoaroof> s/generate/dump/
EvW has quit [Ping timeout: 250 seconds]
dieggsy has quit [Ping timeout: 264 seconds]
<didi> Heh, I've never used #'prog1 to stop the REPL from printing something. Before setting *print-length*, I used to add a final t or nil to form.
<fiddlerwoaroof> It's a bit annoying that PROG1 squashes multiple-values
<fiddlerwoaroof> And forces you to use the much longer-namd multiple-value-prog1
<didi> fiddlerwoaroof: Weird.
<jasom> fiddlerwoaroof: (uiop:save-image)
<jasom> fiddlerwoaroof: https://github.com/jasom/sqlitestore/blob/master/build.lisp <-- here's my current build script, it works on everything that supports images. A small change can let it work on ECL type lisps as well, but I haven't done that yet.
<pfdietz> m-v-p1 is a heavier weight thing. prog1 is just a simple macro.
<fiddlerwoaroof> Hmm, I think (asdf:operate 'program-op :foo)
<fiddlerwoaroof> is what I want
<jasom> fiddlerwoaroof: that will work as long as your asdf file is setup correctly, but it does have the issue of putting it in your asdf cache rather than local.
<didi> Hum. multiple-value-prog1 doesn't expand here with C-c C-m.
<fiddlerwoaroof> it's a special operator, according to the standard
<didi> oic
<didi> SBCL defines it using `def-ir1-translator'.
<fiddlerwoaroof> I think that means it's ok to implement it as a macro, but that would be implementation-dependent
earl-ducaine has joined #lisp
<jasom> fiddlerwoaroof: in particular see "The pathname of the output of bundle operations is subject to output-translation as usual, unless the operation is equal to the :build-operation argument to defsystem. This behaviour is not very satisfactory and may change in the future. Maybe you have suggestions on how to better configure it? " in the ASDF docs for it
MrBusiness has joined #lisp
<fiddlerwoaroof> Yeah, that's a bit annoying
<fiddlerwoaroof> Although, since the caches work fairly predictably it's not too bad
<fiddlerwoaroof> something like cp $MY_CACHE_DIR/$PWD . (or the equivalent lisp)
<didi> I wonder if there is a correlation between symbol names and function use.
<didi> Length of symbol names, I mean.
<didi> For instance, few use multiple-value-prog1 because it is too long.
<fiddlerwoaroof> I dunno, I use DESTRUCTURING-BIND occasionally
<fiddlerwoaroof> ... quite a bit that is
<fiddlerwoaroof> Also, MULTIPLE-VALUE-BIND
Xal has quit [Ping timeout: 240 seconds]
<drmeister> Hey folks - I'm adding some optimizations to Clasp and I wanted to check my thinking.
<drmeister> Currently Clasp's DEFMETHOD works like ECL - it walks the method lambda to determine if the method uses call-next-method or next-method-p and constructs a method function that does or doesn't have those local functions defined.
<earl-ducaine> Lispiacs! re: defvar. I'd like to create a global special variable at run time that is ordinarially not present when the program's compiled files loaded. The easiest way is just to create a macro like so: (defmacro define-site-variable (variable value) `(defvar ,variable ,value))
<earl-ducaine> where define-site-variable is obviously just a bit of implementation hiding of calling (defvar variable value)
<earl-ducaine> The question: is there any reason why it wouldn't be advisable to use defvar in a non-toplevel form, given clhs' warning about compiling that code having no side-effects. (which would appear to be what I want)
Xal has joined #lisp
<drmeister> I think I need to store the result of that walk in the method by adding two new slots to the method class: method-calls-next-method and method-calls-next-method-p.
<drmeister> I think I need to do this so that that I can optimize effective methods for slot accessors. If a class has an accessor with more than one method if the first method that would be called doesn't call call-next-method or next-method-p I can optimize it as a direct slot access.
<drmeister> Another optimization is if the first method of the effective method doesn't call call-next-method/next-method-p then I can call the method function passing the arguments directly rather than passing the arguments as a list.
<drmeister> Adding slots to the method class is kind of drastic but I think that's what needs to be done.
<drmeister> Any thoughts?
<drmeister> Not like I'm waiting or anything - I'm proceeding with adding a leaf-method-p slot that is T if the method doesn't call call-next-method or next-method-p.
varjag has quit [Ping timeout: 252 seconds]
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
parjanya has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
varjag has joined #lisp
varjag has quit [Ping timeout: 272 seconds]
markong has quit [Ping timeout: 264 seconds]
mlius has joined #lisp
jmercouris has quit [Remote host closed the connection]
jmercouris has joined #lisp
rumbler31 has quit [Remote host closed the connection]
rumbler31 has joined #lisp
didi` has joined #lisp
rumbler31 has quit [Remote host closed the connection]
d4ryus2 has joined #lisp
didi has quit [Ping timeout: 248 seconds]
didi` is now known as didi
didi has left #lisp [#lisp]
d4ryus1 has quit [Ping timeout: 248 seconds]
fortitude_ has joined #lisp
fortitude has quit [Ping timeout: 240 seconds]
dieggsy has joined #lisp
pierpa has quit [Quit: Page closed]
Kevslinger has quit [Quit: Connection closed for inactivity]
fikka has quit [Ping timeout: 252 seconds]
<jmercouris> is there a way to detect OS in ASDF?
<jmercouris> like something like feature-if :darwin (load files xyz)?
leo_song has quit [Quit: ZNC 1.6.5+deb1 - http://znc.in]
circ-user-X92tl has joined #lisp
smurfrobot has joined #lisp
Kevslinger has joined #lisp
<jmercouris> I think for now I'll just define subsystems that load OS specific files
<loke> jmercouris: #+linux ?
smurfrobot has quit [Ping timeout: 248 seconds]
aindilis has quit [Read error: Connection reset by peer]
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
bthesorceror has joined #lisp
damke has joined #lisp
fikka has joined #lisp
<fiddlerwoaroof> Yeah, I think the normal thing would be to use a #+ reader conditional
fikka has quit [Ping timeout: 248 seconds]
<fiddlerwoaroof> You could also do something like (member :darwin *features*) if you need to do something programatically, but you should probably make sure something like trivial-features has been loaded to normalize the features list
<jmercouris> loke: Perhaps, I'll need to think about it
lagagain has quit [Quit: Connection closed for inactivity]
<jmercouris> I'm leaning towards subsystems for now
<jmercouris> eg. defsystem next, defsystem next/cocoa, defsystem next/gtk
peterpp has quit [Ping timeout: 256 seconds]
<jmercouris> I think it would be nice to be able to load the system without any graphical dependencies
<jmercouris> especially for the purposes of tests
<jmercouris> loke, fiddlerwoaroof, thank you for the feedback, I may do it that way yet :D
<jmercouris> goodnight everyone
<Zhivago> I think it is always nice to delegate decisions like that to the user rather than to try to detect.
<Zhivago> Even better if you give them a mechanism by which to automate those policies.
fikka has joined #lisp
zaquest has joined #lisp
varjag has joined #lisp
bthesorceror has quit []
jmercouris has quit [Ping timeout: 260 seconds]
varjag has quit [Ping timeout: 252 seconds]
fikka has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
sjl__ has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
sjl__ has quit [Ping timeout: 260 seconds]
fortitude__ has joined #lisp
dddddd has quit [Remote host closed the connection]
fortitude has joined #lisp
rumbler31 has joined #lisp
fortitude_ has quit [Ping timeout: 252 seconds]
fortitude__ has quit [Ping timeout: 272 seconds]
fikka has joined #lisp
kajokajo has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
mlius has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 248 seconds]
mlius has joined #lisp
damke_ has joined #lisp
rumbler31 has quit [Remote host closed the connection]
damke has quit [Ping timeout: 264 seconds]
khisanth_ has quit [Ping timeout: 252 seconds]
mlius has quit [Ping timeout: 256 seconds]
mlius has joined #lisp
<jasom> minion: memo for jmercouris the best way to use asdf and features is to use defsystem-depends-on to require any packages that might set features you need (e.g. trivial-features) and then if-feature inside your defsystem
<minion> buzz off!
<jasom> minion: memo for jmercouris: the best way to use asdf and features is to use defsystem-depends-on to require any packages that might set features you need (e.g. trivial-features) and then if-feature inside your defsystem
<minion> Remembered. I'll tell jmercouris when he/she/it next speaks.
fikka has joined #lisp
LiamH has quit [Quit: Leaving.]
mlius has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 264 seconds]
mlius has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
vibs29 has quit [Ping timeout: 256 seconds]
damke_ has joined #lisp
<asarch> When you do: (ql:quickload "quicklisp-slime-helper") and QuickLisp is doing "[package retrospectiff2]..........................", is it compiling?
<asarch> Or just loading in memory the package and its dependencies?
vibs29 has joined #lisp
NoNameWhatAShame has joined #lisp
<beach> Good morning everyone!
<NoNameWhatAShame> Good 5:40 beach :3
<NoNameWhatAShame> (I guess you could call that a morning)
mlius has quit [Ping timeout: 248 seconds]
khisanth_ has joined #lisp
<beach> Yeah, sorry. I overslept.
<beach> NoNameWhatAShame: Are you new here? I don't recognize your nick.
mlius has joined #lisp
fikka has joined #lisp
mlius has quit [Ping timeout: 240 seconds]
dieggsy has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 272 seconds]
dieggsy has joined #lisp
mlius has joined #lisp
schoppenhauer has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
shka has joined #lisp
schoppenhauer has joined #lisp
SaganMan has joined #lisp
<SaganMan> Morning!
<loke> Helo
<SaganMan> hello loke
dieggsy has quit [Ping timeout: 272 seconds]
fikka has quit [Ping timeout: 252 seconds]
mlius has quit [Ping timeout: 252 seconds]
smurfrobot has joined #lisp
mlius has joined #lisp
rumbler31 has joined #lisp
fikka has joined #lisp
smurfrobot has quit [Ping timeout: 260 seconds]
rumbler31 has quit [Remote host closed the connection]
mlius has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 260 seconds]
varjag has joined #lisp
asarch has quit [Quit: Leaving]
rumbler31 has joined #lisp
<Fare> beach: chao anh
fikka has joined #lisp
varjag has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 264 seconds]
SaganMan has quit [Quit: WeeChat 1.6]
fikka has joined #lisp
Vicfred has joined #lisp
turkja has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
Devon has quit [Ping timeout: 248 seconds]
damke has joined #lisp
fikka has joined #lisp
alpert has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
wigust has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
Tko has quit [Read error: Connection reset by peer]
rumbler31 has quit [Remote host closed the connection]
mlius has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
<ym> Chio-chan
alpert has quit []
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
mlius has quit [Ping timeout: 272 seconds]
fikka has joined #lisp
mlius has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
rippa has joined #lisp
Devon has joined #lisp
Devon has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
aindilis has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
varjag has joined #lisp
varjag has quit [Ping timeout: 264 seconds]
mishoo_ has joined #lisp
mlius has quit [Ping timeout: 240 seconds]
t0adst00l has joined #lisp
prometheus_falli has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
safe has quit [Read error: Connection reset by peer]
fikka has joined #lisp
dec0n has joined #lisp
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
fourier has joined #lisp
smurfrobot has quit [Ping timeout: 252 seconds]
prometheus_falli has quit [Remote host closed the connection]
t0adst00l has quit [Remote host closed the connection]
zooey has quit [Remote host closed the connection]
fikka has joined #lisp
zooey has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
sjl__ has joined #lisp
rumbler31 has joined #lisp
fikka has joined #lisp
Karl_Dscc has joined #lisp
sjl__ has quit [Ping timeout: 268 seconds]
rumbler31 has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 268 seconds]
le4fy has quit [Ping timeout: 256 seconds]
Devon has joined #lisp
test1600 has joined #lisp
Devon has quit [Ping timeout: 248 seconds]
Karl_Dscc has quit [Remote host closed the connection]
fikka has joined #lisp
t0adst00l has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
raphaelss has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 264 seconds]
Cymew has joined #lisp
fikka has joined #lisp
shka has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
fourier has quit [Ping timeout: 264 seconds]
damke_ has joined #lisp
FreeBirdLjj has quit [Ping timeout: 256 seconds]
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
damke has quit [Ping timeout: 265 seconds]
le4fy has joined #lisp
makomo has joined #lisp
vaporatorius__ has joined #lisp
vap1 has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
Devon has joined #lisp
fikka has quit [Client Quit]
fikka has joined #lisp
Cymew has quit [Remote host closed the connection]
heurist` has joined #lisp
Cymew has joined #lisp
Cymew has quit [Remote host closed the connection]
Cymew has joined #lisp
Devon has quit [Ping timeout: 260 seconds]
heurist has quit [Ping timeout: 264 seconds]
varjag has joined #lisp
fourier has joined #lisp
<dmiles> is it acceptable to store :allocation :class slots on the class :prototype?
damke has joined #lisp
mlius has joined #lisp
<beach> I don't think that can work.
<beach> What if you have a subclass that shares the slot with its superclass?
varjag has quit [Ping timeout: 265 seconds]
damke_ has quit [Ping timeout: 264 seconds]
<dmiles> good point that would "cover up" the supertypes instnace
varjag has joined #lisp
<loke> dmiles: But it could be stored in the class' metaclass, couldn't it?
t0adst00l has quit [Ping timeout: 272 seconds]
<beach> I store it in the effective slot metaobject in SICL.
<loke> Oh here you are... Being all logcal and reasonable again. How are the rest of us going to be able to look smart? :-)
jdz has quit [Quit: ZNC - http://znc.in]
<beach> Sorry!
jdz_ has joined #lisp
manualcrank has quit [Ping timeout: 260 seconds]
mlius has quit [Ping timeout: 268 seconds]
manualcrank has joined #lisp
<beach> dmiles: More to the point, if you assign to that slot in one class, it would not change in the other.
varjag has quit [Ping timeout: 268 seconds]
heurist`_ has joined #lisp
heurist` has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 248 seconds]
<dmiles> well you mean in the case the subclasses allocation (on its prototype) is differnt than the superclasses's allocation?
<beach> No, when they are the same. There will be one prototype for each class, so there would be two places to store the shared slot.
<dmiles> Ah, ok, that makes sense.
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
heurist`_ has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
heurist`_ has joined #lisp
_cosmonaut_ has joined #lisp
gravicappa has joined #lisp
larme has quit [Ping timeout: 255 seconds]
larme has joined #lisp
markong has joined #lisp
fourier has quit [Ping timeout: 272 seconds]
Devon has joined #lisp
smurfrobot has joined #lisp
Devon has quit [Ping timeout: 256 seconds]
mhd has joined #lisp
Arcaelyx has quit [Ping timeout: 265 seconds]
EvW1 has joined #lisp
mhd has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Arcaelyx_ has joined #lisp
j0nd1e`` has quit [Read error: Connection reset by peer]
j0nd1e`` has joined #lisp
fourier has joined #lisp
smurfrobot has quit [Remote host closed the connection]
dedekind has joined #lisp
dedekind has left #lisp ["Leaving"]
raphaelss has joined #lisp
fikka has quit [Ping timeout: 263 seconds]
sjl__ has joined #lisp
fikka has joined #lisp
sjl__ has quit [Ping timeout: 248 seconds]
test1600 has quit [Quit: Leaving]
Devon has joined #lisp
Devon has quit [Ping timeout: 272 seconds]
rgrau has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
damke_ has joined #lisp
mlius has joined #lisp
fikka has joined #lisp
damke has quit [Ping timeout: 264 seconds]
mlius has quit [Ping timeout: 265 seconds]
rumbler31 has joined #lisp
mathi_aihtam has joined #lisp
mathi_aihtam has quit [Remote host closed the connection]
rumbler31 has quit [Ping timeout: 256 seconds]
smurfrobot has joined #lisp
smurfrobot has quit [Ping timeout: 272 seconds]
fourier has quit [Ping timeout: 256 seconds]
mhd has joined #lisp
mhd has quit [Client Quit]
smurfrobot has joined #lisp
scymtym has joined #lisp
Kevslinger has quit [Quit: Connection closed for inactivity]
fikka has quit [Ping timeout: 265 seconds]
veckon has joined #lisp
<veckon> Has anyone here ever used Genera?
fikka has joined #lisp
<dim> yes (but not me)
attila_lendvai has quit [Read error: Connection reset by peer]
makomo has quit [Ping timeout: 252 seconds]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
<veckon> Do you know if there are any manuals for the 3D design/rendering software the Symbolics Graphics Divison created?
chuchana_ has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Joreji has joined #lisp
Joreji has quit [Client Quit]
nirved has joined #lisp
chuchana_ has quit [Quit: Page closed]
fikka has joined #lisp
mlius has joined #lisp
Xof has joined #lisp
smurfrobot has quit [Remote host closed the connection]
dddddd has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
Devon has joined #lisp
fikka has joined #lisp
<Cymew> Probably. Were they included in the Genera distriubution? If not, you probably need to get them from the same source as the software.
attila_lendvai has quit [Read error: Connection reset by peer]
<veckon> I don't think they were included in the Genera distribution, actually, but I am not sure
<Cymew> veckon: What's the name of that rendering software?
<veckon> S-Graphics (S-Dynamics, S-Render, S-Paint, S-Geometry)
attila_lendvai has joined #lisp
Devon has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 248 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
smurfrobot has joined #lisp
attila_lendvai has joined #lisp
EvW1 has quit [Ping timeout: 255 seconds]
smurfrobot has quit [Ping timeout: 268 seconds]
veckon has left #lisp ["ERC (IRC client for Emacs 27.0.50)"]
<Cymew> Thanks. I have never inventoried what Genera software I have available.
<dmiles> ty for suggerstions .. i am making it all the way thru https://github.com/TeamSPoon/wam_common_lisp/blob/master/t/sanity-test-1.lisp#L158
fikka has joined #lisp
mlius has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 252 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
mlius has joined #lisp
attila_lendvai has joined #lisp
yeticry has quit [Ping timeout: 264 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
fikka has joined #lisp
yeticry has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
arquebus has joined #lisp
makomo has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
raynold has quit [Quit: Connection closed for inactivity]
vaporatorius__ has quit [Ping timeout: 240 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
vaporatorius__ has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
wxie has joined #lisp
peterpp has joined #lisp
arquebus has quit [Quit: konversation disconnects]
<phoe> I have a string like ":FOO :BAR :BAZ :QUUX". Is there a function that will read it as a list?
attila_lendvai has quit [Read error: Connection reset by peer]
fikka has joined #lisp
<phoe> Like, I want something better than to define my own function that does (READ-FROM-STRING (CONCATENATE 'STRING "(" STRING ")")).
<phoe> Since I have a feeling there's a library function for it somewhere.
attila_lendvai has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
Kevslinger has joined #lisp
<antoszka> phoe: (map 'list #'read-from-string (split-sequence ":FOO :BAR"))
<antoszka> (using split-sequence)
<phoe> antoszka: good enough. Thanks!
<antoszka> can't think of anything simpler
<oleo> (with-input-from-string (s ":FOO :BAR :BAZ :QUUX") (loop for i in s collect i)) ?
<antoszka> yeah, loop with collect was another thought I had
<antoszka> doesn't use external libraries
Tko has joined #lisp
fikka has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
<pfdietz> Can also use the second return value of READ-FROM-STRING, which is the position of the first character not read. Also, the :START keyword parameter of READ-FROM-STRING.
Devon has joined #lisp
attila_lendvai has joined #lisp
<antoszka> oleo: but you'd still need to split-sequence S
<phoe> oleo: "for i in s"? does LOOP work with streams like that?
<antoszka> nope :)
<antoszka> At least it doesn't for me :)
<phoe> because I don't think so, S is expected to be a list in this case AFAIK
<oleo> no it does not
<oleo> meh
<antoszka> phoe: UGLY solution, wrap your string in () and just read-from-string :)
<pfdietz> You would need to read from S, with eof-error-p false, and a distinct eof-value you'd check for to terminate the loop.
attila_lendvai has quit [Read error: Connection reset by peer]
<phoe> antoszka: read a little bit higher
<phoe> 13:44 < phoe> Like, I want something better than to define my own function that does (READ-FROM-STRING (CONCATENATE 'STRING "(" STRING ")")).
attila_lendvai has joined #lisp
<phoe> (:
Devon has quit [Ping timeout: 240 seconds]
<Zhivago> (with-input-from-string (s ":foo :bar") (loop for x = (read s nil) until (null x) collect x)) ; like this, surely?
<antoszka> phoe: ah, ok
<pfdietz> (read (apply #'make-concatenated-stream (mapcar #'make-string-input-stream (list "(" string ")"))))
<antoszka> pfdietz: well, that's UGLY
<antoszka> s/pfdietz/phoe/
<pfdietz> Zhivago: that's fine unless the list has a NIL in it.
<Zhivago> Easy to avoid -- use a cons as the sentinel.
<pfdietz> And if you have concern about consing on the heap make it dynamic-extent.
<Zhivago> Ah, the stream, of course.
wxie has quit [Remote host closed the connection]
wxie has joined #lisp
<Zhivago> (with-input-from-string (s ":foo :bar") (loop for x = (read s nil s) until (eql x s) collect x))
<pfdietz> That works too.
<Zhivago> But preferably with sensible identifiers.
igemnace has quit [Quit: WeeChat 2.0]
<oleo> * (with-input-from-string (s ":FOO :BAR :BAZ :QUUX") (loop repeat 4 collect (read s)))
<oleo> that was it
<Zhivago> If you know how many there will be, certainly.
<antoszka> what if there are N elements
<z0d> you just put N instead of 4. oh wait..
fourier has joined #lisp
<antoszka> how about just catching the END-OF-FILE condition and not specifying the number of repetitions?
<oleo> you can use two loops one for counting how many reads it does that will determine the length of the string
NoNameWhatAShame has quit [Ping timeout: 240 seconds]
<Zhivago> antoszka: That is what (with-input-from-string (s ":foo :bar") (loop for x = (read s nil s) until (eql x s) collect x)) does.
<antoszka> oh, cool
<antoszka> didn't understand that
wxie has quit [Quit: Bye.]
<oleo> works even with eq
<oleo> when the end is reached x's value is the whole of s
<oleo> heh
arquebus has joined #lisp
<oleo> (with-input-from-string (s ":FOO :BAR :BAZ :QUUX") (loop as x = (read s nil s) while (not (eql x s)) collect x))
<oleo> however it does not work with the with keyword
<oleo> and i'm not sure when "with" is used actually
<oleo> loop with x = is a no go
<phoe> "with x =" is equivalent to a LET* binding
<oleo> is that an additional keyword after some variable is already used ?
<oleo> as in (loop as x = bla with y =....
<oleo> ?
<beach> oleo: (loop as x = bla for y = (f x) do...)
<oleo> btw x= does not work
<oleo> but x =(bla) does
arquebus has quit [Quit: Leaving]
<beach> sure x= is a symbol
<oleo> ok
<oleo> what's the difference between as and for ?
<beach> None
<oleo> ok
<oleo> and when do you use then ?
<oleo> and next ?
<beach> (loop for x = 1 then (f x) ...)
<beach> Turns x into 1, (f 1), (f (f 1)) ..
<oleo> ah
<beach> There is no next loop keyword that I can remember.
<oleo> ok
asarch has joined #lisp
atgreen has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
Avian-Anathema has joined #lisp
FreeBirdLjj has joined #lisp
fourier has quit [Ping timeout: 265 seconds]
`420 has quit [Ping timeout: 248 seconds]
sjl__ has joined #lisp
sjl has joined #lisp
kajo has joined #lisp
sjl__ has quit [Ping timeout: 252 seconds]
<dmiles> is there not some default macro for (equalp (symbol-name x) (symbol-name y)) ?
<beach> No.
<beach> What do you need it for?
<dmiles> (matching keywords symbols)
<phoe> dmiles: use STRING=
<dmiles> (matching keywords to symbols)
<phoe> (string= :foo 'foo) ;=> T
<beach> Ah, forgot about that one.
<dmiles> thank you.. yup that worked
<beach> dmiles: What kind of keywords?
<phoe> I have been committing a lot of sins related to comparing symbol names of symbols from different packages.
<dmiles> to bad this returns true (STRING= '#:a "A")
<phoe> dmiles: no, why?
<phoe> #:a is naturally upcased as all symbols are by default
<phoe> use
<beach> dmiles: Can you explain more about what you need it for?
<phoe> '#:|a| instead to make sure the "a" is escaped and therefore not upcased.
<dmiles> phoe: its fine that it returns true .. just hoping i dont miss an error
<phoe> anyway
<phoe> dmiles: what beach said, what do you need it for?
<dmiles> beach: well when compiling lambda keywords
circ-user-X92tl has quit [Ping timeout: 268 seconds]
<beach> Lambda-list keywords are symbols in the Common Lisp package.
<beach> You should not use the name for those. You should compare symbols using EQ.
<phoe> like &rest?
circ-user-X92tl has joined #lisp
<beach> clhs &rest
<phoe> this is a symbol, you can (eq '&rest somethnig)
<beach> Not only can, but should.
<phoe> yup
<dmiles> sorry keys.. not keywords. &key test with user supplied :test
<phoe> dmiles: I still don't get iet
<phoe> test should be a function designator
<phoe> so something funcallable
<phoe> so either a function object, or a symbol that is a function name
<phoe> still can't see anything STRING=able
<beach> dmiles: Those should also be compared as symbols.
<dmiles> matching "(member 1 '(1 2 3) :test #'=)" to (defun member (item list &key test test-not key) .. )
<beach> dmiles: Those should also be compared as symbols, not just the names.
<dmiles> (eql cl::test :test) ==> nil
<beach> *sigh*
<phoe> dmiles: wait a second, are you matching what to what?
<phoe> "(member ...)" is a string
<phoe> (defun member ...) is a macro call
<Zhivago> dmiles: Is there a reason that you want to ignore the package in this comparison?
<beach> dmiles: (eq keyword:test :test) => T
<dmiles> i am catching errors like: (member 1 '(1 2 3) 'test #'=)
<phoe> dmiles: why are you trying to catch these errors instead of letting Lisp catch them?
<beach> dmiles: You should compare the SYMBOLS using EQ.
<beach> phoe: He is implementing a Common Lisp system.
<phoe> beach: ooh, I see.
<dmiles> i do alwasy compare symbols with eq once compiled
<beach> Once compiled? Not before?
<dmiles> (even before compiled #'eq is fine)
<beach> So why do you need string comparison?
<phoe> Then you will want to match only *the* symbol :TEST and not any other symbol like FOO:TEST.
<dmiles> whnen i am returning the error message i would like to let the user know that they should have used a keyword
<phoe> So, from what I understand, you want to catch three cases.
<phoe> 1) when the user uses :TEST - everything is okay, the function call is made.
<phoe> 2) when the user uses 'TEST which is not a keyword but is STRING= to a valid keyword - you want to inform the user that there is a keyword available that perhaps should have been used.
<phoe> 3) when the user uses a thing like 'KJAFKJHF that is not EQ or STRING= to anything - you just want to err out.
<phoe> Do I understand this correctly?
<dmiles> phone: exactly :)
<phoe> In this case, STRING=. (:
<dmiles> *nod* yeah i agree
<pjb> (defun foo (&key test ((test #:bad-test) nil bad-test-p)) (when bad-test-p (error "You should have used :test not 'test")))
<pjb> But the question is why you want to test those cases? a bad keyword is a bad keyword, the lisp system already reports them.
wigust has quit [Quit: ZNC 1.6.5 - http://znc.in]
<dmiles> i understand it is wrong heads to ever compare symbols by name.. that anyone doing that is obviously doing something wrong
<pjb> dmiles: the implicit point here being that 'test might be exactly what the keyword should be, if the user programmed it so!
<phoe> dmiles: not really.
<pjb> dmiles: there's only one place where you need to compare symbols by name, it's with LOOP keywords.
<phoe> LOOP compiles symbols by name, internally.
<phoe> so when you write (loop for ...), the FOR can come from any package.
<phoe> s/compiles/compares/
<dmiles> pjb: yes indeed that is what is happening in 44mb of work code.. we dont have to actually use keyword names in cyc.. we have to use the right key from the right package is all
<pjb> (loop #:for i :in '(1 2 3) collect i) #| --> (1 2 3) |#
nika_ has joined #lisp
<pjb> But strangely, (loop "FOR" i "IN" '(1 2) "COLLET" i) doesn't work :-)
<joga> off-topic but quite beautiful... https://github.com/fergusq/tampio
<pjb> ie. you cannot just compare with string=, you have to compare with (and symbolp string=)
orivej has quit [Ping timeout: 256 seconds]
<dmiles> pjb: makes sense
<dmiles> my other usecase i am setting up for is durring make-isntance that i respect slots from differnt classes that came from differnt packages
<dmiles> in the initialization argument list
<dmiles> (when classes have been synthesized from differnt packages)
<dmiles> his::name "Joe" orm::name "o1111" since :name would be ambiguous
<loke> pjb: Wouldn't you say that in the following, the symbol is compared by name?
<loke> pjb: (defun foo (&key x) ...)
<loke> X is a local symbol, but later looked up by name in the KEYWORD package
<dmiles> loke: i was going to make that argument.. but technically we can compile :x in the parse and have it bind to foo:x in the body
<loke> It really should be (&key :x) ...
<dmiles> so it becomes.. (&key (:x foo:x))
jmercouris has joined #lisp
<dmiles> oops (&key ((:x foo:x)..) )
<loke> The interesting thing is that :INITARG for DEFCLASS is indeed processed that way. You can specify an initarg in any package, not just KEYWORD:
<loke> (defclass bar () ((val :initarg z))) (slot-value (make-instance 'bar 'z 10) 'val) ⇒ 10
<dmiles> exactly
kupad has quit [Ping timeout: 240 seconds]
<loke> Plenty of times have I forgot to add the colon in front of an INITARG argument. Annoying :-)
<dmiles> parsing initargs i have to pass once over wwith #'eq then again over with (equal (symbol-name their-keyword)(symbol-name read-symbol-not-in-keyword))
<dmiles> s/read-symbol-not-in-keyword/real-symbol-not-in-keyword/g
rumbler31 has joined #lisp
<dmiles> any initargs left over i'd liek to print to loke
<dmiles> i think it is nice to allow: (make-instance 'bar 'z 10) or (make-instance 'bar :z 10)
<dmiles> it might even be required?
<beach> Yes.
<dmiles> if 'z came from the wrong package it is nice to issue a small worning?
<dmiles> (or can that be an error?)
<phoe> dmiles: that's an error
<dmiles> ok good.. that way people can keep members private that way
<phoe> you can have (make-instance 'bar 'foo:z 1 'baz:z 2 'quux:z 3), too
<phoe> so it stops being trivial
<dmiles> yeah.. that is exactly the tests i am working on
smurfrobot has joined #lisp
eudoxia has joined #lisp
<dmiles> many serialized objects in cyc have "defun based constructors" that mimic the init slots using (foo:make-foo &key foo::z baz::z quux::z ) ...
<dmiles> (secretly i thought that was standard until a couple years ago.. and was slightly surprised)
<dmiles> but Cyc is a differnt dialect of lisp
<jmercouris> I've defined the following asd: https://gist.github.com/8c7ff859c3b6b4fc51c44c1a48188321 how do I load my subsystem?
<minion> jmercouris, memo from jasom: the best way to use asdf and features is to use defsystem-depends-on to require any packages that might set features you need (e.g. trivial-features) and then if-feature inside your defsystem
<jmercouris> it doesn't appear anywhere in slime-load-system, it only shows the parent system
<phoe> jmercouris: do you use Quicklisp or plain ASDF?
<jmercouris> phoe: quicklisp
<phoe> jmercouris: (ql:register-local-projects) first
<phoe> and then try quickloading
<jmercouris> phoe: I've never had to do that though, I've set up my config file to look
<jmercouris> e.g. I have setup ~/.config/common-lisp/source-registry.conf.d/user-lisp.conf
<jmercouris> to point to the directory that contains my lisp source code
<phoe> jmercouris: my knowledge might not be enough in this case. I'm no good with more complex ASDF setups.
Tobbi has joined #lisp
<jmercouris> you know what is really interesting, I typed in the string, and it worked
<jmercouris> but it did not come up in my auto suggest :|
<jmercouris> Now that I loaded one of the systems from the file, it now comes up in IVY
makomo has quit [Ping timeout: 265 seconds]
<jmercouris> probably some sort of emacs cache issue
varjag has joined #lisp
turkja has quit [Ping timeout: 248 seconds]
jfb4 has quit [Ping timeout: 248 seconds]
orivej has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
jfb4 has joined #lisp
FreeBirdLjj has joined #lisp
Tko has quit [Read error: Connection reset by peer]
<Xach_> What does not come up in auto suggest?
FreeBirdLjj has quit [Ping timeout: 240 seconds]
<jmercouris> Xach_: Systems declared in the same asd file
<jmercouris> so if you look at the gist I posted earlier https://gist.github.com/8c7ff859c3b6b4fc51c44c1a48188321, next/cocoa doesn't come up in slime-load-system, but next does
<Xach_> oh. slime-load-system is something that works only in a limited set of circumstances.
<jmercouris> yeah, it does completely work actually
<jmercouris> I can slime-load-system and type the full string
<jmercouris> but it does not suggest it to me
<Xach_> I mean for completion.
<jmercouris> ah, okay :D
<jmercouris> then yes
<Xach_> There is no way to know in advance the lst of strings that will return a good result for find-system.
<jmercouris> What do you mean? can you expand on that please?
<Xach_> jmercouris: when you do (asdf:find-system "foo") -- a precursor to loading a system -- asdf consults a number of functions to convert the string "foo" into a path to a system file (or a system object)
<Xach_> This mapping is very handy and is one of the reasons why quicklsp caan do what it does.
<Xach_> But it does mean that, when doing auto-complete, there's no easy way to say "give me a list of all systems that start with 's'" for completion purposes.
<Xach_> But there is one built-in, standard function that is not so hard to use like that, because it maps from strings to files in the registry config.
<Xach_> So you could consult the file system to say "which *.asd files in the registry start with 'f'?"
<Xach_> but it can't tell you anything about the subsystems defined in one of those *.asd files.
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<jmercouris> I see but you could traverse those returned files and pass them to the other function that finds systems right?
<jmercouris> Ah, find-system only returns if the system exists
<jmercouris> it doesn't list the systems in a given file
<jmercouris> I misunderstood that function
<jmercouris> Okay yes, I see now why that is impossible to solve :D
<Xach_> jmercouris: if you load the system file, you could have more information to use for completion. but loading system files is a pretty heavyweight operation. it could load dozens of supporting systems.
<Xach_> a new system should make it easier to explore the mapping without doing an unpredictable amount of work.
fikka has joined #lisp
<jmercouris> Xach_: You could just write a simple parser that looks for defsystem + some string in each of those asd files
<jmercouris> and use that as your source of completion
<jmercouris> it's not necessary to know anything about the system or it's location as asdf:find-system can do that for you later, right?
<Xach_> ha ha ha
EvW has joined #lisp
<jmercouris> Why is that so funny?
<Xach_> I think "just" and "simple" are inappropriate there.
<jmercouris> I mean it doesn't sound like the most complex string parser in the world
<jmercouris> it's just look for defsystem, then next token is the system name
<phoe> the trouble is, these files can contain arbitrary code.
<phoe> and sometimes they do.
<jmercouris> I'm of course extremely ignorant about what this requires, but I thought that defsystem was ALWAYS followed by the system name
mlius has quit [Ping timeout: 248 seconds]
asarch has quit [Quit: Leaving]
fikka has quit [Ping timeout: 256 seconds]
<beach> (#.(intern (concatenate 'string "DEF" "SYSTEM") (find-package "ASDF_USER")) name-of-system ...)
<beach> ASDF-USER
<jmercouris> I guess, but why would somebody obfuscate their declaration?
<phoe> jmercouris: someone could write a macro for generating multiple systems.
<phoe> that will expand into a PROGN of DEFSYSTEMs.
<jmercouris> It at least seems a better solution than the current one
<phoe> just a hypothesis, but generally, parsing Lisp isn't as trivial as it seems.
heurist_ has joined #lisp
``Erik has quit [Ping timeout: 268 seconds]
heurist_ is now known as heurist
dec0n has quit [Read error: Connection reset by peer]
<beach> In fact, it requires the Common Lisp reader, which in turn requires a running Common Lisp system.
<whoman> (case ('(' recurse/push-stack) (x read-symbol) (')' pop-stack)
<whoman> )
smurfrobot has quit [Remote host closed the connection]
heurist`_ has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
Tobbi has joined #lisp
<phoe> whoman: as long as you have a default reader, sure
<phoe> a person might have shadowed their #\( and #\) symbol macros
<whoman> ehe
mlius has joined #lisp
<whoman> hmm eye of the beholder. as is life, readers are subjectively processed =) who knows what a person will feel when i wear a shirt consisting of the color Red
smurfrobot has joined #lisp
<phoe> I will feel #ff0000
<jmercouris> phoe: there will probably be a few other colors in there as well
<pfdietz> I liked Scalzi's book _Redshirts_, but as a general rule I like metafiction.
Sigyn has quit [Read error: Connection reset by peer]
uuplusu has joined #lisp
<Xach_> pfdietz: ok
Sigyn has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
<jmercouris> So now that Fare is leaving the community, who will further the development of ASDF?
trafaret1 has joined #lisp
<trafaret1> hi there
<jmercouris> hello
orivej has joined #lisp
fikka has joined #lisp
mlius has quit [Ping timeout: 260 seconds]
<trafaret1> jmercouris: can I ask you common questoin about programming in lisp?
<jmercouris> trafaret1: Of course, I may not be able to answer it, though someone else will, in IRC the etiquette is generally to just ask your question
Tobbi has quit [Remote host closed the connection]
Sauvin has quit [Ping timeout: 264 seconds]
<trafaret1> jmercouris: I not a programmer but I want to be, is it good choise to starte learning programing from lisp or it's bad idea?
Tobbi has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
<beach> It's an excellent idea.
<beach> It is a much simpler language than (say) C++, Java, or C.
<jmercouris> trafaret1: That is a difficult question, it depends, do you wish to make money as a programmer? What are your constraints in life, etc?
<jmercouris> trafaret1: You'll have to tell us your motivations for learning programming before we can give a conclusive answer
<jmercouris> trafaret1: What beach says is true about the simplicity of the language, the question is, can you afford to learn lisp and then another language for employment
raphaelss has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 264 seconds]
<beach> jmercouris: I think every programmer should know Common Lisp, whether they actually need it in their job or not.
<trafaret1> I have recently installed emacs and to be honest I fall in love with it, some ppl in interat says that lisp hard to learn but easy to write same things than in for example c/c++, java
<uuplusu> I suggest starting from Python
<trafaret1> I want to deal with web/game/math_calculus
<beach> trafaret1: Every language is hard to learn well.
fikka has joined #lisp
<jmercouris> beach: It is a luxury not all can afford
<jmercouris> trafaret1: It sounds like you've already made up your mind, might as well learn lisp :)
<beach> jmercouris: It is definitely not a luxury. It is a necessity in order to be a good programmer. Well, not necessarily Common Lisp, but some Lisp dialect.
<beach> jmercouris: Granted, the industry if full of incompetent programmers, but that's not some advice I would like to give, i.e. to remain incompetent.
<jmercouris> beach: If you were in some poor country and had to provide for your family asap, you'd learn whatever language pays money, and common lisp rarely pays money
<jmercouris> I'm not promoting incompetency myself :D, but I do believe it is a luxry to become competent, imagine just struggling to survive and provide for you and your family, you will do the minimum you can do to get by, because you have so many other problems going on in your life that you have to manage
fikka has quit [Ping timeout: 240 seconds]
<Xach_> eschulte: looks like GRAPH is broken at the moment
<jasom> jmercouris: also, the only supported subsytem syntax in foo.asd would be something like foo/bar (i.e. the prefix is the name of the .asd file, followed by a slash)
<jmercouris> jasom: That's the syntax I am using
<jmercouris> jasom: I saw that fare reccomends that
<jasom> jmercouris: but yeah, slime won't autocomplete subsystems (finishing up reading backlog now)
<jmercouris> jasom: ah okay :)
<jmercouris> jasom: Thanks for your memo anyway
<jasom> IMO it should fix that though
<jmercouris> jasom: I agree
<jasom> foo/<TAB> should load the foo.asd for completion
<jasom> but foo<TAB> maybe not
Sauvin has joined #lisp
fikka has joined #lisp
mlius has joined #lisp
Jesin has joined #lisp
Sauvin has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 248 seconds]
fourier has joined #lisp
<eschulte> Xach_: ah, thanks! I made a breaking change to curry-compose-reader-macros and hadn't updated graph... should be fixed now
fikka has joined #lisp
<Xach_> thanks!
fikka has quit [Ping timeout: 240 seconds]
Kaisyu has quit [Quit: Connection closed for inactivity]
parjanya has joined #lisp
trafaret1 has quit [Ping timeout: 256 seconds]
<jasom> Xach_: how does one submit a system for QL?
fikka has joined #lisp
_cosmonaut_ has quit [Ping timeout: 248 seconds]
<jasom> Xach_: thanks
varjag has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
kupad has joined #lisp
rgrau has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
EvW has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 252 seconds]
LocaMocha has joined #lisp
fikka has joined #lisp
kupad has quit [Ping timeout: 256 seconds]
rumbler31 has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 248 seconds]
nika_ has quit [Quit: Leaving...]
mrcom has quit [Read error: Connection reset by peer]
mlius has quit [Ping timeout: 260 seconds]
mrcom has joined #lisp
aindilis has quit [Read error: Connection reset by peer]
rumbler31 has joined #lisp
aindilis has joined #lisp
rgrau has joined #lisp
mlius has joined #lisp
rumbler31 has quit [Ping timeout: 264 seconds]
mhd has joined #lisp
orivej has joined #lisp
fikka has joined #lisp
markong has quit [Quit: Konversation terminated!]
asarch has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
zooey has quit [Ping timeout: 272 seconds]
zooey has joined #lisp
fikka has joined #lisp
EvW1 has joined #lisp
raphaelss has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
<Xach_> jasom: what delight awaits future quicklisp dists?
fikka has joined #lisp
<stylewarning> jmercouris: I’m pretty sure that if you can afford to be somewhat competent enough to become an industry programmer, you can fit Lisp in with it.
<stylewarning> I am baffled when there’s this implication that folks are able to really only learn a single language or they must somehow make a presumably lifelong choice and dedication to some single language
uuplusu has quit [Remote host closed the connection]
<rme> I seem to be semi-dedicated to CL.
<stylewarning> rme: but I’ll suppose on the outset that you didn’t think “well, I’ve got one language to learn in my life, which should it be?”
attila_lendvai has quit [Read error: Connection reset by peer]
<stylewarning> Or “I can only afford to learn one thing, I guess I’ll choose CL”
<beach> stylewarning: Well said.
terpri has quit [Quit: Leaving]
attila_lendvai has joined #lisp
terpri has joined #lisp
shka has joined #lisp
<beach> stylewarning: Will you submit a paper to ELS2018?
<stylewarning> Yes!
<beach> Excellent!
<stylewarning> Likewise with a few of my coworkers
Bike has joined #lisp
<dmiles> jmercouris: knowing and doing Prolog and/or Lisp work has always paid way more than C#,Java,Scala and ASP comvined
<beach> stylewarning: I'll be happy to review drafts of it, if you think that would be advantageous.
<dmiles> jmercouris: mostly due to being able to work in markets that are starved of programmers
attila_lendvai has quit [Read error: Connection reset by peer]
<beach> I will do what I usually do, namely submit links to drafts here, so that anyone who wants can review the paper(s).
<stylewarning> beach: I’d love that. I’m hoping I can publish about some of this quantum simulation business. We will probably be writing our drafts in a few weeks
<beach> Sounds good.
<dmiles> oh sorry to rme :P
damke has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
<dmiles> (or whomever is affraid to take the time)
fikka has quit [Ping timeout: 248 seconds]
damke_ has quit [Ping timeout: 264 seconds]
<shka> good evening
<beach> Hello shka.
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
cgay has quit [Quit: leaving]
cgay has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
<rme> I've mostly been successful in earning a living with CL, though there are rough spots from time to time.
rumbler31 has joined #lisp
attila_lendvai has joined #lisp
<jmercouris> stylewarning: The point is that you'll learn one language in your life, I myself have learned dozens of languages for different purposes at different times
<jmercouris> the point is, that someone learning to program, as an absolute beginner should only learn one language
<jmercouris> they don't have infinity time at their disposal, and they will have to make money with that language, so they better be good at it
<stylewarning> Reasonable
<stylewarning> Hopefully they’ll eventually learn Lisp ;)
<jmercouris> stylewarning: s/is that you'll/is that you won't
<jmercouris> I am just trying to imagine that guys life situation
rumbler31 has quit [Ping timeout: 264 seconds]
<jmercouris> maybe I am making too many assumptions about it
<jmercouris> stylewarning: Absolutely agreed, learning lisp has changed how I think about programming
<jmercouris> I wouldn't say I have "learned" lisp, but I've learned some, and already so many of my old opinions have changed
<jmercouris> dmiles: These types of jobs can be very highly paid, IFF they can be found, and that you must admit is more difficult than finding a job in Ruby or Python or some .NET technology
<jmercouris> dmiles: rme even provides evidence for my claim, an excellent developer claiming there are rough spots
<rme> I'm just a dumb hacker.
<jmercouris> whatever you'd like to call yourself, I think your work is great
<jmercouris> I'm a huge fan of CCL
<jmercouris> I know you didn't create it solo or anything, but yeah
trafaret1 has joined #lisp
trafaret1 has quit [Remote host closed the connection]
<rme> I'm nowhere near as good as Gary Byers, but thanks.
Bike has quit [Ping timeout: 260 seconds]
Bike has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
<jmercouris> You shouldn't compare yourself to the best when judging yourself
<jmercouris> or what you think is the best
<jmercouris> because by that same logic, whenever you are happy, you should be less happy, because no doubt someone is happier
KZiemian has joined #lisp
<dmiles> jmercouris: oh definatley, there is probably aobut 1 or 2 lisp/prolog job openings per month that I see :P verses 100s per week of everyhitng else.
shrdlu68 has joined #lisp
<KZiemian> hello world!
<minion> KZiemian, memo from beach: One item for CLUS. In the description of the functions for setting macro character or dispatch macro character, the only place to figure out the signature of the function seems to be in the example. It wouldn't hurt to state that signature explicitly.
<shrdlu68> KZiemian: Hello!
<stylewarning> We are hiring Lisp programmers!
attila_lendvai has joined #lisp
<jmercouris> stylewarning: remote?
<stylewarning> No remote.
<jmercouris> :'(
* jmercouris weeps softly
<shrdlu68> stylewarning: Where?
<KZiemian> stylewarning: for what kind of job?
<stylewarning> Coolifornia
* jmercouris laughs maniacally
<dmiles> Palo Alto?
<stylewarning> Berkeley
<shka> great
<shka> just one ocean away!
<stylewarning> KZiemian: quantum computing but knowledge of that isn’t necessary. See this video sometime https://youtu.be/f9vRcSAneiw the email to email is at the end (:
* fiddlerwoaroof wishes there were more remote lisp jobs and/or jobs in Ventur County, ca
* dmiles would only look for a job that is allowing opensource and letting me work on what i work on
<fiddlerwoaroof> The company I work for is hiring senior engineers and we have opportunities to use clojure
<stylewarning> dmiles that basically goes entirely against what jobs exist for, for the most part
<stylewarning> (Fortunately we do open source. But it’s not a free for all.)
<fiddlerwoaroof> But, I haven't yet convinced them to allow CL yet: they would be willing if someone could present a compelling business case
<dmiles> stylewarning: oh the incentive is that I'd get two or three people to do the things i dont like doing
<fiddlerwoaroof> stylewarning: it sort of depends on the relationship of your company to the technology
<fiddlerwoaroof> In places where network effects matter, e.g. advertising and social media, it's fairly risk-free to opensource your technology
<shrdlu68> Eh, I can't be hired anyway-no formal education in CS.
<rme> dmiles: haha, I just had a one-year gig doing the opposite of that . :-)
attila_lendvai has quit [Read error: Connection reset by peer]
<fiddlerwoaroof> shrdlu68: that's not an obstacle for good jobs
<dmiles> rme: opposite? (you had to do the work of three people?)
<fiddlerwoaroof> Most places you want to work will take demonstrated talent over formal CS education
<stylewarning> shrdlu68: it’s not an issue
<AeroNotix> A remote CL/Clojure job would be ideal
attila_lendvai has joined #lisp
<rme> No, I was joking. I had to work on stuff I didn't want to and it was closed source.
<mlius> opposite? (you had to do the work of three people?)
<mlius> 21:03 < fiddlerwoaroof> Most places you want to work will take demonstrated talent over formal CS education
<fiddlerwoaroof> I work with a brilliant person who only has a highschool education
<mlius> 21:03 < stylewarning> shrdlu68: it’s not an issue
<stylewarning> dmiles it sounds like you should work as a grad student :)
<KZiemian> stylewarning: quantum computing, nice
<shrdlu68> Glad to know. I'll take a stab at getting a job.
<fiddlerwoaroof> shrdlu68: if you are interested in living in the LA area, PM me your contact info and I can send your resume to our internal recruiter
<shrdlu68> fiddlerwoaroof: Hehe, I appreciate that, but I'm not in the U.S
<KZiemian> stylewarning: thank you for wideo
<rme> I'm living in the Seattle area at the moment, but if anyone wants me in a French-speaking country, let me know.
attila_lendvai has quit [Read error: Connection reset by peer]
<KZiemian> stylewarning: intersting, extremly interesting
<sjl> some day I'll find a remote CL job
* sjl dreams
attila_lendvai has joined #lisp
<KZiemian> one question
zkat has quit [Ping timeout: 252 seconds]
adulteratedjedi has quit [Ping timeout: 255 seconds]
<KZiemian> how is the best way to learn ASDF (or easiest beetwen best)
CEnnis91 has quit [Ping timeout: 250 seconds]
ggherdov has quit [Ping timeout: 250 seconds]
johs has quit [Ping timeout: 250 seconds]
rann has quit [Ping timeout: 246 seconds]
<KZiemian> if I need to read documentation
devlaf has quit [Ping timeout: 252 seconds]
trig-ger has quit [Ping timeout: 252 seconds]
mjl has quit [Read error: Connection reset by peer]
gendl has quit [Read error: Connection reset by peer]
gbyers has quit [Read error: Connection reset by peer]
<AeroNotix> "learn" in what way?
kilimanjaro has quit [Read error: Connection reset by peer]
<AeroNotix> What do you want to do with it?
stylewarning has quit [Ping timeout: 264 seconds]
splittist has quit [Ping timeout: 255 seconds]
mbrock has quit [Ping timeout: 255 seconds]
billstclair has quit [Write error: Connection reset by peer]
Meow-J_ has quit [Ping timeout: 250 seconds]
drmeister has quit [Read error: Connection reset by peer]
<KZiemian> I think I try to work some times without it
<sjl> I printed and read the manual. It's something like 90 pages total.
tobel has quit [Ping timeout: 240 seconds]
aaronjensen has quit [Ping timeout: 240 seconds]
jyc has quit [Ping timeout: 255 seconds]
gz_ has quit [Ping timeout: 255 seconds]
Kevslinger has quit [Ping timeout: 252 seconds]
l1x has quit [Ping timeout: 252 seconds]
banjiewen has quit [Ping timeout: 250 seconds]
angular_mike has quit [Ping timeout: 250 seconds]
p_l has quit [Ping timeout: 255 seconds]
<KZiemian> slj: you mean for ASDF?
joeygibson has quit [Ping timeout: 264 seconds]
danlentz has quit [Ping timeout: 264 seconds]
<sjl> KZiemian: Yes
<KZiemian> slj: thanks
asedeno has quit [Ping timeout: 255 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
terrorjack has quit [Ping timeout: 250 seconds]
tfb has quit [Ping timeout: 240 seconds]
<KZiemian> AeroNotix: for CLUS project we need to makes add-on to CCLDoc
rme has quit [Ping timeout: 264 seconds]
d4gg4d_ has quit [Ping timeout: 264 seconds]
XachX has quit [Ping timeout: 264 seconds]
rvirding has quit [Ping timeout: 255 seconds]
jeremyheiler has quit [Ping timeout: 255 seconds]
jerme_ has quit [Ping timeout: 250 seconds]
alms_clozure has quit [Ping timeout: 250 seconds]
<KZiemian> AeroNotix: my job is to figure out how CCLDoc works
convexferret has quit [Ping timeout: 276 seconds]
<AeroNotix> Oh right
<KZiemian> AeroNotix: and CCLDoc use ASDF
<AeroNotix> Just seemed a bit weird want to "learn" ASDF without a goal or issue in hnd
<AeroNotix> hand
<KZiemian> AeroNotix: issuie is to add-on to CCLDoc
<AeroNotix> OK. Fair enough
<AeroNotix> I just thought you literally wanted to "learn" ASDF in isolation to anything.
<KZiemian> AeroNotix: and I wondering can I do it without knowledge of ASDF or not?
attila_lendvai has joined #lisp
butterthebuddha has quit [Ping timeout: 260 seconds]
<AeroNotix> Probably. In all honesty ASDF has always lurked in the background of any lisp hacking I've ever done. I've rarely had to use its APIs directly and instead used Quicklisp which works on top of it.
EvW1 has quit [Ping timeout: 246 seconds]
<AeroNotix> Unsure how CCLDoc is built/organized, can go take a quick look
fourier has quit [Ping timeout: 264 seconds]
<AeroNotix> Found your ticket on ccldoc: https://github.com/Clozure/ccldoc/issues/14
butterthebuddha has joined #lisp
<AeroNotix> I don't get exactly what you're talking about here but from the sounds of it you've decided to use CCLDoc in another project and therefore also wanted to document CCLDoc in the process?
<AeroNotix> Lots of Poles getting into CL recently. I should go to a meetup if I have time
<KZiemian> AeroNotix: my english is a bit crap I know
LocaMocha has quit [Ping timeout: 240 seconds]
<AeroNotix> It's fine.
<AeroNotix> arguably better than my polish :)
<KZiemian> AeroNotix: definitly :)
<KZiemian> AeroNotix: okey
<KZiemian> AeroNotix: I don't know all detailes because I was working on diffs between CLUS and CLHS when they are debating
<AeroNotix> I'm reading about CLUS now. This is a new kind of be-all/end-all documentation project?
<AeroNotix> http://phoe.tymoon.eu/clus/doku.php?id=clus:todo seemingly with some kind of interactive UI/webpage aspect
<KZiemian> AeroNotix: but when I come back to project at the second half of November
<KZiemian> AeroNotix: they decided to write CLUS not in DokuWiki but in CCLDoc
<AeroNotix> Who are "they"?
<AeroNotix> Is there a page that explains what CLUS is and why it should exist?
attila_lendvai has quit [Read error: Connection reset by peer]
<AeroNotix> aside from "This is Common Lisp UltraSpec, a community project to create a contemporary and unified documentation file for the whole modern Common Lisp universe."
<AeroNotix> http://quickdocs.org/ exists
<KZiemian> AeroNotix: phoe, TeMPOraL, bugrum, mfiano and all other folks on Discord clus-general
<AeroNotix> KZiemian: a good starting point perhaps could be to add some nicer CSS/formatting to the clhs?
<AeroNotix> gah discord.
<KZiemian> AeroNotix: they are "they"
<KZiemian> gah discord? What you mean?
<fiddlerwoaroof> Is there a #lisp discord bridge?
<mfiano> Discord is horrible, but it happens to have a large Lisp community
<KZiemian> fiddlerwoaroof: yes of course
<AeroNotix> it's so damn slow and resource hungry to run it in the browser and "natively", though
attila_lendvai has joined #lisp
<fiddlerwoaroof> I'm not really a fan of closed protocol chat systems
<KZiemian> AeroNotix: if you want know what CLUS is about you must ask phoe, mfiano or some other big folk. Or read this https://blog.teknik.io/phoe/p/375
<KZiemian> AeroNotix: I just quit my embrioning state as CL user and most things about documentation are beyond me
<KZiemian> AeroNotix: project menager of CLUS is my bud from kraklisp, which is lisp community now in coma of people living in Cracow, Poland
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
<KZiemian> AeroNotix: and he start looking for help about weeks or so when I uderstand that I never left lisp embrionig state if I not find good project to work
mhd has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
attila_lendvai has quit [Read error: Connection reset by peer]
<KZiemian> AeroNotix: 2 + 2 = 4 so I ask him that can I join and get deeper knowledge about CL working on CLUS
<oleo> frigging thing
<KZiemian> AeroNotix: so I get in and being in strange position of one of top contributors and at the same worst lispers of all members
<AeroNotix> KZiemian: I understand
<oleo> i have edited a definition of a library function from within my init file,but when i load it it does not take effect even tho it shows it as being redefined
attila_lendvai has joined #lisp
<mfiano> What is an init file in this context?
<KZiemian> AeroNotix: that good because situation is strange
<AeroNotix> KZiemian: I wouldn't worry about it
<AeroNotix> just contribute as you can and see where it goes. Not everything has to be perfect.
<oleo> something which gets loaded via --load
<AeroNotix> oleo: yeah but what? Who is calling that? What is the --load file? Can you share code?
<KZiemian> AeroNotix: yes, Lisp is strange, as my life achivments. This is way I start my journey with this language
<oleo> sbcl version 1.4.2
<KZiemian> AeroNotix: I hope you understand why I can't answer you question why CLUS? But phoe is near so you can ask him if some question left.
d4gg4d_ has joined #lisp
<AeroNotix> KZiemian: sure.
<AeroNotix> oleo: which function are you redefining?
adulteratedjedi has joined #lisp
<oleo> parenthesis-highlighter from package drei-lisp-syntax
rvirding has joined #lisp
<oleo> that package is already loaded when i create the image
<oleo> which then loads the init file
<AeroNotix> http://dpaste.com/2PENCQP so line 30 here?
<oleo> yes
johs has joined #lisp
splittist has joined #lisp
mjl has joined #lisp
<fiddlerwoaroof> i
danlentz has joined #lisp
gendl has joined #lisp
devlaf has joined #lisp
gz_ has joined #lisp
<AeroNotix> oleo: both functions are the same in the init file
joeygibson has joined #lisp
<oleo> i only see an effect when i edit the source file in place but not when i try to override it from my init file
tobel has joined #lisp
XachX has joined #lisp
rme has joined #lisp
jeremyheiler has joined #lisp
<KZiemian> AeroNotix: about CSS I ask CLUS community that question
<oleo> AeroNotix, yes i thought maybe i can already put the definition into the image
<oleo> but to be sure i also defined it in my init file
trig-ger has joined #lisp
mbrock has joined #lisp
<oleo> but it does not work neither way, the only solution seems to be to edit the source file, then i see an effect otherwise not
gbyers has joined #lisp
<KZiemian> AeroNotix: they said: Contetn is the king, don't worry about it for now
<oleo> and i wonder why
drmeister has joined #lisp
<AeroNotix> oleo: interesting, unsure why that happens.
<AeroNotix> or why it doesn't happen, rather.
<KZiemian> AeroNotix: and because I the lowest in CL ranks among them I said: ok, I go to CCLDoc
alms_clozure has joined #lisp
<AeroNotix> KZiemian: ok
billstclair has joined #lisp
tfb has joined #lisp
l1x has joined #lisp
<mfiano> KZiemian: In case you are wondering, you are actually the only one doing work on CLUS. phoe took time off some months ago because life is getting in the way, and I was never part of the project really, just offered suggestions to get it rolling, but it stopped rolling again months ago.
angular_mike has joined #lisp
kilimanjaro has joined #lisp
<AeroNotix> Hence why I mentioned to stop worrying and just contribute where you can. Stop caring about "CL ranks" whatever that means. :)
<AeroNotix> enjoy yourself :)
CEnnis91 has joined #lisp
jerme_ has joined #lisp
rann has joined #lisp
<KZiemian> mfiano: I know that untile phoe comeback keeping CLUS alife is my job
<AeroNotix> as in literally being paid to do it?
zkat has joined #lisp
<KZiemian> mfiano: the only things that is pain in the back for me is that, when I talk about it
emma is now known as em
<KZiemian> mfiano: one ask question: So what is a state, where you are going, why you do it that way? And only answer I can get is: ask phoe or some other folk
Kevslinger has joined #lisp
Meow-J_ has joined #lisp
<KZiemian> mfiano: I always feel bad in all are of my life, when I can't answer directly such basic question
QualityAddict has joined #lisp
<AeroNotix> KZiemian: PM.
aaronjensen has joined #lisp
<AeroNotix> as in read your pms :)
<mfiano> There are no answers because there is no support of the project from anyone other than yourself. This may be a sign
<KZiemian> AeroNotix: job = it is my duty, but my check is not in dollars but in Lisp knowldge and good words from community
<KZiemian> AeroNotix: PM?
jyc has joined #lisp
<pjb> KZiemian: there are only two ranks: lurkers, and heroes.
<pjb> KZiemian: either you don't do anything and you're a lurker, or you do something and you're a hero.
<pjb> KZiemian: PM = Private Messages.
<KZiemian> mfiano: not quite true, there is a reson for using CCLDoc and not cearing about CSS, but I don't know either
<AeroNotix> think a large amount of chilling needs to happen :)
EvW has joined #lisp
<rme> KZiemian: Try starting out with something simple: write some documentation in ccldoc format.
stylewarning has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
terrorjack has joined #lisp
<rme> Use output-html to format and view it, and iterate from there.
<KZiemian> AeroNotix: I still don't get what you mean by privite message
<AeroNotix> Nevermind I just meant I sent you a private message on IRC
<pjb> KZiemian: type: /msg pjb Here is a private message
<KZiemian> AeroNotix: should I tell more thing on private waves?
<KZiemian> how send privite masseg on IRC?
<pjb> KZiemian: type: /msg pjb Here is a private message
<AeroNotix> KZiemian: Which IRC client are you using?
<KZiemian> pjb: you answer befor I ask :)
<pjb> The thing is that receiving a private message should open a new window to dialog with the correspondant, and depending on the IRC client, this can be more or less conspicuous.
<KZiemian> AeroNotix: GoogleChrome, I don't have enough energy to learn something more sophisticated
asedeno has joined #lisp
<AeroNotix> Sure. Like I said, never mind. It's not hugely important
<pjb> KZiemian: I'd advice one of the emacs IRC clients, such as erc or beirc.
<KZiemian> Now I try to end 1000 open projects in my life
<pjb> KZiemian: do everything in emacs, you'll be happier (even if you don't realize it).
<KZiemian> so don't want to start learning to much new things
<fiddlerwoaroof> The only thing I don't do in emacs is writing Java/Scala
<KZiemian> rme: I already do something like that
<fiddlerwoaroof> Because they need fancy IDE support to be even slightly bearable... and no one I work with wants to learn emacs :)
damke_ has joined #lisp
<KZiemian> I make Christmas break from working on CLUS
<pjb> fiddlerwoaroof: I say, more code generation! Write emacs lisp to generate parts of your programs; this is the killing feature of emacs.
<KZiemian> and my starting question flow from my trying to get on the CLUS track again
<fiddlerwoaroof> Yeah, I've been really tempted to use ABCL to write some boilerplate-generators
<KZiemian> this question was about ASDF
<fiddlerwoaroof> What was the question, it's been a while
damke has quit [Ping timeout: 264 seconds]
<KZiemian> fiddlerwoaroof: not important in this moment
<pjb> KZiemian: about asdf, just take a simple project asd file, copy it, and modify it for your needs.
<fiddlerwoaroof> If you use emacs, I've written a couple skeletons to generate .asd files
<rme> ccldoc's .asd file is quite simple.
<pjb> There's very little reason to over do it.
<KZiemian> pbj: open project number 734: learn more elisp to the point you can configure Emacs as you need
damke has joined #lisp
banjiewen has joined #lisp
<KZiemian> If you want know what I more or less know about Lisp and Common Lisp in particular
rgrau has quit [Ping timeout: 265 seconds]
<KZiemian> the answer is
<fiddlerwoaroof> If you want to make an add-on to ccldoc, you probably just want to make a new system that depends on ccldoc
<KZiemian> 18 first chapters of PCL http://www.gigamonkeys.com/book/
<fiddlerwoaroof> And then have whatever processes the documentation depend on both ccldoc and your new system
<KZiemian> fiddlerwoaroof: like I say, you must ask phoe
<fiddlerwoaroof> Of course, if ccldoc isn't designed to be extensible, this might not be feasible
<KZiemian> fiddlerwoaroof: if you want know the answer
<KZiemian> fiddlerwoaroof: we meet in real world on 18 December
<KZiemian> fiddlerwoaroof: he told me his plan
<KZiemian> fiddlerwoaroof: and we make two threads
<KZiemian> fiddlerwoaroof: he work on his idea of extending CCLDoc
damke_ has quit [Ping timeout: 263 seconds]
<KZiemian> fiddlerwoaroof: I seet on CCLDoc and try to understand and documented it
<fiddlerwoaroof> Ah, I thought you wanted to make an extension
<jasom> Xach_: clinenoise (my port of linenoise from C to lisp). I just had a bug filed against it so apparently someone other than I has already found it useful
<KZiemian> fiddlerwoaroof: phoe is a brain of CLUS, I am the fingers that write code
<jasom> Xach_: I'm doing things like docstrings and actually exporting symbols right now before I file the PR
<KZiemian> fiddlerwoaroof: I apologized, if you want reason you must ask the true brain
<KZiemian> fiddlerwoaroof: main point is that, when we both end we marge our threads and make add-ons to CCLDoc
<Xach_> What is linenoise?
<KZiemian> fiddlerwoaroof: I don't know much more about it
<pjb> noise on the line.
<KZiemian> phoe: are you here
<AeroNotix> You've tagged him a few times, I doubt he is
<KZiemian> phoe: we need some of your thougths
<KZiemian> AeroNotix: I catch him on Discord 30 minuts ago
<fiddlerwoaroof> Xach_: looks like a readline alternative: https://github.com/antirez/linenoise
<jasom> Xach_: a braindead Vt-100 line input
<KZiemian> I'm sorry, from CLUS project I understand my thread and some of main idea what happens in other areas
<jasom> Xach_: It occupies the same space roughly as linedit in the lisp world.
wigust has joined #lisp
<KZiemian> so If you want to know big picture, I just not person to ask
<jasom> It sits somewhere between cl:read-line and the GNU readline library in terms of features and complexity
<jasom> I wrote it to use as the input for my toy shell, as I was dissatisfied with the existing options in various ways
<KZiemian> okey, thank you for help
<KZiemian> I try to read all Issue of CLUS on GitHub today
<KZiemian> and make them comeback from river of Oblivion
<KZiemian> see you
KZiemian has quit [Quit: Page closed]
rpg has joined #lisp
aindilis has quit [Ping timeout: 265 seconds]
<rpg> In SLIME is there anything I can do to resync buffer position, so that warnings, etc. show up in the right place? I find that they drift from their proper position over time.
<rpg> over time as I interactively compile expressions, that is.
eudoxia has quit [Quit: Leaving]
eudoxia has joined #lisp
<jmercouris> not that I know of, but you can always clear the screen
<jmercouris> slime-repl-clear-output
<rpg> jmercouris: It's not the REPL screen position, it's where SLIME "thinks" the defuns are in a lisp file, versus where they actually are.
<rpg> If I do slime-compile-defun (I think that's the name) a few times, SLIME loses track of where to place the underlines for the warnings.
Bike has quit [Ping timeout: 260 seconds]
shrdlu68 has quit [Ping timeout: 248 seconds]
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eudoxia has quit [Quit: Leaving]
mhd has joined #lisp
scymtym has quit [Ping timeout: 250 seconds]
mhd has quit [Ping timeout: 265 seconds]
rgrau has joined #lisp
<Xach_> rpg: I hate to offer a guess, but it's the best I can do right now - maybe try recompiling the whole file? C-c C-k usually.
<rpg> Xach_: That's probably right, but if I do that, I think I end up with a fasl pooped out into the source directory, instead of the cache :-/
<rpg> I should probably just rerun the ASDF build when I need it. But the conclusion might be that -- despite the fact that it probably was a pretty challenging hack -- putting the warnings on the code, instead of in the minibuffer is a waste of time, at least when you're compiling interactively.
oleo has quit [Remote host closed the connection]
<rpg> It looks cool, but it's not functional
oleo has joined #lisp
* rpg is dashing out to the coffee house -- cleaning staff with vacuums have arrived!
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<_death> you can also load a file with C-c C-l
scymtym has joined #lisp
<jasom> _death beat me to saying it
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
<_death> also you could hack a C-c C-k -like command that write to the cached fasls dir
rpg has joined #lisp
DeadTrickster_ has joined #lisp
Bike has joined #lisp
DeadTrickster has quit [Ping timeout: 248 seconds]
<pfdietz> jasom: while catching up on iRC archives, I noticed you asked about lisp compiler fuzzing.
<pfdietz> I sent a flurry of bug reports (mostly fixed now) to sbcl recently that were generated by various kinds of that.
convexferret has joined #lisp
<jasom> pfdietz: nice!
<jasom> pfdietz: One of the great wins when I last fuzzed a compiler was how many bugs in a short time could be uncovered, which allowed for finding patterns with just short-term data. e.g. one class of optimizations was found to be a large source of bugs, so those were removed or rewritten in a different style. Perhaps 10 years of organic bug reports could have been aggregated to find such a pattern, but having 30
<jasom> or so bugs in a few months made it obvious just by "wait, didn't I just fix a bug like this"
ggherdov has joined #lisp
p_l has joined #lisp
<pfdietz> I think it's important to keep fuzzing, because development introduces new bugs, but also exposes old bugs. Still finding bugs that go back to CMUCL.
makomo has joined #lisp
Karl_Dscc has joined #lisp
oleo has quit [Quit: Leaving]
oleo has joined #lisp
rumbler31 has joined #lisp
makomo has quit [Ping timeout: 246 seconds]
oleo has quit [Remote host closed the connection]
Karl_Dscc has quit [Remote host closed the connection]
oleo has joined #lisp
makomo has joined #lisp
mishoo_ has quit [Ping timeout: 268 seconds]
pierpa has joined #lisp
josemanuel has joined #lisp
jack_rabbit has joined #lisp
josemanuel has quit [Client Quit]
Tobbi has joined #lisp
<makomo> anyone know if there's a way to make cl-json use hashtables instead of alists?
<makomo> for representing objects
fikka has joined #lisp
<jasom> makomo: 1 sec, I think I have done that
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<makomo> ah, so custom handlers
<jasom> makomo: that assumes you want to use keywords for keys
<jasom> makomo: also note that I use vectors for json lists as well, so nil is unambigously false.
<makomo> jasom: aha, got it, thanks :-)
shka has quit [Ping timeout: 248 seconds]
<jasom> actually null would also decode to nil, but my data shouldn't have nulls in it for this case.
<jasom> makomo: https://sites.google.com/site/sabraonthehill/home/json-libraries#TOC-Quick-JSON-syntax-refresher cl-json decodes 4! JSON types to something that could be nil by default :(
<jasom> com.gigamonkeys.json is the only one on the list with a JSON->lisp->JSON that can survive a round-trip by default.
<makomo> hm yeah, i only thought about the false/null case, but object/arrays could ofc be empty
zooey has quit [Remote host closed the connection]
<jasom> the number of times that I've needed to distinguish betwenn "false" and "null" in javascript code is approximately zero, so that one is the most forgivable.
zooey has joined #lisp
Jesin has quit [Quit: Leaving]
<jasom> hmm, I was bad and didn't use safe-json-intern for making the keyword there though...
rpg has joined #lisp
wxie has joined #lisp
sjl__ has joined #lisp
wxie has quit [Remote host closed the connection]
sjl has quit [Ping timeout: 268 seconds]
sjl__ has quit [Ping timeout: 240 seconds]
Bike has quit [Ping timeout: 260 seconds]
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
<stylewarning> I started writing a JSON representation using algebraic data types
<stylewarning> But never followed through
<_death> jasom: this is why I always use com.gigamonkeys.json
<stylewarning> An idea I’ve had is to have a JSON parser compiler
<stylewarning> So you could product efficient parsers into whatever data structure you prefer
<_death> schema -> parser?
<stylewarning> Not anything related to schemes
<stylewarning> Schemas ^
<_death> maybe https://github.com/rotatef/json-streams could be useful
acherontius has joined #lisp
dieggsy has joined #lisp
acherontius has quit [Client Quit]
sbcl has joined #lisp
sbcl has quit [Remote host closed the connection]
oleo has left #lisp ["Leaving"]
oleo has joined #lisp
<makomo> is there an idiomatic way to convert between a generalized boolean and a boolean?
<_death> (defun bool (x) (if x t nil))
<makomo> yeah, that's what i thought. thought there might be some neat way using and/or or something, but they both return either nil or the last value/the first non-nil value
zaquest has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Remote host closed the connection]
<_death> "neat" is not how I would describe it, but you can always (and x t)
peterpp has quit [Ping timeout: 268 seconds]
notzmv has joined #lisp
<makomo> ah yeah, not sure why that didn't cross my mind lol
damke has joined #lisp
AntiSpamMeta has quit [Read error: Connection reset by peer]
AntiSpamMeta has joined #lisp
Kaisyu has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
<aeth> If you're going to be unclear and use (and x t), you could still use if's implicit nil else and just say (if x t)
peterpp has joined #lisp
<aeth> All three should have identical disassemblies with a sufficiently smart compiler. Works in SBCL.
<oleo> (when x t) ?
<oleo> if you want to prevent the nil branch
<makomo> i agree it's not very clear so i probably won't use it. i was wondering whether a clever trick like that is idiomatic or not.
mrcom has quit [Read error: Connection reset by peer]
<aeth> s/still use if's implicit nil else/still use if, with if's implicit nil else,/
<_death> can take a C idiom and use (not (not x))
wigust has quit [Ping timeout: 240 seconds]
mrcom has joined #lisp
rgrau has quit [Ping timeout: 248 seconds]
<jasom> (not (null x))
<aeth> Still identical disassembly in SBCL. In fact, all four functions (I called them foo, bar, foobar, and barfoo) have 100% identical disassemblies in SBCL.
<_death> (not (eq x nil))
damke_ has joined #lisp
<aeth> Wow, not one of these has outsmarted SBCL so far.
<aeth> Some of them might mess with other compilers, though.
<makomo> nice
<aeth> for the lazy: (if x t nil) (and x t) (if x t) (when x t) (not (not x)) (not (null x)) (not (eq x nil))
<aeth> with the first being idiomatic
damke has quit [Ping timeout: 263 seconds]
<_death> (let ((m (make-hash-table))) (setf (gethash nil m) nil) (defun bool (x) (values (gethash x m t))))
<aeth> That's going to fool SBCL because you're using a mutable data structure and it's not that sophisticated... I think. Let's see
<Fare> rme: not CL, but OCaml, but Tezos FRANCE is recruiting.
<Fare> sjl: ASDF needs a new maintainer... but I don't know anyone paying for ASDF maintenance at the moment.
<mfiano> Fare: He's not here
damke_ has quit [Ping timeout: 264 seconds]
<_death> aeth: (defun bool (x) (case x ((nil) nil) (t t))) seems to give slightly worse results
<aeth> _death: I get identical results. Which CL are you using?
<_death> "1.4.2.279-50cfd41e0"
<aeth> I'm on SBCL 1.3.18 atm
<aeth> did SBCL regress?
<_death> aeth: it's one more instruction
damke_ has joined #lisp
<aeth> _death: I get identical results, as in 100% identical except "disassembly for BOOL" instead of "disassembly for FOO" and a different origin
Amplituhedron has joined #lisp
<oleo> (nil) is not the same as nil
<_death> oleo: right, that's why I use (nil)..
<aeth> _death: I always get the long one, and in fact have 39 bytes
<aeth> So you have an optimization that I don't have, I guess
<_death> aeth: so it got better, but not for all CASEs :)
PinealGlandOptic has joined #lisp
<aeth> MOV MOV CMP MOV MOV CMOVEQ MOV CLC POP RET BREAK
<oleo> dramatic dance
<aeth> Similar to your long one's MOV MOV MOV CMP MOV CMOVEQ MOV CLC POP RET BREAK
<jasom> CMP MOV CMOVEQ MOV MOV CLC POP RET BREAK
<oleo> lol
<jasom> (disassemble (lambda (x) (declare (optimize (speed 3)))(when x t))) is what you want, I think
<aeth> 32 bytes
<aeth> CMP MOV MOV CMOVEQ MOV MOV CLC POP RET BREAK
<aeth> So... a MOV got eliminated after 1.3.18
Amplituhedron has quit [Remote host closed the connection]
<aeth> switching to roswell so I can use the latest SBCL...
<_death> with speed 3 it's seemingly worse for bool-if :/
<aeth> definitely shorter. CMP MOV CMOVEQ MOV MOV CLC POP RET BREAK and 26 bytes with the disassemble lambda version
<jasom> mfiano: that diassemble will discard all but the last calculation, I think, right?
fikka has quit [Ping timeout: 256 seconds]
<jasom> 26 bytes for (disassemble (lambda (x) (declare (optimize (speed 3)))(if x t nil))) here