* Fix the notion of transaction equivalence in the ledger model for exceptions.
@andreaslochbihler-da found that our normalization rules don't normalize rollbacks across exercises, which our notion of transaction equivalence expects them to. For example, the transactions
```
rollback [ exercise [ rollback [ create ]]]
```
and
```
rollback [ exercise [ create ] ]
```
are considered equivalent under the old definition, but do not normalize to each other.
This PR is one possible solution, where we keep our current normalization rules but change the definition of transaction equivalence. In particular, instead of just requiring that the set of rolled back actions to be the same, we require that the set of "rollback roots" be the same, where a "rollback root" is an action that has a rollback node as its parent. This prevents normalization across exercises because that would eliminate some rollback roots.
The idea here is that the set of "rollback roots" encodes the set of "rolled back actions" relative to each action's subtree, unlike before where we only looked at the set of "rolled back actions" relative to the whole transaction. The set of "rollback roots" encodes all that information, but with a simple definition.
A completely different solution is to introduce new normalization rules that work across exercise nodes. Unfortunately these rules would be non-local, and that seems very difficult to do correctly & efficiently.
Part of #8020
changelog_begin
changelog_end
* rollback root -> rollback child
* Add a ledger model page for exceptions.
This page describes the changes to the ledger model as part of the exceptions feature. The changes should be kept separate for now, but once exceptions are stable and out for a while, they should probably be incorporated into the rest of the daml ledger model.
Part of #8020. **This PR is to be merged only when we start releasing exceptions.**
changelog_begin
- [docs] The Daml ledger model has been updated to describe the changes introduced by the new exceptions feature. See here: https://docs.daml.com/concepts/ledger-model/ledger-exceptions.html
changelog_end
* Apply suggestions from code review
Co-authored-by: Ognjen Maric <ognjen.maric@digitalasset.com>
* Round 2
* Fix and simplify "after" relation!
* Easy fixes
* Diagrams for structure and integrity sections.
* Add missing diagrams :)
* clarify consistency section
* Authorization.
* Editing.
* fix label reference
Co-authored-by: Ognjen Maric <ognjen.maric@digitalasset.com>
* Add choice observers in the ledger model.
To keep the distinction between "observer" and "choice observer"
clear I'm trying to always refer to the former as "contract observer".
The section on divulgence should probably be reworked to favor choice
observers at some point, but I'm not sure how to do that.
changelog_begin
changelog_end
* s/observer/contract observer
* Separate out the choice observer case of informees
* apply suggestion from @oggy-
* specifying choice observers in DAML contract model
* Replace many occurrences of DAML with Daml
* Update docs logo
* A few more CLI occurrences
CHANGELOG_BEGIN
- Change DAML capitalization and docs logo
CHANGELOG_END
* Fix some over-eager replacements
* A few mor occurrences in md files
* Address comments in *.proto files
* Change case in comments and strings in .ts files
* Revert changes to frozen proto files
* Also revert LF 1.11
* Update get-daml.sh
* Update windows installer
* Include .py files
* Include comments in .daml files
* More instances in the assistant CLI
* some more help texts
* Remove Navigator console
This was a labs feature so we can remove it without a deprecation
cycle. It doesn’t have any known users and is almost completely
superseded by DAML REPL.
@bame-da agreed to the removal.
This also has the nice side effect of eliminating 1 of our 2
dependencies that were not Scala 2.13 compatible.
changelog_begin
- [Navigator Console] The labs feature Navigator Console has been
removed. Users are encouraged to use DAML REPL instead.
changelog_end
* Kill Navigator database docs completely
changelog_begin
changelog_end
* Link concepts "gRPC Ledger API" and "Ledger API" in glossary for #8029.
CHANGELOG_BEGIN
CHANGELOG_END
* remove gRPC Ledger API which was in the wrong place
* rephrase alternative names
Co-authored-by: Bernhard Elsner <40762178+bame-da@users.noreply.github.com>
Co-authored-by: Bernhard Elsner <40762178+bame-da@users.noreply.github.com>
* Adapt to new desugaring for choice observers.
update hash of ghc patch.
changelog_begin
changelog_end
update ghc patch to final version
update stack-snapshot hashes for ghc-lib(-parser)
update stackage_snapshot.json, following `bazel run @stackage-unpinned//:pin`
expose Optional constructors for desugared code to use
adapt LFConversion to expect a 4-tuple for a desugared choice def/sig
update LFConversion for choice-observers
first example using new choice observer syntax.
fix scala type checker to have correct scoping rules for choice-observers
remove comment from example which says it is broken
improve variable names
improve tests for choice-observer clause
only test choice-observers SINCE 1.dev
add jq queries for choice observeres
make positive statement in jq test which checks choice obserers are present
test behaviour of choice observers
squash me
typo
* test more choice-observer divulgence
* Update documention for choice observers.
changelog_begin
Support choice observers in 1.dev
changelog_end
* fix docs build
* fix daml docs choice-observers example
* address comments: rewording text
* annotate choices observers as early-access in documention
* split out documentation code-snippets which require --target=1.dev
* final tweaks to documentation text
* Replace occurrances of DAML SDK in the docs with appropriate new terms
CHANGELOG_BEGIN
CHANGELOG_END
* Apply suggestions from code review
Revert two renamings.
* Fix broken internal link
* Missing closing quote in docs
CHANGELOG_BEGIN
CHANGELOG_END
* add Bash script to check missing quotes in docs
CHANGELOG_BEGIN
CHANGELOG_END
* add whitelist
* fix comment
* add CI job
CHANGELOG_BEGIN
CHANGELOG_END
* add CI job to azure pipeline
* use devenv in azure-pipelines.yml
Co-authored-by: Gary Verhaegen <gary.verhaegen@digitalasset.com>
* remove unnecessary yml
* fix quotes in Bifunctor.daml
* add check to BUILD.bazel with extended whitelist
* refactor: call bash script from BUILD.bazel
* Revert "use devenv in azure-pipelines.yml"
This reverts commit 28ab2c70fb.
* Revert "add CI job to azure pipeline"
This reverts commit 0eaa5188fe.
* filter whitelist in output too
* Update docs/scripts/check-closing-quotes.sh.whitelist
Co-authored-by: Bernhard Elsner <40762178+bame-da@users.noreply.github.com>
* fix Bifunctor.daml quotes
* Update docs/scripts/check-closing-quotes.sh.whitelist
Co-authored-by: Bernhard Elsner <40762178+bame-da@users.noreply.github.com>
* use ~ instead of ` for section titles
* rename to allowlist
* revert Bifunctor quote changes back to 3 backticks
* fix filename
* Remove line breaks in quotes (#7550)
* remove line breaks in quotes
CHANGELOG_BEGIN
CHANGELOG_END
* remove line breaks in quotes
CHANGELOG_BEGIN
CHANGELOG_END
* README: avoid line breaks
* merge rename
* revert: use triple backticks in Bifunctor
Co-authored-by: Gary Verhaegen <gary.verhaegen@digitalasset.com>
Co-authored-by: Bernhard Elsner <40762178+bame-da@users.noreply.github.com>
CHANGELOG_BEGIN
Add documentation for the ordering guarantees on the Ledger API
and for causal consistency with interoperable ledgers
CHANGELOG_END
Co-authored-by: Ognjen Maric <ognjen.maric@digitalasset.com>
Co-authored-by: Bernhard Elsner <40762178+bame-da@users.noreply.github.com>
* Update existing docs, removing references to old time model
* Add detailed time model docs
* Rename ledger effective time to ledger time
CHANGELOG_BEGIN
CHANGELOG_END
* One module per page in stdlib docs.
changelog_begin
- [DAML Docs] The standard library docs have been split up per module.
changelog_end
* Adjust stdlib annotations
* Update compiler/damlc/daml-stdlib-src/DA/Generics.daml
Co-Authored-By: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
* Update compiler/damlc/base-rst-index-template.rst
Co-Authored-By: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
* Move to daml/stdlib
* Update daml-doc tests
* Remove the Module prefix in the index/toctree
Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
Packages com.digitalasset.daml and com.daml have been unified under com.daml
Ledger API and DAML-LF DEV protos have also been moved from `com/digitalasset`
to `com/daml` on the file system.
Protos for already released DAML LF versions (1.6, 1.7, 1.8) stay in the
package `com.digitalasset`.
CHANGELOG_BEGIN
[SDK] All Java and Scala packages starting with
``com.digitalasset.daml`` and ``com.digitalasset`` are now consolidated
under ``com.daml``. Simply changing imports should be enough to
migrate your code.
CHANGELOG_END
In the integrity concepts, a party is defined as `C`, but referenced
later as `A`. As the rest of the docs use `A` for the party and `C` for
the contract, this seems to be a mistake. This corrects that
inconsistency.
This commit also clarifies a sentence and fixes a typo.
CHANGELOG_BEGIN
CHANGELOG_END
* document contract keys in the ledger model
* address small comments by Beth and Ognjen
* restructure key consistency and authorization
* address Ognjen's second round of comments
* Apply suggestions from code review
Co-Authored-By: Beth Aitman <bethaitman@users.noreply.github.com>