freenode/#lisp - IRC Chatlog
Search
15:55:50
shka
is there a way to ensure that lisp file is always loaded from scratch and never cached in FAS?
15:58:41
Shinmera
There's nothing built into ASDF to do this, unless you want to just LOAD everything, in which case there's load-source-op, if I remember correctly.
16:00:32
rumbler31
there certainly are "gotchas" that you can run into if you expect that a file will get recompiled when it will in fact not be
16:02:18
flip214
if it is, have the first source file "/proc/uptime" (which consists of two floats only) and use :serial T
16:08:12
rumbler31
I would say that if you're trying to fight optimized loading, you're actively doing work to throw away a free optimization. which I would be wary of advocating unless you had a good reason, but ^ that /proc/uptime trick is cool
16:28:07
Xach
flip214: that is a very amusing trick! can you tell me more about how you thought of it?
17:13:39
lexa_
I'm looking for a library for parsing some text (Linux device treese to be specific). But most of the libraries mentioned on cliki http://cliki.net/parser%20generator are either dead or in alpha-stage.
17:16:19
beach
lexa_: It depends a bit on the style of parser you want. For combinator parsing that is cl-parser-combinators, and also (I hear esrap).
17:21:32
beach
lexa_: Since the Common Lisp language is not moving, libraries that used to work still do.
17:22:08
lexa_
Sorry, I just came from the world of C/C++, and there if software is not updated to recent changes in OS/Libraries it has a tendency to fall apart.
17:23:08
shka
luckly, in lisp land you can sometimes even run 80s software after few changes to port it to the common lisp standard
17:23:41
pagnol
can this be written more compactly using some special loop-macro foo? https://gist.github.com/anonymous/8eed8669312072879c451f5b3de550a4
17:24:49
pjb
I don't know if it's more compact, but (loop for x in '(1 2 3) for foo = (+ x 2) for bar = (* foo 3) for baz = (+ bar 4) collect baz) #| --> (13 16 19) |#
17:26:13
pjb
the point of mapcar here is that you don't have to introduce variables: just use subexpressions.
17:29:04
shka
shrdlu68: yes, but the point is that language is standardized, so it is not like conservative library that depends on other conservative library will stop working because lisp has changed and dependency was not updated
17:36:09
osune
jackdaniel: I'm sorry but I searched the EQL and ECL examples for how to translate c-structs to lisp forth and back, but in the ECL examples I found nothing and the EQL internals are really not easy to follow for me. I can see how with ffi:clines a struct can be declared, and that with ffi:c-inline I can declare the types of the arguments. But what is still unclear to me is what should be the c-type given to fii:c-inline for the struct
17:36:09
osune
(eg struct foo { int a;};) . Currently I can only imagine to create where I provide explicit conversion functions, where I build a up a c-struct by accessing one slot after the other via cl_slot_value, and vice versa. Can you provide some more hints please?
17:38:13
jackdaniel
if you want to introduce some C structure as a native type to ECL, you need to add it in src/h/object.h (and a few other places) and I doubt you want that. If you want to simply pass it around as an opaque object, check out src/lsp/ffi.lsp. That said, your best choice is to use CFFI which has a well-written ECL backend
17:45:30
osune
So to get this working without CFFI I will need quite some callbacks into C. Thank you, that cleared this up to me.
17:46:14
jackdaniel
osune: you may check out how ECL support is implemented in CFFI as well to find some hitns
17:51:53
osune
I'm on a small embedded ARM system and have to fit with some pretty big binary blobs on a 32MByte SPI Flash.
17:54:48
jackdaniel
oh, then remember to not use sstrip with ECL fasl's and libecl.so (strip is fine though)
17:55:34
jackdaniel
as of cffi, you can get down to 3.3M to have it all in one fasl (dependencies included)
17:57:42
jackdaniel
http://hellsgate.pl/files/500c6b9c there for fasl which may be `load'-ed from ECL
18:05:11
osune
minion: memo for jackdaniel: the :type :shared-object / :static-object is not mentioned in the Documentation? Thanks again for the hints :)
19:33:01
flip214
Xach: well, I already knew about :serial, so I only needed something that "always" changes...
19:33:47
flip214
if it doesn't, do a bind-mount of /proc/uptime _only_ into the chroot/jail/container etc.
19:39:57
Xach
flip214: So it seems this delight is only conceptual, as you can't have an absolute pathname as a :file component...
20:18:30
shrdlu68
varjagg: There will likely be warnings about some of the certificates in the bundle having issues, they'll just be skipped.
20:27:34
shrdlu68
varjagg: You could try using curl's bundle: https://curl.haxx.se/docs/caextract.html
20:33:17
varjagg
shrdlu68: that got me a bit further, now it throws x509-decoding-error from x509-decode
20:36:03
shrdlu68
What site did you try to connect to? Let me try to reproduce it, and get curl's ca bundle as well.
20:47:12
minion
sjl, memo from flip214: thanks a lot for the vlime update.... (but) I'm currently looking at spacemacs.... let's see.
20:47:56
sjl
According to the ADSF manual the only correct value for this slot is (keyword string), but I see systems on Github using all kinds of things there, like:
20:48:57
sjl
Ideally I'd like to be able to specify *multiple* entries there, e.g. :source-control ((:git "github.com/...") (:hg "bitbucket.org/..."))
20:51:38
Xach
If you use something contrary to the ASDF manual, it might stop working and break in the future just out of spite.
20:53:16
Xach
sjl: I dig through system file forms but I don't do anything with source-control, personally.
20:53:40
sjl
Shinmera: I use mercurial because git's ui is a shitshow, but want to still provide a github mirror to accept PRs.
20:54:08
jackdaniel
osune: I mean :shared-library and :static-library, for some complementary doc see: https://common-lisp.net/project/ecl/static/ecldoc/Extensions.html#System-building
20:54:08
minion
jackdaniel, memo from osune: the :type :shared-object / :static-object is not mentioned in the Documentation? Thanks again for the hints :)
20:54:22
sjl
Xach: yeah that's what I figured. I'll just leave it blank, I think. The README lists the repos anyway.
20:54:34
shrdlu68
varjagg: There are non-ascii characters in the ca certificate, which is throwing off a function that tries to distinguish between DER and PEM files by the fact that PEM files are supposed to be ASCII (base64-encoded): https://github.com/shrdlu68/cl-tls/blob/master/src/utils.lisp#L125
20:56:48
sjl
Shinmera: Vim has fugitive which makes it tolerable, but I don't like using a TUI for version control. I want shell commands with a sane syntax.
20:57:33
osune
jackdaniel: uhm what is the difference between https://common-lisp.net/project/ecl/static/manual/ and https://common-lisp.net/project/ecl/static/ecldoc ?
21:00:24
jackdaniel
osune: manual is complete to some degree, ecldoc is wip (but has some chapters expanded)
21:15:27
shrdlu68
varjag: It seems to work with other sites: twitter.com, facebook.com, github.com...
21:21:31
varjag
"Error encountered while checking the certificate status. Details: Response status: unauthorized"
21:22:23
shrdlu68
That's OCSP. The OCSP server responded with "unauthorized", so cl-tls couldn't verify the revocation status.
21:22:54
Xach
ACTION ponders replacing system-index.txt with system-index.cdb for insanely large system-index.txt files
21:47:28
rpg
sjl: The source control metadata aren't used for anything. An issue in ASDF is that on the one hand one wants to encourage people to provide useful information, of just about any sort, but on the other hand, one wishes to provide useful error-checking to help people debug their system declarations.
21:48:02
rpg
Perhaps I should have said "ASDF itself doesn't use the source control metadata for anything."
21:49:24
shrdlu68
varjag: cl-tls validated every single certificate in the chain upto the root found in the trusted CA certificates. In the case of Google, it doesn't find a matching root at the last step of the chain.
21:52:31
shrdlu68
The last certificate presented by the server says it's issued by "Equifax Secure Certificate Authority"
21:55:31
shrdlu68
There's no certificate identifying itself as "Equifax Secure Certificate Authority" in the curl ca bundle, that's why validation is failing.
21:57:32
shrdlu68
It seems most clients are configured to validate up to just below the final level (a "depth" argument). If I do that with cl-tls, it works in this case.
22:00:10
varjag
i could hack that in for my specific case, or are you going to push that to the repo?
22:03:35
shrdlu68
https://github.com/shrdlu68/cl-tls/blob/master/src/x509/validate.lisp#L54 Changing (length chain) to (1- (length chain)) makes it work.
22:15:02
shrdlu68
www.bitstampt.net fails because of OCSP. If you disable revocation checking, it'll work: https://github.com/shrdlu68/cl-tls/blob/master/src/x509/validate.lisp#L84
0:21:18
rpg
I think my colleagues have used MongoDB from lisp, but I'm afraid I don't know what API they used.
0:22:04
aeth
I don't think there's a major modern NoSQL (or SQL) database written in Common Lisp. Most people who need a database afaik use postmodern to use PostgreSQL.
0:23:50
aeth
Some databases are written in Java, which is roughly the performance of SBCL (it's hard to compare languages) so there's probably nothing stopping someone from writing a DB in Lisp.
0:24:36
aeth
Interestingly, a database isn't on this list. http://metamodular.com/Common-Lisp/suggested-projects.html