Details

    • Type: New Feature
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects versions: None
    • Fix versions: None
    • Approval:
      Triaged
    • Patch:
      Code

      Description

      Vectors of primitives produced by vector-of do not support transients.

      core.rrb-vector implements transient support for vectors of primitives. Such transient-enabled vectors of primitives can be obtained in a number of ways: (1) using a gvec instance as an argument to fv/catvec (if RRB concatenation happens, which is not guaranteed) or fv/subvec; (2) passing a gvec instance to fv/vec, which as of core.rrb-vector 0.0.11 will simply rewrap the gvec tree in an RRB wrapper; (3) using fv/vector-of instead of clojure.core/vector-of. Native support in gvec would still be useful as part of an effort to make supported functionality consistent across vector flavours (see CLJ-787 Open in this connection); gvec is also simpler and still has (and is likely to maintain) a performance edge.

      A port of core.rrb-vector's transient support to gvec is available here:

      https://github.com/michalmarczyk/clojure/tree/transient-gvec

      I'll bring it up to date with current master shortly.

      See the clojure-dev thread for some benchmarks:

      https://groups.google.com/d/msg/clojure-dev/9ozYI1e5SCM/BAIazVOkUmcJ

        Attachments

          Activity

            People

            • Assignee:
              michalmarczyk Michał Marczyk
              Reporter:
              michalmarczyk Michał Marczyk
            • Votes:
              2 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: