github vmware/differential-datalog v0.48.0
DDlog v0.48.0

latest releases: v1.2.3, v1.2.2, v1.2.1...
2 years ago

New features

  • Added change profiling support to the DDlog self-profiler. Unlike arrangement size
    profiling, which tracks the number of records in each arrangement, the change profile
    shows the amount of churn. For example adding one record and deleting one record will
    show up as two changes in the change profile, but will cancel out in the size profile.
    The self-profiler now support the profile change on/off commands (also available
    through the API), which enables change profiling for selected transactions.
    When change profiling is disabled, the recording stops, but the previously accumulated
    profile is preserved. By selectively enabling change profiling for a subset of transactions,
    the user can focus their analysis on specific parts of the program.

  • Limited support for dynamic typing. We introduce a new type Any to the standard
    library, which can represent any DDlog value, along with two library functions
    to_any() and from_any() that convert values to and from this type. This
    feature can be used to, e.g., store a mix of values of different types in a
    set or map.

  • Experimental features to support implementing parts of D3log runtime in DDlog.
    See #1065 for details.

Language and standard library changes

  • The semantics of the group_by operator changed in a subtle way. A group
    now contain exactly one occurrence of each value. See #1070 for details.

  • Removed ddlog_std::count(Group) and ddlog_std::group_count(Group) methods
    to avoid changing their behavior in a non-backwards-compatible way. Added
    count_distinct(Group) instead, which returns the count of distinct values in
    the group.

  • Removed ddlog_std::group_sum(Group). Added
    function sum_of(g: Group<'K, 'V>, f: function('V): 'N): 'N instead.

Don't miss a new differential-datalog release

NewReleases is sending notifications on new releases.