package pvec
All checked builds passInstall
dune-project
Dependency
Authors
Maintainers
Sources
md5=f3f3ae622e9cfc657de111f40ddeb992
sha512=1dfafbe6ce9e17cdf0a064b0959bd9eaf7f58bed3df1b012256156dfc29e7c8bf362862107dfb04798701cb7eedb2fe380b23a6f9ee10f30c89eaf1fb9061480
Description
Added to opam-repository:
README
Persistent vectors for OCaml
pvec implements persistent vectors that
- like arrays, store
nelements with keys ranging from0ton-1, - also like arrays, support efficient random read and write access, but
- unlike arrays, are persistent/immutable and resize dynamically.
Until recently I tried using lists until it stopped making sense, then transitioned to arrays where I had to. The mutable nature of arrays often introduced bugs. In some sense, I was trading speed for safety.
With persistent vectors I can have the best of both worlds. In many cases they strike a good balance between safety and speed.
Documentation
The pvec library exposes a single module Pvec. You can explore its interface online.
- https://pkel.github.io/pvec/pvec/Pvec/index.html
This documentation is derived from the main branch on Github. You might have obtained a different version of the library from Opam.
If you're interested in the underlying data-structure, I recommend reading hyPiRion's series of blog posts.
License
This library is distributed under the ISC license. See ./LICENSE.
Progress
- base implementation
- test random updates & persistence
- basic documentation
- setup CI
- provide a couple of convenience functions (fold, map)
- write intro to
pvec.mliand readme - pick license
- release
- more benchmarks
- slice/range support for seq, copy, map & fold
Dev Dependencies (3)
-
odoc
with-doc -
ppx_expect
with-test -
mtime
with-test & < "2.0.0"
Optional Dependencies
None
Used by
None
Conflicts
None
Build status
Results of building pvec with each compiler on check.ci.ocaml.org, run of against opam-repository 78c202b. All results for this package.
Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.
| Version | OCaml 4.11 | OCaml 4.14 | OCaml 5.2 | OCaml 5.4 | OCaml 5.5 |
|---|---|---|---|---|---|
| 0.1.1 (this version) | good | good | good | good | good |
- good Package successfully built
- partial One of the dependencies failed to build
- bad Package failed to build
- n/a Package is not available in this environment
- internal Internal failure