[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#27590: artanis has a bundled and customized copy of guile-json packa
From: |
Adonay Felipe Nogueira |
Subject: |
bug#27590: artanis has a bundled and customized copy of guile-json package |
Date: |
Mon, 17 Jul 2017 00:11:07 -0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
I have compared the two. Note however that I didn't test them, I only
read the diffs, so my notes might not accurately reflect nested/complex
cases.
Discarding the new features implemented in guile-json since the bundled
customization and the deprecation of (json ...) macro, it seems that
"json/builder.scm" is the file where most important changes are.
Considering upstream guile-json:
- (json-build-object ...) considers the given Scheme "native" directly as
a list of pairs (that is: no conversion is done inside the procedure
itself).
- (json-build ...) has conditionals for checking if a given Scheme
"native" is a symbol, and also for checking if it's an association
list.
- Inside (json-build ...), the conditional that checks if the givem
Scheme object is a hash table also builds JSON documents for those
cases, but instead of taking the Scheme "native" as it is, it will
receive such converted to a list of pairs.
Considering the bundled and customized guile-json:
- (json-build-object ...) calls procedures to convert the given Scheme
"native" to a list of pairs (that is: there is always a conversion made
inside the procedure).
- (json-build ...) has no conditionals to check for symbols and
association lists specially.
- Inside (json-build ...), the conditional that checks if the givem
Scheme object is a hash table takes the Scheme "native" as it is.
This indicates that upstream guile-json seems to have more control on
what to do with each thing. However, I don't know if this really impacts
GNU Artanis such that there is an unexpected behavior. From the looks of
it, there might be no problem on removing the bundle. Of course, a test
is preferable.