package fix
Install
Dune Dependency
Authors
Maintainers
Sources
md5=48d8a5bdff23cf7fbf9288877df2b6aa
sha512=a851d8783c0c519c6e55359a5c471af433058872409c29a1a7bdfd0076813341ad2c0ebd1ce9e28bff4d4c729dfbc808c41c084fe12a42b45a2b5e391e77ccd2
CHANGES.md.html
CHANGES
2022/01/21
The functor
Memoize.Make
now requires justMINIMAL_IMPERATIVE_MAPS
instead ofIMPERATIVE_MAPS
, which was needlessly strong.The functor
Glue.WeakHashTablesAsImperativeMaps
now provides onlyMINIMAL_IMPERATIVE_MAPS
instead ofIMPERATIVE_MAPS
. This change is made for compatibility with the new ephemeron API in OCaml 5.
2021/12/31
Improved documentation.
2021/11/25
The new module
CompactQueue
offers a minimalist mutable FIFO queue. It is comparable with OCaml'sQueue
module. In comparison withQueue
, it uses a more compact internal representation: elements are stored contiguously in a circular array. This has a positive impact on performance: both time and memory consumption are reduced. This data structure is optimized for maximum throughput. (Contributed by Frédéric Bour, reviewed by François Pottier.)The new functor
DataFlow.ForCustomMaps
offers a forward data flow analysis that is tuned for greater performance. (Contributed by Frédéric Bour, reviewed by François Pottier.)The new module
Indexing
offers a safe API for manipulating indices into fixed-size arrays. This API involves some dynamic checks as well as static type checks, thereby (hopefully) greatly reducing the risk of confusion in code that uses many arrays and many indices into these arrays. (Contributed by Frédéric Bour, reviewed by François Pottier.)In
DataFlow
, allow the functionforeach_root
(which is part of the signatureDATA_FLOW_GRAPH
) to callcontribute x _
several times at a single rootx
.
2020/11/20
New module
DataFlow
, which performs a forward data flow analysis over a directed graph. (Such a computation could previously be performed by using the generic solverFix.Make
, but it was somewhat awkward to write, as it required access to predecessors. The new algorithm is easier to use and is more efficient.)In
Memoize
, new combinatorcurried
, which can be used in combination withfix
ordefensive_fix
. Thus, for instance,curried fix
is a fixed point combinator that constructs a memoizing two-argument curried function.
2020/01/31
In
Gensym
, new abstract typegenerator
, with three functionsgenerator
,fresh
, andcurrent
.In
Memoize
, new functionvisibly_memoize
, which not only returns a memoized function, but also provides outside access to the memoization table.New signatures
ONGOING_NUMBERING
andTWO_PHASE_NUMBERING
and new moduleNumbering
, which provides facilities for numbering things.Breaking change: the module
Fix.Number
is renamedFix.GraphNumbering
.
2018/12/06
New release, including new modules (
Gensym
,Memoize
,Tabulate
,Number
,HashCons
,Prop
,Glue
), new convenience functors (Fix.ForHashedType
, etc.), and new demos. The least-fixed-point computation algorithm is unchanged.
2013/06/11
Initial release of the package, containing just
Fix.Make
, the least-fixed-point computation algorithm.