2.3.0
CHANGES:
Fixed
-
irmin-git
-
irmin-pack*
-
irmin*
-
Changed the pattern matching of the function
last_modified. The case of a
created key is now considered a modification by the function. (#1167,
@clecat) -
Fix
Tree.fold ~force:(False f)where results where partially skipped
(#1174, @Ngoguey42, @samoht and @craigfe ) -
Fix
Tree.kind. Empty path on a tree used to return a None instead of a
`Node. (#1218, @Ngoguey42)
-
ppx_irmin
-
irmin-unix
Added
-
irmin-layers (new):
- Created a new package,
irmin-layersthat includes common signatures for
layered stores. It contains a stubMake_layersfunctor (#882, @icristescu)
- Created a new package,
-
irmin-bench (new):
-
irmin
-
Added
Tree.Contentsmodule exposing operations over lazy tree contents.
(#1022 #1241, @craigfe @samoht) -
Added
Type.Unboxed.{encode_bin,decode_bin,size_of}to work with unboxed
values (#1030, @samoht) -
Remove the
headersoption inType.{encode_bin,decode_bin,size_of}. Use
Type.Unboxed.<fn>instead (#1030, @samoht) -
Type.vnow takes an extra mandatoryunitargument (#1030, @samoht) -
Added
Type.pp_dump, which provides a way to pretty-print values with a
syntax almost identical to native OCaml syntax, so that they can easily be
copy-pasted into an OCaml REPL for inspection. (#1046, @liautaud) -
Generic functions in
Irmin.Typeare now more efficient when a partial
closure is constructed to the type representation (#1030 #1093, @samoht
@craigfe). To make this even more explicit, these functions are now staged
andType.{unstage,stage}can manipulate these. The goal is to encourage
users to write this kind of (efficent) pattern:let encode_bin = Type.(unstage (encode_bin ty)) let _ = <begin loop> ... encode_bin foo ... <end loop>
-
Added a
clearfunction for stores (#1071, @icristescu, @craigfe) -
Requires digestif>=0.9 to use digestif's default variants
(#873, @pascutto, @samoht) -
Added
iter_commitsanditer_nodesfunctions to traverse the commits and
nodes graphs (#1077, @icristescu)
-
-
irmin-pack:
-
Added
index_throttleoption toIrmin_pack.config, which exposes the
memory throttle feature ofIndexinIrmin-Pack. (#1049, @icristescu) -
Added
Pack.clearandDict.clear(#1047, @icristescu, @craigfe, @samoht) -
Added a
migratefunction for upgrading stores with old formats (#1070,
@icristescu, @craigfe) -
Added a
flushfunction for a repo (#1092, @icristescu) -
Added `Layered.Make functor, to construct layered stores from irmin-pack.
(#882, @icristescu) -
Added `Checks.Make which provides some offline checks for irmin-pack
stores. (#1117, @icristescu, @craigfe) -
Added
reconstruct_indexto reconstruct an index from a pack file. (#1097,
@icristescu) -
Added
reconstruct-indexcommand toirmin-fsckfor reconstructing an index from
the command line (#1189, @zshipko) -
Added
integrity-checkcommand toirmin-fsckfor checking the integrity of
anirmin-packstore (#1196, @zshipko)
-
-
ppx_irmin:
-
Added support for deriving type representations for types with type
parameters. Type'a tgenerates a representation of type
'a Type.t -> 'a t Type.t(#1085, @craigfe) -
Added a
--libcommand-line option which has the same behaviour as the
librun-time argument (i.e.--lib Foowill causeppx_irminto derive
type representations using combinators in theFoomodule). (#1086,
@craigfe) -
Added an extension point
[typ: <core-type>]for deriving type
representations inline. (#1087, @craigfe)
-
Changed
-
irmin
-
Replaced
Tree.pp_statswith the type representationTree.stats_t. (#TODO, @craigfe) -
Changed the JSON encoding of special floats.
Float.nan,Float.infinity
andFloat.neg_infinityare now encoded as"nan","inf"and"-inf"
respectively. (#979, @liautaud) -
The functions
Type.{v,like,map}no longer take a~cliargument, and now
take separate~ppand~of_stringarguments instead. (#1103, @craigfe) -
The
Irmin.Typecombinators are now supplied by thereprpackage. The
API ofIrmin.Typeis not changed. (#1106, @craigfe) -
Irmin.Typeuses staging forequal,short_hashandcompareto
speed-up generic operations (#1130, #1131, #1132, @samoht) -
Make
Tree.foldmore expressive and ensure it uses a bounded memory
(#1169, @samoht) -
Changed
listandTree.listto take optionaloffsetandlength
arguments to help with pagination. Also return direct pointers to the
subtrees to speed up subsequent accesses (#1241, @samoht, @zshipko,
@craigfe, @Ngoguey42 and @icristescu)
-
irmin-pack:
-
synchas to be called by the read-only instance to synchronise with the
files on disk. (#1008, @icristescu) -
Renamed
synctoflushfor the operation that flushes to disk all buffers
of a read-write instance. (#1008, @icristescu) -
Changed the format of headers for the files on disk to include a generation
number. Version 1 of irmin-pack was used for the previous format, version 2
is used with the new format. (#1047, @icristescu, @craigfe, @samoht) -
Use
Repo.iterto speed-up copies between layers (#1149, #1150 @samoht) -
Add an option to bypass data integrity checks on reads (#1154, @samoht)
-
Add
headsparameter tocheck-self-containedcommand inChecks(#1224, @zshipko)
-
-
ppx_irmin: