Commit Graph

2497 Commits

Author SHA1 Message Date
Robin Krom
f73bcff7a7
language: removing deprecated damlc and database (#537)
Looks like all tests have been moved to fat dars finally and we can get
rid of this.
2019-04-16 15:51:51 +02:00
Andreas Herrmann
4b0b8493ca
Build grpc-haskell on Windows (#532)
* Inline c2hs expansion.

* Patch unix-compat for Windows

unix-compat fails on Windows due to missing version macros in hsc files.
This patches unix-compat inlining the effect of the corresponding
version macro evaluation.

* Add grpc-haskell to Windows CI

* Fix formatting

* Move unix-compat.patch

Moved to bazel_tools, where all other Bazel patches reside.

* Remove .chi files

Those don't need to be checked in.

* Add FIXME on checked in c2hs files.
2019-04-16 15:36:27 +02:00
Fran
0c10fafe69
Check SDK version before download and use redirect to find latest version. (#526)
* Add SDK version check before download.

* Get latest version from github, not URL directly.

* Prune unused parts of the Github API.

* Refactor AssetName out.

* Reorder the github module.

* Use redirect instead of GitHub API to get latest stable version.

* Do not limit number of redirects.

* Fix bazel rule

* Actually fix build rule
2019-04-16 15:26:24 +02:00
Moritz Kiefer
ac5bdc3a5d
Move Maven database to a separate rule (#527)
* Move Maven database to a separate rule

This should make sure that we get a cached version far more often and
thereby speed up the integration tests.
2019-04-16 14:37:39 +02:00
Gabor Aranyossy
a790a0d60d
adding explicit back pressure to Command Submission (#483)
* introduced back-pressure semantics for command submission

* fixup

* reenabling CommandServiceBackPressureIT

* fixing / enhancing the command submission backpressure test

* removed the unneccessary Error from the ADT

* routing CheckPoints/Heartbeats on a different channel to avoid back-pressure

* fixup
2019-04-16 13:50:24 +02:00
Nicolas Mattia
3b9a2f58dc
Update rules_haskell and don't use nixpkgs c2hs (#525)
* Update rules_haskell

In order to have kernel32 flagged as a system library.

* Don't use nixpkgs c2hs

* Apply linter suggestions
2019-04-16 13:42:52 +02:00
Robert Autenrieth
8655a792c3
Navigator: Print important messages to stderr (#522)
* Navigator: Print important messages to stderr

All messages that users need to act on are now printed to
stderr, in addition to the log file.

Otherwise, it is confusing to users why they have to start
Navigator twice.

Fixes #112
2019-04-16 13:20:59 +02:00
Robert Autenrieth
ae89a0df24
Navigator: URLEncode party names for Akka (#523)
Akka does not like actor names with spaces,
which are valid in DAML.

Fixes #512
2019-04-16 13:20:10 +02:00
Robin Krom
9f0b74176f
language: Check rational precision for rational literals. (#514)
* language: Check rational precision for rational literals.

A value like 0.00000000005 was truncated to 0.000000000. This change
will throw an error instead and abort the compilation. It also checks
for maximal/minimal bounds.
2019-04-16 12:51:48 +02:00
Gerolf Seitz
f1b077dd1a
Remove blocking call in Bot.wire (#521)
The call to blockingGet can lead to no progress being made in certain
scenarios. Therefore I am removing the blocking call and replacing it
with a regular "doOnSuccess".
2019-04-16 11:53:29 +02:00
mziolekda
02dd917699
make reference index service stop repeating last event indefinitely + refactoring (#482)
* remove early returns

* make reference index service stop repeating last event indefinitely

* make all services follow more consistent design, no unnecessary inherits, no unnecessary methods

* scala format
2019-04-16 11:42:36 +02:00
Nicolas Mattia
d722595e6a
Drop patches that were upstreamed to rules_haskell (#507)
* Remove long gone patch

The "shorten-source-dirs" patch was removed some time ago but was still
referenced in bazel_tools.

* Drop upstreamed rules_haskell patches

Some patches have been upstreamed to rules_haskell.

* Build haskell-ide-core on CI

* Apply buildifier

* Update rules_haskell

The latest version uses stackage's mirror of Hackage.
2019-04-16 11:37:07 +02:00
Jonas Chevalier
16aba583ce
CI linux agent changes (#509)
* ci: always use the linux-pool

reduce the difference of environment between external and internal
contributions

* infra: tweak the linux cache warmup script

Don't share the same bazel cache directory with the disk cache, which is
something else. Be more specific about the target. Clean after yourself.

* infra: bump the linux agent disk to 200GB

avoid running out of disk space
2019-04-16 11:35:46 +02:00
Jonas Chevalier
a061db34d3
ci: publish the bazel test logs (#476)
As a developer I want to be able to inspect the detailed test logs when those are
failing.
2019-04-16 11:34:21 +02:00
Moritz Kiefer
a0573b1228 Remove references to deprecated damlc from extractor (#513) 2019-04-16 10:14:23 +01:00
Francesco Mazzoli
4bf20566e8
add note about security issues in issue template (#503) 2019-04-16 10:20:17 +02:00
Robert Autenrieth
d6da1e435b Add support for contract keys in the sandbox SQL backend (#444)
* Add support for contract key to SQL backend

* Address review comments

* Address reviewer comments
2019-04-16 10:11:29 +02:00
Michał Majcherski
f8db15856c
windows: navigator build (#485) 2019-04-16 10:00:58 +02:00
Moritz Kiefer
6e7988eea0
Downgrade nix from 2.2.2 to 2.2.1 (#517)
The newer version seems to segfault on MacOS quite often so let’s
downgrade for now. We should also try to see if we can find a
reasonable way of reproducing this and report it upstream.
2019-04-16 09:14:20 +02:00
Robin Krom
c049df1261
language: added an output file option to the new build command. (#511)
This adds an output file option to `daml build` to specify where to
write the created dar.
2019-04-15 23:58:20 +02:00
Leonid Shlyapnikov
bdb5160403
Multiple fat DARs scala/codegen support, #109 (#366)
Add Dar Traverse and Equal, replace manually written test cases with
scalaz law checks;
Add test case for multiple DARs support;
Enforcing non empty list of input files
2019-04-15 17:12:07 -04:00
Shayne Fletcher
b16176338c
Integrate ghc-lib-0.20190415 (#505) 2019-04-15 16:25:06 -04:00
Gary Verhaegen
4e80b1f927
release 0.12.5 (#504) 2019-04-15 21:17:38 +01:00
Moritz Kiefer
553cde8d02
Fix codegen integration tests (#510)
The codegen integration tests assume a specific location atm so we
need to specify that explicitely (eventually we might want to change
them to use the default location but not for now). The reason why we
didn’t catch this before merging the package-new command is that the
PR was not rebased on top of the changes that added the codegen
integration tests.
2019-04-15 21:22:59 +02:00
Brian Healey
e885dd112b
Update jinja2 and other versions (#500)
* Update jinja2 and other versions

* HOTFIX uptick jinja2 to >=2.10.1
2019-04-15 13:09:40 -04:00
Stefano Baghino
4110e039dd
Fix the DAML-LF Archive package structure (#502)
The DAML-LF Archive Protobuf definitions, as packaged and distributed
via Bintray and the SDK, currently packages the files in a directory
structure that does not match with the actual one, causing the usage of
`protoc` on the packaged definitions to raise errors. This commit fixes
it by packaging the files in the same directory structure as the one
found in the repository.
2019-04-15 18:25:09 +02:00
Leonid Shlyapnikov
1dfbdb903e
HOTFIX: increasing 30.sec timeout to 300.sec (#462)
* HOTFIX: increasing 30.sec timeout to 300.sec

this to fix SQL-backed ledger tests that currently keep timing out.
It is NOT really a fix, but a temp work-around. Tried to get rid of
this timeout, but it propogates all over the place. Need a separate
story to address this

* HOTFIX: adding a link to the issue
2019-04-15 12:17:53 -04:00
Robin Krom
0f2ac2d06d
language: new package command for damlc (#395)
* language: new package command for damlc

The (internal) package-new command reads all information from the
daml.yaml file of a DAML project and also creates the .conf file for the
package database and packs it with the dar.
2019-04-15 18:12:04 +02:00
Fran
b91535d287
Make install target explicit in daml install. (#498)
* resolve merge

* Be explicit about install target.

* Refactor InstallTarget type out.

* Change install target metavar.
2019-04-15 18:04:12 +02:00
Gary Verhaegen
c11b511338
fix release pipeline (#499)
1. Only try to release if all tests have passed
2. Specifically push build product, rather than entire worktree
2019-04-15 17:01:53 +01:00
moritzkiefer-da
ec46b8cec5 Add codegen to integration tests (#494) 2019-04-15 17:53:05 +02:00
Gary Verhaegen
e83c21ae11
release 0.12.4 (#489) 2019-04-15 15:47:32 +01:00
Francesco Mazzoli
f50cbef297 use .dars consistently in tests (#484) 2019-04-15 16:45:08 +02:00
Beth Aitman
d9b35ad1ab Rescuing lost PRs from old repo (#493)
* Add docs publish instructions

* Make publish script fail if Bazel fails
2019-04-15 16:30:20 +02:00
Beth Aitman
5fafdc2a26 Remove performance benchmarks section (#491) 2019-04-15 16:29:58 +02:00
Fran
f53788535e
Save a GitHub API call in daml install. (#492)
* Save an API call when installing specific version.
* Fix little errors.
* Typo
2019-04-15 16:25:40 +02:00
Beth Aitman
fc0a3c9a98
Move DAML snippets from inline to their own files, so they're tested (#446)
* Move DAML-LF snippets to .daml file

* Move codegen snippets to .daml files

* Fix new code snippets

* Fixes from code review

* Silly mistake
2019-04-15 15:47:39 +02:00
Beth Aitman
7b8acd81d8
Update multiparty text (#486) 2019-04-15 15:45:33 +02:00
Fran
3a0aa90a1e
Fix example asset name in github install module. (#488) 2019-04-15 15:35:18 +02:00
Gerolf Seitz
2a932d9b22
Include google/rpc/*.proto into ledger-api-scalapb (#477)
Considering that there is no canonical source for status.proto generated
for scalapb (for java it is pulled in via a transitive dependency of
grpc-protobuf), we should rather compile and include it in the
ledger-api-scalapb artefact.
2019-04-15 14:57:43 +02:00
Gary Verhaegen
de4101b8c3
include artifacts in github releases (#487) 2019-04-15 13:54:04 +01:00
moritzkiefer-da
dff9f17ac6 Remove damli completely (#481)
The only command that we still had in damli which afaik isn’t
something anyone uses (and if it is, we should move it do damlc).
2019-04-15 14:47:59 +02:00
Fran
1a70bf68cc
Install from GitHub releases! (#459)
* Install from GitHub releases!

* Revert make-capsule script.

* Refactor a little.

* Reviewer comments
2019-04-15 13:46:53 +02:00
Neil Mitchell
d42171e52e
Add helpers for defining Hazel packages (#478)
* Add helpers for defining Hazel packages

* Make sure external github things look obviously external
2019-04-15 11:05:45 +01:00
Shayne Fletcher
1fdf847458
Add to ghc-lib developer documentation (#467)
* Add a new section explaining how to develop ghc-lib

* clarify git checkout commands
2019-04-15 05:58:33 -04:00
Shayne Fletcher
7b1682c190
Integrate ghc-lib-0.20190413; no regressions. (#468) 2019-04-15 05:41:42 -04:00
moritzkiefer-da
f145ba088e
Add an option to produce all release artifacts on MacOS (#474)
This can be quite useful for debugging purposes.
2019-04-15 10:58:19 +02:00
Gerolf Seitz
2f3189db9e
Reuse the same Engine object between ledger resets (#466)
Compared to older versions of the Engine, we do A LOT more validation
now. So when starting with a fresh engine after each reset (via
the ResetService), we also repeat the validation of the loaded packages
again and again. This is VERY expensive, especially for large DAML
packages.

Luckily, the specification of the ResetService states the following:
// Resets the ledger state. Note that loaded DARs won't be removed --
// this only rolls back the ledger to genesis.
This means that we can re-use the same Engine object and benefit from
not having "re-compile" packages via
ConcurrentCompiledPackages#addPackage, more specifically we can omit
this line: 1f2246c822/daml-lf/engine/src/main/scala/com/digitalasset/daml/lf/engine/ConcurrentCompiledPackages.scala (L56)

Fixes #178
2019-04-15 09:19:04 +02:00
Francesco Mazzoli
6af84051ee
fix various conversion functions from string to Decimal (#439)
* fix various conversion functions from string to Decimal

Fixes #399.

This fixes a critical bug -- since:

* The DAML-LF spec specifies that the scale of `Decimal` is 10 --
    that is, there are at most 10 digits past the decimal point:
    <79bbf5c794/daml-lf/spec/value.rst (field-decimal)>.
* However, the code converting from the string representation that
    we get on the wire was _not_ performing this check. This is due
    to two reasons:

    - `Decimal.check` is a function that checks whether a given
        `Decimal` is within the upper and lower bounds of what the
        DAML-LF spec specifies, but crucially it does _not_ check that
        the scale is not exceeded:
        <79bbf5c794/daml-lf/data/src/main/scala/com/digitalasset/daml/lf/data/Decimal.scala (L31)>.
        This behavior is correct in some cases (more on that later),
        but not in others. Crucially, `Decimal.fromString`, which was
        supposed to check if a decimal string literal is valid, used
        this function, which means that it accepted string literals
        containing numbers out of the required scale, rounding them to
        make them fit within the scale. This function has been renamed
        to `Decimal.checkWithinBoundsAndRound`, and a new function
        `Decimal.checkWithinBoundsAndWithinScale` has been added, which
        fails if the number provided has data not within the scale.
        `Decimal.fromString` now uses
        `Decimal.checkWithinBoundsAndWithinScale`.

    - `ApiToLfEngine.parseDecimal` assumed that `Decimal.fromString` _did_
        fail when passed numbers that were in any way invalid, and
        moreover did _not_ use the result of `Decimal.fromString`, but rather
        re-parsed the string into an unconstrained `BigDecimal`:
        <79bbf5c794/ledger/ledger-api-common/src/main/scala/com/digitalasset/platform/participant/util/ApiToLfEngine.scala (L96)>.
        The reason for the code to work this way is that in the past
        it was responsible for converting decimal strings both for the
        current engine but also for an older version of the engine which
        handled decimals of a different type. Both issues have been fixed.

* Therefore, `Decimal`s with scale exceeding the specified scale
    made it into the engine, and contracts could be created containing
    this invalid value.

* Once on the ledger, these bad numbers can be used to produce extremely
    surprising results, due to how `Decimal` operations are
    implemented. Generally speaking, all operations on `Decimal`
    first compute the result and then run the output through
    `Decimal.checkWithinBoundsAndRound`. The reason for this behavior
    is that we specify multiplication and division as rounding their
    output. Consider the case where the bad value 0.00000000005 made
    it to the engine, and is then added to 100. The full-precision
    result will be 100.00000000005, which after rounding becomes 100.
    Therefore, on a ledger where such invalid values exist, it is not
    the case that `y > 0 ==> x + y != x`, and so on.

Thanks a bunch to @briandbecker for the excellent bug report.

* fix failing test using to much precision
2019-04-14 13:49:28 +02:00
Shayne Fletcher
a3ff3797e5
Add example desugaring of contract key syntax (#465)
* add example desugaring of contract key syntax

* Update ghc-lib/template-desugaring.md
2019-04-13 10:04:30 -04:00