hie-core v1.2.0 Release Notes

Release Date: 2020-06-11 // almost 2 years ago
  • Summary

    • ๐Ÿ›  Module prefixes can now be stored in daml.yaml. This means that
      you can use multiple versions of libraries in the same project by
      specifying them in daml.yaml instead of with
      ๐Ÿ“ฆ the --package command line flag.
    • ๐ŸŒ A new flag, --max-lf-value-translation-cache-entries, allows you
      to set a number of events for which DAML-LF values will be cached.
      ๐Ÿšค This can help reduce latency when serving transactions.

    What's New

    ๐Ÿ›  Module Prefixes

    Background

    โฌ†๏ธ When upgrading a package using a DAML upgrade workflow, one has to
    ๐Ÿ“ฆ import both the old and new version of the package as dependencies. If
    ๐Ÿ“ฆ both the package and module names are the same, this used to require
    ๐Ÿ›  setting compiler flags. The new Module Prefixes feature gives an easier
    ๐Ÿ“ฆ means of disambiguating the packages and modules.

    Specific Changes

    ๐Ÿ›  The compiler picks up a new block module-prefixes specified
    ๐Ÿ›  in daml.yamlmodule-prefixes takes entries of the form 
    ๐Ÿ“ฆ package: Prefix, and modules from the package are then accessible
    using that prefix. For example, the below makes
    module X from foo-1.0.0 available as Foo1.X,
    and X from foo-2.0.0 as Foo2.X.

    module-prefixes:
    ย ย foo-1.0.0: Foo1
    ย ย foo-2.0.0: Foo2
    

    Refer to
    ๐Ÿ“š the documentation for
    detailed information.

    Impact and Migration

    This is a purely additive feature, so no migration is necessary. If your
    ๐Ÿ“ฆ project uses the old --package compiler flag to disambiguate packages,
    you can switch to this simpler method.

    Minor Improvements

    • ๐ŸŒ The Sandbox's --max-lf-value-translation-cache-entries option
      ๐Ÿ‘ allows you to set a number of events for which DAML-LF values are
      ๐Ÿšค cached. This can reduce latency in serving transactions.
    • daml damlc inspect-dar now has a --json flag to produce
      ๐Ÿ‘€ machine-readable output. See
      ๐Ÿ“š the documentation
      for more information.
    • The Scala bindings have gained a method, LedgerClient#close, which
      will shut down the channel and await termination. This is optional;
      the channel will still be shut down on JVM exit if this method is
      not called.
    • Record dot syntax like rec.field1.field2 is now handled in
      expressions entered into the REPL.
    • ๐Ÿ‘ daml trigger, daml script and daml repl now all support
      ๐Ÿ”ง the --max-inbound-message-size command line flag, which configures
      the maximum size of transactions that can be handled.
    • The createAndExerciseCmd command has been added to DAML Triggers.

    ๐Ÿ›  Security and Bugfixes

    • โฌ†๏ธ Dependencies have been upgraded to newer versions to avoid exposure
      ๐Ÿ”’ to reported security vulnerabilities.
      • Upgrade jackson version to 2.11.0 from 2.9.9.3
      • Upgrade io.grpc:grpc-xxxxx and io.netty:netty-xxx version
        โœ… to latest
      • Upgrade protobuf and protobuf-java to 3.11.0
    • A Sandbox Classic migration issue when used with postgres has been
      ๐Ÿ›  fixed.
      ๐Ÿ‘€ See #6017
    • A bug where large multi-command transactions would cause a stack
      ๐Ÿ›  overflow in DAML Script was fixed.
    • The Standard Library's DA.Text.splitOn function will now correctly
      ๐Ÿ– handle the case where the separator appears at the end but should
      not be matched, as in splitOn "aa" "aaa" == ["", "a"].
      ๐Ÿ‘€ See #5786 for
      more details.
    • ๐Ÿ‘• The DAML linter, dlint, has been improved by removing some
      Haskell-based rules not currently applicable to DAML and by changing
      some function references.

    Ledger Integration Kit

    • The Ledger API Server emits new metrics for the LF Value Cache. If
      the --max-state-value-cache-size is greater than zero, the
      following additional metrics will be recorded under the
      daml.kvutils.submission.validator.state_value_cache namespace: 
      • hits
      • misses
      • load_successes
      • load_failures
      • load_total_time
      • evictions
      • evicted_weight
    • โž• Added new Ledger API Server metrics
      ๐ŸŒ for daml.index.db.*.translation to measure the time spent
      translating to and from the serialized DAML-LF values when fetched
      from the participant index.
    • โž• Added new Ledger API Server metrics
      for daml.index.db.*.deserialization to measure the duration of the
      ๐ŸŒ translation of the serialized DAML-LF values when fetched from the
      participant index.
    • โœ… The Ledger API Test Tool has gained
      ๐ŸŽ the TransactionSize performance benchmark test.