398 Commits

Author SHA1 Message Date
Ulf Norell
9487b79f42 Fix dialyzer complaints 2020-03-02 12:08:41 +01:00
Ulf Norell
4a812b6f3b Error message tweaks 2020-03-02 11:35:55 +01:00
Ulf Norell
fe2d93ea8a Compile protected calls to CALL_PGR 2020-03-02 11:35:55 +01:00
Ulf Norell
ecbc15db1b Add 'protected' named argument to remote calls
If protected = true, the return type is wrapped in an option() which comes back
None if the remote call fails for any reason.
2020-03-02 08:51:33 +01:00
Hans Svensson
a38a365181 Change Char.to_lower/upper into String.to_lower/upper 2020-02-26 14:15:49 +01:00
Hans Svensson
e98edd4eef Handle UTF-8 in character literals
Also handle `\x{hhh..}` in strings... Character literals has to be a single character, not composite.

+ tests (and the corresponding fix to the char literal pretty printer)
2020-02-24 15:35:54 +01:00
Hans Svensson
b9acf24dca Make String.aes a stdlib + add more string functions
This means moving the FATE operations to StringInternal and adding to/from_list (and Char.to/from_int
+ Char.to_upper/lower).
2020-02-21 09:45:11 +01:00
Hans Svensson
bbc8555331 Auth.tx implementation and types
The arities field of the Chain.base_tx constructor is 22 integers long... This isn't very pretty but
that is the design we've chosen.
2020-02-11 10:00:46 +01:00
Hans Svensson
c3426f0e65 Add AENS.lookup
Also move Pointee-constructors inside AENS namespace.
2020-02-03 12:52:00 +01:00
Hans Svensson
db01e237c1 Add Oracle.expiry 2020-02-03 12:24:27 +01:00
Hans Svensson
760d2841d1 From Iris (with AENS.update) AENS.resolve is not Pure 2020-02-03 12:22:34 +01:00
Hans Svensson
d821de6381 Merge 'origin/lima' into 'origin/master' 2020-01-15 15:03:11 +01:00
Hans Svensson
a6f51d23f3 Bump version to 4.2.0 and fix CHANGELOG 2020-01-15 11:39:25 +01:00
Ulf Norell
4d4a14a9ab
GH-196 pattern matching lhs (#210)
* Allow block with separate type signature and definition of a function

For instance,
```
function
  add : (int, int) => int
  add(x, y) = x + y
```

cc #196

* Allow pattern matching in left-hand sides

* Changelog

* Fix type spec

* partial case-on-constructor

* Changelog for pattern-matching lets
2020-01-15 09:41:03 +01:00
Hans Svensson
cf1072140e Merge 'origin/lima' into merge_lima_to_master 2019-12-19 15:09:48 +01:00
Ulf Norell
d019e44924 Compile values to immediates when possible 2019-12-16 17:04:49 +01:00
Ulf Norell
ad54134961 Parse negative literal patterns 2019-12-16 17:04:49 +01:00
Ulf Norell
b51a79b5e1 Allow patterns in lets and list comprehension binds 2019-12-16 17:04:49 +01:00
Ulf Norell
d844c4d276 Fix missing type annotation in list comprehension body 2019-12-12 09:39:13 +01:00
Ulf Norell
64e2fff91a Handle list comprehensions in pretty printer 2019-12-12 09:39:13 +01:00
Ulf Norell
d4f291f252 Handle qualified constructors in patterns 2019-12-12 09:34:26 +01:00
Ulf Norell
b9f585ebaf
Merge pull request #205 from aeternity/fate-flatten-store
FATE backend optimisations
2019-12-12 09:22:37 +01:00
Ulf Norell
954af13f59 Fix debug printing of store registers 2019-12-12 09:14:34 +01:00
Ulf Norell
a403a9d227 Unbox singleton tuples and records 2019-12-10 12:24:05 +01:00
Ulf Norell
bf5e2e2443 Fix parse errors causing crashes instead of nice errors 2019-12-09 08:45:55 +01:00
Hans Svensson
1c24a700dc Add BLS12-381 operations (to FATE) 2019-11-27 10:57:24 +01:00
Hans Svensson
2d49426fe0 Merge 'origin/lima' into master 2019-11-27 10:46:18 +01:00
Ulf Norell
46a30b118f Get rid of unnecessary return instruction after tail-call 2019-11-26 13:33:11 +01:00
Ulf Norell
bb1a45c557 Improve case-on-constructor optimisation 2019-11-26 13:10:58 +01:00
Ulf Norell
0a22c7a34a More let-floating 2019-11-26 13:10:58 +01:00
Ulf Norell
c8153f94a6 More aggressive freshening to avoid shadowing issues 2019-11-26 13:10:58 +01:00
Ulf Norell
63d51baaa3 Dialyzer issues 2019-11-26 13:10:58 +01:00
Ulf Norell
cb045b0256 whitespace 2019-11-26 13:10:58 +01:00
Ulf Norell
c84064da7f Inline local functions and simplify case-on-constructor 2019-11-26 13:10:58 +01:00
Ulf Norell
ad88797cef Proper handling of lets in term_to_fate 2019-11-26 13:10:58 +01:00
Ulf Norell
6c3932b10c Flattened state layout
... with necessary optimizations.
2019-11-26 13:10:56 +01:00
Ulf Norell
8d7c637241 Don't confuse variables and store registers in fate asm generation 2019-11-26 13:10:04 +01:00
Ulf Norell
a8119f1219 Track state layout
... but only default layout still.
2019-11-26 13:10:04 +01:00
Ulf Norell
d0fdd06d66 Change get_state and set_state fcode primitives to take a register 2019-11-26 13:10:04 +01:00
Ulf Norell
e645a8d034 Optimize before lambda lifting
(lambdas are either in dead code or not dead, so dead code elimination won't be affected)
2019-11-26 13:10:04 +01:00
Ulf Norell
499e2f8200 Handle records and type aliases correctly in fcode 2019-11-26 13:10:04 +01:00
Ulf Norell
5465b74ac9 Allow specifying store register in FATE backend 2019-11-26 13:10:04 +01:00
Ulf Norell
08b6148223 Bump version to 4.1.0 2019-11-26 09:02:26 +01:00
Ulf Norell
eec70f03a5
Merge pull request #183 from aeternity/lima
Merge lima into master
2019-11-25 13:16:17 +01:00
Ulf Norell
8984ecc32d Bump version numbers 2019-11-25 11:55:31 +01:00
Ulf Norell
bd64260e37 Remove impossible case
h/t dialyzer
2019-11-25 10:42:37 +01:00
Ulf Norell
6380e04a97 Strip switches on variants with only catch-all 2019-11-19 16:39:01 +01:00
Ulf Norell
2be3c9194d Optimize switches with a single successful branch
Typical case: require(_, _)
2019-11-19 15:14:00 +01:00
Ulf Norell
d0cfd9cbbe Export to_basic_blocks for tests 2019-11-19 13:11:06 +01:00
Ulf Norell
7f7f53e044 Fix issue in basic block generation 2019-11-19 13:10:56 +01:00