* Refactor PackageMetadata construction
* Package Metadata now can include an upgraded package id
* define PackageInterface#lookupPredecessors
* Add SoftFetch in Daml LF
* Add softFetch function in Daml
* Add USoftFetch LFConversion primitive
* Define SoftFetch in terms of SBPromoteAnyContract
* daml_compile rule now takes upgrades arg
* Add script test for softFetch
* TODOs
* Check LF >= 1.dev when decoding 'upgradedPackageId' and 'softFetch' in DecodeV1.scala
* Check that softFetch is not called on templates with contract keys
* Seq=>List
* ModParser todo
* Extract PackageUpgradesIT from AbstractFuncIT
* Update docstring for SBPromoteAnyContract
* Fix build errors
* Fix build error
* DecodeV1Spec case for softFetch
* DecodeV1Spec case for upgradedPackageId
* EncodeV1 case for upgradedPackageId
* Fix build error
* Disable test due to cyclic dependency with canton
* Add transitive case to PackageUpgradesIT
* Clean up PackageUpgradesIT
* Fix build error
* Error if 'upgrades' field is present before featurePackageUpgrades
* Update doc on compileSoftFetchTemplate
* Reword WronglyTypedContractSoft error
We test encoder with exhaustive list of builtins for 1.11, 1.12, 1.13,
1.14, 1.15, 1.dev.
This test indirectly allso, LF parser, and LF type checking for
builtins.
* Consider and address all 1.dev version markers. Some stay at 1.dev. Some change to 1.15 or earlier.
* TYPEREP_TYCON_NAME stays at 1.dev
* remove stray "x"s in .rst file
* Update protobuf to include sourceloc for implements and coimplements
Relevant haskell changes
* Update error ranges in tests
* Extract source locations from various template/interface parts
* Improve ExprSource extraction
* Move location from instance head to template/interface parts
Add location to instance print
* Move datatype DA.Action.State.State into a stable package
* Move datatype DA.Stack.SrcLoc into a stable package
* Move datatype DA.Random.Minstd into a stable package
* Skip doctest for DA.Action.State.Type
* Don't use magic numbers in CodeGenRunnerTests.scala
* Update comment in StablePackageTest.scala
* Create tuple size check function in GHC.Tuple.Check
* Update desugar test
* lint
* Fix accidental minus in stable-packages
* Replace GHC.Types with GHC.Tuple.Check in doctest generation
* Fix DarReaderTest
* Fix DamlDocTest for GHC.Tuple.Check import
* Remove unnecessary DamlSyntax pragma
Co-authored-by: Moisés Ackerman <6054733+akrmn@users.noreply.github.com>
* Point to merged GHC changes
* Point to akrmn's merged in changes
* Point back at merged in changes
* restart CI
Co-authored-by: Moisés Ackerman <6054733+akrmn@users.noreply.github.com>
* Fix `instance Show Text` to produce escaped Text (#15177)
This adapts the code used in GHC's 'instance Show Char where { showList }', representing characters as single-character
'Text's using a type synonym. CPP can be used during development to switch to a newtype-based implementation in order
to check type safety.
changelog_begin
- [Daml Standard Library] ``show @Text`` now escapes special characters, producing syntactically correct expressions (#15177)
changelog_end
* Add daml-test-file testing `show @Text`
* Avoid 'explode' in 'showLitChr'
* Cleanup 'showLitChr'
* Update DarReaderTest.scala
* Clean up import of GHC.Base
* Add Note for __DEBUG__SHOW_TEXT_CHR_NEWTYPE macro
* Extract longStringSize from longStringOf in daml-test-file ShowText.daml
* Document differences with GHC implementation
* Remove redundancy between showLitChr and {ascii=>ctrlChrText}
* Add 'exhaustive' test case in daml-test-file ShowText.daml
* Change 'ctrlChrText' default case to throw error
Transform our code for the protobuf-decoding phase to be stack-safe, by means of a Work trampoline. The code-style rules are:
runWork is never called in a nested context.
We introduce an explicit Work.Delay to break recursion.
Increase the size of the many-fields test from 120 to 160 fields.
(At 164 fields we run into the protobuf limit)
Part of: #13410
* Add version 1.15 - move interfaces into them
* Update Ast/Version & docs for 1.15, split interface into simple/extended
* Stage 1.15 protobuf
* Remove references to dev from 1.15 protobufs
* Add Tests file for 1.15 in ledger API testtool
* Update Version 1.15 changelog with Call/implements
* Make 1.14 default again
* Add 1.15 as preview version
* Add 1.15 test suite to testtool
* Reinclude 1.15 in COMPILER_LF_VERSIONS to build model-tests-1.15
* Move v1_15 ledger-api-tests into own suite
* Fix InterfaceNotSupported message to 1.15 or higher
* satisfy changelog check
CHANGELOG_BEGIN
CHANGELOG_END
* Update tests with extended interface features to only run on 1.dev
* Allow unsafe_from_interface and interface_template_type_rep in 1.15
* Fix StableVersions back to 1.14, make EarlyAccessVersions 1.15
* Run retroactive implements tests only in extended interfaces
* lint
* Temporarily disable 1.15 conformance tests - handle in another PR
* Also disable conformance-test-tls1.2-or-newer-1.15
* Disable PureConfigReaderWriter tests that assume early-access == stable
* lint
* Temporarily disable decode extended interface primitives test
* Use dictionary comprehension to generate ledger/test-common test_names
* Move InterfaceSubscriptionsIT test back into 1.dev suite
* lint
* Make exercise guards nullable, ignore Nothing in decode/encode
* Desugar UExerciseInterface[Guarded] differently, point to updated GHC
* Update to new GHC revision, removes pred argument from `exercise`
* Attach correct range to guard support error (if any)
Co-Authored-By: Moisés Ackerman <6054733+akrmn@users.noreply.github.com>
* Rename interface features
Co-Authored-By: Moisés Ackerman <6054733+akrmn@users.noreply.github.com>
* Remove unnecessary mention of v1_14 from supportedInputVersions
Co-Authored-By: Moisés Ackerman <6054733+akrmn@users.noreply.github.com>
* Clarify purpose of `Maybe Expr` type for exercise guard
Co-Authored-By: Moisés Ackerman <6054733+akrmn@users.noreply.github.com>
* Remove guarded exercise when Extended Interfaces are not enabled
* Remove all instances of guarded exercises in versions <= 1.15
* Add check for isId to splitDFunId
* Exclude via $cexerciseGuarded check - ClassOpId approach did not work
* Run damlc interface tests w/o requires when since DAML_INTERFACE
* Update desugared daml for UExerciseInterface[Guarded] generation
* Temporarily disable failing damlc tests
* Remove 1.dev-only references from 1.15 protobuf
Co-authored-by: Moisés Ackerman <6054733+akrmn@users.noreply.github.com>
* Add version 1.15 - move interfaces into them
* Update Ast/Version & docs for 1.15, split interface into simple/extended
* Stage 1.15 protobuf
* Remove references to dev from 1.15 protobufs
* Add Tests file for 1.15 in ledger API testtool
* Update Version 1.15 changelog with Call/implements
* Make 1.14 default again
* Add 1.15 as preview version
* Add 1.15 test suite to testtool
* Reinclude 1.15 in COMPILER_LF_VERSIONS to build model-tests-1.15
* Move v1_15 ledger-api-tests into own suite
* Fix InterfaceNotSupported message to 1.15 or higher
* satisfy changelog check
CHANGELOG_BEGIN
CHANGELOG_END
* Update tests with extended interface features to only run on 1.dev
* Allow unsafe_from_interface and interface_template_type_rep in 1.15
* Fix StableVersions back to 1.14, make EarlyAccessVersions 1.15
* Run retroactive implements tests only in extended interfaces
* lint
* Temporarily disable 1.15 conformance tests - handle in another PR
* Also disable conformance-test-tls1.2-or-newer-1.15
* Disable PureConfigReaderWriter tests that assume early-access == stable
* lint
* Reduce duplication between implements and co-implements
This extracts the common part (methods and view) to a new type InterfaceInstanceBody
changelog_begin
changelog_end
* Update protobuf to include viewtype and implementation view
* Stub interface viewtype and implements view in updated AST
* Set views on Java builders in DecodeV1Spec
CHANGELOG_BEGIN
Update LF AST protobuf for interface viewtype and implementation view -
not currently linked to syntax or engine changes, all stubbed out in
LFConversion.
CHANGELOG_END
* Add view field to CoImplements
* Update iterators & parsers to account for CoImplements view
* Replace uses of TBuiltin(BTUnit) with TUnit
* Remove superfluous "Available in versions >= 1.dev" comment
* Fix missing TUnit imports, missing view param in daml-lf/parser
* Remove unused imports from DecodeV1Spec
* Add stub view in AstSpec
* Add CoImplements to daml-lf AST
* Add AstSpec case for duplicate co-implements in interface
* Add placeholders for CoImplements in daml-lf validation
* Handle CoImplements in daml-lf iterators
* Handle CoImplements in daml-lf scala decoder
* Test DefInterface components in DecodeV1Spec
* Handle CoImplements in daml-lf (testing) parser
* Handle CoImplements in daml-lf (testing) encoder
changelog_begin
changelog_end
* Convert experimental primitive TYPEREP_TYCON_NAME into proper LF builtin
* Add entry for TYPEREP_TYCON_NAME in daml-lf spec
* disable quickcheck test in DA.Test.Packaging
changelog_begin
changelog_end