<billitch>
is there no access to common-lisp.net Subversion repositories ?
red-dot has joined #lisp
orivej has quit [Ping timeout: 248 seconds]
<billitch>
svn co svn://common-lisp.net/project/cl-irc/svn/
<billitch>
svn: E170013: Unable to connect to a repository at URL 'svn://common-lisp.net/project/cl-irc/svn'
<billitch>
svn: E000111: Can't connect to host 'common-lisp.net': Connection refused
fikka has joined #lisp
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
<pjb>
billitch: AFAIK, they switched to git a long time ago.
Chream has joined #lisp
<billitch>
pjb: yes but the cl-uri page on common-lisp.net still references subversion and the WebSVN has content
<billitch>
are there CL reader replacements out there ?
<billitch>
specifically for sbcl
pmc_ has joined #lisp
<pmc_>
I tried this on CLISP and SBCL: (pprint (macroexpand-1 '(dotimes (x 5) (print x)))) but everything is printed on one line. Is there another way to pretty print a macro?
<pjb>
You may of course use closures too: (map-into (make-array '(3)) (let ((i 0.0d0)) (lambda () (make-array 4 :element-type 'double-float :initial-element (incf i 1.0d0))))) #| --> #(#(1.0D0 1.0D0 1.0D0 1.0D0) #(2.0D0 2.0D0 2.0D0 2.0D0) #(3.0D0 3.0D0 3.0D0 3.0D0)) |#
<pjb>
etc.
<pierpa>
can write simply (make-array 3 ...)
xrash has quit [Ping timeout: 248 seconds]
arescorpio has joined #lisp
arescorpio has quit [Max SendQ exceeded]
randomstrangerb has quit [Ping timeout: 240 seconds]
xrash has joined #lisp
randomstrangerb has joined #lisp
fikka has joined #lisp
smurfrobot has joined #lisp
smurfrobot has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 240 seconds]
dieggsy has quit [Ping timeout: 252 seconds]
nowhere_man has joined #lisp
nowhereman_ has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
quazimodo has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
arescorpio has joined #lisp
attila_lendvai has quit [Quit: Leaving.]
fikka has quit [Ping timeout: 276 seconds]
<fiddlerwoaroof>
Did quicklisp or ASDF recently change the way it handles symlinks?
<fiddlerwoaroof>
I've been symlinking libraries into ~/quicklisp/local-projects for a while now and, lately, recent versions of sbcl seem to ignore them
smokeink has joined #lisp
<krwq>
is there an alist equivalent for this example? (defparameter *x* nil) (pushnew 'test (getf *x* :foo)) (pushnew 'test (getf *x* :foo)) (pushnew 'test2 (getf *x* :foo)) *x* => (:FOO (TEST2 TEST))
borei has quit [Read error: Connection reset by peer]
<pjb>
(let ((a '())) (pushnew 'test (aget a :foo)) (pushnew 'test (aget a :foo)) (pushnew 'test2 (aget a :foo)) (aget a :foo)) #| --> (test2 test) |#
fikka has joined #lisp
<krwq>
thanks pjb! I thought there was something inside cl but assoc didn't work for me - this looks good though :) thank you!
fikka has quit [Ping timeout: 256 seconds]
deng_cn has joined #lisp
<Timzi>
when I'm using the (time form) macro to get a runtime of something, how do I capture that info? Describe says it's printed out to *TRACE-OUTPUT*, how do I get to that?
deng_cn has quit [Read error: Connection reset by peer]
Cymew has quit [Ping timeout: 252 seconds]
Cymew has joined #lisp
Chream has quit [Ping timeout: 248 seconds]
<raynold>
ahh it's a wonderful day
<Cthulhux>
hooray Monday
Cymew has quit [Ping timeout: 255 seconds]
varjag has joined #lisp
deng_cn has joined #lisp
Cymew has joined #lisp
Cymew has quit [Remote host closed the connection]
Cymew has joined #lisp
Chream has joined #lisp
nirved has joined #lisp
damke has joined #lisp
cuso4 has quit [Ping timeout: 252 seconds]
damke_ has quit [Ping timeout: 264 seconds]
damke_ has joined #lisp
fikka has joined #lisp
damke has quit [Ping timeout: 252 seconds]
hhdave has joined #lisp
<hajovonta>
hi
<beach>
Hello hajovonta.
<hajovonta>
hi beach!
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
deng_cn1 has joined #lisp
deng_cn has quit [Ping timeout: 256 seconds]
deng_cn1 is now known as deng_cn
fikka has quit [Ping timeout: 256 seconds]
pvaneynd has quit [Quit: Leaving...]
fikka has joined #lisp
samebchase has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
lambda-p has joined #lisp
lambda-p has quit [Client Quit]
lambda-p has joined #lisp
lambda-p has quit [Client Quit]
cuso4 has joined #lisp
lambda-p has joined #lisp
lonjil has quit [Read error: Connection reset by peer]
fikka has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
gabriel_laddel has quit [Ping timeout: 248 seconds]
deng_cn has quit [Read error: Connection reset by peer]
klixto has joined #lisp
deng_cn has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
solyd has joined #lisp
fikka has joined #lisp
jfb4 has quit [Ping timeout: 240 seconds]
jameser has joined #lisp
jfb4 has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
random-nick has joined #lisp
lambda-p has quit [Remote host closed the connection]
lnostdal has joined #lisp
fikka has joined #lisp
pagnol has joined #lisp
solyd has quit [Quit: solyd]
fikka has quit [Ping timeout: 240 seconds]
jfb4 has quit [Ping timeout: 240 seconds]
jameser has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jfb4 has joined #lisp
solyd has joined #lisp
python476 has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
Chream has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 276 seconds]
cmatei has joined #lisp
jfb4 has quit [Ping timeout: 276 seconds]
jfb4 has joined #lisp
fikka has joined #lisp
Chream has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
rumbler31 has joined #lisp
jfb4 has quit [Ping timeout: 260 seconds]
attila_lendvai has joined #lisp
jfb4 has joined #lisp
scymtym has quit [Ping timeout: 256 seconds]
rumbler31 has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 260 seconds]
jfb4 has quit [Ping timeout: 256 seconds]
WorldControl has joined #lisp
jfb4 has joined #lisp
fikka has joined #lisp
red-dot has joined #lisp
lambda-p has joined #lisp
ebzzry has joined #lisp
SuperJen has quit [Ping timeout: 264 seconds]
<ebzzry>
Aside from the computer language benchmarks game, are there are benchmarks between SBCL and GHC?
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
scymtym has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
wswsw has joined #lisp
wswsw has quit [Client Quit]
<jackdaniel>
I didn't know GHC can compile Lisp code (because I'm sure SBCL can't compile Haskell code :-)
<beach>
Yeah, the two would be very hard to compare.
fikka has joined #lisp
<beach>
I logged in to EasyChair today, and it seems ELS2018 has not yet been registered, or am I missing something?
lambda-p has quit [Remote host closed the connection]
<phoe>
beach: you could ask on the mailing list.
<beach>
I suppose I could.
<beach>
There is no rush.
scymtym_ has joined #lisp
<beach>
I'll ask my favorite coauthor on Wednesday.
<p_l>
would a drakma replacement that depended on C library be welcome, if the dependency was designed to be factored out later without changes to user applications?
fikka has quit [Ping timeout: 264 seconds]
solyd has quit [Quit: solyd]
scymtym has quit [Ping timeout: 240 seconds]
<Shinmera>
p_l: Why not wait with releasing it until you've factored it out?
<p_l>
Shinmera: Want to iterate more on APIs
<p_l>
it's one thing to be drop-in for drakma, but the extra features have to be checked out
fikka has joined #lisp
damke has joined #lisp
<beach>
I know nothing about drakma, but what is wrong with it that it needs to be replaced?
solyd has joined #lisp
<Shinmera>
There's two issues I'm aware of: 1) it's slow 2) it doesn't properly handle unicode filenames in multipart requests
<Shinmera>
2) doesn't need replacement, "just" a fix
damke_ has quit [Ping timeout: 264 seconds]
<beach>
Right.
<p_l>
there's also HTTP/2
<Cthulhux>
1) wouldn't need a replacement either
cuso4 has quit [Ping timeout: 256 seconds]
<p_l>
some APIs to handle SSL better
<Cthulhux>
"just" a more sophisticated fix
<Shinmera>
Cthulhux: It would need a significant rewrite to the point of practically being a replacement.
fikka has quit [Ping timeout: 256 seconds]
<p_l>
But I don't want to break code that depends on Drakma to have a bunch of new features
<Cthulhux>
given that HTTP moves rather slowly, there is probably no need for a hyperactive development around that either
<p_l>
tbqh, I want to have two packages: drakma-compat-api, and actual implementation
<p_l>
Cthulhux: Yes, HTTP/2 *recently* solidified. And requires *significant* redo because the whole model changed significantly
<Cthulhux>
ha, so we'll get a "drakma/2" and then dormant development until http/3 :D
<beach>
p_l: Are you saying that a rewrite that depends on a C library would require significantly less work than a rewrite that doesn't?
<p_l>
beach: yes
<p_l>
in terms of getting to place that works for people
<beach>
But it would be possible to design the protocols such that the C library could eventually be replaced?
<p_l>
I have a bunch of "short coding things" that I'd love to do in CL, but they usually end up differently because there's a lack of necessary libs which are *not* short undertakings, even for the bare minimum of features
<p_l>
beach: that's the idea
fikka has joined #lisp
<p_l>
even that it would be easy for Joe Random Hacker later on to swap implementation when they need some custom tweaks
JenElizabeth has joined #lisp
<Shinmera>
One thing that's still somewhat higher on my todo is bindings for bearssl so that we can finally have an easily shippable SSL implementation that doesn't depend on openssl
lnostdal has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 256 seconds]
deng_cn has quit [Read error: Connection reset by peer]
lnostdal has joined #lisp
<Cthulhux>
what makes bearssl better than libressl?
<Shinmera>
I don't know too much about libressl, but bearssl has zero dependencies and no malloc/free calls, and other things about it that are very promising.
<p_l>
Shinmera: in scope of similar ideas was to replace current cl+ssl with pluggable implementations
<p_l>
libressl is possibly cleaned up but with arseholes in charge who don't really care about devs outside of OpenBSD
<Shinmera>
Particularly the no deps thing is very interesting to me since that means I can just ship it easily myself.
deng_cn has joined #lisp
lambda-p has joined #lisp
lambda-p has quit [Client Quit]
<p_l>
Shinmera: it could be possibly bundled into one C file that could be compiled by ASDF in presence of compiler and easily precompiled for others (like SQLite is)
<Shinmera>
Yes.
<p_l>
that's a good thing to have
<p_l>
ideally, I'd like to have some common libs (some ediware) replaced with options that are "pluggable" in terms of implementation
solyd has quit [Quit: solyd]
<Cthulhux>
"ediware" is nice.
<p_l>
it is
<Shinmera>
I'd be fine if the pluggability was simply implemented by offering alternative packages that offer the same interface otherwise, so all you had to do was either replace the :use, or s/r whatever:
lambda-p has joined #lisp
<Shinmera>
That's what I do for the compatibility interfaces in Parachute.
<p_l>
Shinmera: I was thinking that, + maybe a compat package that provides "classic" package names
<p_l>
so you can just replace a line in your ASDF deps and voila
vaporatorius__ has quit [Ping timeout: 256 seconds]
vaporatorius__ has joined #lisp
vaporatorius__ has quit [Remote host closed the connection]
<p_l>
so if someone likes the challenge, or runs on OpenBSD, they could use libressl
jfb4 has quit [Ping timeout: 260 seconds]
grublet has quit [Ping timeout: 264 seconds]
jfb4 has joined #lisp
phs^ has joined #lisp
phs^ has quit [Max SendQ exceeded]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<ebzzry>
jackdaniel: :)
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
Bike has joined #lisp
m00natic has joined #lisp
SuperJen has joined #lisp
schweers has quit [Ping timeout: 240 seconds]
JenElizabeth has quit [Ping timeout: 256 seconds]
drcode has quit [Ping timeout: 256 seconds]
raynold has quit [Quit: Connection closed for inactivity]
schweers has joined #lisp
EvW1 has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
klixto has quit [Quit: Konversation terminated!]
deng_cn has joined #lisp
klixto has joined #lisp
antismap has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
saki has quit [Ping timeout: 264 seconds]
saki has joined #lisp
antismap has joined #lisp
dddddd has joined #lisp
nowhere_man has quit [Ping timeout: 240 seconds]
yangby has quit [Quit: Go out for a walk and buy a drink.]
solyd has joined #lisp
solyd has quit [Client Quit]
red-dot has joined #lisp
fikka has joined #lisp
deng_cn1 has joined #lisp
deng_cn has quit [Ping timeout: 248 seconds]
deng_cn1 is now known as deng_cn
Denommus has joined #lisp
openthesky has quit [Remote host closed the connection]
Tobbi has quit [Ping timeout: 256 seconds]
damke_ has joined #lisp
python476 has joined #lisp
damke has quit [Ping timeout: 264 seconds]
damke_ has quit [Ping timeout: 264 seconds]
damke_ has joined #lisp
randomstrangerb has quit [Ping timeout: 264 seconds]
randomstrangerb has joined #lisp
cuso4 has joined #lisp
vap1 has joined #lisp
vaporatorius has joined #lisp
damke has joined #lisp
heurist` has joined #lisp
heurist has quit [Ping timeout: 256 seconds]
damke_ has quit [Ping timeout: 263 seconds]
drcode has joined #lisp
damke_ has joined #lisp
porky11 has joined #lisp
damke has quit [Ping timeout: 264 seconds]
quotation has joined #lisp
Tobbi has joined #lisp
Bike is now known as Bicyclidine
Chream has quit [Ping timeout: 268 seconds]
fikka has quit [Ping timeout: 240 seconds]
solyd has joined #lisp
mathi_aihtam has joined #lisp
mathi_aihtam has quit [Remote host closed the connection]
EvW1 has quit [Ping timeout: 240 seconds]
Denommus has quit [Quit: restarting Emacs]
jstypo has joined #lisp
Cymew has quit [Remote host closed the connection]
solyd has quit [Quit: solyd]
solyd has joined #lisp
solyd has quit [Client Quit]
solyd has joined #lisp
Cymew has joined #lisp
<cuso4>
Have anyone here worked with vulkan and lisp?
<phoe>
cuso4: you might want to ask around #lispgames - they're much closer to the GPU than #lisp
LiamH has joined #lisp
<cuso4>
Oooh, sorry, didnt know of that channel
<cuso4>
thanks
Cymew has quit [Ping timeout: 252 seconds]
ghard has joined #lisp
Cymew has joined #lisp
asarch has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
Cymew has quit [Ping timeout: 248 seconds]
papachan has joined #lisp
milanj has joined #lisp
Bike has joined #lisp
Cymew has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
Cymew has quit [Ping timeout: 256 seconds]
oleo has joined #lisp
Cymew has joined #lisp
Okami has joined #lisp
<phoe>
cuso4: no problem!
Cymew has quit [Ping timeout: 240 seconds]
pagnol has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
Cymew has quit [Ping timeout: 256 seconds]
Cymew has joined #lisp
Cymew has quit [Ping timeout: 248 seconds]
Cymew has joined #lisp
shrdlu68 has joined #lisp
Okami has quit [Quit: leaving]
rumbler31 has joined #lisp
saki has quit [Quit: saki]
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
Cymew has quit [Ping timeout: 256 seconds]
Cymew has joined #lisp
saki has joined #lisp
Timzi has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
sjl has quit [Quit: WeeChat 1.9.1]
Cymew has joined #lisp
klixto has quit [Quit: Konversation terminated!]
bigos has joined #lisp
Cymew has quit [Ping timeout: 248 seconds]
Cymew has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
dyelar has joined #lisp
nowhereman_ has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
nowhereman_ has quit [Client Quit]
nowhereman_ has joined #lisp
Cymew has joined #lisp
smokeink has quit [Ping timeout: 256 seconds]
Cymew has quit [Ping timeout: 256 seconds]
larsen- is now known as larsen
aindilis has quit [Read error: Connection reset by peer]
lambda-p has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
<jmercouris>
I'm thinking about making more technical articles in the future, any feedback/upvotes welcome
deng_cn has joined #lisp
fikka has joined #lisp
nsrahmad has quit [Quit: Leaving]
nsrahmad has joined #lisp
cuso4 has joined #lisp
Arcaelyx has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
<jackdaniel>
I'd name it: tabs are OK and buffers are even better
<jmercouris>
Well, it's too late to change the name now, but thank you for the feedback
<jmercouris>
can you elaborate on why you think that would be better?
<jackdaniel>
I don't necessarily agree with the statement, but I wouldn't put negative message there
<jackdaniel>
that "something sucks"
<jackdaniel>
"I am very good" is better than "he sucks, pick me" if you know what I mean
<jmercouris>
I can see that point of view yeah, to briefly explain my reasoning, I wanted to make it a provocative/eye catching title
Arcaelyx_ has joined #lisp
<jmercouris>
As I try out a few more technical articles, like exploratory case study articles, this shouldn't be a problem I don't htink
<jmercouris>
anyways, thank you for the feedback
<dlowe>
Something provocative can "increase engagement" but isn't persuasive.
<jmercouris>
yeah, it's best to convince the other individual that the idea is theirs for maximum engagement
<jmercouris>
and agreement, you are correct
Arcaelyx has quit [Ping timeout: 276 seconds]
<jmercouris>
my goal though was to make it to the top of /r/programming to give it some visibility, so that those who are interested in the project may discover it
<jmercouris>
I feel like there is a lot of room for growth here, I just need to figure out how to reach those who would be interested, and would benefit from using a productiivty browser
<jmercouris>
this will get easier as I make it more user friendly, but now it's a bit tough
<jmercouris>
anyways though, all good lessons, I assume you as users represent a good demographic for people on /r/programming, so I will keep thse things in mind
nsrahmad has quit [Quit: Leaving]
Cymew has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
jfb4 has quit [Ping timeout: 264 seconds]
hhdave has quit [Quit: hhdave]
Cymew has joined #lisp
jfb4 has joined #lisp
fikka has joined #lisp
Chream has joined #lisp
flamebeard has quit [Quit: Leaving]
compro has quit [Ping timeout: 248 seconds]
Cymew has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 256 seconds]
Cymew has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
Arcaelyx_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
deng_cn has joined #lisp
nowhere_man has joined #lisp
drewc_ has joined #lisp
Cymew has quit [Ping timeout: 265 seconds]
Cymew has joined #lisp
drewc has quit [Ping timeout: 260 seconds]
nowhereman_ has quit [Ping timeout: 256 seconds]
compro has joined #lisp
Cymew has quit [Ping timeout: 265 seconds]
hajovonta has quit [Remote host closed the connection]
pagnol has joined #lisp
randomstrangerb has quit [Ping timeout: 248 seconds]
<p_l>
I was actually thinking of using nghttp2 in HTTP2 path while reusing Drakma code (initially) for HTTP1 path
<billitch>
about the same interface as hunchentoot
abbe_ is now known as abbe
Cymew has quit [Ping timeout: 248 seconds]
dtornabene has joined #lisp
Cymew has joined #lisp
<rme>
If you use CCL at all, please fill out my little survey at https://goo.gl/forms/xy3oRIazSIo46iCL2 if you are willing to do so (and thanks if you've already filled it out). I'll be closing the survey soon.
Cymew has quit [Ping timeout: 252 seconds]
<Bike>
What's it for?
ebzzry has quit [Ping timeout: 256 seconds]
<rme>
I just want to get an idea of what OS and cpu combinations people use. This is partly because I am wondering how much longer I should support 32-bit x86.
<jmercouris>
If you want to know how many people are using it, abruptly drop support and see how many emails you get
<Shinmera>
Ah, the ASDF method
<Shinmera>
:^)
<rme>
By "support 32-bit x86" I mean "support in future releases". The current version isn't going to stop working all of a sudden.
<jasom>
jmercouris: actually at one place I worked we sort of did that. We didn't stop supporting it, but we stopped shipping it, with a note to call us if you want it.
<jackdaniel>
I've filled the survey
drewc_ is now known as drewc
<jasom>
jmercouris: apparently there are still dev shops using solaris as of 2017
Cymew has joined #lisp
<jmercouris>
jasom: That's something isn't it :D
<jmercouris>
We'll probably ship cobol to mars at this rate
orivej has joined #lisp
<jasom>
and not newfangled x64 open solaris, but good old fashioned sparc
<jmercouris>
do they literally forge themselves new CPUS? or are they hoarding a stockpile of them do you think?
<jasom>
I don't know, but we started buying workstations off of ebay so we could run tests...
<rme>
One survey respondent said that he was still using ccl on a PowerPC Mac running OS X 10.5.7.
<jmercouris>
I think I know who that might be
<jmercouris>
there was someone on #lisp a few weeks ago asking about it getting an implementation running on a very old version of OSX
* jasom
booted up his G4 a couple months ago because his wife's christmas card list was in an appleworks DB...
rippa has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
<jasom>
there is literally no software that can import an appleworks DB, you need to export from appleworks to open it :(
<jasom>
as a word-processor document; I could find some of the data in the noise, but...
Denommus has joined #lisp
epony has quit [Quit: QUIT]
solyd has quit [Quit: solyd]
zooey has quit [Ping timeout: 255 seconds]
cuso4 has quit [Read error: Connection reset by peer]
fourier has quit [Remote host closed the connection]
zooey has joined #lisp
fourier has joined #lisp
randomstrangerb has quit [Ping timeout: 256 seconds]
solyd has joined #lisp
randomstrangerb has joined #lisp
dieggsy has joined #lisp
aindilis has quit [Ping timeout: 268 seconds]
deng_cn has quit [Read error: Connection reset by peer]
dieggsy has quit [Client Quit]
dieggsy has joined #lisp
deng_cn has joined #lisp
angelo|2 has quit [Ping timeout: 240 seconds]
warweasle has joined #lisp
mejja has joined #lisp
solyd has quit [Quit: solyd]
varjag has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
shka has joined #lisp
angelo|2 has joined #lisp
nowhere_man has quit [Ping timeout: 260 seconds]
khisanth_ has quit [Ping timeout: 240 seconds]
Kaisyu has quit [Quit: Connection closed for inactivity]
<pjb>
jasom: yes, if it's a database file, the probability its format being supported is lower than for a word processor file.
raynold has joined #lisp
<pjb>
jasom: that said, it's often rather easy to reverse-engineer file formats. I recently did that for a MIDI sysex dump. While it may look puzzling at first, if you let pass a couple of nights over it, you can often find the clue.
<pjb>
That is, if you use lisp to do it: it's very easy to experiment and try systematically various options.
randomstrangerb has quit [Ping timeout: 256 seconds]
randomstrangerb has joined #lisp
nowhere_man has joined #lisp
fikka has joined #lisp
khisanth_ has joined #lisp
m00natic has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 268 seconds]
dvdmuckle has quit [Quit: Bouncer Surgery]
epony has joined #lisp
fourier has joined #lisp
fourier has quit [Changing host]
dvdmuckle has joined #lisp
<billitch>
Is there any way to prevent slime from touching *standard-output*
<billitch>
?
<fourier>
how to reach maintainers of osicat? want to get my pull request in
<phoe>
billitch: I don't think so.
<phoe>
You can do a trick, though, and make a new thread, and from that thread, fetch the value of *standard-output* - it should be the console output that you are looking for.
<Shinmera>
I think if you avoid loading the slime-repl (and thus slime-fancy).
JenElizabeth has joined #lisp
<billitch>
actually slime is fine, i want to disable the Lisp reader on stdin and stdout
<stacksmith>
G'day! Is there any portable way to get at lambda-lists of type declarations? like sb-introspect:deftype-lambda-list?
SuperJen has quit [Ping timeout: 248 seconds]
<billitch>
stacksmith: (defmacro deftype ...) ?
<stacksmith>
Existing types?
<stacksmith>
I've been trying to figure out how swank does it, but all that accomplished is making me feel like a moron.
<billitch>
what are you trying to do ?
<Xach>
fourier: comments on github may work
<Bike>
swank-backend:type-specifier-arglist seems to be what swank does.
<Shinmera>
stacksmith: grepping swank sources for deftype-lambda-list only shows sbcl as having it
hiroaki has quit [Ping timeout: 252 seconds]
warweasle has quit [Quit: Leaving]
<Shinmera>
So either other implementations don't offer that or the Slime people haven't implemented it for them.
<Bike>
there's certainly no requirement for implementations to save it. for the semantics you only need the function
varjag has joined #lisp
<fourier>
Xach: yep i've added a comment now. besides osicat itself fails on clisp and ecl on travis on amaster branch.
scymtym_ has quit [Ping timeout: 276 seconds]
<stacksmith>
Interesting. Is anyone here using slime with anything other than SBCL? Could you check that typing "(declare (type (integer " in REPL does not show the type lambda-list?
<Bike>
swank also has a default set that works on any implementations
<phoe>
right, you'd need to make a custom DEFTYPE first and check against that
ckonstanski has joined #lisp
<stacksmith>
I am interested in pulling existing types' lambda-lists...
<Bike>
Why?
<phoe>
like, standard types?
compro` has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
xrash has quit [Ping timeout: 256 seconds]
hiroaki has joined #lisp
deng_cn has joined #lisp
<stacksmith>
To perform some verification of lisp code...
compro has quit [Ping timeout: 240 seconds]
<phoe>
stacksmith: I don't get it
<phoe>
why do you need lambda lists of standard Lisp types?
xrash has joined #lisp
<phoe>
you won't be able to do full verification in general case anyway, because of SATISFIES that is able of arbitrary computation
<stacksmith>
To see if forms conform to the structural description provided by lambda-lists.
<Bike>
i'm not sure what that means
<Bike>
phoe: satisfies has a pretty simple lambda list
<Bike>
stacksmith: you mean you want to look at type declarations and decide if they're valid?
<phoe>
oh, you don't want to check types, you want to see if a thing is a valid type specifier
Karl_Dscc has joined #lisp
surya has joined #lisp
<stacksmith>
I need to detect structural defects with forms, without any semantics. Just that required parameters are there, keywords are not out-of-whack, etc. A lint of sorts.
<Bike>
i see. i'm not sure if that can be done portably. i don't think ccl even saves the lambda list.
ft has quit [Ping timeout: 240 seconds]
<Bike>
doesn't expand a typexpand either, i don't think
<stacksmith>
Bike: thanks that is helpful.
<Bike>
really, i'd think it would be pretty tricky in general since macro expansions can of course involve arbitrary code execution.
<shrdlu68>
I'm doing some micro-optimization and wondering - is #'= optimal for comparing bits for equivalence?
<Shinmera>
It's optimal if it knows the types.
<shrdlu68>
^I mean equality.
<stacksmith>
Bike: True enough. I don't need an absolute assurance, just elimination of obvious errors.
<shrdlu68>
Cool. It's really surprising the difference type declarations make.
surya_ has joined #lisp
quotation has quit [Quit: Connection closed for inactivity]
<shrdlu68>
Holy Cthulhu! Inlining reduces time by ~10s.
<stacksmith>
Is it logical to assume that standard CL type declarations in conforming implementations must have similar-enough lambda-lists? Is there anything wrong with extracting lambda-lists for all standard types and using them with any implementation?
honix has joined #lisp
WorldControl has quit [Ping timeout: 268 seconds]
<Bike>
the standard cl types have defined lambda lists. that's why swank has a database of them that works on all implementations, as aforementioned.
<stacksmith>
Bike: where is swank's database?
surya_ has quit [Ping timeout: 240 seconds]
surya has quit [Ping timeout: 260 seconds]
<Bike>
swank-backend::*type-specifier-arglists*, defined in backend.lisp
<Bike>
there actually aren't that many standard compound types, as you can see
<stacksmith>
Bike: thanks.
terpri has quit [Ping timeout: 248 seconds]
nowhere_man has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
<billitch>
Common Lisp : even the FIFOs are wrong
<billitch>
stacksmith: have you taken a look at common lisp type checkers ? i know Qi/Shen has one
<jmercouris>
I'm doing an article soon that has no equivalency
<jmercouris>
and that is hooks
<stacksmith>
billitch: I have not (and probably should). However I have little interest in actually checking types, reading the forms in question, or interning any symbols. Just a structural check on a source representation of a representation of lisp code.
<stacksmith>
blah, my typing is subpar.
<billitch>
stacksmith: i would use it for a generalized refactoring of CL type system
<billitch>
some kind of translation to CL2
<billitch>
with interfaces with or without multiple dispatch
<stacksmith>
not representation of representation , just representation. billitch: What are you referring to? A type-checker?
kdridi has joined #lisp
<billitch>
the swank db
<billitch>
=)
<stacksmith>
billitch: ah. Well, there is not much there. Swank does some things that may be not so good, like &any which is not as useful as it should be...
<billitch>
i love common lisp but hate some packaging idiosyncraties
<billitch>
cies*
<billitch>
have stable core interfaces with even no variable length arguments
<billitch>
have it all context free up to a certain level of functionality
<billitch>
clojure is good at APIs it would seem
<stacksmith>
billitch: It may be hard as apply and &rest kind of work together, pretty low down...
<billitch>
stacksmith: i would give them a star
<billitch>
except for #'+
<Bike>
???
<billitch>
i would also like nested directories/packages
<billitch>
and implement ls throughout to navigate the lisp image like a unix system
<stacksmith>
billitch: I've thought about many things like that, and generally after much thinking find many reasons to not do that...
<billitch>
so every variable/definition/etc is a directory
<billitch>
and linked lists become hierarchical trees/graphs
<kdridi>
Hey guys! I’m working on a small lisp interpreter in c++. With lisp-like-fully-featured language is the easiest to implement?
<stacksmith>
Scheme?
<Bike>
full features aren't easy to implement
<stacksmith>
Lisp In Small Pieces
<Bike>
also, this is a channel for a particular language, common lisp
<Bike>
maybe try ##lisp
<kdridi>
stacksmith: thx for the advice ;-)
<kdridi>
Bike: I’ll try that, thx! ;-)
deng_cn has quit [Read error: Connection reset by peer]
<billitch>
are there scenegraph libraries in CL ?
<stacksmith>
billitch: CL syntax is a local minimum that is pretty hard to beat. Hierarchies of packages for instance introduce many ambiguous situations, some quite bizzare.
<billitch>
stacksmith: i already have hierarchical packages if i put / or . in their names
<billitch>
I'm currently writing a VFS in common-lisp
<billitch>
and actually every value can be addressed by a hierarchical pathname
deng_cn has joined #lisp
<billitch>
plus it seems to be a way to think and organize persistent data that almost every human is OK with
<stacksmith>
What makes it a hierarchy as opposed to a bunch of names with / or . 's in them?
<billitch>
maybe the only transcendental thing about operating systems and programming languages is they all reimplement the hierarchical file naming system as a core component
<billitch>
that and a memory management unit
fourier has quit [Remote host closed the connection]
<jackdaniel>
you're welcome ;-)
krwq has joined #lisp
<billitch>
many lisp students come at one point where they reimplement lisp, but very few C programmers get to a point where they just recode VFS features, unix is well accepted now i think
shrdlu68 has quit [Ping timeout: 248 seconds]
<billitch>
only unix idiosyncracies have run a long way too
<billitch>
I've trolled the OpenBSD mailing lists in the past to advocate Common Lisp now the other way around
<stacksmith>
billitch: while I applaud your effort, unix file systems have some unbearable issues with links, searches and general fucklery...
<billitch>
stacksmith: i do not know any open source project not primarily targeting the unix/ftp/vfat filesystems as persistence database
<billitch>
as a data itself
<stacksmith>
?
<borodust>
jackdaniel: what was it? did you summon the bodge overlord? ;p
<billitch>
we as programmers tend to underestimate the filesystem because we already attribute historical functions to it and is core to our historical understanding of computers
<jackdaniel>
I've answered your question regarding scenegraph implementation in CL
<billitch>
i would lay out every lisp function as a file and a directory with all introspection informations available
<billitch>
because it is natural to browse data using `cd` and `ls`
<billitch>
it does not have to really be on disk
damke has joined #lisp
<billitch>
i used to have all of ~/.cache/common-lisp on a ramdisk
BitPuffin has quit [Remote host closed the connection]
<stacksmith>
billitch: gah. Seriously, consider what it means to have a hierarchy of packages. Do packages contain other packages? Is there a search mechanism that uses the hierarchy? Is there a dynamic 'path' mechanism? what happens to symbols that collide? This is a serious tarpit.
random-nick has quit [Read error: Connection reset by peer]
damke_ has quit [Ping timeout: 264 seconds]
<billitch>
(defmethod ls ((pkg package)) ...)
<billitch>
there you get symbols, other packages, etc
<billitch>
cat /home/dx/package.lisp/my-package/my-function :- prints out function definition
jfb4 has quit [Ping timeout: 256 seconds]
asarch has quit [Quit: Leaving]
<billitch>
we early on intuited the rule that a hierarchical pathname is a slow interface because it has to be on disk but it is not true it is just an addressing scheme
<pjb>
billitch: also, somebody implemented a FUSE giving access to a lisp image. So CL functions are accessible to the shell as commands found in directories corresponding to packages.
<billitch>
pjb: awesome =)
<rumbler31>
what?
<pjb>
It was a few years ago, perhaps it has bit-rotten some?
<billitch>
I want it the other way around : that all VFS be running in user land
<billitch>
and identification is done with public key crypto
<stacksmith>
billitch: what you are describing is not a hierarchy. Packages are flat. You are talking about a shell-like interface for the REPL, which can be useful but linux command semantics are rather different than lisp functions...
<billitch>
stacksmith: yes but at the very least i should be able to use the same interface to list packages, functions, generics, ...
<billitch>
they are in the "running lisp image" directory
<stacksmith>
(describe ...)
<billitch>
in my utopic vfs
<billitch>
i think the only trouble is that by the time we teached hierarchical file naming systems we mostly teached slow operating systems and databases
<billitch>
and it's only default as a valid subject is that everyone is concerned with it
<stacksmith>
I mean, I think I understand what you want (and I want something similar, I think). But many of us consider filesystems a somewhat necessary evil, do not appreciate their semantics, consider graphs superior to trees, feel that Lisp should not be contaminated by the underlying OS, etc.
<billitch>
yes well i was concerned with easy representations of graphs and tried to survey what naming schemes were good, and there is mostly : Flat, and Hierarchical
<billitch>
Hierarchical completely winning over the persistent and transactional data with URL and UNIX and MS VFS
<stacksmith>
Filesystems hierarchies completely miss the mark in that there is a pretense that files are things that are inside other things. That worked for Mac Plus and a floppy to show people that 'computers are simple - store your recipes in a 'recipe' folder'. The mess with hard and symbolic links... Well, I don't want to preach. let me know when it works.
mason has left #lisp [#lisp]
<billitch>
stacksmith: well I come from the Web2 crowd and they did an awesome work upon the RESTful URIs basically replacing the UNIX vfs
deng_cn has quit [Read error: Connection reset by peer]
<billitch>
stacksmith: what's wrong with links ?
<billitch>
with REST and URI a file has a type and can be a directory
<billitch>
but in CL a symbol can have a function and data so it is more a namespace than an actual data structure
deng_cn has joined #lisp
<stacksmith>
I stay as far away from the Web2 crowd, and will avoid Web3 crowd just as I did with Web1 crowd. With any luck I will live long enough to avoid Web4...
<billitch>
no reason it could not be hierarchical
<billitch>
there might or might not be overlap between naming and CLOS
<billitch>
no reason to support the python packages in filesystem thing
<billitch>
i tend to have lisp systems in their own directory
scymtym has joined #lisp
<billitch>
stacksmith: I host most services on UNIX with hard and symbolic links part of the core features I use
<billitch>
it works
<billitch>
BSD and Linux
<stacksmith>
You are still not talking about hierarchies or containment or inheritance or dynamic search mechanism or anything other than calling packages "directories" for no reason. A brilliant part of Lisp is separating symbols from other things, and defining very simple rules about how symbols are found.
<billitch>
with SBCL
<stacksmith>
I mean if you have a hammer, everything is a nail.
<billitch>
CL and UNIX are big hammers =D
<billitch>
a / separated string is a very powerful hammer
<billitch>
gives order, is composable, good key for key value in a graph db
<billitch>
very smart choice by os designers if you want my opinion
<billitch>
question is why data is not more like its addressing scheme to exhibit functional programming primitives
<stacksmith>
I prefer finer tools. C is a hammer. CL can be used as a hammer, much like keyboard, with varying results. I can think of many reasons for a hierarchy of packages, but to make it more like Unix is far from any of them.
<billitch>
stacksmith: I like precise, simple, hackable hammers
<jackdaniel>
I don't think many people here are as enthusiastic as you with unix (I mean - most of us probably use Linux or Unix on daily basis, but that's far from being overjoyed how things are on these systems)
<billitch>
jackdaniel: I build all my system from sources, i486
<stacksmith>
Ditto. We put up with it.
<billitch>
all lisp packages are open source from git
<phoe>
unix is decent
<Xach>
Shinmera: Do you ever have trouble connecting to api.twitter.com for chirp stuff? I'm not getting any rate limiting errors, but my cron job keeps timing out just trying to make an SSL connection.
<stacksmith>
It's better than propriatary bullshit.
<billitch>
I think if there is a bug I have a way to fix it.
<stacksmith>
But files are an abstraction that some of us consider unfortunate, and others have proven to be unnecessary.
<billitch>
OT: we should have an SSL opt-out for everything
<billitch>
stacksmith: I agree all of my Lisp stack is flat namespacing
<billitch>
I'm afraid of scaling
compro` has quit [Ping timeout: 252 seconds]
<billitch>
We could live try multiple versions of package with ability to roll-back loading
<billitch>
same package in different namespace
<billitch>
i'm thinking about paying a CL compiler
<billitch>
is it worth it ?
<billitch>
I mean I almost never had trouble with SBCL
<billitch>
I think most companies use LispWorks
<stacksmith>
Well, you may be confusing a package with other things... There are good reasons for packages containing symbols, and not systems.
<billitch>
well ls could come with a schematic contains-types method to only have symbols and packages
<billitch>
there would be good reasons for (contains-type #<package> 'asdf:system) to return NIL
<stacksmith>
billitch: I have to go.. Good luck with your quest.
<billitch>
=)
<billitch>
cheers
random-nick has joined #lisp
<billitch>
jackdaniel: what's wrong with those Unices ?
<billitch>
where's Mezzano at now ?
<billitch>
i'm wondering how they will mix persistence and multi-user permissions
deng_cn has quit [Read error: Connection reset by peer]
kdridi has joined #lisp
rpg has joined #lisp
deng_cn has joined #lisp
kdridi has quit [Client Quit]
<stacksmith>
There is always a way to do a given thing in any language. The questions are: how ugly is it? can you do it once and never think about it again?
hiroaki has joined #lisp
<stacksmith>
More importantly: can you change your language to do it for you, using the same language?
<krwq>
unless you recommend something else for generating bindings
<dlowe>
can you add features to your language without having to wait for the blessing of the language maintainers?
<Bike>
jmercouris: bad let syntax
<jmercouris>
Bike: Ah damnit yes
<jmercouris>
I've been using my own with-result macro lately
<jmercouris>
which has slightly different syntax, maybe I should make it look more like let
<jmercouris>
thank you
mejja has quit [Quit: mejja]
<Bike>
incidentally, i'd probably abstract it a little more and (defun hook-hash (name) (ensure-gethash hook-name *available-hooks* (make-hash-table ...)))
<jmercouris>
I don't understand
<jmercouris>
can you please explain?
<jmercouris>
is "hook-name" in the function body supposed to be "name"?
vaporatorius__ has joined #lisp
vaporatorius has quit [Quit: Leaving]
<Bike>
er, yes.
vap1 has quit [Quit: Leaving]
<Bike>
just a simple thing. in case you change the hash table test later or something.
<jmercouris>
Ah okay, I see
<jmercouris>
perhaps
vaporatorius has joined #lisp
<jmercouris>
I'm generally okay with breaking api though, as I'm not even in version 1.0 yet
vaporatorius has quit [Read error: Connection reset by peer]
aindilis has joined #lisp
<Bike>
hings should be easy to fix once you've broken them
<jmercouris>
:D
<jmercouris>
I'm not sure if you are saying that as a suggestion, or as a sarcastic joke :D
<Bike>
no, i'm serious
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<jmercouris>
Yeah, I imagine they will be
<jmercouris>
so no worries!
<jmercouris>
Is there a way to remove a hash key? other than just setf'ing it's value to nil?
<aeth>
jmercouris: Setting to NIL doesn't remove it. It makes it (values NIL T) while removing it makes it (values NIL NIL)
<jmercouris>
I see, that is useful information, thank you
<jmercouris>
so you can know if it was set before
<jmercouris>
which remhash also tells you
<jmercouris>
seems this pattern exists in CL, you can know if things have been set or not
<jmercouris>
like with optionals, and default values in args for example
<jmercouris>
that seems to be unique to CL
<jmercouris>
at least of the languages I know
mlf has joined #lisp
<Shinmera>
Slots and variables too.
<Bike>
you need out of band signaling, yeah. nowadays there are a couple languages that use option types for it
<Shinmera>
Rust and Haskell to name two
<jmercouris>
Any that predate lisp?
<jmercouris>
or is it a lisp originating concept?
pierpa has joined #lisp
<jmercouris>
do you guys think I should start adding tests to my program or no?
<jmercouris>
not anything GUI related, but the core functionality
<Shinmera>
Tests significantly impact development speed.
<Bike>
option types are pretty old, i think
<jmercouris>
Shinmera: You think they will slow me down?
aeth has quit [Quit: Reconnecting]
<jmercouris>
Aka, too soon?
aeth has joined #lisp
<_death>
tests solidify design decisions, so choose the parts you feel will remain stable
<Shinmera>
Whether it's the right time or not all depends on your confidence / decision about how fixed your test is.
<Shinmera>
*your code is
<jmercouris>
I think it is too soon
<Shinmera>
If you think your design is solid and won't change much, write tests.
<jmercouris>
I am not confident at all in my design
<jmercouris>
there is still so many things I would like to change
<stacksmith>
jmercouris: Many different opinions on that... I would just make functions you can test from REPL, and when things get out of hand, write tests. I find that I change things around too much in the beginning to bother with formal tests.
Timzi has left #lisp ["ERC (IRC client for Emacs 25.3.1)"]
Tobbi has quit [Ping timeout: 268 seconds]
<Shinmera>
If you have a public interface that users should use and you don't want to break compatibility -- that's a perfect indicator that they should be test-covered.
vlatkoB has quit [Remote host closed the connection]
<jmercouris>
Shinmera: Well, there is a public interface that users use, but I don't mind breaking their compatibility in the name of progress
<jmercouris>
I'm sure linus would scream at me until he is blue in the face, but I have at most 20 real useres
<jmercouris>
and it is not that I want to make them regret using next, but that we need to improve the api, and I'm sure they'd understand
<jmercouris>
I really want to improve my interface to the GUI, this is something I've been thinking about for months and months
<aeth>
jmercouris: Certain things are pretty hard to test, too, like rendering.
WorldControl has joined #lisp
<jmercouris>
I'm too tired to explain now though, I'll talk about it tomorrow, and hopefully someone has some good ideas
z3t0 has quit [Remote host closed the connection]
<jmercouris>
aeth: I don't worry too much about that, I only want to test the core CL only parts
<jmercouris>
anyways, thank you all for your opinions
nowhere_man has joined #lisp
WorldControl has quit [Client Quit]
<Shinmera>
While all of my published projects have docs, most of them don't have tests. Which is unfortunate, but yeah.
<Shinmera>
I consider documentation vastly more important than tests.
<Shinmera>
(and people that say tests are documentation can fuck right off)
<_death>
just don't have bugs
<Shinmera>
I wouldn't dare
<_death>
then you don't need tests :)
<jmercouris>
And anyways, by definitely all code you write is bug free
<jmercouris>
the restarts you get are kind notifications from the system that you've discovered a feature
<jmercouris>
they let you know "by the way, doing action x results in this", and then you may decide whether you want that feature or not
<_death>
there are Lispy references to developing a program in a debug session.. they remind me of writing programs using debug.exe
<stacksmith>
_death: design decisions are mostly wrong in my case. Heck, more often than not I find out that the problem I am solving is not _the_ problem in the first place...
z3t0 has joined #lisp
<stacksmith>
I've been careful to avoid making design decisions and 'listen to the wind'. When things get too complicated, I find that I was just very wrong about my model, and wind up replacing gobs of code with 10 lines...
<Shinmera>
I usually get smaller libraries done first try, but bigger systems always need at least 3 rewrites before they're adequate.
epony has quit [Ping timeout: 256 seconds]
<Shinmera>
Radiance had, if we count previous framework iterations, 6 rewrites, most of those complete from-scratch new starts, including everything I wrote to work with it.
<jmercouris>
stacksmith: Oh have I :D
msb has quit [Ping timeout: 256 seconds]
kdridi has joined #lisp
<jmercouris>
I think rewrites are an unfortunate necesity
<jmercouris>
I've found myself doing several rewrites of different parts of next
<jmercouris>
I've been more happy with the code every time since
<jmercouris>
as you learn more you think "ah, I could have done it that way" and that changes the way you think
<jmercouris>
and then, you realize that there is a much better pattern
<Shinmera>
Iteration is part of any design process, and with code you need to be so detailed that there's at one point nothing else to do but to write the actual code for it, which in turn becomes part of the design process.
z3t0 has quit [Ping timeout: 260 seconds]
<stacksmith>
The more you can actually act on the 'ah', the more likely you will come up with the right solution.
<stacksmith>
I've been involved in too many stupid projects that were done a certain way because the cost of rewriting was too high.
<Shinmera>
stacksmith: *was believed to be too high
<Shinmera>
Not estimating the amount of costs produced by the shitty code base
<stacksmith>
Well, they were not Lisp projects :)
<Shinmera>
Not to say that rewriting is always a good idea, it's often not, but it sometimes is.
kdridi has quit [Client Quit]
<_death>
I found rewriting to be beneficial in many cases, but I guess it depends on who does it ;)
<stacksmith>
It's like optimization, except the other way around. Premature rewriting is much cheaper.
<jmercouris>
there's a lot of sunken cost fallacy in software firms
kdridi has joined #lisp
<Shinmera>
Optimisation of any kind (cost, effort, etc included) is very hard.
<stacksmith>
The ability to explore the problem space is crucial
<jmercouris>
cost is easy to optimize
<jmercouris>
just trim features
<Shinmera>
Then you cost yourself sales ;)
KongWubba has quit [Ping timeout: 256 seconds]
xrash has quit [Ping timeout: 265 seconds]
klixto has quit [Quit: Konversation terminated!]
<jmercouris>
Do you think I should have a default hook for every command?
<jmercouris>
or is that too much?
<stacksmith>
Are you talking about the browser?
<jmercouris>
yes
brendyn has joined #lisp
varjag has quit [Ping timeout: 256 seconds]
<stacksmith>
What would that solve?
kdridi has quit [Client Quit]
<jmercouris>
the ability to hook into any command
<jmercouris>
as opposed to only being able to hook into wherever i IMAGINE would be useful
<Shinmera>
Don't see why not. Not like it's going to be performance crucial
JenElizabeth has quit [Ping timeout: 240 seconds]
<jmercouris>
makes sense, yeah
<_death>
unless you have commands like self-insert-command ;)
<jmercouris>
no, I don't have such commands
<jmercouris>
luckily not
<stacksmith>
Only if it makes sense. In some cases you need to guarantee that some commands do exactly what they always do...
Chream has quit [Ping timeout: 248 seconds]
<_death>
but then it seems more like an advice facility
<jmercouris>
well, it kind of is like that
<Shinmera>
Eh, it's more about making the interface pluggable.
<Bike>
I thought this was already emacs like so you can just redefine all the key bindings/actual interface.
deng_cn has quit [Read error: Connection reset by peer]
shka has quit [Ping timeout: 248 seconds]
pillton has joined #lisp
<jmercouris>
you could redefine whatever you like, but maybe you just want to do something really trivial
<jmercouris>
like save the pages you visit to a log file or something
<jmercouris>
idk, you could (add-hook :set-url write-to-log)
<jmercouris>
everytime you visit a url, then go ahead and write something to the log
deng_cn has joined #lisp
<jmercouris>
that's a bad example, because there already is history, but yeah
<stacksmith>
Something about that bugs me.
<stacksmith>
Then you need a way to remove your hooks, seach hooks, and otherwise manage them...
<jmercouris>
well, here's the real reason I wanted to implement hooks
<jmercouris>
I wanted to implement hydra
<jmercouris>
like the emacs plugin
<jmercouris>
I already have spent time thinking about all those faculties, and they noe exist in my program
<jmercouris>
s/noe/now
<stacksmith>
jmercouris: With all due respect to emacs, I would be careful using it as a shining beacon of a scalable user-interface...
<jmercouris>
I understand, it is a terrible design
<stacksmith>
I didn't want to use those words...
<jmercouris>
I have all the time reasons to be angry at it, but I don't think hooks is one of them
<Shinmera>
Hooks are fine.
<jmercouris>
AeroNotix: also expressed similar thoughts the other day :D
razzy has joined #lisp
<jmercouris>
it was about passing global context around
z3t0 has joined #lisp
<stacksmith>
Well, the entire problem of a pile-up of features from various sources is an issue. The interaction of hooks along with their sequence makes for very painful bugs.
<jmercouris>
yeah, we talked about that as well
Karl_Dscc has quit [Remote host closed the connection]
<jmercouris>
if I am feeling really ambitious I can do a :depends-on type thing for each hook
<jmercouris>
and make an execution order
<jmercouris>
as long as there are no cycles of course
<Shinmera>
DAGs, DAGs everywhere
<jmercouris>
I'm not there yet, I'm just doing simple things for now
<jmercouris>
Shinmera: DAG?
<stacksmith>
But for tasks that are entirely unrelated to others, like your *on-page-visit* hook is useful.
<jmercouris>
directed asynchronous graph?
<Shinmera>
jmercouris: Directed Acyclic Graph
<jmercouris>
ayclic, right
<stacksmith>
yup.
<jmercouris>
again though, one step at a time
<jmercouris>
it took forever to just get here
<Shinmera>
Deeds, an event system I wrote, allows priority between event handlers via a dependency scheme.
<Shinmera>
The use case hasn't come up often yet, but where it did it was neat.
<stacksmith>
Things like that make me shudder and think of make...
djinni` has quit [Quit: Leaving]
<jmercouris>
Well, this a potential use case
<Shinmera>
stacksmith: What else would you suggest
<jmercouris>
So many difficult questions about how to architect my program
<_death>
any kind of plan
<jmercouris>
_death: What do you mean?
<stacksmith>
and prolog, and other things that work in mysterious ways, when they do work...
<jmercouris>
Do I have a plan for future releases or?
<stacksmith>
Shinmera: no disrespect. Just fear!
<_death>
jmercouris: plans may be modeled as dags.. usual plan for make is the plan of building a system
hhdave has joined #lisp
z3t0 has quit [Ping timeout: 276 seconds]
<jmercouris>
I wish I had someone who was a CL professional to just say "here, don't do that, that's a stupid design, do this"
<Shinmera>
People here could if they had time and motivation to :)
<jmercouris>
I kind of do, via this channel, but it involves me thinking first of many stupid designs and then asking people their opinions
<jmercouris>
Well yeah, people enjoying telling me why I am wrong :D
<jmercouris>
so that is my way of getting expert insight, but yeah
<jmercouris>
_death: ah I see
<Shinmera>
I meant for things that aren't distillable to a code snippet or a simple question
<_death>
jmercouris: making stupid designs is one path to forming opinions about what's stupid ;)
<stacksmith>
But then again, people will say you are wrong regardless...
<jmercouris>
_death: I must be an expert on all things stupid then
djinni` has joined #lisp
<jmercouris>
feels like all design decisions for next have been wrong so far
<jmercouris>
perhaps thats because I set out to make emacs as browser, maybe I should have just set out to make emacs like UI as a browser
<stacksmith>
Probably true! I am on rewrite #32.
<Shinmera>
jmercouris: If I understand this is also your first Lisp project, yeah?
<Shinmera>
That probably has a lot to do with it.
<jmercouris>
Yes, it is
<jmercouris>
yeah, but I am not a new engineer
rpg has joined #lisp
<jmercouris>
sure feels like it though
mishoo_ has quit [Ping timeout: 260 seconds]
<jmercouris>
lisp is a good way to completely destroy one's self esteem and ego
<Shinmera>
Lisp's flexibility makes it all the harder to find the global optimum
<makomo>
jmercouris: and then rebuild it!
<jmercouris>
it's like being born again or something
<makomo>
haha
<jmercouris>
Shinmera: The only way to motivate people and to make sure they have time is if they have money mostly
<jmercouris>
or if you are just somehow a super passionate leader that can convince people of something, or you can trade social capital or some other such asset
<jmercouris>
like if I was the leader of the WWF or something, I'm sure people would be more open to working on some project
<jmercouris>
actually, even if you are employeeing people via cash, you still have to make them passionate about a project
<Shinmera>
The World Wildlife Fund?
<jmercouris>
yeah, I was just picking a random non-profit with good support
<jmercouris>
maybe a more appropriate one would have been the FSF
<_death>
Shinmera: as clothing helps in covering a wart, so do programming languages help in covering deficiencies in programs, the process of writing them, and the persons involved.. Lisp is more like water (maybe murky water ;), intimate and personal, leaving the programmer naked with quirks, creativity, deficiencies, ups and downs, for all the world to see
nowhere_man has quit [Quit: Konversation terminated!]
nowhere_man has joined #lisp
rumbler31 has quit [Ping timeout: 260 seconds]
markong has joined #lisp
randomstrangerb has quit [Ping timeout: 268 seconds]
randomstrangerb has joined #lisp
hhdave has quit [Quit: hhdave]
vibs29 has quit [Ping timeout: 256 seconds]
<jmercouris>
Alright, I already see that I need to do the dependencies
z3t0 has joined #lisp
z3t0 has quit [Remote host closed the connection]
<jmercouris>
I already tried to write some hook code that depending on something else
z3t0 has joined #lisp
<_death>
this suggests that you don't want hooks
<jmercouris>
yes, I could have chained them in one long function, but package maintainers from different packages will not expect that
<stacksmith>
Occam's razor.
<jmercouris>
why don't I want hooks exactly?
<jmercouris>
how might a user hook into the functionality then otherwise?
<jmercouris>
I see no other magical mechanism, unless they are to override every single function in some sort of chain
JenElizabeth has joined #lisp
z3t0 has quit [Remote host closed the connection]
vibs29 has joined #lisp
<stacksmith>
Have you considered generic functions?
<jmercouris>
Can you expand upon that
z3t0 has joined #lisp
<stacksmith>
Well, it's another 'hook' mechanism. Built in.
<jmercouris>
Turning everything into a method is not a solution
<jmercouris>
unless I'm not understanding what you mean
<stacksmith>
If there is a class you expose, say 'browser', an advanced user can subclass it and make modifications - minor or major.
<jmercouris>
I know about :before and :after in methods
<stacksmith>
And yes, it allows chaining to existing methods.
<jmercouris>
I'm not sure I agree with you, but thank you for the suggestion
<stacksmith>
At a certain point, the best 'extension system' for a Lisp project is Lisp.
quazimodo has joined #lisp
<jmercouris>
well, maybe
<jmercouris>
you may be right, I might strip the hook functionality out later in favor of your design
<stacksmith>
If you think about it, you have to do a lot of work to 'jail' the user.
<jmercouris>
I don't care to 'jail' the user
<jmercouris>
that's not the point, I just want them to be able to hook into any point in my program
<stacksmith>
Including writing complicated systems to make sure that the limited functionality does not interfere with other parts of itself.
<jmercouris>
and my program doesn't consist entirely of defmethod
<stacksmith>
I don't mean in a derogatory way.
<_death>
hooks tends to be just a simple mechanism where the hook functions are usually independent of each other.. for more elaborate mechanisms there's advice (say in emacs, where they have depth) or indeed generic functions, or event systems like Shinmera's
nowhere_man has quit [Ping timeout: 248 seconds]
<jmercouris>
stacksmith: You seem to have a lot of ideas, why don't you make some PRS ;)
<stacksmith>
By jail I mean limit to something reasonable perhaps. Providing a set of hooks is a way of limiting the user to those hooks instead of rewriting...
z3t0 has quit [Ping timeout: 256 seconds]
sjl has joined #lisp
<stacksmith>
jmercouris: I've been doing a lot of rewrites! not worthy of pull-requests if that
<stacksmith>
what you mean by PRS?
<jmercouris>
PRs = pull requests
<jmercouris>
I'm just saying, you have some opinions, if you think you can do it better, I would be glad to accept your code
<jmercouris>
I'm not a good developer, at least not in Lisp, I know that, so I'm always interested in other takes
<stacksmith>
OK - I really do not mean to be negative!
Bike has quit [Ping timeout: 260 seconds]
<jmercouris>
It is hard to convey intent and emotion over text, I'm not upset
<jmercouris>
It was just a friendly suggestion, if you are interested, I am open to PRs, and always looking for contributors, that is all
<stacksmith>
Got it.
smasta has joined #lisp
<stacksmith>
I've been breaking my brain with my own code... I'll take a look when I get a chance.
<jmercouris>
Don't worry about it, if you like it you find the time, if you don't, I won't be offended, I understand that our own projects are always most interesting
shrdlu68 has joined #lisp
<jmercouris>
does anyone know of a Common Lisp toolkit for lemmatization?
<jmercouris>
I found a porter-stemming implementaiton already, but now I'm looking for lemmatization to do a more sohpisticated semantic matching
quazimodo has quit [Read error: Connection reset by peer]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]