libera/#commonlisp - IRC Chatlog
Search
14:41:53
edwlan[m]
At least that’s where I’d look first, I don’t remember if it can parse relative date strings like that
18:16:06
jackdaniel
NotThatRPG_: json libraries are almost as common as testing frameworks so it is a reason for celebration
18:16:48
NotThatRPG_
@jackdaniel: Yes, at the announcement of a new JSON library I will go into mourning for a two week period.
18:17:58
NotThatRPG_
fiddlerwoaroof: I feel that should be added to the channel description string that we all see when we log in!
18:18:32
fiddlerwoaroof
The issue I have with a lot of these parsing libraries is that they couple the output datastructure to the parser
18:19:59
yitzi
Being guilty of writing JSON lib myself....I shouldn't criticize. Then nobody had attempted the JSON test suite before mine along with actual deficiencies with the others.
18:20:28
fiddlerwoaroof
When I've written parsers (for EDN and the iCal format so far), I've tried to write them against a protocol for constructing a result.
18:27:41
yitzi
Don't forget "iteration" libraries. Everybody has to write one of those too. Considering I am working on two of them simultaneously with a third already in quicklisp, I think I deserve extra credit....or demerits if you wish.
18:31:48
fiddlerwoaroof
The main part is a bunch of point-free constructs that include a bunch of iteration utilities
18:32:04
fiddlerwoaroof
Then there's a beta section with an implementation of what Clojure calls transducers
19:39:01
jcowan
There's more than one way to write a JSON library, depending on whether you get a sequence, a fold, a tuneable object, or a fixed object.
19:54:15
NotThatRPG
edwlan[m]: The profusion of libraries for the same task? I'm not a fan because the libraries typically do 80% of what they claim to do, and you never know when you will run into the other 20%. Also, these one-person/one-library libraries often become abandonware.
20:00:58
jcowan
Up to a point, Minister. You don't want to depend on an abandoned cryptographic library, for example.
20:07:18
NotThatRPG
edwlan[m]: I use lisp libraries in my work, and I don't have the time to fix all of the abandoned and broken ones. Also, it's generally not obvious when and where a library is broken. A dismaying number of them give you GIGO instead of raising an error for something that is unfinished.
20:17:19
aeth
or other data of the wrong type, which will fail only when it meets a function that can't use it, not when it is first added.
21:49:38
prxq
you really notice the different in finish quality between our libs and, say, python libs. There are some very good lisp libraries but the density of buggy ones is definitively higher with CL than with Python.
21:52:56
aeth
on the other hand, Python has exactly the same issue that I just described because duck typing is Pythonic
22:29:57
fiddlerwoaroof
I dunno, I tend to find Lisp libraries higher quality than the typical library in other languages
22:33:17
aeth
But everyone seems to make the decision of no CHECK-TYPEs for you. Few packages export their custom type/class names.
22:35:53
aeth
but any string can just become a reader macro instead if you want to really annoy people and break all tools
22:56:04
cpli
_death i plan to use it specifically to `(when-let (key (remove-wrap "+key_" "+" sym)) ;...`
23:15:17
cpli
_death this is actually to `do-symbols` and generate a `case` to convert between (c enum) constants in a package and keywords