You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The pull api was extend by adding an options map used to parametrize database accessors in the query parser. While this allowed pull to work with ratoms as well as maps, it is not idiomatic and caused our implementation to diverge from MapGraph's.
We could simplify the pull api and bring it closer to its original implementation by defining a pull protocol:
Would make the api more extensible (though extending the parser is still a non-goal)
Cons
Would need to ship 6 implementations: hash and array maps for clj and cljs, plus ratom and atom
Last time I checked cljs protocols incurred a non-negligible performance overhead compared to simple functions. We should definitely run some cljs benchmarks before and after these changes.
Notes
Quick comparison of fn vs protocol performance in cljs
The
pull
api was extend by adding an options map used to parametrize database accessors in the query parser. While this allowedpull
to work with ratoms as well as maps, it is not idiomatic and caused our implementation to diverge from MapGraph's.We could simplify the pull api and bring it closer to its original implementation by defining a pull protocol:
Pros
Cons
Last time I checked cljs protocols incurred a non-negligible performance overhead compared to simple functions.We should definitely run some cljs benchmarks before and after these changes.Notes
The text was updated successfully, but these errors were encountered: