Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 1.68 KB

CHANGES.md

File metadata and controls

53 lines (38 loc) · 1.68 KB

113.43.00

  • Adds a Let_syntax module to Incremental_intf.S. We've found things like this useful in a couple of different projects as a nice alternative to the mapN functions.

113.33.00

  • Made it possible to use Incremental without invalidation -- i.e. a change in a the left-hand side of bind does not invalidate nodes created on the right-hand side.

    This is configurable via the argument to Incremental.Make_with_config, which now takes:

    val bind_lhs_change_should_invalidate_rhs : bool
    

    So, one can now build an Incremental without invalidation using:

    Incremental.Make_with_config (struct
      include Incremental.Config.Default ()
      let bind_lhs_change_should_invalidate_rhs = false
    end) ()
    

    Implementation

    The implementation is simple: When a bind rhs changes, instead of invalidate_nodes_created_on_rhs, we rescope_nodes_created_on_rhs, which moves the nodes up to the bind's parent.

    Testing

    Turned the unit tests into a functor parameterized on bind_lhs_change_should_invalidate_rhs, and run them with both true and false. Modified tests where necessary to skip tests of invalidity when bind_lhs_change_should_invalidate_rhs = false.

    Added a unit test of bind_lhs_change_should_invalidate_rhs = true that makes sure a node created on a bind rhs whose lhs subsequently changes continues to stabilize correctly.

  • Splitted incremental into a part that can run in javascript, incremental_kernel, and the other one.

113.24.00

  • Add README.org to Incremental.

  • Added some type annotations based on comments by @def-lkb about lack of principality.

  • Switched to ppx.