phoe changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.16, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
meepdeew has quit [Remote host closed the connection]
meepdeew has joined #lisp
LunarJetman has quit [Quit: LunarJetman]
jack_rabbit has quit [Read error: Connection reset by peer]
ebrasca has quit [Remote host closed the connection]
Autolycus has joined #lisp
eabarbosa has joined #lisp
khisanth_ has joined #lisp
vt240 has joined #lisp
jack_rabbit has joined #lisp
libertyprime has quit [Ping timeout: 258 seconds]
jack_rabbit has quit [Client Quit]
jack_rabbit has joined #lisp
shangul has joined #lisp
ym555 has joined #lisp
ym555_ has quit [Ping timeout: 246 seconds]
meepdeew has quit [Remote host closed the connection]
rdh has quit [Remote host closed the connection]
Achylles has quit [Quit: Leaving]
campy_fellow has joined #lisp
zotan has quit [Ping timeout: 246 seconds]
zotan has joined #lisp
makomo has quit [Ping timeout: 268 seconds]
dale has joined #lisp
libertyprime has joined #lisp
libertyprime has quit [Read error: Connection reset by peer]
oni-on-ion has joined #lisp
libertyprime has joined #lisp
libertyprime has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
shifty has joined #lisp
libertyprime has joined #lisp
Oladon has quit [Quit: Leaving.]
sauvin has quit [Ping timeout: 245 seconds]
aautcsh has quit [Read error: Connection reset by peer]
sauvin has joined #lisp
<LdBeth> Good evening
torbo has joined #lisp
<no-defun-allowed> Hey LdBeth
<eabarbosa> xa
slyrus_ has joined #lisp
anamorphic has joined #lisp
marusich has joined #lisp
slyrus__ has quit [Ping timeout: 255 seconds]
shifty has quit [Ping timeout: 244 seconds]
Nomenclatura has quit [Ping timeout: 258 seconds]
Nomenclatura has joined #lisp
moldybits has joined #lisp
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 258 seconds]
esrse has joined #lisp
libertyprime has quit [Ping timeout: 258 seconds]
libertyprime has joined #lisp
nicdev has quit [Ping timeout: 258 seconds]
john2x has joined #lisp
Necktwi has quit [Ping timeout: 255 seconds]
anamorphic has quit [Ping timeout: 255 seconds]
Autolycus has quit [Quit: Connection closed for inactivity]
shangul has quit [Remote host closed the connection]
Necktwi has joined #lisp
<beach> Good morning everyone!
<beach> minion: memo for makomo: Yes, you are right, with SLIME-INDENTATION at least, the arguments of the first and third MAPCAR are indented differently.
<minion> Remembered. I'll tell makomo when he/she/it next speaks.
Nomenclatura has quit [Quit: q]
shangul has joined #lisp
<pjb> beach: Hi! This article explains why being efficient is not rewarded: https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-or-the-office-according-to-the-office/
<pjb> (in the enterprise)
<pjb> amongst other things…
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
Lord_Nightmare has joined #lisp
pillton has joined #lisp
<beach> pjb: Thanks. That can come in handy in my talks to industry.
_whitelogger has joined #lisp
rumbler31 has joined #lisp
libertyprime has quit [Read error: Connection reset by peer]
gravicappa has joined #lisp
oni-on-ion has quit [Remote host closed the connection]
nanoz has joined #lisp
Bike has quit [Quit: Lost terminal]
Lord_of_Life has quit [Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine]
Lord_of_Life has joined #lisp
campy_fellow has quit [Ping timeout: 255 seconds]
mindCrime_ has quit [Ping timeout: 255 seconds]
campy_fellow has joined #lisp
eabarbosa has quit [Ping timeout: 258 seconds]
Nomenclatura has joined #lisp
Lycurgus has joined #lisp
nanoz has quit [Ping timeout: 246 seconds]
techquila has quit [Ping timeout: 248 seconds]
caltelt_ has joined #lisp
shifty has joined #lisp
caltelt has quit [Ping timeout: 258 seconds]
vlatkoB has joined #lisp
ym has quit [Remote host closed the connection]
shangul has quit [Ping timeout: 246 seconds]
dddddd has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
john2x has quit [Remote host closed the connection]
john2x has joined #lisp
john2x has quit [Ping timeout: 268 seconds]
shangul has joined #lisp
torbo has quit [Remote host closed the connection]
Tordek has quit [Ping timeout: 245 seconds]
Tordek has joined #lisp
frodef has joined #lisp
orivej has quit [Ping timeout: 244 seconds]
shangul has quit [Ping timeout: 246 seconds]
khisanth_ has quit [Ping timeout: 245 seconds]
sauvin has quit [Ping timeout: 258 seconds]
manualcrank has quit [Quit: WeeChat 1.9.1]
sauvin has joined #lisp
caltelt_ has quit [Ping timeout: 258 seconds]
khisanth_ has joined #lisp
jprajzne has joined #lisp
mulk has quit [Ping timeout: 255 seconds]
mulk has joined #lisp
JohnMS_WORK has joined #lisp
fivo has joined #lisp
shangul has joined #lisp
dale has quit [Quit: dale]
karlosz has joined #lisp
v88m has quit [Ping timeout: 245 seconds]
shangul has quit [Read error: Connection reset by peer]
rme has quit [Read error: Connection reset by peer]
rme has joined #lisp
mgsk has quit [Write error: Connection reset by peer]
avicenna has quit [Read error: Connection reset by peer]
jerme_ has quit [Write error: Connection reset by peer]
mgsk has joined #lisp
Duns_Scrotus has quit [Ping timeout: 258 seconds]
johs has quit [Read error: Connection reset by peer]
avicenna has joined #lisp
jerme_ has joined #lisp
gendl has quit [Read error: Connection reset by peer]
johs has joined #lisp
Duns_Scrotus has joined #lisp
gendl has joined #lisp
zigpaw has quit [Remote host closed the connection]
charh has quit [Ping timeout: 246 seconds]
charh has joined #lisp
scymtym has joined #lisp
<nyingen_> Any Parenscript users around? Escaping is really ruining my da
<nyingen_> day
<aeth> if no one can answer in here #lispweb also exists but that channel is very quiet
wigust has joined #lisp
wigust- has quit [Ping timeout: 244 seconds]
v88m has joined #lisp
varjag has joined #lisp
schweers has joined #lisp
techquila has joined #lisp
<LdBeth> nyingen_: escaping symbol name?
pierpal has joined #lisp
frodef has quit [Read error: Connection reset by peer]
shangul has joined #lisp
heisig has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
hhdave has joined #lisp
zigpaw has joined #lisp
hhdave has quit [Ping timeout: 255 seconds]
hhdave has joined #lisp
ym555 has quit [Ping timeout: 258 seconds]
<nyingen_> LdBeth: escaping backslashes
<nyingen_> I'm using a couchdb interface lib called clouchdb, which lets me define view functions using parenscript. These are compiled to javascript and sent to the couchdb server encoded in JSON
charh has quit [Ping timeout: 250 seconds]
<nyingen_> If I write for example "\s+" in a regex, parenscript escapes it to "\\s+", and then the JSON encoder escapes that to "\\\\s+"
<nyingen_> I'm not sure what to do about it. Maybe hack the JSON encoder (which is internal to clouchdb) to add a flag turning off backslash escaping?
<nyingen_> Using cl-interpol does not help because the problem is the extra escaping done by the JSON encoder
aerique has joined #lisp
<dim> is avoiding regexp a solution?
charh has joined #lisp
<nyingen_> dim: not really, no
<nyingen_> Parenscript seems to support injecting raw JS strings into its output, so that could possibly work
<nyingen_> If I can somehow tell parenscript not to escape backslashes, that would help
kajo has quit [Ping timeout: 250 seconds]
m00natic has joined #lisp
Oddity has joined #lisp
charh has quit [Ping timeout: 250 seconds]
charh has joined #lisp
<shka_> woooooooooaaah i got a fancy error
<shka_> More operand #<SB-C:TN-REF
<shka_> :TN #<SB-C:TN '", "!1[Const360] :CONSTANT>
<shka_> :WRITE-P NIL
<shka_> :VOP LIST> used more than once in its VOP.
<shka_> never seen this before
<beach> Oh, wow.
<scymtym> shka_: please report it in #sbcl or launchpad
<shka_> I will try to narrow this down
<shka_> currently my code is useless for reproduction purposes
<scymtym> thank you
oni-on-ion has quit [Remote host closed the connection]
<aeth> shka_: now that's a good error
Lord_of_Life has quit [Ping timeout: 246 seconds]
Lord_of_Life has joined #lisp
m00natic has quit [Ping timeout: 255 seconds]
elinow has joined #lisp
<shka_> aeth: ikr
john2x has joined #lisp
xantoz has quit [Ping timeout: 246 seconds]
Lycurgus has quit [Quit: Exeunt]
bendersteed has joined #lisp
joaofreitas_ has joined #lisp
gravicappa has quit [Ping timeout: 246 seconds]
gravicappa has joined #lisp
Lord_of_Life has quit [Ping timeout: 246 seconds]
Lord_of_Life has joined #lisp
ebrasca has joined #lisp
samebchase has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
<shka_> yo
<shka_> anything like racket lenses as library for the CL?
<Xach> shka_: what do racket lenses do?
wilfredh has joined #lisp
<shka_> essentially composable, funcallable objects for accessing values in values
<shka_> *in objects
<jackdaniel> Xach: if I may ask, when do you expect a new QL update?
v88m has quit [Ping timeout: 257 seconds]
<heisig> shka_: How about cl-locatives?
<minion> heisig, memo from no-defun-allowed: I'm not sure if I'll be awake when you come online but happy third birthday to Petalisp!
<shka_> heisig: let me check it, thanks for the tip
<shka_> heisig: looks rather cool, not sure if it is exactly what i want
<shka_> but i will read the manual
<no-defun-allowed> minion: i told you not to mind that memo and you said ok
<minion> well, i don't think i told you not to mind that memo and me said ok though
<LdBeth> First class pointer from lisp machine
<Xach> jackdaniel: today!
<jackdaniel> uh oh! thanks :)
<no-defun-allowed> minion: smartass
<minion> Sorry, I couldn't find anything in the database for ``smartass''.
<Xach> jackdaniel: do you have something to commit?
<jackdaniel> no, I was just curious and wanted to update software I work on
<shka_> heisig: yeah, it is great, i am glad that you showed it to me, just not what i need right now
<jackdaniel> at least nothing ready to be commited, I have plenty of junk which hardly compiles itself
elinow has quit [Quit: Leaving]
elinow has joined #lisp
elinow has quit [Client Quit]
elinow has joined #lisp
esrse has quit [Ping timeout: 246 seconds]
john2x has quit [Ping timeout: 248 seconds]
ggole has joined #lisp
lumm has joined #lisp
<gjvc> do i need to tell slime the root directory of my porject ?
<gjvc> project ?
<jackdaniel> no
<heisig> gjvc: Assuming you use ASDF and Quicklisp, you probably want to put your project in ~/quicklisp/local-projects .
<gjvc> even the ones i'm working on ?
<gjvc> as uh "clients" of all other libraries ?
<zigpaw> especially those ;)
<gjvc> oh
<gjvc> i am working on ~/work/GATE/genesis/src/lisp/gate/genesis/bootstrap/foo/bar.lisp and i have an sbcl wrapper in ~/work/GATE/genesis/bin/ which loads a userinit.lisp file containing quicklisp settings
dddddd has joined #lisp
<gjvc> the only problem i've really got stumped on is when *load-truename* returns /tmp/something in slime and path merges then don't work
<gjvc> (and the like)
<gjvc> also, i find I have to compile/evaluate the ql:quickload lines in my source before slime wil compile the whoel file
<heisig> gjvc: I am not sure what you are up to. Usually, you just need a short .asd file in your project and then a single call to ql:quickload.
<gjvc> ok, i have one of those. oh---wait you mean i write the .asd file and use ql:quickload to load the project via *that* ?
<gjvc> how does it know where to find the .asd file ?
<heisig> Because you place the .asd file in ~/quicklisp/local-projects :)
<gjvc> what if i want to work in ~/work/GATE/genesis/... ?
<gjvc> (this is a polyglot project)
<heisig> The easy way is to make symlinks from your project directories to ~/quicklisp/local-projects.
<gjvc> yuck
<heisig> The other way would be to tweak some Quicklisp or ASDF variables, but I forgot which ones.
<gjvc> and presumably those tweaks should go in the userinit file
<heisig> gjvc: Here is how the local-projects mechanism works: http://blog.quicklisp.org/2018/01/the-quicklisp-local-projects-mechanism.html
<gjvc> ace. thank you
joaofreitas_ has quit [Remote host closed the connection]
<pjb> gjvc: (push #P"/path/to/your/sources/" #| <- mind the final / for your directory! |# asdf:*central-registry*) (ql:quikload :your-system)
<pjb> gjvc: but it's easier to symlink /path/to/your/sources/ in ~/quicklisp/local-projects
<gjvc> lrwxrwxrwx. 1 gjvc gjvc 49 May 20 13:14 genesis -> home/gjvc/work/GATE/genesis/src/lisp/gate/genesis
<gjvc> -rw-r--r--. 1 gjvc gjvc 0 Apr 17 20:31 system-index.txt
<gjvc> in /home/gjvc/quicklisp/local-projects
<gjvc> ?
<gjvc> (leading slash should be there)
<gjvc> that pointed-to directory contains genesis.asd at the root of my source tree
<gjvc> i guess a single symlink pointing into the work directory is fine
<gjvc> thank you, pjb :-)
jmercouris has joined #lisp
<pjb> You can use relative links too; I have: ~/quicklisp/local-projects/com/informatimago -> ../../../src/public/lisp/
<pjb> (I have a com/ subdirectory).
Bike has joined #lisp
GoldRin has joined #lisp
eabarbosa has joined #lisp
shangul has quit [Ping timeout: 258 seconds]
igemnace_ has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
jmercouris has quit [Ping timeout: 258 seconds]
mingus has quit [Ping timeout: 259 seconds]
cosimone has joined #lisp
shangul has joined #lisp
libertyprime has joined #lisp
elinow has quit [Ping timeout: 258 seconds]
status402 has joined #lisp
elinow has joined #lisp
makomo has joined #lisp
<shka_> would calling lenses as described here https://docs.racket-lang.org/lens/lens-intro.html using CL language as "First class accessors" is valid description?
<Bike> i thought of it like setf. but with functions, so first class, sure
<shka_> ok
status402 has quit [Quit: status402]
<ggole> They don't mutate though, they return a copy with the specified part given a different value
<ggole> In a nested way
<ggole> It's analogous to setf, I suppose
amerlyq has joined #lisp
CrazyEddy has quit [Remote host closed the connection]
marusich has quit [Remote host closed the connection]
<flip214> any library suggestions for converting text or an URL to a QR or other machine-readable code?
orivej has joined #lisp
<nirved> flip214: (ql:system-apropos "qr")
mindCrime has joined #lisp
makomo has quit [Ping timeout: 258 seconds]
dale_ has joined #lisp
dale_ is now known as dale
heisig has quit [Quit: Leaving]
sjl_ has joined #lisp
jprajzne has quit [Remote host closed the connection]
libertyprime has quit [Ping timeout: 246 seconds]
mindCrime has quit [Ping timeout: 246 seconds]
v88m has joined #lisp
makomo has joined #lisp
warweasle has joined #lisp
m00natic has joined #lisp
shifty has quit [Ping timeout: 258 seconds]
oni-on-ion has joined #lisp
shangul has quit [Quit: sudo rm -rf /usr/*]
libertyprime has joined #lisp
aerique has quit [Ping timeout: 255 seconds]
<vt240> Hi, anyone know what is a fast way to read/write large vectors of double floats to a little-endian binary file?
<edgar-rft> vt240: the only way I know is https://common-lisp.net/project/ieee-floats/
<gaze___> any lispworks gurus here? I'm curious if funcall still works well after a tree shake
<beach> gaze___: I think you should ask that question to LispWorks tech support.
<gaze___> beach: Good idea
ebzzry has quit [Read error: Connection reset by peer]
rippa has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
libertyprime has quit [Ping timeout: 268 seconds]
<pjb> gaze___: as long as the function still exists…
<pjb> (defparameter *my-functions* (list (function a) (function b) (function c))) (funcall (aref #(a b c) (random 3))) should work.
<gaze___> let's suppose you're funcalling some functions that are _only_ funcalled
<gaze___> why would the tree shaker think to retain some stuff in a list?
<pjb> Then it depends on the smartness of the tree shaker.
<pjb> And how hard you make it for it to find what function name will ever be used in funcall.
<gaze___> that's precisely what I'm getting at
<pjb> (funcall (read)) is hopeless.
Younder has joined #lisp
<Younder> Lisp isn't dead it just smell funny eh Julia?
cosimone has joined #lisp
<gaze___> the whole notion of a language or a codebase dying is a bit funny to me
<gaze___> I understand that APIs can change underneath a codebase such that the codebase won't run anymore
<gaze___> and I understand that people might just not... work on the codebase, or use the codebase or whatever
lnostdal has joined #lisp
<gaze___> but people use 60-year old milling machines and lathes, and people use theorems and techniques that are a hundred years old or whatever
<gaze___> somehow we've all decided that code ages absurdly fast
<gaze___> lisp libraries are some of the few where people just decide that the library is "done." That's it. It does what it needs to.
<Josh_2> Doesn't help that language devs can change the language in later releases ¯\_(ツ)_/¯
aindilis has quit [Read error: Connection reset by peer]
JohnMS_WORK has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
elinow has quit [Read error: Connection reset by peer]
<katco> gaze___: that is a _huge_ reason i enjoy CL
<katco> a few years ago i downloaded and used a PoS tagging library written in the 70s, unmodified
eabarbosa has quit [Remote host closed the connection]
<gaze___> yeah that's incredible
<katco> part of the reason my personal projects use CL is because it's the best way i can think of to build a corpus of work and not have it degrade out from under me. i can actually build on it to create bigger and better things
aindilis has joined #lisp
maxxcan has joined #lisp
maxxcan has quit [Read error: Connection reset by peer]
<oni-on-ion> bit rot = lack of change. sounds more like the opposite of death
schweers has quit [Ping timeout: 264 seconds]
shangul has joined #lisp
<oni-on-ion> katco, hmm
<katco> sorry oni-on-ion, i'm unsure what you're trying to say. i think we're saying the same thing?
<oni-on-ion> katco, responding to gaze___ on bit rot. then thinking about what you said about building a corpus
anamorphic has joined #lisp
moldybits has quit [Quit: WeeChat 2.4]
lnostdal has quit [Remote host closed the connection]
Jesin has quit [Quit: Leaving]
fivo has quit [Quit: WeeChat 1.9.1]
hhdave has quit [Ping timeout: 258 seconds]
nowhereman has joined #lisp
moldybits has joined #lisp
nowhereman has quit [Ping timeout: 258 seconds]
Jesin has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
cosimone has quit [Ping timeout: 258 seconds]
anamorphic has quit [Quit: anamorphic]
LiamH has joined #lisp
cosimone has joined #lisp
anamorphic has joined #lisp
<gaze___> I've found myself becoming a software luddite where I just wanna distribute tiny executables dependent upon code written when people were performance and code size were important... writing guis based on win32 or whatever
torbo has joined #lisp
<gaze___> I think I'm just old or something
<Bike> win32 is small?
q9929t has joined #lisp
ym555 has joined #lisp
<gaze___> well what other way is there to write guis on windows?
<gaze___> it's not small but everything else is larger
<Bike> i mean, having a gui at all is kind of a big thing.
<Bike> some years ago that would have been the absurd extravagance
q9929t has quit [Client Quit]
nanoz has joined #lisp
<dlowe> start using 8-bit indexed images in your app
<pjb> gaze___: we've not all decided. Some fools have decided to shoot in their feet, by making incompatible changes. Their problems. If you use CL on Linux, you were good 30 years ago, and you'll be good in 30 years.
m00natic has quit [Remote host closed the connection]
<pjb> gaze___: in the meantime, who still knows what perl is?
<gaze___> yeah seriously. It's like a lisp image is an oasis from the javascript nonsense and everything proximitized by it
cosimone has quit [Ping timeout: 264 seconds]
<pjb> And most applications don't need a GUI, and 80% of those needing a GUI only need it for output so it can be a CLI generating pictures or movies…
eddof13 has joined #lisp
<pjb> And even if you think users need a GUI for input, you'll be happier if you can take text input and process batch instead of interactive.
cosimone has joined #lisp
arkaitz has joined #lisp
<gaze___> I soooorta agree. Having a gui for running scientific experiments interactively is very nice
<gaze___> or having a gui for tweaking parameters on a virtual synthesizer for making music is very nice
<gaze___> do I wanna open a config file and write in +100 Hz cutoff on my filters to tweak them so they sound right? no.
<pjb> If you want to write an AI to generate your synthesizing configurations, yes.
<pjb> Or if you want to manage thousands of sounds at once, you bet you want to do it with a script.
<gaze___> yeah of course
<gaze___> but what I really wanna do is be a part of the program I'm writing.
<gaze___> rather than giving it some information and telling it to "go"
<pjb> Then you want a lisp repl! :-)
eddof13 has quit [Ping timeout: 245 seconds]
<gaze___> I want a gui... lol.
<gaze___> this feels like my mom telling me "we have that at home" when what we have at home isn't actually the thing I want.
<anamorphic> gaze___: what are you making a gui for? that quantum compute stuff?
<gaze___> yep
<anamorphic> Cool. I was reading about QGAME recently (Quantum Gate And Measurement Emulator). It had a GUI
<gaze___> one already exists that our lab uses... uses python and pyqt. Coming from a background of driving experiments entirely from a REPL, having an interactive gui makes the experimental experience much much better.
<gaze___> experimental physics is a continuous exercise of trying to budget time, trying to figure out if one should spend time automating something, or if one should grit their teeth and be the human control loop that makes the experiment work "by hand"
<gaze___> so being able to tweak things by hand and get instantaneous feedback is just fantastic.
<dim> about UIs, nowadays lots/most of them are on the web, so make your program a lisp image that embeds a webserver?
<dim> gaze___: also have a look at clasp and CANDO projects where they have a Jupyter Notebook kernel for common lisp full with 3D output support
<anamorphic> Have you tried any of the Lisp gui bindings? qtools, gtk etc?
<Bike> gaze, are you actually looking for advice
<gaze___> I may just be whining. I'll leave ya'll alone.
<Bike> more concerned about us leaving you alone, really
<dim> I keep hearing about CL/tk too, from times to times, and in good ways apparently
<dim> also, McCLIM
<gaze___> qtools looks very very cool. It's also nice to hear that mcclim is being updated.
scymtym has quit [Ping timeout: 248 seconds]
dkmueller has joined #lisp
mangul has joined #lisp
<pjb> Also, win32 won't pass winter. With all that Windows 10 and stuff coming…
<pjb> On the other hand, printf or cl:format will last centuries.
shangul has quit [Ping timeout: 255 seconds]
<gaze___> you think so? I have the impression that microsoft is super good about backwards compatibility
<anamorphic> microsoft go to pretty extreme lengths to make win32 backward compatible
<gaze___> I'm sure they want to kill win32... but I sorta doubt they'll really kill it any time soon
<pjb> perhaps not soon, but soon enough. Just see how the phase out win7 for win10…
<pjb> Forcing upgrades, etc.
<gaze___> I use a program called Sonnet for doing microwave simulations... the gui is all win32 and the company is really small. Just the sheer amount of software like this that people depend on
maxxcan has joined #lisp
lnostdal has joined #lisp
dkmuelle1 has joined #lisp
mangul is now known as shangul
dkmuelle1 has quit [Client Quit]
anamorphic has quit [Quit: anamorphic]
mahabhusuku has joined #lisp
ravenous_ has joined #lisp
shangul has quit [Quit: sudo rm -rf /usr/*]
sauvin has quit [Read error: Connection reset by peer]
kajo has joined #lisp
lumm_ has joined #lisp
lumm has quit [Ping timeout: 258 seconds]
lumm_ is now known as lumm
koenig has quit [Ping timeout: 276 seconds]
cosimone has quit [Quit: WeeChat 2.3]
meepdeew has joined #lisp
koenig has joined #lisp
elderK has joined #lisp
kajo has quit [Ping timeout: 250 seconds]
gravicappa has quit [Ping timeout: 258 seconds]
meepdeew has quit [Read error: Connection reset by peer]
meepdeew has joined #lisp
z3t0 has quit [Read error: Connection reset by peer]
q-u-a-n has joined #lisp
arkaitz has quit [Quit: arkaitz]
maxxcan has quit [Read error: Connection reset by peer]
meepdeew has quit [Remote host closed the connection]
cosimone has joined #lisp
lumm_ has joined #lisp
lumm has quit [Ping timeout: 245 seconds]
lumm_ is now known as lumm
meepdeew has joined #lisp
kajo has joined #lisp
meepdeew has quit [Ping timeout: 248 seconds]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
Kundry_Wag has joined #lisp
maxxcan has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
_leb has joined #lisp
_leb has quit [Client Quit]
maxxcan has quit [Quit: maxxcan]
warweasle has quit [Quit: Clowns!]
meepdeew has joined #lisp
nanoz has quit [Ping timeout: 245 seconds]
manualcrank has joined #lisp
ravenous_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
karlosz has quit [Ping timeout: 252 seconds]
leb has joined #lisp
varjag has joined #lisp
skidd0 has joined #lisp
vlatkoB has quit [Remote host closed the connection]
asdf_asdf_asdf has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
leb has quit []
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.1)]
asdf_asdf_asdf has quit [Ping timeout: 256 seconds]
cosimone has quit [Quit: WeeChat 2.3]
ym555_ has joined #lisp
jmercouris has joined #lisp
meepdeew has quit [Remote host closed the connection]
<jmercouris> are there any exploits in any of the common implementations? how are these handled?
ym555 has quit [Ping timeout: 246 seconds]
karlosz has joined #lisp
meepdeew has joined #lisp
bendersteed has quit [Remote host closed the connection]
ggole has quit [Quit: Leaving]
<pjb> jmercouris: compile with (safety 0), use FFI. Otherwise, I don't know any.
ym555_ has quit [Ping timeout: 246 seconds]
Kundry_Wag has joined #lisp
ym555_ has joined #lisp
lumm has quit [Quit: lumm]
<jmercouris> pjb: interesting, no reports anywhere? nothing?
Kundry_Wag has quit [Ping timeout: 245 seconds]
<pjb> On the other hand, we're not a prized target. Too much work for too few systems to crack…
<jmercouris> security via obscurity, always the best :D
<sjl_> MITM'ing someone installing quicklisp libraries is something that comes to mind
<sjl_> since they're over bare http
<jmercouris> well, there is that...
<sjl_> though that's not part of an implemetation, of course
lavaflow_ has quit [Ping timeout: 245 seconds]
lavaflow_ has joined #lisp
<skidd0> a simple fix is https, right?
<skidd0> Let's Encrypt is free
<skidd0> maybe that's post-beta
<sjl_> it's not the server side that's the issue, but the client side
<skidd0> oh quicklisp itself only uses http
<skidd0> i see
<sjl_> Quicklisp wants to be a one-file install, without requiring something like OpenSSL or curl be installed on the machine
<skidd0> VPNs then
<sjl_> So the options are either 1. Implement a SSL in pure CL. 2. FFI out to some system SSL lib. 3. Not use SSL at all.
<sjl_> I think Xach is planning on option 3, by implementing some kind of cryptographic checksum algo in pure CL (which is *much* easier than implementing full TLS) and then validating the packages downloaded to be able to tell if they've been tampered with on the way
<skidd0> that's indeed much simpler
<sjl_> VPN doesn't help you if the "middle" in "man in the middle attack" is between your VPN endpoint and the Quicklisp servers
<skidd0> that's a good point
slyrus_ has quit [Read error: Connection reset by peer]
<sjl_> You can also set up an HTTP proxy and tell quicklisp to use it (the quicklisp servers actually already support ssl) , but last time I tried that I couldn't get it working for some reason. I can't remember why.
<jmercouris> SSL in pure CL seems like it is the best option
<jmercouris> is SSL really complex?
<sjl_> There's also https://github.com/slime/slime/issues/286 / https://github.com/slime/slime/issues/511 which the slime people probably won't fix unless someone exploits it on their machine
<sjl_> Uh, yes.
<Xach> Hey, I can shed some light.
<sjl_> OpenSSL is ~550k lines of code.
<skidd0> so, like, 10k lisp, right ;]
<Xach> The quicklisp installer file (quicklisp.lisp) includes an openpgp key and openpgp key signature verifier. it's used to verify fetching the rest of the client. the client includes code to check the sha256 checksum of downloaded archives.
<sjl_> Then pay some cryptographers to audit it, etc etc. Checksumming is almost certainly *far* more practical.
<sjl_> Oh, did that checksumming patch actually land?
<Xach> this scheme is not deployed yet. i am still thinking about key management and expiry and stuff.
<jmercouris> sjl_: I know about the slime issue with local attackers, but I don't see how that's even an issue really
<jmercouris> if someone is already on your machine, you are already out of luck
<sjl_> jmercouris: someone is already on your machine -> every web page running javascript ever
<sjl_> that's the dns rebinding stuff in the issue
<Xach> Sometimes I feel like just pushing it out and fixing problems as they come, sometimes I feel like I should test more
<jmercouris> Sometimes I feel like there should be at least some tests for Quicklisp
<sjl_> Xach: can we volunteer to be guinea pigs by downloading a special version of quicklisp?
<Xach> jmercouris: which part?
<jmercouris> I don't know, it isn't my software, however I wouldn't feel comfortable making releases on such a critical piece of software without very thorough tests
<Xach> sjl_: I did that a while ago and the results were promising, but some of the infrastructure to make it work is not set up - recent releases don't have the checksums published and signed.
<sjl_> Ah
<Xach> I can backfill those and set things up for more guinea pigging
<sjl_> Well, if you want someone to test it out, I would give it a shot.
<Xach> Thanks!
<jmercouris> Xach: how do you feel about ultralisp?
<Xach> jmercouris: Seems like a nice thing
<Xach> I don't think I'd personally use it - my priorities are different
<Xach> I really want to make progress on the signature/checksum checking, but it's been slow
<jmercouris> sjl_: Why does OpenSSL need 550k lines of code? what is it doing that is so complex?
<Xach> it has very thorough tests
<jmercouris> lol
<jmercouris> I don't think that tests make secure code, tests make reliable code
<jmercouris> so I don't think it has anything to do with tests
<jmercouris> for example, how could one have written test suites for the exploits on intel chips?
<Xach> there are many features and options and protocols involved.
<grewal> IIRC, openssl also wants to support every architecture
<jmercouris> what if you just wanted to add HTTPS only support
<jmercouris> how much of an effort would that be? an implementation of a single protocol
Josh_2 has joined #lisp
<grewal> It's not a single protocol.
<Xach> There are issues involved with implementing eavesdrop-proof communication that are different from implementing signature/checksum verification.
amerlyq has quit [Quit: amerlyq]
<Xach> Maybe it's possible and worthwhile in CL but it is not something that interests me due to my impression of the difficulty.
<jmercouris> I see
<sjl_> A better comparison might be Go's TLS implementation, which is ~13k lines of code. If you're Google, you can throw money at cryptographers and security engineers to write/audit a TLS library for your language.
Kundry_Wag has joined #lisp
<sjl_> But in a smaller community without piles of money, that's probably not going to happen.
aindilis has quit [Read error: Connection reset by peer]
<sjl_> It's much, *much* easier to implement a single checksum algorithm than even a decent subset of TLS.
<Xach> I am always on board for implementing something in CL even if it's slower or clunkier because I love to avoid FFI.
<Xach> But I have limits.
aindilis has joined #lisp
<jmercouris> so what's the point of a checksum if you are getting the sum unsecured?
<Xach> jmercouris: that's where signature verification comes in.
<sjl_> Checksum is probably the wrong word. You get the initial Quicklisp installer over https, which includes Xach's public key
<Xach> the checksum data is signed by a quicklisp private key
<jmercouris> I see
<Xach> public key signature verification is arithmetic I am comfortable implementing.
Bike has quit []
<jmercouris> seems simple enough
<jmercouris> so the question is, if we can verify a library is what it says it is, what is the advantage of having HTTPS support?
<Xach> I think it would be more convenient than going through a signature/checksum check.
Kundry_Wag has quit [Ping timeout: 244 seconds]
<Xach> In my ideal world each CL implementation would provide the right stuff to make secure connections on all supported platforms.
<jmercouris> if quicklisp is doing the checking, where is the inconvenience for the user?
<Xach> The convenience is for me, the implementor.
LiamH has quit [Quit: Leaving.]
<jmercouris> last question, your above statement implies some implementations provide support secure connections
<Xach> If all implementations that Quicklisp supports also supported secure communication, things would be done by now.
<jmercouris> if so, why not add conditional support?
<Xach> jmercouris: LispWorks does. Scineer (RIP) too.
<Xach> I would rather spend time finishing something that works for all platforms.
<jmercouris> I see
dkmueller has quit [Quit: WeeChat 2.4]
meepdeew has quit [Remote host closed the connection]
aindilis has quit [Read error: Connection reset by peer]
jmercouris has quit [Remote host closed the connection]
<jgkamat> sjl_: I'm actually planning to write an exploit for that slime issue at some point, chrome has some raw TCP apis exposed to js and I want to give that a shot. I'm super busy though so not sure when I'll get a chance to work on that
aindilis has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 26.1)]
<sjl_> As long as you're nice and present it as a proof-of-concept, and don't actually exploit anyone's machine, that would be valuable.
kajo has quit [Ping timeout: 252 seconds]
Lord_of_Life has quit [Ping timeout: 246 seconds]
Lord_of_Life has joined #lisp
aautcsh has joined #lisp
mindthelion has joined #lisp
techquila has quit [Ping timeout: 264 seconds]
john2x has joined #lisp
slyrus has joined #lisp
CrazyEddy has joined #lisp
ym555 has joined #lisp
ym555_ has quit [Ping timeout: 244 seconds]
sjl_ has quit [Ping timeout: 244 seconds]
mindCrime_ has joined #lisp
skidd0 has quit [Quit: WeeChat 2.4]
orivej has quit [Ping timeout: 258 seconds]
caltelt_ has joined #lisp
mindCrime_ has quit [Excess Flood]
mindCrime_ has joined #lisp
Bike has joined #lisp
caltelt has joined #lisp
wxie has joined #lisp
caltelt_ has quit [Ping timeout: 246 seconds]
ym555 has quit [Ping timeout: 258 seconds]
meepdeew has joined #lisp
ym555 has joined #lisp
zooey has quit [Ping timeout: 256 seconds]
slyrus has quit [Quit: slyrus]
shifty has joined #lisp
zooey has joined #lisp
eabarbosa has joined #lisp
makomo has quit [Quit: WeeChat 2.2]
dale has quit [Quit: dale]
zooey has quit [Remote host closed the connection]
zooey has joined #lisp
libertyprime has joined #lisp
mindCrime_ has quit [Excess Flood]
mindCrime_ has joined #lisp
aautcsh has quit [Ping timeout: 258 seconds]
wxie has quit [Quit: wxie]
mindCrime_ has quit [Read error: Connection reset by peer]
mindCrime_ has joined #lisp
sz0 has joined #lisp
aautcsh has joined #lisp
mindCrime_ has quit [Ping timeout: 244 seconds]