<aeth>
What's Quicklisp's position on projects that only work with other projects? e.g. climacs, an emacs-like editor, is in Quicklisp so would Quicklisp also host climacs packages if someone ported a bunch of Emacs packages to climacs or something?
sz0 has quit [Quit: Connection closed for inactivity]
<aeth>
I don't think that particular example is going to happen, but it's definitely possible that some application ecosystem or Rails-like framework ecosystem could happen.
Oddity has joined #lisp
<Xach>
aeth: like, non-lisp code that loads into climacs?
<Xach>
hang on, got to read
<aeth>
Xach: well, that was going to be my follow up
<aeth>
Something along the lines of: What if someone actually did port Emacs Lisp or Guile plugins to some Common Lisp editor, so the asdf systems were thin wrappers over foreign code?
<aeth>
I'm not sure if that particular thing is going to happen, but I think it's inevitable that non-CL plugins for CL things is coming. There have been some attempts, just not any particularly notable ones, yet.
Oddity has quit [Ping timeout: 248 seconds]
Kaisyu has joined #lisp
joast has joined #lisp
shenghi has quit [Remote host closed the connection]
zaquest_ has quit [Read error: Connection reset by peer]
red-dot has quit [Remote host closed the connection]
red-dot has joined #lisp
jameser has joined #lisp
quazimodo has joined #lisp
EvW has quit [Ping timeout: 265 seconds]
nirved has quit [Quit: Leaving]
rumbler31 has quit [Remote host closed the connection]
sjl has quit [Ping timeout: 248 seconds]
pedh has joined #lisp
orivej_ has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
pedh has quit [Ping timeout: 240 seconds]
tom34 has quit [Ping timeout: 260 seconds]
Kundry_Wag has joined #lisp
rumbler31 has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
Kundry_Wag has quit [Ping timeout: 240 seconds]
milanj has quit [Quit: This computer has gone to sleep]
sellout has joined #lisp
tom34 has joined #lisp
SaganMan has joined #lisp
pedh has joined #lisp
fikka has joined #lisp
pedh has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 256 seconds]
beaky has quit [Read error: Connection reset by peer]
Blkt has quit [Remote host closed the connection]
fe[nl]ix has quit [Quit: No Ping reply in 180 seconds.]
orivej_ has quit [Ping timeout: 248 seconds]
arrsim has quit [Ping timeout: 265 seconds]
Blkt has joined #lisp
fe[nl]ix has joined #lisp
wigust has joined #lisp
fikka has joined #lisp
mepian has quit [Quit: Leaving]
beaky has joined #lisp
orivej has joined #lisp
arrsim has joined #lisp
holycow has quit [Quit: leaving]
fikka has quit [Ping timeout: 256 seconds]
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has joined #lisp
SaganMan has quit [Ping timeout: 263 seconds]
fikka has quit [Ping timeout: 240 seconds]
QualityAddict has quit [Remote host closed the connection]
QualityAddict has joined #lisp
fikka has joined #lisp
LiamH has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
d4ryus2 has joined #lisp
d4ryus1 has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
zaquest has joined #lisp
LiamH has quit [Quit: Leaving.]
impulse has quit [Quit: leaving]
tom34 has quit [Ping timeout: 256 seconds]
atgreen has joined #lisp
Kundry_Wag has joined #lisp
j0nd0e has joined #lisp
rumbler31 has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 263 seconds]
hexfive has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
j0nd0e has quit [Ping timeout: 256 seconds]
pjb has quit [Read error: Connection reset by peer]
pjb has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
tom34 has joined #lisp
nika has joined #lisp
fikka has joined #lisp
tom34 has quit [Ping timeout: 265 seconds]
EvW1 has joined #lisp
nika has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 272 seconds]
EvW1 has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
nika has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
shenghi has quit [Remote host closed the connection]
scottj has joined #lisp
tom34 has joined #lisp
shenghi has joined #lisp
tom34 has quit [Ping timeout: 272 seconds]
impulse has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
j0nd0e has joined #lisp
red-dot has joined #lisp
fikka has joined #lisp
pedh has joined #lisp
pierpa has quit [Quit: Page closed]
shenghi has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
MrBusiness has joined #lisp
pedh has quit [Ping timeout: 265 seconds]
astronavt has joined #lisp
Cymew has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
vtomole has quit [Ping timeout: 260 seconds]
Rawriful has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
nowhere_man has quit [Read error: Connection reset by peer]
nowhere_man has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
dddddd has quit [Remote host closed the connection]
impulse has quit [Quit: leaving]
<beach>
Good morning everyone!
<aeth>
oh, wow, it really is hard to do a flet without eventually turning it into labels
beaky has quit [Read error: Connection reset by peer]
fikka has joined #lisp
pjb has quit [Read error: Connection reset by peer]
arrsim has quit [Ping timeout: 265 seconds]
ahungry has joined #lisp
d4ryus2 has quit [Ping timeout: 248 seconds]
pjb has joined #lisp
pjb is now known as Guest9939
beaky has joined #lisp
Guest9939 is now known as pjb`
pjb` is now known as pjb
arrsim has joined #lisp
d4ryus2 has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
beaky has quit [Read error: Connection reset by peer]
beaky has joined #lisp
igemnace has quit [Ping timeout: 240 seconds]
pedh has joined #lisp
hexfive has quit [Quit: WeeChat 1.9.1]
schoppenhauer has quit [Ping timeout: 256 seconds]
schoppenhauer has joined #lisp
igemnace has joined #lisp
pedh has quit [Ping timeout: 248 seconds]
<earl-ducaine>
Aeth: how so?
BitPuffin|osx has joined #lisp
fikka has joined #lisp
Kundry_Wag has joined #lisp
rumbler31 has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
tom34 has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
Kundry_Wag has quit [Ping timeout: 272 seconds]
red-dot has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
Bike has quit [Quit: Lost terminal]
tom34 has quit [Ping timeout: 260 seconds]
beaky has quit [Read error: Connection reset by peer]
raphaelss has joined #lisp
beaky has joined #lisp
fikka has joined #lisp
milanj has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
astronavt has quit [Quit: Leaving...]
<aeth>
earl-ducaine: If you put more than 5 functions in an flet, you probably want to start referring to other functions within that same scope, which labels permits and flet does not
<jack_rabbit>
If you are doing that, is that not usually a use-case for a separate file for organization rather than flet-ing?
<pjb>
Depends. The point of flet and labels is that you actually write closures, not mere functions.
<jack_rabbit>
That's true.
<aeth>
jack_rabbit: Consider repeated calls to a function with a lot of arguments, where a lot of the calls have arguments in common. Creating closures with flet/labels is one way to simplify this code.
<jack_rabbit>
Sure, I understand the usefulness of closures.
fikka has joined #lisp
pedh has joined #lisp
tom34 has joined #lisp
<aeth>
And in this case, labels is better than flet as soon as you have enough to see an even larger pattern.
fikka has quit [Ping timeout: 268 seconds]
pedh has quit [Ping timeout: 268 seconds]
tom34 has quit [Ping timeout: 272 seconds]
ahungry has quit [Remote host closed the connection]
rumbler31 has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
aindilis has quit [Read error: Connection reset by peer]
fikka has joined #lisp
aindilis has joined #lisp
impulse has joined #lisp
Denommus has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
impulse has quit [Client Quit]
safe has quit [Read error: Connection reset by peer]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<jack_rabbit>
What about passing a data structure around to capture the state rather than relying on closures or passing a bunch of individual values?
<borodust>
lerax: i'm using quickdist for making cl-bodge distribution
rumbler31 has quit [Remote host closed the connection]
<borodust>
lerax: and, basically, have no idea myself what magic it actually does
fikka has joined #lisp
pjb` has joined #lisp
<aeth>
jack_rabbit: That depends entirely on the program.
<jack_rabbit>
sure.
pjb has quit [Ping timeout: 272 seconds]
j0nd0e has quit [Ping timeout: 240 seconds]
ahungry has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
damke has joined #lisp
<aeth>
Common Lisp is definitely a language where there's a dozen roughly equivalent ways to do anything
damke_ has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
rippa has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<aeth>
In this case, I'm drawing shapes, and I decided in the shape API to go with lots of arguments rather than having lots of temporary point objects.
<aeth>
I probably went overboard and have too *few* objects in the current API, though, so it's a bit messy. I got rid of some of that by using matrices in places.
terpri has quit [Ping timeout: 260 seconds]
terpri has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 264 seconds]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
shenghi has joined #lisp
fikka has joined #lisp
mishoo_ has joined #lisp
tom34 has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
Denommus` has joined #lisp
Denommus has quit [Ping timeout: 240 seconds]
tom34 has quit [Ping timeout: 264 seconds]
ahungry has quit [Remote host closed the connection]
fikka has joined #lisp
Karl_Dscc has joined #lisp
shka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
j0nd0e has joined #lisp
oleo has quit [Quit: Leaving]
asarch has quit [Quit: Leaving]
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
Xach has quit [Ping timeout: 265 seconds]
terpri has quit [Ping timeout: 248 seconds]
CrazyEddy has joined #lisp
vaporatorius__ has joined #lisp
terpri has joined #lisp
vap1 has quit [Ping timeout: 260 seconds]
nydel has quit [Read error: Connection reset by peer]
Xach has joined #lisp
fikka has joined #lisp
<fiddlerwoaroof>
Is there a generic way to get a value for CONCATENATE's first argument that matches the type of the first of the sequences you're concatenating?
Karl_Dscc has quit [Remote host closed the connection]
dec0n has joined #lisp
<shka>
fiddlerwoaroof: type-of?
<fiddlerwoaroof>
That doesn't work
<fiddlerwoaroof>
e.g. something like (concatenate (type-of seq1) seq1 seq2 seq3)
<shka>
specialized vectors?
<shka>
why it does not work?
<fiddlerwoaroof>
No, the issue is that the type it gives is too specialized: it includes the length of seq1
<shka>
right
<shka>
well, it is though!
<shka>
depends how specialized your type is supposed to be
<fiddlerwoaroof>
in the case of vectors, it would have to be (vector (+ (length seq1) (length seq2)...))
<shka>
if just list or vector, it is easy to do
<shka>
i see
fikka has quit [Ping timeout: 240 seconds]
<shka>
you will have to do it manually
<fiddlerwoaroof>
Obviously, I can just do an ad-hoc typecase or something, but that's ugly
<fiddlerwoaroof>
Hmm, I guess I could just make my new method include the result-type
<aeth>
Well, you probably want that inlined because it's trivial and unchanging and the inline will probably be more efficient.
fikka has joined #lisp
hajovonta has joined #lisp
<fiddlerwoaroof>
Yeah, if I were going to do dispatch, I'd just use generic functions :)
<shka>
(defun foo (seq &rest more-seq))?
<fiddlerwoaroof>
speed doesn't matter too much, and there's a reasonable mapping from class -> result-type
pedh has joined #lisp
<aeth>
fiddlerwoaroof: but CLOS generics do not dispatch on types and the classes aren't (afaik) portable, so that's not useful for numbers or sequences, hence specialization-store
<fiddlerwoaroof>
I only really need vector/list/etc.
<fiddlerwoaroof>
And those are portable, afaik
<aeth>
Actually, just noticed, in my foo example, you could probably macroify it to generate all the functions
<aeth>
If they have to match in type (but you'd have to generate a name instead of foo): `(defspecialization (foo :inline t) ((sequence-1 ,sequence-type) (sequence-2 ,sequence-type)) (concatenate ,sequence-type sequence-1 sequence-2)))
<aeth>
Surprisingly concise and elegant in specialization-store.
<fiddlerwoaroof>
But, it makes more sense to me, just to have a simple function that goes from thing -> symbol
<aeth>
Then you'd just run that over a list of sequence types
<fiddlerwoaroof>
e.g. (concatenate (sequence-type-like seq1) seq1 seq2 seq3...)
<aeth>
fiddlerwoaroof: all you need to do is replace the length with a wildcard, actually.
fikka has quit [Ping timeout: 248 seconds]
pedh has quit [Ping timeout: 240 seconds]
<aeth>
like (simple-vector 3) -> (simple-vector *) and (simple-array single-float (3)) -> (simple-array single-float (*))
<aeth>
So you can parse it in type-of
<fiddlerwoaroof>
Yeah, on sbcl there is the added wrinkle that it's possible for something besides LIST and VECTOR to extend SEQUENCE
<aeth>
in the latter case it's the caaddr and in the former case it's just the cadr
<aeth>
well
<fiddlerwoaroof>
Because sbcl implements the extensible sequences proposal
<aeth>
extensible sequences is what should be the case.
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<aeth>
lazy sequences, immutable sequences, very niche sequences like perhaps ordered hash tables or whatever.
red-dot has joined #lisp
<fiddlerwoaroof>
Yeah, I have a package of my own that allows for some of this
tom34 has joined #lisp
<fiddlerwoaroof>
e.g. rss feeds where you can map/reduce the entries
<fiddlerwoaroof>
etc.
fikka has joined #lisp
tom34 has quit [Ping timeout: 256 seconds]
Denommus` has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<aeth>
if you don't need to support custom sequences, though, I wouldn't.
fikka has quit [Ping timeout: 264 seconds]
CrazyEddy has joined #lisp
sjl has joined #lisp
<aeth>
I think for 1D simple-arrays it's always going to be either the cadr (simple-vector) or the caaddr (everything else) so that's just three cases: list, simple-vector, simple-array
<aeth>
(1D simple-array)
<aeth>
And then I think it's the caddr for the other kinds of vectors (vector whatever-type size)
<aeth>
So actually 4 cases
fikka has joined #lisp
<fiddlerwoaroof>
Cool
sjl has quit [Ping timeout: 255 seconds]
<fiddlerwoaroof>
I probably should put this into my utility library, because it's something I've often wanted
<aeth>
the cadr will get the type for simple-array and (not simple) vector, with vector having to come last because of all of the special vectors
j0nd0e has quit [Ping timeout: 265 seconds]
<fiddlerwoaroof>
there's also simple-string
<fiddlerwoaroof>
and string
scymtym has quit [Ping timeout: 260 seconds]
j0nd0e has joined #lisp
fikka has joined #lisp
pdv has joined #lisp
CrazyEddy has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
<aeth>
Is it non-portable what you get for those?
<fiddlerwoaroof>
Well, there's a specification
<aeth>
(type-of "hello") => (simple-array character (5)) ; in SBCL with *print-case* as :downcase
<fiddlerwoaroof>
So, I'm going to go the prescriptive way: you do a typecase and put the most specific types first
<aeth>
you should probably handle the strings just in case though
<fiddlerwoaroof>
So that the output of the function can be as interesting as possibe
CrazyEddy has quit [Changing host]
CrazyEddy has joined #lisp
Cymew has joined #lisp
<fiddlerwoaroof>
You could even support extensible sequences by falling back to a generic function call
flamebeard has joined #lisp
<aeth>
Although I think the macro on top of specialization-store implementation quickly becomes more concise than the typecase approach
mishoo has joined #lisp
fikka has joined #lisp
wigust has joined #lisp
shka has quit [Ping timeout: 264 seconds]
shka has joined #lisp
trittweiler has joined #lisp
dec0n has quit [Quit: Leaving]
dec0n has joined #lisp
<fiddlerwoaroof>
ugh, paste.lisp.org is gone?
<aeth>
unfortunately, yes
<aeth>
github gists or gitlab snippets are probably the way to go for now
<fiddlerwoaroof>
What happened?
shka has quit [Ping timeout: 265 seconds]
<aeth>
well, someone finally noticed a few months ago that almost every post to paste.lisp.org was spam because the captcha was ridiculously weak, like 012354 in a monospace font you can probably parse automatically.
<aeth>
It was like that for a while.
<fiddlerwoaroof>
ugh
<aeth>
Pretty much every no-registration thing is full of spam, and a lot of registration things, too. e.g. just about any mediawiki has to deal with tons of spam accounts spamming things
CrazyEddy has quit [Ping timeout: 268 seconds]
<fiddlerwoaroof>
I wonder how much work it would be to plug in a decent captcha
<aeth>
what I think it should do is require bot-based authentication since the main use is for IRC
<aeth>
so /msg some-bot please and it'll give me a URL that creates a session, no registration required, but if I spam they'll trace it to my IRC nick. And it's too complicated for general spam bots to bother with
<aeth>
I think that's simple enough that I could write it in a weekend or so, depending on what system the site uses
varjag has joined #lisp
Kundry_Wag has joined #lisp
CrazyEddy has joined #lisp
<aeth>
e.g. a link to a page called (format t "~9,'0x~%" (random #x1000000000)) or something
cro__ has joined #lisp
tom34 has joined #lisp
Kundry_Wag has quit [Ping timeout: 255 seconds]
cromachina_ has quit [Ping timeout: 240 seconds]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
tom34 has quit [Ping timeout: 255 seconds]
red-dot has joined #lisp
scymtym has joined #lisp
CrazyEddy has quit [Ping timeout: 272 seconds]
schweers has joined #lisp
schweers has quit [Client Quit]
schweers has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
knobo1 has joined #lisp
moei has quit [Read error: Connection reset by peer]
moei has joined #lisp
knobo1 is now known as knobo
damke_ has joined #lisp
hhdave_ has joined #lisp
HDurer has quit [Remote host closed the connection]
damke has quit [Ping timeout: 264 seconds]
CrazyEddy has joined #lisp
samsungtv has joined #lisp
pedh has joined #lisp
HDurer has joined #lisp
Oladon has quit [Read error: Connection reset by peer]
<Shinmera>
Beside the brazillion other paste services of course
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
tom34 has joined #lisp
tom34 has quit [Ping timeout: 255 seconds]
_cosmonaut_ has joined #lisp
francogrex has joined #lisp
<francogrex>
cffi question (also some sqlite)
<francogrex>
https://codepaste.net/56qjnv in that snipper, on line 6 when I (cffi:foreign-free buf) which I suppose I should, the results are not maintained anymore, when I remove that, I have what I need. but
<francogrex>
I am afraid of memory leaks
<francogrex>
how come?
fikka has quit [Ping timeout: 240 seconds]
nowhere_man has quit [Remote host closed the connection]
<flip214>
francogrex: you do know about clsql-sqlite3, right?
nowhere_man has joined #lisp
fikka has joined #lisp
eschatologist has quit [Ping timeout: 264 seconds]
eschatologist has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
pedh has joined #lisp
igemnace has quit [Quit: WeeChat 2.0]
fikka has joined #lisp
j0nd0e has quit [Read error: Connection reset by peer]
j0nd0e has joined #lisp
<francogrex>
flip214: yes but it doesn't have the capacity to create_function
<francogrex>
it should be done in C
<francogrex>
hence using ffis
voidlily has quit [Ping timeout: 240 seconds]
pedh has quit [Ping timeout: 264 seconds]
<francogrex>
sqliteFree() also exists...
Kundry_Wag has joined #lisp
voidlily has joined #lisp
schweers has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Ping timeout: 255 seconds]
schweers has joined #lisp
francogrex has quit [Quit: ERC (IRC client for Emacs 25.1.1)]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
heurist has quit [Read error: Connection reset by peer]
tom34 has joined #lisp
heurist has joined #lisp
tom34 has quit [Ping timeout: 255 seconds]
jameser has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 264 seconds]
jameser has joined #lisp
Cymew has quit [Remote host closed the connection]
Murii has joined #lisp
jameser has quit [Ping timeout: 240 seconds]
pedh has joined #lisp
pedh has quit [Ping timeout: 248 seconds]
damke_ has quit [Read error: Connection reset by peer]
damke_ has joined #lisp
atgreen has quit [Quit: atgreen]
atgreen has joined #lisp
j0nd0e has quit [Ping timeout: 264 seconds]
pjb` is now known as pjb
quazimodo has quit [Ping timeout: 248 seconds]
sjl has joined #lisp
j0nd0e has joined #lisp
sjl has quit [Ping timeout: 255 seconds]
nika has quit [Remote host closed the connection]
hyero has joined #lisp
Cymew has joined #lisp
Cymew has quit [Client Quit]
Cymew has joined #lisp
milanj has joined #lisp
nirved has joined #lisp
tom34 has joined #lisp
jdz has joined #lisp
tom34 has quit [Ping timeout: 260 seconds]
dieggsy has joined #lisp
dieggsy has quit [Remote host closed the connection]
dieggsy has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
quazimodo has joined #lisp
m00natic has joined #lisp
sellout has quit [Remote host closed the connection]
heurist` has joined #lisp
heurist has quit [Ping timeout: 248 seconds]
raynold has quit [Quit: Connection closed for inactivity]
fikka has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
schweers has quit [Ping timeout: 265 seconds]
raphaelss has quit [Ping timeout: 265 seconds]
schweers has joined #lisp
tom34 has joined #lisp
rumbler31 has joined #lisp
trittweiler has quit [Ping timeout: 256 seconds]
rumbler31 has quit [Remote host closed the connection]
fikka has joined #lisp
Tobbi has joined #lisp
tom34 has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 255 seconds]
schweers has quit [Ping timeout: 255 seconds]
wxie has joined #lisp
atgreen has quit [Remote host closed the connection]
atgreen has joined #lisp
schweers has joined #lisp
fikka has joined #lisp
atgreen has quit [Client Quit]
atgreen has joined #lisp
quazimodo has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 264 seconds]
CrazyEddy has quit [Ping timeout: 256 seconds]
rumbler31 has joined #lisp
rumbler31 has quit [Remote host closed the connection]
schweers has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
CrazyEddy has joined #lisp
orivej has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
dieggsy has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
wxie has quit [Quit: Bye.]
dieggsy has joined #lisp
dieggsy has quit [Client Quit]
fikka has joined #lisp
dieggsy has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
varjag has quit [Ping timeout: 255 seconds]
fikka has joined #lisp
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
serviteur has joined #lisp
j0nd0e has quit [Ping timeout: 268 seconds]
Tobbi has joined #lisp
atgreen has quit [Quit: atgreen]
milanj has quit [Quit: This computer has gone to sleep]
<phoe>
Can someone tell me why Qtools's readtable leaks into LPARALLEL?
<Shinmera>
The only guess I have is if you didn't use in-readtable somewhere and rather setf the readtable. But if I remember correctly ASDF should take care of even that.
<phoe>
No SETF *READTABLE* in my code.
varjag has joined #lisp
<phoe>
Also, (asdf:operate 'asdf:load-op :lparallel :force t) succeeds, and afterwards my system loads properly.
serviteur has quit [Remote host closed the connection]
<phoe>
I am now tempted to open up a very clean Lisp environment, try loading Qtools, and then LPARALLEL.
fikka has joined #lisp
Xach_ has joined #lisp
Xach has quit [Ping timeout: 272 seconds]
rumbler31 has joined #lisp
<Shinmera>
What's stopping you
<phoe>
I'm working.
<phoe>
:(
varjag has quit [Ping timeout: 256 seconds]
<Xach_>
new asdf broke sly, but sly is already fixed, phew.
norserob has quit [Remote host closed the connection]
dieggsy has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
Jesin has quit [Quit: Leaving]
dddddd has joined #lisp
LiamH has joined #lisp
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mishoo has quit [Ping timeout: 264 seconds]
atgreen has joined #lisp
rumbler31 has quit [Remote host closed the connection]
jameser has joined #lisp
milanj has joined #lisp
scymtym has quit [Ping timeout: 265 seconds]
Rawriful has joined #lisp
Rawriful has quit [Client Quit]
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
notzmv has quit [Ping timeout: 240 seconds]
Bike has joined #lisp
jameser has joined #lisp
dec0n has quit [Ping timeout: 248 seconds]
Kundry_Wag has joined #lisp
dec0n has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
joast has quit [Quit: Leaving.]
tom34 has joined #lisp
tom34 has quit [Ping timeout: 264 seconds]
varjag has joined #lisp
tom34 has joined #lisp
raphaelss has joined #lisp
karswell has joined #lisp
tom34 has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 255 seconds]
dieggsy has joined #lisp
mishoo has joined #lisp
sjl has joined #lisp
grumble has quit [Remote host closed the connection]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
warweasle has joined #lisp
red-dot has joined #lisp
fikka has joined #lisp
grumble has joined #lisp
jameser has joined #lisp
jameser has quit [Client Quit]
jameser has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
<papachan>
hi, is there something like tensorflow in CL ?
jameser has quit [Client Quit]
dieggsy has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
sz0 has joined #lisp
Jesin has joined #lisp
atgreen has quit [Quit: atgreen]
pedh has joined #lisp
fikka has joined #lisp
grumble has quit [Quit: Every way you look at it, you lose.]
<Xach_>
papachan: what is tensorflow?
<Fade>
it's google's machine learning library
pedh has quit [Ping timeout: 240 seconds]
dieggsy has joined #lisp
dieggsy has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 240 seconds]
oleo has joined #lisp
<Xach_>
mgl is a machine learning library for lisp
<papachan>
Xach_ ah ok will get a look at it. thanks
grumble has joined #lisp
fikka has joined #lisp
nika has joined #lisp
FreeBirdLjj has joined #lisp
tom34 has joined #lisp
CrazyEddy has quit [Ping timeout: 260 seconds]
varjag has quit [Ping timeout: 265 seconds]
wigust has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 248 seconds]
Xal has quit [Ping timeout: 265 seconds]
milanj has quit [Quit: This computer has gone to sleep]
CrazyEddy has joined #lisp
tom34 has quit [Ping timeout: 248 seconds]
_osune has left #lisp ["ERC (IRC client for Emacs 25.1.1)"]
_osune has joined #lisp
Xal has joined #lisp
_osune has left #lisp ["ERC (IRC client for Emacs 25.1.1)"]
_osune has joined #lisp
knobo has quit [Ping timeout: 265 seconds]
Bike has quit [*.net *.split]
grumble has quit [Quit: Every way you look at it, you lose.]
pseudonymous has joined #lisp
grumble has joined #lisp
scymtym has joined #lisp
fikka has joined #lisp
dieggsy has joined #lisp
CrazyEddy has quit [Ping timeout: 255 seconds]
dieggsy has quit [Client Quit]
fikka has quit [Ping timeout: 240 seconds]
dieggsy has joined #lisp
j0nd1e has joined #lisp
joast has joined #lisp
hajovonta has quit [Remote host closed the connection]
Bike has joined #lisp
froggey has quit [Ping timeout: 248 seconds]
Cymew has quit [Remote host closed the connection]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
fikka has joined #lisp
flamebeard has quit [Quit: Leaving]
dieggsy has quit [Remote host closed the connection]
rumbler31 has joined #lisp
Cymew has joined #lisp
milanj has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Cymew has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
wigust has joined #lisp
fikka has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
notzmv has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
froggey has joined #lisp
dec0n has quit [Ping timeout: 256 seconds]
Cymew has quit [Ping timeout: 264 seconds]
tom34 has joined #lisp
Cymew has joined #lisp
fikka has joined #lisp
dieggsy has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
tom34 has quit [Ping timeout: 272 seconds]
Cymew has quit [Ping timeout: 264 seconds]
pdv has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 248 seconds]
Cymew has joined #lisp
FreeBirdLjj has joined #lisp
Cymew has quit [Ping timeout: 255 seconds]
FreeBird_ has joined #lisp
rpg has joined #lisp
FreeBirdLjj has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
FreeBird_ has quit [Ping timeout: 264 seconds]
khisanth_ has quit [Ping timeout: 248 seconds]
Cymew has quit [Ping timeout: 240 seconds]
hexfive has joined #lisp
Murii has quit [Ping timeout: 248 seconds]
FreeBirdLjj has joined #lisp
fikka has joined #lisp
varjag has joined #lisp
SaganMan has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
khisanth_ has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
red-dot has joined #lisp
fikka has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
QualityAddict has quit [Quit: Leaving]
warweasle has quit [Quit: brb]
osune has joined #lisp
jmercouris has joined #lisp
warweasle has joined #lisp
nika has quit [Remote host closed the connection]
makomo has quit [Ping timeout: 248 seconds]
Murii has joined #lisp
nika has joined #lisp
nika has quit [Client Quit]
fikka has joined #lisp
<osune>
Hoi, I want to dispatch by strings of the form "/cmd foo bar" where "cmd" can be any string. Currently I dispatch via cond and predicates returned by a cl-pprce match. Is there a better solution? E.g. In Python I would probably use a dict([('/cmd', cmd_handler_fn)]) to match and dispatch. The cond solution makes me uneasy because, if understood correctly, chls says it evaluates each test-form until one returns true. While the Python
<osune>
solution would be just a hash lookup. I'm sure I could do the same in CL with a hash table using equal as test. But I lack the experience to tell what the better style would be in CL or if I'm missing something entirely.
<beach>
A hash table sounds fine in CL as well.
<jmercouris>
osune: You are trying to take a prefix to a string and use that as a funcall?
<jmercouris>
osune: As beach said, you could also use a hash table
<warweasle>
osune: The has would work fine. You could extend the repl (meta-circular evaluator). Or you can use a stack to collect arguements and then evaluate when you have them all.
tom34 has joined #lisp
<jmercouris>
osune: Forget my first message, I understood what you were trying to do but express it improperly
JuanDaugherty has quit [Quit: Ex Chat]
<jmercouris>
What is wrong with me today, "Forget my first message, I understood what you were trying to do but expressed it improperly"
dieggsy has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
<jmercouris>
Speaking many languages is a double edged sword it seems
fikka has quit [Ping timeout: 272 seconds]
<osune>
jmercouris: I think you are assuming a more complicated problem. Think more of an IRC bot. Sorry, english isn't my native language either; so you meant I worded it improperly ?
smurfrobot has quit [Remote host closed the connection]
dieggsy has joined #lisp
<osune>
beach: jmercouris: thanks. I'll go with the hash table then.
smurfrobot has joined #lisp
<tfb>
osune: if you have a finite number of commands you know at compile-time (and if you don't want to do some incremental-reading thing) then interning them & CASE / ECASE might be enough
<tfb>
osune: CASE can be fast (can be implemented with a hash table, say)
tom34 has quit [Ping timeout: 272 seconds]
<osune>
tfb: It's finite. But I currently I don't know how many. So I would prefer a solution where I can in a central "place" easily add/remove dispatchers I guess. I'll take a look at the CASE variant.
<warweasle>
tfb: There's an old article which compares lists with hash tables. Lists are faster for around 8-12 entries, after which hashes are faster for lookups.
fikka has joined #lisp
jack_rabbit has quit [Ping timeout: 265 seconds]
<tfb>
warweasle: Somewhere I have some code which does this benchmark for the implementation at compile time and then changes representation dynamically...
<rpg>
warweasle: I have heard rumors of implementations natively doing the optimization that tfb refers to.
jack_rabbit has joined #lisp
smurfrobot has quit [Ping timeout: 268 seconds]
<warweasle>
There are so many cool things hidden on people's hard drives.
<tfb>
rpg: pretty sure Genera did that (it made noises which sounded like it did anyway)
<tfb>
warweasle: well, I think the main cool thing is that in Lisp you *can* do tricks like this, because you always have the language to play with
hhdave_ has quit [Ping timeout: 272 seconds]
<jmercouris>
osune: I think you worded it just fine, english is one of my first languages, that's not why I'm having these issues :D
<rpg>
tfb: I have a vague notion that Allegro does this, but could be a faulty memory.
fikka has quit [Ping timeout: 255 seconds]
<rpg>
osune: many lisp implementations offer extensions to the standard for hash-tables that contain strings only.
<osune>
rpg: is this an "out-of-the-box" thing, if I use (declare ...) forms? Or something I have a look at the sbcl manual?
<Bike>
an equal test should be fine, no?
<tfb>
rpg: I wouldn't be surprised if they did
<rpg>
Bike: My impression is that EQUAL hash tables can be inefficient, because you can't exploit features of the data items in the hash function (or if you do, you end up needing some type checking at run time)
<rpg>
But yes, EQUAL is what you want for portable code -- but note that this is case-sensitive matching. If you want to match FoO and foo, you need EQUALP
<Shinmera>
Surely dispatching a command from a user facing side does not need to be terribly efficient in any case
<Shinmera>
Even a list would be fine.
<Bike>
that's what i was thinking.
<Shinmera>
Beware the optimisation creep.
<rpg>
true
<Bike>
though i'm not sure how much more efficient a more specific string= test would be anyway.
<Bike>
saves you a type check, i guess. hash function would probably be about the same.
<rpg>
depends a lot on how many table entries you have.
<tfb>
rpg: well, really, the test is how fast you can search compared to how fast your users can type
<Shinmera>
Now here's a question about data structures that actually requires performance: if you have a set of strings and would like to do fast fuzzy matching (find all strings for which a given string is a substring), what kind of data structure would be optimal for this?
<osune>
rpg: no fuzzy command-strings in MY interface! :D
<rpg>
Shinmera: I think it depends a lot on the nature of the strings. This problem arises in DNA/RNA sequencing, and I think there's an extensive literature on that. But those are long strings.
<Shinmera>
My context is an editor where you suggest completion for symbols.
<Shinmera>
So they're shorter strings, but lots of them.
<warweasle>
Shinmera: If there is a "strcmp" function which returns (-1, 0, 1) then you could create your own tree from sexps.
<Shinmera>
warweasle: The string to match is not known ahead of time
<Shinmera>
Otherwise the problem would be trivial.
<Bike>
bit vectors, like agrep. fo sho.......
<osune>
Shinmera: would I dispatch on the list then with (funcall (find ...)) ?
<warweasle>
Shinmera: Oh, are we into state machines then?
_cosmonaut_ has quit [Ping timeout: 240 seconds]
<Shinmera>
warweasle: I don't know, I'm just asking. Given a set of strings, what data structure would be optimal to retrieve the subset that contains a certain other string.
<m00natic>
suffix tries
<Shinmera>
*the subset of strings that are a superstring of another string
<Shinmera>
osune: If your command list is an alist, you would do (funcall (cdr (assoc command command-list :test #'string-equal)) ..)
<osune>
Shinmera: thanks for the extra bit of information!
pedh has joined #lisp
<Shinmera>
m00natic: Oh, nice. I'll take a look, thanks for the hint
smurfrobot has joined #lisp
philosaur has quit [Ping timeout: 264 seconds]
<Shinmera>
So you would compute a suffix-trie for each entry in the set and then just scan through them all?
fikka has joined #lisp
<Shinmera>
I'm not sure if that would actually make it fast at all though, as the strings each are relatively short.
<m00natic>
@Shinmera, you'd use a single suffix tree (also look at the radix tree variant) and put all prespecified words in it - then use a single search
<Shinmera>
I see.
<Shinmera>
I'll look into this some more.
<m00natic>
and the scan is linear on the searched word
philosaur has joined #lisp
<m00natic>
(or it could be made such with proper implementation)
pedh has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 248 seconds]
smurfrobot has quit [Remote host closed the connection]
smurfrobot has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<sjl>
though it sounds like in your case you can do some precomputation on the data to be searched
<Shinmera>
Right. The set of symbols should not change frequently, and typically only ever grows.
<Shinmera>
So precomputation should be possible.
m00natic has quit [Remote host closed the connection]
smurfrobot has quit [Ping timeout: 260 seconds]
Karl_Dscc has joined #lisp
CrazyEddy has joined #lisp
SaganMan is now known as SaganFestivus
atgreen has joined #lisp
asarch has joined #lisp
<Shinmera>
While I'm asking off-topic datastructure questions: any suggestions for edit-distance algorithms for natural language? Levenshtein distance is awful for that, since by its metrics "pear" is closer to "apple" than "apple trees" even though you'd highly likely want the latter to score better.
shka has joined #lisp
<sjl>
some of these fuzzy finders cache results too though, so they may still have helpful things for you
smurfrobot has joined #lisp
<Shinmera>
Well, edit distance would be the wrong term for what I want, I suppose. More like similarity scoring.
turkja has quit [Ping timeout: 248 seconds]
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has joined #lisp
<pjb>
Shinmera: sounds like the vector representation of words used in machine learning algorithms would be what you want.
smurfrobot has quit [Read error: Connection reset by peer]
<rpg>
Shinmera: I think there *are* such algorithms, but it's a tricky problem because, for example, you want to know about pronunciation (so that "too", "to" and "two" are similar). Maybe google for something in the information retrieval literature....
<Shinmera>
pjb: Thanks
smurfrobot has joined #lisp
<rpg>
If you were going to do a vector representation, you might as well go ahead and train a NN.... But you would need a source of training data for closeness....
<Shinmera>
rpg: Right, IR should have something about that.
<Shinmera>
Context is commands in a bot with a list of "did you mean" suggestions when you type an unknown command.
<Shinmera>
the commands are strings that are very natural-language-y
<rpg>
Shinmera: Like "fuck" for bash....
CrazyEddy has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 264 seconds]
<jmercouris>
Shinmera: Similarity scoring? Perhaps you mean like word trees
<Shinmera>
Not really, no
<Shinmera>
Users are likely to: typo, use a synonym, or forget other parts of the full command (substring)
<jmercouris>
Shinmera: Ah, then you need to construct models of the typing paths
<Shinmera>
So ideally it should be able to find "similar" word sequences based on that.
<jmercouris>
Shinmera: markov chains would / could be a good starting point
<jmercouris>
Shinmera: or automata with gates
tom34 has joined #lisp
<jmercouris>
if you are interested, I can explain more, it will require your own implementation though, there does not exist a library for this
<Shinmera>
Sure. Though maybe another time, I need to leave in a bit.
<jmercouris>
ok, freel free to ping me, I have a lot of experience in this domain
<Shinmera>
Great!
<_death>
Shinmera: there are also classic algorithms like soundex and friends
CrazyEddy has joined #lisp
<pjb>
Nice NLP user interfaces should be able to ask questions back to the user to clarify requests where some ambiguity exist.
quazimodo has quit [Ping timeout: 240 seconds]
<jmercouris>
pjb: Another cool thing is using the context of the words around it for guessing, not just what they typed
wigust has quit [Ping timeout: 240 seconds]
<pjb>
Indeed, you can use the history of the user interactions (including a user model) to clarify things.
tom34 has quit [Ping timeout: 272 seconds]
<beach>
pjb: I think that's right, and such a model would include the kind of keyboard layout is used.
<jmercouris>
beach: yes, definitely need a per keyboard training, ideally per user training
<jmercouris>
it doesn't have to be a very complex or expensive model though, there are very lightweight ones you can embed into a user distributed application
<beach>
pjb: And a model of me would include the fact that I always invert the h and e in the. In fact, I have a global emacs abbrev to change "teh" to "the"
josh5tone has quit [Quit: Lost terminal]
wigust has joined #lisp
<jmercouris>
beach: C-t
<beach>
jmercouris: You don't get it.
<beach>
jmercouris: I see it way too late.
<jmercouris>
teh -> C-t = the
<beach>
You don't get it.
<jmercouris>
Ah, okay lol
<beach>
It is not as though I do t <lesses, is that right, yes it is> e <now this then, maybe> h <ah, not right, lets do a C-t>
smurfrobot has quit [Remote host closed the connection]
smurfrobot has joined #lisp
<beach>
In fact, given the bad typing of some people here, they could learn from what I do.
fikka has joined #lisp
<beach>
It is more like "here is teh phrase I want to type <oh, dear, I inverted the e and the h a few words ago>
<Shinmera>
Things would be much easier if people just didn't make mistakes to begin with :^)
<beach>
So auto-correcting from teh to the saves a lot of time, and a lot of burden on the reader.
smurfrobot has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 240 seconds]
CrazyEddy has quit [Ping timeout: 248 seconds]
jmercouris has quit [Ping timeout: 240 seconds]
atgreen has quit [Quit: atgreen]
<jackdaniel>
teh mistakes are unavoidable
<beach>
No, tehy are not.
<jackdaniel>
(and yes, I know I made 2)
<cgay>
I count 3.
<beach>
1. inverting e and h. 2. Forgetting final period. 3. Using an article in the first place.
<beach>
But, the native language of jackdaniel makes articles in English hard.
<cgay>
Kentuckian?
<beach>
Close. :)
fikka has joined #lisp
<cgay>
Thus ends my contribution to #lisp.
<beach>
Aww!
CrazyEddy has joined #lisp
<Shinmera>
beach: You forgot capitalising the first letter of the sentence.
<jackdaniel>
I didn't count lack of period since it is internet chat
<Shinmera>
jackdaniel: In that case you could have not counted any of them.
<jackdaniel>
well, bad articles and typos are in the other basket in my eyes
<beach>
Shinmera: My keyboard is acting up. The shift key seems broken. Time to change the keyboard. I have had it for more than a decade.
<Shinmera>
beach: I meant in your enumeration of errors.
<beach>
Yes, I understood (I think).
<Shinmera>
Okey, I meant to say that capitalising the first letter was another mistake in jackdaniel's sentence that you didn't list.
<beach>
Oh, I didn't understand. Thanks.
* Shinmera
has to hurry off now
SaganFestivus has quit [Quit: WeeChat 1.6]
<beach>
See you later.
fikka has quit [Ping timeout: 260 seconds]
<beach>
Ah, my monthly royalties arrived. 5.86 USD. YAY!
<warweasle>
beach: ?
<beach>
That's twice the average.
<warweasle>
beach: What are you selling?
FreeBirdLjj has quit [Remote host closed the connection]
<beach>
warweasle: I use CreateSpace self publishing, which is owned by Amazon.
<beach>
Books.
<warweasle>
beach: Land of Lisp? Realm of Racket? Game of Thrones?
FreeBirdLjj has joined #lisp
<beach>
Introduction to Computer Science is the only one in English so far.
<notzmv>
simple but refined, guaranteed to blow your mind
<notzmv>
the land of lisp
<warweasle>
notzmv: And now I have that song going through my head...
<beach>
"anytime" (to continue the phrase in the spirit of Queen)
<warweasle>
*Meow!* *Meow!*
<rme>
The thought of a $5.86 monthly royalty is a great incentive for me to get to work on my own book.
<notzmv>
I love that song lmao
damke has joined #lisp
<beach>
rme: Oh, then, by all means, do it.
<rme>
(where's the sarcasm emoji?)
<notzmv>
zo'o
CrazyEddy has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
<rme>
I suspect few people write books expecting to make very much money.
<beach>
rme: There are exceptions, like Steven Pinker.
damke_ has quit [Ping timeout: 264 seconds]
<warweasle>
"Learn a programming language in 30 days to write a book in 180 days!" - my new book.
<beach>
rme: And it is 10 times better than the book in French that I wrote with my favorite coauthor that give around 2€ per year.
CrazyEddy has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
<rme>
But the fame, and the prestige!
<beach>
Yeah, right. :)
<shka>
$5.86 monthly?
<beach>
It's probably two books sold.
<rme>
Anyway, my proposed title is "Creative Common Lisp" or "Creative Computing in Common Lisp". If anyone writes it before me. let me know so that I can buy it.
<beach>
I could write something more popular. :)
pedh has joined #lisp
Cymew has joined #lisp
<warweasle>
"Master programming in two dozen agonizing steps"
<beach>
"Learn to program in Common Lisp in at least 10000 hours."
ryanbw has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
<rme>
"Loving the Vampire: a Dangerous Romance".
<rme>
Wrong channel
<beach>
Now that I think about it, "Learn to program in Common Lisp in at least 10000 hours." is a great title.
<rpg>
"Loving the Vampire: a Dangerous Romance, or, Java for Fun and Profit."
<beach>
I love it.
nonlinear has quit [Ping timeout: 256 seconds]
<rme>
haha
pedh has quit [Ping timeout: 265 seconds]
Cymew has quit [Ping timeout: 248 seconds]
<warweasle>
"Gay Lisp: The LGBT Programming Book"
<shka>
"Tropic of Lisp: Scandalous Programming"
Cymew has joined #lisp
smurfrobot has joined #lisp
<rpg>
"Silence of the Parentheses" -- a lisp-flavored horror/thriller
<warweasle>
(require 'rainbow-delimiters)
<shka>
more like "Silence of lambdas"
<shka>
"Gone with the funcall"
<shka>
"A condition too far"
vlatkoB has quit [Remote host closed the connection]
<rpg>
shka: 👏👏👏😂
<rpg>
"War and -P"
<dmiles>
(pedantic-extent ..)
<shka>
"Save lisp and die, or how I learned to stop worrying and love SBCL"
Cymew has quit [Ping timeout: 255 seconds]
saemcro has quit [Ping timeout: 248 seconds]
<rpg>
actually, just "Save Lisp and Die" sounds thriller-y enough
dieggsy has quit [Remote host closed the connection]
saemcro has joined #lisp
Cymew has joined #lisp
dieggsy has joined #lisp
CrazyEddy has quit [Ping timeout: 272 seconds]
Cymew has quit [Ping timeout: 240 seconds]
<dmiles>
what i am trying to figurte out is if my macro's lambda list has &environment e in it and if the e is passed to macroexpand will that cause the same result if i had not passed it e
CrazyEddy has joined #lisp
jmercouris has joined #lisp
tom34 has joined #lisp
<beach>
dmiles: If your macroexpander needs to call another macro expander for a macro defined in its lexical environment, you might get the wrong answer if you don't use the right environment.
<pjb>
dmiles: nope.
<beach>
dmiles: Right, pjb's answer is the short version.
j0nd1e has quit [Ping timeout: 256 seconds]
<beach>
pjb: Are you mellowing with age or something?
<pjb>
dmiles: a simple example: (define-symbol-macro s 42) (defmacro m (x &environment e) `(list ,(macroexpand-1 x e))) (symbol-macrolet ((s 33)) (m s)) --> (33)
fikka has quit [Ping timeout: 272 seconds]
<dmiles>
ok so the '&environment e' that my macro uses is the enviroment beelonging to whom.. the environemnt of my caller or the enviroment i would manipulate from labels?
<beach>
pjb: I find you much more helpful lately, and much less aggressive. Or maybe it's just my own aging that plays tricks on me. :)
<pjb>
or: (define-symbol-macro s 42) (defmacro m (x &environment e) `(list ,(macroexpand-1 x e) ,(macroexpand-1 x))) (symbol-macrolet ((s 33)) (m s)) --> (33 42)
ikki has joined #lisp
ikki has quit [Client Quit]
<pjb>
beach: it's irregular :-)
<beach>
Ah, yes, I see.
<beach>
Anyway, hope to see you again at ELS2018.
ikki has joined #lisp
tom34 has quit [Ping timeout: 240 seconds]
<dmiles>
i hired pjb a decade ago to help with a company lisp project :P
<pjb>
We'll see. I need to find a new customer, I don't know if I'll be free then. I guess for 2 days I could do it.
<jmercouris>
define-symbol-macro is the coolest thing ever! why have I not seen this before?
<beach>
pjb: That would be great!
<jmercouris>
beach: My impression of pjb has been that he's always been helpful, excpet that one time on #ecl where exploded on me telling me to RTFM :D
<pjb>
Of course, macroexpand-1 also expands normal macros (and macrolet), and other functions take an environment argument.
<beach>
jmercouris: You need to meet him in person. A very sweet person is my impression.
<pjb>
beach: on the contrary, I've got the impression I become more irate with age…
<beach>
GAH, so it's me! :)
makomo has joined #lisp
<pjb>
dmiles: there's an interesting application of envionment with CLOS: notice that find-class 1- is an accessor and 2- takes an environment. This let you define local classes!
* shka
it off to write fanfic about beach and pjb…
<jmercouris>
beach: Yeah, hopefully I can make it to ELS and put some faces to names, would be nice
pedh has joined #lisp
<Bike>
it allows for the possibility of local classes, except you can't give an environment to setf find-class.
<Bike>
hm, no, i'm mistaken.
<dmiles>
i been deciding to have a first class environemnt object be passed arround so that such uses can be used on an environments with indefinate extents
<pjb>
dmiles: be careful, you would get the same problem as if implementing continuations.
<shka>
hmm
<shka>
pjb: are you willing to elaborate on that, please?
<shka>
namely, what is the problem you are talking about
<pjb>
dmiles: even if it's not allowed to refer at macroexpand time to lexical variable in a local macro; local macros can still refer to surrounding local macros.
pedh has quit [Ping timeout: 256 seconds]
<pjb>
shka: if you leak the dynamic environment outside of the blocks where the local macros are defined, and use it, you could expand using local macros that are not active anymore.
<shka>
Shinmera: btw, i hooked docstring formatter into documentation-utils, i have few issues to sort out though
<pjb>
Also, you have to consider that local macros are defined and expanded at compilation time, while the dynamic environment is returned at run-time.
<dmiles>
pjb: heh, i think my impl of continuations is what inspired a willingness to do this with envs
<pjb>
dmiles: right, if you have them. But consider also this compilation-time vs. run-time.
<shka>
pjb: interesting
<pjb>
dmiles: or to make it useful, you could expand the environments to include more. And letting an environment escape would be equivalent to returning a closure.
<dmiles>
actually yes.. the problem is as pjb points out is do i see function macros i *should* be seeing due to runtime extent or do i see what is overridden
<dmiles>
function (i meant to backspec over the word macros)
<shka>
dmiles: have you figured out some other way to do continuations?
<shka>
somewhat more efficient perhaps?
<pjb>
for example, find-class modifies the environment at run-time. while defmacro provides a compilation-time environment, and assumedly macroexpand is used at compilation time too (but not necessarily). So you have the problem of transporting environment (and their enclosed bindings) from compilation time to run-time (possibly thru a FASL, so now you have to be able to write environment and load them!).
<pjb>
Much fun.
<dmiles>
oh yeah and about what pjb is saying.. this is kinda been a big issue.. i currently have to pass two envs to around
<pjb>
But then, if you map them to closures, it should be doable.
<dmiles>
i have a compilations env and a runtimes env :\
fikka has joined #lisp
<dmiles>
i been trying to come up with a way to merge them somehow.. its not a big deal for my compiler.. i pass two arround.. i just trying to decide how that will be at runtime
<dmiles>
shka: well i dont know if its any more efficient or not
<beach>
For what it's worth, environments figure more prominently in SICL. Most (all?) Common Lisp function that take an &optional environment argument dispatch to some SICL-specific generic function that dispatches on that argument.
<pjb>
dmiles: well, they should be merged anyways, because you can also macroexpand at run-time!
<shka>
dmiles: i see
BitPuffin|osx has quit [Ping timeout: 248 seconds]
<dmiles>
pjb: yes .. it turns out the runtime env needs basically almost everythig the compiler env would have had
<dmiles>
the fact that they (should?) scope differntly is all that the problem is
fikka has quit [Ping timeout: 268 seconds]
<pjb>
The thing is rather that the way clhs specifies it (that environment have only dynamic extend, without leaking them), let the compiler optimize out the local macros and symbol-macro, so they don't have to go thru to the run-time environment.
<dmiles>
yeah the whole of what dynamic extent is about ios letting one " optimize out the local macros "
<dmiles>
which i dont even feel entirely confortable with doing
<dmiles>
(i expect they might be overridden somehow later)
<dmiles>
really what i meant it i dont feel comfortable with inlining a local macro that expects to not get what functions it will call overridden
<dmiles>
(meaing i feel safer leaving it for runtime anyways)
<pjb>
As an extension, you will have to document it ;-)
nirved has quit [Quit: Leaving]
saemcro has quit [Remote host closed the connection]
damke_ has joined #lisp
<dmiles>
pjb: :( , that is why whatever i do i have to make sure i dont do something unexepected :)
<dmiles>
(so i can delay documentation for years)
fikka has joined #lisp
damke has quit [Ping timeout: 264 seconds]
saemcro has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<dmiles>
shka: i gensym (rename ) everything that everything that is not part of the global environment .. so continuations can be defined and found over a global namepace (i think this is how most impls would have done it) my compilation envinments job is to remember these names durring compilation.. at runtime i have lost all that info
<shka>
i see
<dmiles>
so i am trying to decide if i should not discard it.. i think pjb is talking me into not
<pjb>
If the environment is not leaked, you can discard it; if it is leaked, you need to keep it.
knobo has joined #lisp
<dmiles>
yeah i think why i am considering leakjing it is to movtive mysself to wwrite the code arround keeping it
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
omilu has quit [Ping timeout: 268 seconds]
<dmiles>
i am getting the imporession i might have to write the code for keeping it anyways
<dmiles>
Ctx = compiler enviroment ment, Env = runtime environment
cross has quit [Ping timeout: 256 seconds]
CrazyEddy has joined #lisp
<dmiles>
(if anyone is actualyl reading the code, its line 57 that added the shadows)
<phoe>
I will now try to spin up a brand new Linux container and try to reproduce this Qtools/Lparallel bug on it.
tom34 has quit [Ping timeout: 248 seconds]
saemcro has quit [Ping timeout: 256 seconds]
parjanya has quit [Ping timeout: 255 seconds]
smurfrobot has quit [Ping timeout: 272 seconds]
saemcro has joined #lisp
fikka has joined #lisp
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
Kundry_Wag has quit [Ping timeout: 240 seconds]
<phoe>
the fuck
<phoe>
it doesn't reproduce.
<phoe>
Well, that's good! One bug less to report.
DeadTrickster has joined #lisp
ikki has quit [Ping timeout: 240 seconds]
<beach>
"fewer" Less stuff, fewer things.
<phoe>
One bug fewer.
<phoe>
Thanks. (:
CrazyEddy has quit [Ping timeout: 255 seconds]
<beach>
phoe: Your English is already very good. Just trying to help you perfect is. :)
<phoe>
beach: I know, thanks!
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
<beach>
Sure! So you will be in Marbella?
<beach>
What about your partner (as we now call them)?
fikka has joined #lisp
<phoe>
You mean KZiemian?
<phoe>
We both plan to visit this year's ELS.
raynold has joined #lisp
nonlinear has joined #lisp
<beach>
s/perfect is/perfect it/ The full day cooking for my favorite coauthor, feeding her, and then working on our ELS submission related to partial inlining clearly had some consequences on my typing skills.
fikka has quit [Ping timeout: 240 seconds]
<beach>
phoe: I don't know her IRC nick. Just her singing. But I believe you.
ryanbw has joined #lisp
<beach>
phoe: Excellent. I think it will be a great conference.
saemcro has quit [Ping timeout: 255 seconds]
omilu has joined #lisp
saemcro has joined #lisp
CrazyEddy has joined #lisp
wigust has quit [Ping timeout: 264 seconds]
<phoe>
beach: oh wait, Nina!
<phoe>
She won't attend. She'll stay in Poland - she had a car accident two years ago, and it still prevents her from travelling far.
<phoe>
KZiemian is my partner-in-CLUS though, and I thought that you had him on mind. He'll probably come to ELS with me.
<beach>
phoe: Oh, shit! Sorry to hear that.
<beach>
phoe: Sorry, "partner" is the current euphemism for "wife/husband/girlfriend/boyfriend/" I hate it, but that's the way it is.
<jmercouris>
beach: What don't you like about ambiguity?
<jmercouris>
I'm going to start saying "oracle" instead of partner
<aeth>
"significant other" or "SO" is often used, at least in US English
FreeBirdLjj has quit [Ping timeout: 256 seconds]
* shka
will use word "cucumber" instead
<shka>
it will be hilarious
fikka has joined #lisp
<jmercouris>
aeth: Yeah, I see that a lot
<beach>
jmercouris: I consider a "partner" to be an administrative relationship, like me and my wife who married to avoid giving half of the house to our families, or like two people getting together to create a company.
pyx has joined #lisp
<phoe>
beach: yes, I see.
FreeBirdLjj has joined #lisp
pyx has quit [Client Quit]
<jmercouris>
beach: Are you listing an example, or are you actually saying you and your wife married for the purposes of not giving your property to other relatives?
<beach>
So phoe had the right interpretation, but one that is losing out in current usage.
<beach>
jmercouris: The latter.
rm8 has quit [Quit: i slep]
<jmercouris>
Can't tell if you guys really like each other, or really don't like the relatives, either way, none of my business and off-topic :P
<aeth>
jmercouris: When I hear "oracle" I don't interpret the word as anything other than "give me all of your money, and pay per processor core"
fikka has quit [Ping timeout: 256 seconds]
<beach>
Sure. We do like each other. It is all relative to specific French rules. Nothing to worry about.
<jmercouris>
aeth: Ah yes, the faceless machine that is oracle :D
<beach>
jmercouris: I invite you to come visit us. You wouldn't be the first on #lisp do to that. And then you can find out for yourself.
<jmercouris>
beach: Ah, interesting! Mayhaps someday I will!
ikki has joined #lisp
fikka has joined #lisp
<beach>
The first week of January is booked by my niece, otherwise nothing planned.
<jmercouris>
Hmm, I'll be in the US for sometime in January, maybe after that
atgreen has joined #lisp
<jmercouris>
s/sometime/some time
<osune>
beach: Is it true that the PACS is increasingly also used by hetrosexual partners?
<beach>
jmercouris: Sorry to hear that.
<jmercouris>
beach: The US is my home, I like it a lot, :D
<beach>
osune: I don't know. Sorry.
<osune>
nevermind :)
<beach>
jmercouris: Sorry to hear that. :)
<jmercouris>
lol :D maybe we americans are a little bit strange, I'll admit
hjudt has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Ping timeout: 248 seconds]
<beach>
"a little". Hmm
CrazyEddy has quit [Ping timeout: 265 seconds]
<beach>
jmercouris: I lived in the US for a total of 5 years. I still don't understand.
<jmercouris>
Ah yeah, American culture is something complex, and I don't think a non-native can pick it up, because we are also very subtle
<jmercouris>
a huge part of the complexity arises from the mixing of so many cultures I think
<beach>
Good luck.
pierpa has joined #lisp
<rpg>
somewhere between understanding a nation and understanding all of the EU...
<jmercouris>
I also have another theory, all of the most extreme types of individuals are in the US as those are the types of people that would leave their home country in favor of something new
<jmercouris>
I find europeans to be a lot more moderate than us, always taking a safer route
<jmercouris>
rpg: that's a good analogy
smurfrobot has joined #lisp
FreeBirdLjj has joined #lisp
<rpg>
it's worth remembering that the original model of the confederation was like the EU.... But if this keeps up we need to move to #political-science!
orivej has quit [Ping timeout: 240 seconds]
saemcro has quit [Ping timeout: 265 seconds]
saemcro has joined #lisp
CrazyEddy has joined #lisp
hjudt has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
dieggsy has quit [Ping timeout: 255 seconds]
CrazyEddy has quit [Ping timeout: 265 seconds]
FreeBirdLjj has quit [Ping timeout: 248 seconds]
CrazyEddy has joined #lisp
FreeBirdLjj has joined #lisp
rm8 has joined #lisp
zacts has quit [Quit: WeeChat 1.9.1]
zacts has joined #lisp
quazimodo has joined #lisp
tom34 has joined #lisp
atgreen has quit [Quit: atgreen]
mishoo has quit [Ping timeout: 272 seconds]
<rme>
I'm really looking forward to the ELS in Marbella.
quazimodo has quit [Ping timeout: 240 seconds]
tom34 has quit [Ping timeout: 240 seconds]
Denommus has joined #lisp
bigos_ has joined #lisp
FreeBirdLjj has quit [Ping timeout: 240 seconds]
pedh has joined #lisp
shka has quit [Ping timeout: 264 seconds]
QualityAddict has joined #lisp
Murii has quit [Quit: WeeChat 1.4]
FreeBirdLjj has joined #lisp
pedh has quit [Ping timeout: 240 seconds]
pseudonymous has quit [Remote host closed the connection]
pseudonymous has joined #lisp
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
koenig has quit [Quit: WeeChat 1.7.1]
quazimodo has joined #lisp
FreeBirdLjj has quit [Ping timeout: 248 seconds]
Bike has quit [Ping timeout: 260 seconds]
rpg has joined #lisp
CrazyEddy has quit [Ping timeout: 260 seconds]
smurfrobot has joined #lisp
tom34 has joined #lisp
CrazyEddy has joined #lisp
smurfrobot has quit [Ping timeout: 256 seconds]
Tobbi has joined #lisp
Cymew has joined #lisp
orivej has joined #lisp
tom34 has quit [Ping timeout: 248 seconds]
tom34 has joined #lisp
FreeBirdLjj has joined #lisp
nydel has joined #lisp
Cymew has quit [Ping timeout: 256 seconds]
python476 has joined #lisp
Tobbi has quit [Remote host closed the connection]
Tobbi has joined #lisp
Cymew has joined #lisp
Jesin has quit [Quit: Leaving]
LiamH has quit [Quit: Leaving.]
Karl_Dscc has quit [Remote host closed the connection]
Cymew has quit [Ping timeout: 272 seconds]
papachan has quit [Quit: WeeChat 2.0]
pedh has joined #lisp
CrazyEddy has quit [Ping timeout: 248 seconds]
brendyn has quit [Ping timeout: 256 seconds]
brendyn has joined #lisp
CrazyEddy has joined #lisp
pedh has quit [Ping timeout: 240 seconds]
<emaczen>
jmercouris: did you implement copy/paste in your browser with an NSPasteBoard?
tom34 has quit [Ping timeout: 240 seconds]
<jmercouris>
emaczen: No, I used a different way
<jmercouris>
emaczen: are you trying to get copy/paste working in a CCL standalone program?
<emaczen>
jmercouris: I'm just trying to copy something from emacs into a CCL program
wxie has joined #lisp
<jmercouris>
emaczen: Note that in the above gist *next-view* is the sender
<jmercouris>
emaczen: The code I pasted into the gist will work for you then
<jmercouris>
emaczen: for the sender you can use your content view (or really another view within your layout I think)
Bike has joined #lisp
Achylles has joined #lisp
pedh has joined #lisp
<emaczen>
why is ccl::*nsapp* always bound?
defaultxr has joined #lisp
FreeBirdLjj has quit [Ping timeout: 248 seconds]
pedh has quit [Ping timeout: 265 seconds]
wxie has quit [Remote host closed the connection]
damke has joined #lisp
Kundry_Wag has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
tom34 has joined #lisp
tom34 has quit [Ping timeout: 265 seconds]
smurfrobot has joined #lisp
CrazyEddy has quit [Ping timeout: 240 seconds]
tom34 has joined #lisp
<dmiles>
the consequences of symbol-macroletting over a global variable is an error .. with-slot seems to symbol-macrolet.. i guess it is the case that there are typically very few global vars
<jmercouris>
emaczen: I have no idea, it is bound when starting the IDE and should be in your bootstrapping code for standalone
smurfrobot has quit [Ping timeout: 256 seconds]
<jmercouris>
emaczen: if you look in my source cocoa/application.lisp you'll see where I setq *nsapp* as part of the bootstrap/startup of the standalone app
tom34 has quit [Client Quit]
<emaczen>
jmercouris: I didn't really want to mess with it so I just figured out how to do it with cocoa...
<emaczen>
having to program a little bit with cocoa/objective-c makes me VERY thankful for common-lisp, there is some strange stuff out there
CrazyEddy has joined #lisp
FreeBirdLjj has joined #lisp
sjl has quit [Ping timeout: 240 seconds]
JuanDaugherty has joined #lisp
<jmercouris>
emaczen: objective-c is really quite good when you use it in its normal context
<jmercouris>
emaczen: You can also get access to the shared application via another function called like [sharedApplication] or something, I can't remember
<jmercouris>
emaczen: at any rate, *nsapp* should probably be bound
rumbler31 has quit [Ping timeout: 260 seconds]
saemcro has quit [Ping timeout: 248 seconds]
pedh has joined #lisp
saemcro has joined #lisp
<jmercouris>
emaczen: or rather set, in lisp terminology
pedh has quit [Ping timeout: 265 seconds]
<asarch>
Does SBCL interprets the abstract syntax tree or does it compiles it?
<jmercouris>
asarch: Does it not have to do both?
<jmercouris>
at different times?
CrazyEddy has quit [Ping timeout: 248 seconds]
<asarch>
I don't know
<asarch>
I just was wondering
<emaczen>
how do we get the current settings of (declaim (optimize ...) ..) with SBCL?
<asarch>
PCL in chapter three says about some implementations compiles the code and other just interpret it
<jmercouris>
asarch: Yeah, but I believe SBCL does both, I'm not an SBCL user though, many people in this channel are though
sondr3 has quit [Quit: Quit]
<dmiles>
in clisp we have to ectually tell it we want a function compiled.. is that the case in SBCL>
<dmiles>
+?
<asarch>
Thank you jmercouris
Denommus` has joined #lisp
<asarch>
Thank you very much :-)
<Bike>
sbcl pretty much compiles everything. it has an interpreter, but it's more marginal.
<Shinmera>
It has two interpreters, actually.
<Bike>
emaczen: sb-ext:describe-compiler-policy i believe
<asarch>
Wow! Two interpreters!
FreeBirdLjj has quit [Ping timeout: 240 seconds]
CrazyEddy has joined #lisp
<asarch>
I've been reading and I realize that Lisp is actually the language of God
<Shinmera>
I don't think sb-fasteval is activated on standard fancy builds, but that's the more recent and involved interpreter.
Denommus has quit [Ping timeout: 248 seconds]
<asarch>
I remember quiet long ago that someone told me that God used Lisp to create the Universe
<asarch>
And also told me there was a song about it
<notzmv>
'(tao)
FreeBirdLjj has joined #lisp
<dmiles>
i am calling WAM-CL a compiler since before i run a form at the repl i convert it to prolog source, then on several versions of prolog (especially the one i am using) code is compiled whenever it is called
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
ebrasca has joined #lisp
osune has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
CrazyEddy has quit [Ping timeout: 248 seconds]
<dmiles>
so (disassemble ..) calls clause/2 (which decompiles the Zip-WAM) and prints out what was threre
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
CrazyEddy has joined #lisp
turkja has joined #lisp
jmercouris has quit [Ping timeout: 240 seconds]
pedh has joined #lisp
wheelsucker has quit [Remote host closed the connection]