diff --git a/compiler/daml-lf-ast/src/DA/Daml/LF/Ast/Version.hs b/compiler/daml-lf-ast/src/DA/Daml/LF/Ast/Version.hs index bd68cac2d2..24d1251056 100644 --- a/compiler/daml-lf-ast/src/DA/Daml/LF/Ast/Version.hs +++ b/compiler/daml-lf-ast/src/DA/Daml/LF/Ast/Version.hs @@ -133,8 +133,7 @@ featureUnstable = Feature featureBigNumeric :: Feature featureBigNumeric = Feature { featureName = "BigNumeric type" - , featureVersionReq = VersionReq \case - V2 -> allMinorVersions + , featureVersionReq = devOnly , featureCppFlag = Just "DAML_BIGNUMERIC" } diff --git a/compiler/damlc/daml-stdlib-src/DA/Internal/Prelude.daml b/compiler/damlc/daml-stdlib-src/DA/Internal/Prelude.daml index 2d6ae75080..1dab49655b 100644 --- a/compiler/damlc/daml-stdlib-src/DA/Internal/Prelude.daml +++ b/compiler/damlc/daml-stdlib-src/DA/Internal/Prelude.daml @@ -595,17 +595,15 @@ roundCommercial d x = then x - diff else t -zero: NumericScale n => Numeric n -zero = intToNumeric 0 - -half: NumericScale n => Numeric n -half = fromNumeric (0.5: Numeric 1) - --- | Round a `Decimal` to the nearest integer, where a `.5` is rounded away from zero. -round : NumericScale n => Numeric n -> Int -round x = if x > zero +-- | Round a `Numeric` to the nearest integer, where a `.5` is rounded away from zero. +round : forall n. NumericScale n => Numeric n -> Int +round x = if x > intToNumeric 0 then truncate $ x + half else truncate $ x - half + where + -- Note that for `n = 0`, `half = 0.`, so the result of round is still correct. + half = primitive @"BEDivNumeric" (numericOne @n) (intToNumeric @0 1) (intToNumeric @0 2) + -- | Round a `Decimal` down to the nearest integer. floor : NumericScale n => Numeric n -> Int diff --git a/compiler/damlc/tests/daml-test-files/BigNumeric.daml b/compiler/damlc/tests/daml-test-files/BigNumeric.daml index 35e3b98023..79b4235e22 100644 --- a/compiler/damlc/tests/daml-test-files/BigNumeric.daml +++ b/compiler/damlc/tests/daml-test-files/BigNumeric.daml @@ -1,7 +1,7 @@ -- Copyright (c) 2021, Digital Asset (Switzerland) GmbH and/or its affiliates. -- All rights reserved. --- @SINCE-LF 2.1 +-- @SINCE-LF 2.dev module BigNumeric where diff --git a/compiler/damlc/tests/daml-test-files/BigNumericTooBig.daml b/compiler/damlc/tests/daml-test-files/BigNumericTooBig.daml index 719bdd1cd6..016c4f6e3e 100644 --- a/compiler/damlc/tests/daml-test-files/BigNumericTooBig.daml +++ b/compiler/damlc/tests/daml-test-files/BigNumericTooBig.daml @@ -1,7 +1,7 @@ -- Copyright (c) 2021, Digital Asset (Switzerland) GmbH and/or its affiliates. -- All rights reserved. --- @SINCE-LF 2.1 +-- @SINCE-LF 2.dev -- @ERROR Large BigNumeric (larger than Numeric) literals are not currently supported. module BigNumericTooBig where diff --git a/compiler/damlc/tests/daml-test-files/LfStableBigNumeric.EXPECTED.ledger b/compiler/damlc/tests/daml-test-files/LfDevBigNumeric.EXPECTED.ledger similarity index 73% rename from compiler/damlc/tests/daml-test-files/LfStableBigNumeric.EXPECTED.ledger rename to compiler/damlc/tests/daml-test-files/LfDevBigNumeric.EXPECTED.ledger index ec9b620b3b..6304b3ecbd 100644 --- a/compiler/damlc/tests/daml-test-files/LfStableBigNumeric.EXPECTED.ledger +++ b/compiler/damlc/tests/daml-test-files/LfDevBigNumeric.EXPECTED.ledger @@ -1,8 +1,8 @@ Transactions: - TX 0 1970-01-01T00:00:00Z (LfStableBigNumeric:22:3) + TX 0 1970-01-01T00:00:00Z (LfDevBigNumeric:23:3) #0:0 │ disclosed to (since): 'Alice' (0) - └─> 'Alice' creates LfStableBigNumeric:BigNumericResults + └─> 'Alice' creates LfDevBigNumeric:BigNumericResults with party = 'Alice'; values = diff --git a/compiler/damlc/tests/daml-test-files/LfStableBigNumeric.daml b/compiler/damlc/tests/daml-test-files/LfDevBigNumeric.daml similarity index 89% rename from compiler/damlc/tests/daml-test-files/LfStableBigNumeric.daml rename to compiler/damlc/tests/daml-test-files/LfDevBigNumeric.daml index edd7b0ccef..ac15d4c71e 100644 --- a/compiler/damlc/tests/daml-test-files/LfStableBigNumeric.daml +++ b/compiler/damlc/tests/daml-test-files/LfDevBigNumeric.daml @@ -1,7 +1,8 @@ -- Copyright (c) 2023 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. -- SPDX-License-Identifier: Apache-2.0 -module LfStableBigNumeric where +-- @SINCE-LF 2.dev +module LfDevBigNumeric where import Daml.Script import qualified DA.BigNumeric as BigNumeric @@ -16,7 +17,7 @@ template BigNumericResults x : BigNumeric x = 0.5 --- @LEDGER run LfStableBigNumeric.EXPECTED.ledger +-- @LEDGER run LfDevBigNumeric.EXPECTED.ledger run = script do alice <- allocateParty "Alice" submit alice do diff --git a/compiler/damlc/tests/daml-test-files/PreludeTest.daml b/compiler/damlc/tests/daml-test-files/PreludeTest.daml index c7c1989e2e..40a9e0cce7 100644 --- a/compiler/damlc/tests/daml-test-files/PreludeTest.daml +++ b/compiler/damlc/tests/daml-test-files/PreludeTest.daml @@ -31,10 +31,10 @@ -- @INFO range=297:38-297:51; Use zip3 -- @INFO range=298:53-298:66; Use zip3 -- @INFO range=311:13-311:20; Evaluate --- @ERROR range=378:1-378:17; Day 29 falls outside of valid day range (1 .. 28) for Feb 2100. --- @ERROR range=382:1-382:18; Day 0 falls outside of valid day range (1 .. 31) for Jan 2000. --- @ERROR range=397:1-397:21; ArithmeticError while evaluating (UNIX_DAYS_TO_DATE -719163). --- @ERROR range=400:1-400:21; ArithmeticError while evaluating (UNIX_DAYS_TO_DATE 2932897). +-- @ERROR range=389:1-389:17; Day 29 falls outside of valid day range (1 .. 28) for Feb 2100. +-- @ERROR range=393:1-393:18; Day 0 falls outside of valid day range (1 .. 31) for Jan 2000. +-- @ERROR range=408:1-408:21; ArithmeticError while evaluating (UNIX_DAYS_TO_DATE -719163). +-- @ERROR range=411:1-411:21; ArithmeticError while evaluating (UNIX_DAYS_TO_DATE 2932897). module PreludeTest where @@ -341,12 +341,23 @@ testFloor = script do floor (0.0 : Decimal) === 0 testRound = script do + round (0.5: Numeric 1) === 1 + round (1.5: Numeric 1) === 2 + round (-0.5: Numeric 1) === -1 + round (-1.5: Numeric 1) === -2 +-- -- Check that `round @0` does not crash + round (0.0: Numeric 0) === 0 + round (1.0: Numeric 0) === 1 + +testRoundCommercial = script do roundCommercial 0 10.5 === (11.0 : Decimal) roundCommercial 2 22.105 === (22.110 : Decimal) - roundBankers 0 10.5 === (10.0 : Decimal) - roundBankers 2 22.105 === (22.100 : Decimal) roundCommercial 0 (-10.5) === (-11.0 : Decimal) roundCommercial 2 (-22.105) === (-22.110 : Decimal) + +testRoundBankers = script do + roundBankers 0 10.5 === (10.0 : Decimal) + roundBankers 2 22.105 === (22.100 : Decimal) roundBankers 0 (-10.5) === (-10.0 : Decimal) roundBankers 2 (-22.105) === (-22.100 : Decimal) diff --git a/compiler/damlc/tests/daml-test-files/RoundingModeMatch.daml b/compiler/damlc/tests/daml-test-files/RoundingModeMatch.daml index 8bca28c772..fcd9e31573 100644 --- a/compiler/damlc/tests/daml-test-files/RoundingModeMatch.daml +++ b/compiler/damlc/tests/daml-test-files/RoundingModeMatch.daml @@ -1,7 +1,7 @@ -- Copyright (c) 2021, Digital Asset (Switzerland) GmbH and/or its affiliates. -- All rights reserved. --- @SINCE-LF 2.1 +-- @SINCE-LF 2.dev -- | Test that pattern matching for RoundingMode works. module RoundingModeMatch where diff --git a/compiler/damlc/tests/daml-test-files/RoundingModeOrder.daml b/compiler/damlc/tests/daml-test-files/RoundingModeOrder.daml index 8c504e9081..fcf22838ec 100644 --- a/compiler/damlc/tests/daml-test-files/RoundingModeOrder.daml +++ b/compiler/damlc/tests/daml-test-files/RoundingModeOrder.daml @@ -1,7 +1,7 @@ -- Copyright (c) 2021, Digital Asset (Switzerland) GmbH and/or its affiliates. -- All rights reserved. --- @SINCE-LF 2.1 +-- @SINCE-LF 2.dev -- | Test that rounding mode order matches the order in GHC.Types module RoundingModeOrder where diff --git a/compiler/damlc/tests/platform-independence.dar-hash b/compiler/damlc/tests/platform-independence.dar-hash index 480f74d7f3..58bf5832b8 100644 --- a/compiler/damlc/tests/platform-independence.dar-hash +++ b/compiler/damlc/tests/platform-independence.dar-hash @@ -1,34 +1,34 @@ -dd017b1e9285b71277103fb31ba669af9daf6ede37880ebfadfd0c2e8a8e5562 META-INF/MANIFEST.MF -af53bfb744c41db01eb8066a4f2485bab8af7444206202213be5a37dc0e2f36d platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/compiler/damlc/tests/PlatformIndependence.daml -0000000000000000000000000000000000000000000000000000000000000000 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/compiler/damlc/tests/PlatformIndependence.hi -0000000000000000000000000000000000000000000000000000000000000000 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/compiler/damlc/tests/PlatformIndependence.hie -50156da43d4d6210007cb6fe6bce2895a3a23aba9bc9a649fa6d5aa56e9a5dad platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-3697a9dababb68797d839216d0c70aec808756a39bdd95ee68a74309ac82eea0.dalf -7753f914997075d73cb5bc6a0385d2adb9771bdbf7616dd4493061428b61094b platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-DA-Exception-ArithmeticError-0e35772044c88dda5159f70a9170eae0f07e2f1942af4ab401e7cd79166e8c94.dalf -7d847f3b915631bdc2f02d7a728634a84aff5e10be7c0f2c3b1dede07c627103 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-DA-Exception-AssertionFailed-ffc462638e7338aaf5d45b3eae8aba5d8e9259a2e44d1ec9db70ed4ee83601e0.dalf -72a94dbec4cca5373146dd87eff9d2f5f17de2ed86b029e97149dca6c3e61909 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-DA-Exception-GeneralError-48426ca53c6510a1d641cdc05dd5b3cea288bd4bcd54311ffaa284b5097d4b9d.dalf -8aa84ab48fd28a04f16f6cbc0445e7d2a25788c83ba9481b4186bb41527f8489 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-DA-Exception-PreconditionFailed-4d035c16dee0b8d75814624a05de9fcb062e942ff3b3b60d913335b468a84789.dalf -b7231004ce0a71af79fd3170ad7a4722d056b33d359c40667da8945a80bb774f platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-DA-Internal-Erased-71ca307ec24fc584d601fd6d5f49ec76d100730f56eef290e41248f32ccadfb1.dalf -e4f030ce0b2c2bf4f75d12796842b60bf19c9f6d3a3e38251d4fc7831bd21fa2 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-DA-Internal-NatSyn-eb6926e50bb83fbc8f3e154c7c88b1219b31a3c0b812f26b276d46e212c2dd71.dalf -7c7b9661de3b11759d2b31170a31557b31fdf71475440a1d19f9b433682d73e7 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-DA-Internal-PromotedText-c2bac57e7a921c98523ae40766bfefab9f5b7bf4bf34e1c09d9a9d1483417b6c.dalf -57b95cf6d28642123683263e7042d3e7aa433983bee15f02c6b3be91fdb1570b platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-DA-Types-87530dd1038863bad7bdf02c59ae851bc00f469edb2d7dbc8be3172daafa638c.dalf -7ee841faf1822a6f2d862fd5c0124ba5c19f7e9b7aa38b51e1734e52d6e369d6 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-GHC-Prim-37375ebfb7ebef8a38aa0d037db55833bcac40eb04074b9024ed81c249ea2387.dalf -759096170bd66b0a9e143bcb1b13a3da9b73c1dbef8f332acf316e107b976e97 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-GHC-Tuple-afbf83d4d9ef0fb1a4ee4d1d6bef98b5cea044a6d395c1c27834abd7e8eb57ae.dalf -6b86980eae30973a596dd3a14604a49c3a81df83c22d427d7c8aee95f5b34986 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-prim-GHC-Types-2f07eb3e4731beccfd88fcd19177268f120f9a2b06a52534ee808a4ba1e89720.dalf -03765e88111411e21b6ca5286e6d31fb287a56cf835a35275a86c3922b06fc27 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-0.0.0-fb2dbe9727e273644b67cd5c15e60fca8b7b5bd37ae1367e1f68d69462bba0f9.dalf -54303c132e8d1c59140ccda13f7d2085a885ca3fb3f6fd0fa3cdfcea1f9c13dd platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Action-State-Type-2d7314e12cc21ce1482d7a59ab8b42f8deafbe3cdb62eae9fcd4f583ba0ad8d0.dalf -d271f772f550b8552d4d62afeb1cf52ec5ca338afcd0f81187151043a7669111 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Date-Types-a4c44a89461229bb4a4fddbdeabe3f9dfaf6db35896c87d76f638cd45e1f0678.dalf -3eb9afc8c9d2c0c7cf2d9fce7b67176d253937df7edb445f806bb92dd35fba49 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Internal-Any-7de198711a7a5b3c897eff937b85811438d22f48452a118222590b0ec080bf54.dalf -214528ffb6a47cd06842e1c967d0229b2b40c01558f65820227724c8dc580fe5 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Internal-Down-35df06619756af233f13051ba77718e172589b979d22dd3ec40c8787563bb435.dalf -57a2209fe7455e34719b1bb144bbcaf954bb636aa84f8abd98ea4752dea0b237 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Internal-Interface-AnyView-Types-db7b27684bd900f7ca47c854d526eeaffd9e84d761859c66cc6cf5957ad89ed4.dalf -087da7033930c176e6bc0f8fdff465d496a749c807f154d1ce00ab38a5551c86 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Internal-Template-c2eed01333d3c95b12ca5ef0f196db5cd481c58902e01c8ac6b1e49a62875aa5.dalf -3bd856f195b5fe6878155acd30d64f76bcf0065747725a4f4756647fd61d17c1 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Logic-Types-19cfdcbac283f2a26c05bfcea437177cfb7adb0b2eb8aa82944e91b13b671912.dalf -71f6d54039b58970475720e76737351995ba8782ce97df708efbc0bc79f8150a platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Monoid-Types-bb581ddc78c4c0e682727d9a2302dc1eba5941809c528aca149a5fdaf25c6cbd.dalf -ed2942d4af24cb2caf20d61d7ea21f724197dcf3a7bf83c41ed19644074fb9e0 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-NonEmpty-Types-d3a94c9e99da7fbb5e35d52d05eec84db27233d4c1aed75548dba1057c84ad81.dalf -13a66a07ebec59ee8f86a20d0ce97db3bee35ba326766c88e89598a6df96ef29 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Random-Types-58f4cb7b68a305d056a067c03083f80550ed7d98d6fe100a5ddfa282851ba49a.dalf -c1860753e8cefcec4dd6af70cd50827e6dbcfdedc6b6345d42e1114955aa3eaa platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Semigroup-Types-ceb729ab26af3934f35fb803534d633c4dd37b466888afcced34a32155e9c2cd.dalf -7eacd55658d4500b89762f1f67fe8a9ae72a35716ea15108ddd361abb9e4f7ae platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Set-Types-9d88bb9904dab8f44a47e4f27c8d8ee4fc57fece9c2e3d385ef7ed19fcc24049.dalf -cb1de1fd96f95c42268fb15cf2353d0ea8d506f75caebd686896c1838df712ff platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Stack-Types-747f749a860db32a01ae0c5c741e6648497b93ffcfef3948854c31cc8167eacf.dalf -b7ce18d5f2642b00d49f8957d0311ebd89c6de164fae0992059c7eaae1818935 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Time-Types-b47113ba94c31372c553e3869fffed9a45ef1c0f5ac1be3287857cd9450c0bae.dalf -a6d1d84b5f296dd1eb7bd9b7cbee4d8a133f18f9d04b77fa95e52599ddcbbc92 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/daml-stdlib-DA-Validation-Types-4687117abb53238857bccdb0d00be7fc005eb334e1f232de3d78152b90b3f202.dalf -65523428d3ddbc3f374d9f86a30331520350adec30405b4ecfb12b58abe54636 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/data/platform-independence-1.0.0.conf -cac06df8a4f39b9427c00f0a25f6c1ea0896ca7ae185c465b80f5b26b36568e1 platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b/platform-independence-1.0.0-d77bce8e9d12a2266e78f508b5e034e87f3ccaf66f71572bbdff2d34d5c2995b.dalf +ab612ddd37d20d4d3bd4cb0a4916e432768f3eb3fe962a731f96833374113b21 META-INF/MANIFEST.MF +af53bfb744c41db01eb8066a4f2485bab8af7444206202213be5a37dc0e2f36d platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/compiler/damlc/tests/PlatformIndependence.daml +0000000000000000000000000000000000000000000000000000000000000000 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/compiler/damlc/tests/PlatformIndependence.hi +0000000000000000000000000000000000000000000000000000000000000000 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/compiler/damlc/tests/PlatformIndependence.hie +f7e2c58abde05605fcc38dc4ed43caddd4136266de8d784b83de79115ee38ac1 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-8d4efa892d9e5bfc93769d10b3eef7c8f3a61e3edbb87cadd1a0052bffc9b00d.dalf +7753f914997075d73cb5bc6a0385d2adb9771bdbf7616dd4493061428b61094b platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-DA-Exception-ArithmeticError-0e35772044c88dda5159f70a9170eae0f07e2f1942af4ab401e7cd79166e8c94.dalf +7d847f3b915631bdc2f02d7a728634a84aff5e10be7c0f2c3b1dede07c627103 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-DA-Exception-AssertionFailed-ffc462638e7338aaf5d45b3eae8aba5d8e9259a2e44d1ec9db70ed4ee83601e0.dalf +72a94dbec4cca5373146dd87eff9d2f5f17de2ed86b029e97149dca6c3e61909 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-DA-Exception-GeneralError-48426ca53c6510a1d641cdc05dd5b3cea288bd4bcd54311ffaa284b5097d4b9d.dalf +8aa84ab48fd28a04f16f6cbc0445e7d2a25788c83ba9481b4186bb41527f8489 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-DA-Exception-PreconditionFailed-4d035c16dee0b8d75814624a05de9fcb062e942ff3b3b60d913335b468a84789.dalf +b7231004ce0a71af79fd3170ad7a4722d056b33d359c40667da8945a80bb774f platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-DA-Internal-Erased-71ca307ec24fc584d601fd6d5f49ec76d100730f56eef290e41248f32ccadfb1.dalf +e4f030ce0b2c2bf4f75d12796842b60bf19c9f6d3a3e38251d4fc7831bd21fa2 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-DA-Internal-NatSyn-eb6926e50bb83fbc8f3e154c7c88b1219b31a3c0b812f26b276d46e212c2dd71.dalf +7c7b9661de3b11759d2b31170a31557b31fdf71475440a1d19f9b433682d73e7 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-DA-Internal-PromotedText-c2bac57e7a921c98523ae40766bfefab9f5b7bf4bf34e1c09d9a9d1483417b6c.dalf +57b95cf6d28642123683263e7042d3e7aa433983bee15f02c6b3be91fdb1570b platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-DA-Types-87530dd1038863bad7bdf02c59ae851bc00f469edb2d7dbc8be3172daafa638c.dalf +7ee841faf1822a6f2d862fd5c0124ba5c19f7e9b7aa38b51e1734e52d6e369d6 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-GHC-Prim-37375ebfb7ebef8a38aa0d037db55833bcac40eb04074b9024ed81c249ea2387.dalf +759096170bd66b0a9e143bcb1b13a3da9b73c1dbef8f332acf316e107b976e97 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-GHC-Tuple-afbf83d4d9ef0fb1a4ee4d1d6bef98b5cea044a6d395c1c27834abd7e8eb57ae.dalf +6b86980eae30973a596dd3a14604a49c3a81df83c22d427d7c8aee95f5b34986 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-prim-GHC-Types-2f07eb3e4731beccfd88fcd19177268f120f9a2b06a52534ee808a4ba1e89720.dalf +f6fe383cfb485862e19d675e88353670ace76412ba5c1c689902ed7605120b29 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-0.0.0-f729465f954a45321abd09e3e6863d046c9e8468916011641f4cf4241aa3edbe.dalf +54303c132e8d1c59140ccda13f7d2085a885ca3fb3f6fd0fa3cdfcea1f9c13dd platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Action-State-Type-2d7314e12cc21ce1482d7a59ab8b42f8deafbe3cdb62eae9fcd4f583ba0ad8d0.dalf +d271f772f550b8552d4d62afeb1cf52ec5ca338afcd0f81187151043a7669111 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Date-Types-a4c44a89461229bb4a4fddbdeabe3f9dfaf6db35896c87d76f638cd45e1f0678.dalf +3eb9afc8c9d2c0c7cf2d9fce7b67176d253937df7edb445f806bb92dd35fba49 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Internal-Any-7de198711a7a5b3c897eff937b85811438d22f48452a118222590b0ec080bf54.dalf +214528ffb6a47cd06842e1c967d0229b2b40c01558f65820227724c8dc580fe5 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Internal-Down-35df06619756af233f13051ba77718e172589b979d22dd3ec40c8787563bb435.dalf +57a2209fe7455e34719b1bb144bbcaf954bb636aa84f8abd98ea4752dea0b237 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Internal-Interface-AnyView-Types-db7b27684bd900f7ca47c854d526eeaffd9e84d761859c66cc6cf5957ad89ed4.dalf +087da7033930c176e6bc0f8fdff465d496a749c807f154d1ce00ab38a5551c86 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Internal-Template-c2eed01333d3c95b12ca5ef0f196db5cd481c58902e01c8ac6b1e49a62875aa5.dalf +3bd856f195b5fe6878155acd30d64f76bcf0065747725a4f4756647fd61d17c1 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Logic-Types-19cfdcbac283f2a26c05bfcea437177cfb7adb0b2eb8aa82944e91b13b671912.dalf +71f6d54039b58970475720e76737351995ba8782ce97df708efbc0bc79f8150a platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Monoid-Types-bb581ddc78c4c0e682727d9a2302dc1eba5941809c528aca149a5fdaf25c6cbd.dalf +ed2942d4af24cb2caf20d61d7ea21f724197dcf3a7bf83c41ed19644074fb9e0 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-NonEmpty-Types-d3a94c9e99da7fbb5e35d52d05eec84db27233d4c1aed75548dba1057c84ad81.dalf +13a66a07ebec59ee8f86a20d0ce97db3bee35ba326766c88e89598a6df96ef29 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Random-Types-58f4cb7b68a305d056a067c03083f80550ed7d98d6fe100a5ddfa282851ba49a.dalf +c1860753e8cefcec4dd6af70cd50827e6dbcfdedc6b6345d42e1114955aa3eaa platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Semigroup-Types-ceb729ab26af3934f35fb803534d633c4dd37b466888afcced34a32155e9c2cd.dalf +7eacd55658d4500b89762f1f67fe8a9ae72a35716ea15108ddd361abb9e4f7ae platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Set-Types-9d88bb9904dab8f44a47e4f27c8d8ee4fc57fece9c2e3d385ef7ed19fcc24049.dalf +cb1de1fd96f95c42268fb15cf2353d0ea8d506f75caebd686896c1838df712ff platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Stack-Types-747f749a860db32a01ae0c5c741e6648497b93ffcfef3948854c31cc8167eacf.dalf +b7ce18d5f2642b00d49f8957d0311ebd89c6de164fae0992059c7eaae1818935 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Time-Types-b47113ba94c31372c553e3869fffed9a45ef1c0f5ac1be3287857cd9450c0bae.dalf +a6d1d84b5f296dd1eb7bd9b7cbee4d8a133f18f9d04b77fa95e52599ddcbbc92 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/daml-stdlib-DA-Validation-Types-4687117abb53238857bccdb0d00be7fc005eb334e1f232de3d78152b90b3f202.dalf +f1a9ddfcb87025b7db68ffdacfaa4d8142a50df77ce3fbd714ac68bb4d99e473 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/data/platform-independence-1.0.0.conf +cde0e75a601e14db688718a4c4d21208c83b88e95432f630b68c6f2b18e429b0 platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb/platform-independence-1.0.0-422f69ada466892f7d4c3b42584095d6f78a63b2385a9d0ce3b487972d552fcb.dalf diff --git a/compiler/lsp-tests/src/Main.hs b/compiler/lsp-tests/src/Main.hs index d6ddbff564..fdbad92fe5 100644 --- a/compiler/lsp-tests/src/Main.hs +++ b/compiler/lsp-tests/src/Main.hs @@ -427,9 +427,8 @@ requestTests run runScripts = testGroup "requests" { _contents = HoverContents $ MarkupContent MkMarkdown $ T.unlines [ "```daml" , "1.0" - , ": (Additive a, IsNumeric a)" - , "=> a" - , "```" + , ": NumericScale n" + , "=> Numeric n" , "```" , "* * *" ] , _range = Just $ Range (Position 1 27) (Position 1 30) diff --git a/daml-lf/archive/src/main/scala/com/digitalasset/daml/lf/archive/DecodeV2.scala b/daml-lf/archive/src/main/scala/com/digitalasset/daml/lf/archive/DecodeV2.scala index 0a1ae12d3d..6104cc78ba 100644 --- a/daml-lf/archive/src/main/scala/com/digitalasset/daml/lf/archive/DecodeV2.scala +++ b/daml-lf/archive/src/main/scala/com/digitalasset/daml/lf/archive/DecodeV2.scala @@ -1974,7 +1974,7 @@ private[lf] object DecodeV2 { BuiltinFunctionInfo(MUL_BIGNUMERIC, BMulBigNumeric, minVersion = bigNumeric), BuiltinFunctionInfo(DIV_BIGNUMERIC, BDivBigNumeric, minVersion = bigNumeric), BuiltinFunctionInfo(SHIFT_RIGHT_BIGNUMERIC, BShiftRightBigNumeric, minVersion = bigNumeric), - BuiltinFunctionInfo(BIGNUMERIC_TO_NUMERIC, BBigNumericToNumeric), + BuiltinFunctionInfo(BIGNUMERIC_TO_NUMERIC, BBigNumericToNumeric, minVersion = bigNumeric), BuiltinFunctionInfo(NUMERIC_TO_BIGNUMERIC, BNumericToBigNumeric, minVersion = bigNumeric), BuiltinFunctionInfo(BIGNUMERIC_TO_TEXT, BBigNumericToText, minVersion = bigNumeric), BuiltinFunctionInfo(ANY_EXCEPTION_MESSAGE, BAnyExceptionMessage, minVersion = exceptions), diff --git a/daml-lf/encoder/src/test/lf/BigNumeric_all_.lf b/daml-lf/encoder/src/test/lf/BigNumeric_2.dev_.lf similarity index 100% rename from daml-lf/encoder/src/test/lf/BigNumeric_all_.lf rename to daml-lf/encoder/src/test/lf/BigNumeric_2.dev_.lf diff --git a/daml-lf/encoder/src/test/lf/Builtin_2.1_.lf b/daml-lf/encoder/src/test/lf/Builtin_2.1_.lf index 486cd49c0b..3b930f3217 100644 --- a/daml-lf/encoder/src/test/lf/Builtin_2.1_.lf +++ b/daml-lf/encoder/src/test/lf/Builtin_2.1_.lf @@ -121,26 +121,6 @@ module BuiltinMod { TRACE; val coerceContractId: forall (a: *) (b: *). ContractId a -> ContractId b = COERCE_CONTRACT_ID; - val scaleBignumeric: BigNumeric -> Int64 = - SCALE_BIGNUMERIC; - val precisionBignumeric: BigNumeric -> Int64 = - PRECISION_BIGNUMERIC; - val addBignumeric: BigNumeric -> BigNumeric -> BigNumeric = - ADD_BIGNUMERIC; - val subBignumeric: BigNumeric -> BigNumeric -> BigNumeric = - SUB_BIGNUMERIC; - val mulBignumeric: BigNumeric -> BigNumeric -> BigNumeric = - MUL_BIGNUMERIC; - val divBignumeric: Int64 -> RoundingMode -> BigNumeric -> BigNumeric -> BigNumeric = - DIV_BIGNUMERIC; - val shiftRightBignumeric: Int64 -> BigNumeric -> BigNumeric = - SHIFT_RIGHT_BIGNUMERIC; - val bignumericToNumeric: forall (a: nat). Numeric a -> BigNumeric -> Numeric a = - BIGNUMERIC_TO_NUMERIC; - val numericToBignumeric: forall (a: nat). Numeric a -> BigNumeric = - NUMERIC_TO_BIGNUMERIC; - val bignumericToText: BigNumeric -> Text = - BIGNUMERIC_TO_TEXT; val anyExceptionMessage: AnyException -> Text = ANY_EXCEPTION_MESSAGE; } diff --git a/daml-lf/encoder/src/test/lf/Builtin_2.dev_.lf b/daml-lf/encoder/src/test/lf/Builtin_2.dev_.lf index e68f3f2c57..948d1068f9 100644 --- a/daml-lf/encoder/src/test/lf/Builtin_2.dev_.lf +++ b/daml-lf/encoder/src/test/lf/Builtin_2.dev_.lf @@ -121,23 +121,23 @@ module BuiltinMod { TRACE; val coerceContractId: forall (a: *) (b: *). ContractId a -> ContractId b = COERCE_CONTRACT_ID; - val scaleBignumeric: BigNumeric -> Int64 = + val scaleBigNumeric: BigNumeric -> Int64 = SCALE_BIGNUMERIC; - val precisionBignumeric: BigNumeric -> Int64 = + val precisionBigNumeric: BigNumeric -> Int64 = PRECISION_BIGNUMERIC; - val addBignumeric: BigNumeric -> BigNumeric -> BigNumeric = + val addBigNumeric: BigNumeric -> BigNumeric -> BigNumeric = ADD_BIGNUMERIC; - val subBignumeric: BigNumeric -> BigNumeric -> BigNumeric = + val subBigNumeric: BigNumeric -> BigNumeric -> BigNumeric = SUB_BIGNUMERIC; - val mulBignumeric: BigNumeric -> BigNumeric -> BigNumeric = + val mulBigNumeric: BigNumeric -> BigNumeric -> BigNumeric = MUL_BIGNUMERIC; - val divBignumeric: Int64 -> RoundingMode -> BigNumeric -> BigNumeric -> BigNumeric = + val divBigNumeric: Int64 -> RoundingMode -> BigNumeric -> BigNumeric -> BigNumeric = DIV_BIGNUMERIC; - val shiftRightBignumeric: Int64 -> BigNumeric -> BigNumeric = + val shiftRightBigNumeric: Int64 -> BigNumeric -> BigNumeric = SHIFT_RIGHT_BIGNUMERIC; val bignumericToNumeric: forall (a: nat). Numeric a -> BigNumeric -> Numeric a = BIGNUMERIC_TO_NUMERIC; - val numericToBignumeric: forall (a: nat). Numeric a -> BigNumeric = + val numericToBigNumeric: forall (a: nat). Numeric a -> BigNumeric = NUMERIC_TO_BIGNUMERIC; val bignumericToText: BigNumeric -> Text = BIGNUMERIC_TO_TEXT; diff --git a/daml-lf/encoder/src/test/scala/com/digitalasset/daml/lf/archive/testing/DamlLfEncoderTest.scala b/daml-lf/encoder/src/test/scala/com/digitalasset/daml/lf/archive/testing/DamlLfEncoderTest.scala index 380c2116e6..77b2dd76d1 100644 --- a/daml-lf/encoder/src/test/scala/com/digitalasset/daml/lf/archive/testing/DamlLfEncoderTest.scala +++ b/daml-lf/encoder/src/test/scala/com/digitalasset/daml/lf/archive/testing/DamlLfEncoderTest.scala @@ -56,13 +56,13 @@ class DamlLfEncoderTest "AnyMod", "SynonymMod", "GenMapMod", - "BigNumericMod", "ExceptionMod", "InterfaceMod", "InterfaceMod0", ) val modules_2_dev = modules_2_1 ++ Set[DottedName]( - "InterfaceExtMod" + "BigNumericMod", + "InterfaceExtMod", ) val versions = Table( diff --git a/daml-lf/language/src/main/scala/com/digitalasset/daml/lf/language/LanguageVersion.scala b/daml-lf/language/src/main/scala/com/digitalasset/daml/lf/language/LanguageVersion.scala index 6d0b7ac2a2..5656468327 100644 --- a/daml-lf/language/src/main/scala/com/digitalasset/daml/lf/language/LanguageVersion.scala +++ b/daml-lf/language/src/main/scala/com/digitalasset/daml/lf/language/LanguageVersion.scala @@ -39,7 +39,6 @@ object LanguageVersion { object Features { val default = v2_1 - val bigNumeric = v2_1 val exceptions = v2_1 val packageUpgrades = v2_1 val choiceFuncs = v2_dev @@ -52,6 +51,9 @@ object LanguageVersion { /** Guards in interfaces */ val extendedInterfaces = v2_dev + /** BigNumeric */ + val bigNumeric = v2_dev + /** Unstable, experimental features. This should stay in x.dev forever. * Features implemented with this flag should be moved to a separate * feature flag once the decision to add them permanently has been made.