Skip to content

Releases: vmware/differential-datalog

DDlog v1.2.3

13 Dec 23:34
Compare
Choose a tag to compare

[1.2.3] - Dec 13, 2021

Quality-of-life improvements

  • Avoid recompiling Rust crates when only arrangement debug info changes.

DDlog v1.2.2

09 Dec 19:21
Compare
Choose a tag to compare

[1.2.2] - Dec 9, 2021

Bug fixes

  • Fix jump-to-record functionality in HTML profiles.

DDlog v1.2.1

09 Dec 01:28
Compare
Choose a tag to compare
DDlog v1.2.1 Pre-release
Pre-release

[1.2.1] - Dec 8, 2021

Bug fixes

  • Fix row highlighting in HTML profiles.

DDlog v1.2.0

08 Dec 22:57
Compare
Choose a tag to compare

[1.2.0] - Dec 8, 2021

Bug fixes

  • Fix broken command recording in the DDlogDynamic API.

SQL-to-DDlog compiler

  • More efficient joins
  • Bug fixes

Self-profiler

  • Add anchors to the profile, so one can create hyperlinks to individual profile
    entries.

DDlog v1.1.0

12 Nov 23:58
Compare
Choose a tag to compare

[1.1.0] - Nov 12, 2021

Rust API changes

  • Feature-gate AnyDeserialize impl. The DDlog compiler generates an
    implementation of the AnyDeserialize trait, which allows clients to
    deserialize instances of ddlog_std::Any provided they know relation id of
    the value being deserialized. This feature is not used by most applications,
    but can cause significant code bloat and slow down compilation. We
    feature-gate this impl, so that only users who require this functionality
    have to pay the price.

DDlog v1.0.0

10 Nov 02:11
Compare
Choose a tag to compare

[1.0.0] - Nov 9, 2021

Self-profiler revamp

The self-profiler remains a useful tool for troubleshooting DDlog performance
issues. It runs with low overhead, allows enabling/disabling CPU and change
profiling at runtime to only instrument parts of the program, and because it is
integrated into the DDlog runtime it can precisely match each DD operator to the
corresponding DDlog operator. DDshow does not currently have these features.

In this release we revamp the self profiler to improve its ergonomics. The new
self-profiler has the following features:

  • Produces profiles in the form of interactive HTML tables. Each
    row in the table represents a DD operator and contains operator
    description, e.g., "Arrange relation 'Rel1' by 'x,y,z'" along with
    links to one or more source code location that this operator
    corresponds to (e.g., all locations where this specific arrangement
    of 'Rel1' is used).

  • The new dump_profile API dumps the profile into an HTML file
    on the disk instead of returning it as a string. All profiles
    generated by the same process are generated in the same folder, even
    if the process creates multiple instances of DDlog. This folder
    also contains a complete snapshot of all DDlog code in the
    program, so that the profiler can show program sources even when
    the program does not run on the same system where it was compiled.

  • Internally, the self-profiler represents profiles using a
    well-defined JSON format. New APIs were added to extract
    each of the four profiles currently supported by DDlog (arrangement
    size profile, peak arrangement size profile, change profile, and
    CPU profile) in the JSON format, for automatic processing by
    third-party tools.

DDlog v1.0.0-alpha

05 Nov 05:20
Compare
Choose a tag to compare
DDlog v1.0.0-alpha Pre-release
Pre-release

This release includes a revamped self-profiler as a feature preview for testing and evaluation only.

DDlog v0.50.0

20 Oct 15:43
Compare
Choose a tag to compare

[0.50.0] - Oct 20, 2021

Libraries

  • internment.dl: optimized the implementation of Intern::default() to avoid
    excessive heap allocations and contention.

API changes

  • ddlog_clone(): C and Java API to clone a ddlog_record.

Bug fixes

  • Fixed parser bug caused by grammar ambiguity whereby index could be interpreted
    as part of an index declaration or as a regular identifier.

DDlog v0.49.0

04 Oct 23:19
Compare
Choose a tag to compare

[0.49.0] - Oct 4, 2021

New features

  • Rust compilation option checked_weights for the code generated by
    DDlog, which will crash DDlog programs at runtime if they overflow the
    weights attached to data values. This may be preferable to generating
    incorrect results.

  • Add queryIndex Java API (#1093)

Bug fixes

  • Closures that depend on generic types generate invalid Rust (#1072).

FlatBuffers

  • Upgrade to FlatBuffers v2.0.0. The previous version of FlatBuffers used in
    DDlog is not compatible with recent OS X releases.

SQL-to-DDlog compiler

  • Add support for identity views for input tables in DDlogJooqProvider (#1094)
  • Translate vector-type fields properly in DDlogJooqProvider (#1089)
  • Expose DDlogJooqProvider DSLContext (#1086)
  • Windows and Joins work when columns have alias (#1087)

DDlog v0.48.2

13 Sep 16:48
Compare
Choose a tag to compare

[0.48.2] - Sep 13, 2021

Bug fixes

  • Fixed a bug in the implementation of Intern<> that could lead to incorrect
    behavior of comparison operators and hashXXX() functions.