209 Commits

Author SHA1 Message Date
Ulf Norell
1887486d36 Replace STR_EQ by APPEND
STR_EQ is not needed, the regular EQ instruction can handle strings as well. Having
an instruction for list append is quite handy though (would need two passes to do it
tail recursive in FATE assembly)
2019-05-07 09:04:24 +02:00
Ulf Norell
bf6741eac4 Format of li should be {immediate, [integer()]} 2019-05-07 08:38:23 +02:00
Ulf Norell
491489ca7d Change ~w to ~p 2019-05-07 08:38:23 +02:00
Thomas Arts
d69375e72b Fix types 2019-05-02 13:08:43 +02:00
Tobias Lindahl
dfca41c98d Correct arity for BLOCKHASH 2019-05-02 10:33:26 +02:00
Hans Svensson
4e325ff203 Revert bytes(N) from ABI encode it in word/tuple 2019-04-23 16:21:11 +02:00
Hans Svensson
230e2187ce Add bytes(int) as type + ecverify_secp256k1 2019-04-23 09:30:45 +02:00
Erik Stenman
a6a2686d53
Fixing edoc build the easy way. Real documentation in Readme.md. (#30) 2019-04-15 12:18:16 +02:00
Erik Stenman
56cf62b487
Add setelement instruction. (#29) 2019-04-12 15:47:16 +02:00
Tobias Lindahl
431b311ae5 Differ between BALANCE for the current contract and BALANCE_OTHER for a remote address 2019-04-12 11:04:56 +02:00
Thomas Arts
436ba457e9 Robuster way to create binaries from strings 2019-04-10 15:43:50 +02:00
Thomas Arts
0261b76314 tuple_to_list is now replaced by a constructor and the "convenience" functions will be moved to apps/aefate tests were they are needed 2019-04-10 15:43:25 +02:00
Thomas Arts
6466ddb866 Bump version 2019-04-09 14:02:21 +02:00
Thomas Arts
a670d1ca6c Remove the quotes from scanned string 2019-04-09 09:05:26 +02:00
Thomas Arts
96c0fab3ab Remove fate_type_type is not a fate_type 2019-04-09 08:29:55 +02:00
Thomas Arts
90659342c0 Quote the string 2019-04-08 16:29:55 +02:00
Thomas Arts
f88fe008bf Add fate_bits as type 2019-04-08 16:29:45 +02:00
Thomas Arts
f5f007e74d Since the binaries are likely to be strings, unicode conversion makes more sense. 2019-04-08 16:29:31 +02:00
Thomas Arts
0c01215b6a fix arities formatting 2019-04-08 14:49:17 +02:00
Thomas Arts
fa64bbb56c Don't forget z 2019-04-08 13:41:23 +02:00
Thomas Arts
fe7e3a638a Fix scan error 2019-04-08 12:29:18 +02:00
Thomas Arts
15ee836ddb Explanatory comment 2019-04-08 11:53:00 +02:00
Thomas Arts
68e6a2163e fate_type_type should be {variant, List} without explicitly storing the size 2019-04-08 11:53:00 +02:00
Robert Virding
54aace97af Remove local blake2 module 2019-04-01 16:51:35 +02:00
Robert Virding
7e7f061b34 Move TYPEREP defs to aebytecode 2019-03-30 23:06:24 +01:00
Robert Virding
333bf53537 Change function references from aeso_sophia to aeb_aevm_data 2019-03-30 23:06:24 +01:00
Robert Virding
8425eb80c5 Remove old_create_calldata function
This function contained calls back to major aesophia modules in this
module so these have now been cleared.
2019-03-30 23:06:24 +01:00
Robert Virding
c00c4a5ac3 First commit of moved functions
Most function references to aeso_ have been converted to aeb_.
2019-03-30 23:06:24 +01:00
Erik Stenman
662b611e6d
New representation of variant values. (#23)
* New representation of variant values.

* Specify type of elments (byte) in arities list.
2019-03-29 14:52:22 +01:00
Erik Stenman
9abeb21eee
Pt 164601244 add hash and signature type (#22)
* Add hash, signature and object types.
* Add serilaize/deserialize test for new types.
* Document new types.
* Use aeserialization for base58c encoding/decoding.
2019-03-25 17:57:12 +01:00
Erik Stenman
417a34ecd1
Remove typespec from element op. (#20)
* Remove typespec from element op.

* Remove unused code from pretty printer.
2019-03-14 10:48:34 +01:00
Erik Stenman
b35ccb8eb6
Pt 164460201 generate fate dispatch (#18)
* Generate docs.

* Test lists of length 16.

* Export ops definitions.
2019-03-14 10:48:11 +01:00
Erik Stenman
9763a1a6f5
Pt 164460166 generate documentation (#17)
* Generate docs.

* Test lists of length 16.
2019-03-08 07:59:09 +01:00
Erik Stenman
43652e0843
Handle 5 to 8 args. Generate a test file with all instructions for as… (#14)
* Handle 5 to 8 args. Generate a test file with all instructions for asm/disasm.

* Add ops to test 7 and 8 arguments.
2019-03-04 10:34:17 +01:00
Erik Stenman
6f67da1292
Pt 164325512 variant constants (#13)
* Handle varaint constants and types.

* Format Readme.

* Format Readme step 2.

* Format Readme step 3.

* Format Readme step 4.

* Format Readme step 5.

* Update src/aeb_fate_asm.erl

Co-Authored-By: happi <happi@stenmans.org>

* Update README.md

Co-Authored-By: happi <happi@stenmans.org>

* Get rid of size from varaint type representation.
2019-03-01 13:05:24 +01:00
Erik Stenman
20c8fbabc9
Fix bits formatting and parsing. (#12) 2019-03-01 10:36:17 +01:00
Erik Stenman
fccc570bee
Pt 164259596 generate format op (#10)
* Generate code for fate ops from spec.

* Generate the code from the makefile. Remove generated files.

* Test targets and cleanup.

* Spell eunit the right way.

* Use test target for ci.

* Renumber opcodes. Add primops.

* Generate tokens in scanner from definitions.

* Rename NUMBER op to GENERATION and add MICROBLOCK instruction.

* Since Tag < Size, Size cannot be zero

* unit is printed `()`

* Formatting differently

* Add eqc profile

* Generate code for fate ops from spec.

* Generate the code from the makefile. Remove generated files.

* Test targets and cleanup.

* Generate op pretty printer.

* Removed unused function.

* Polish Makefile file references (#11)

* Parse all types of values except variants.
2019-02-28 19:18:25 +01:00
Erik Stenman
8fc929b1ee
Pt 164259596 generate fate ops (#9)
* Generate code for fate ops from spec.

* Generate the code from the makefile. Remove generated files.

* Test targets and cleanup.

* Spell eunit the right way.

* Use test target for ci.

* Renumber opcodes. Add primops.

* Generate tokens in scanner from definitions.

* Rename NUMBER op to GENERATION and add MICROBLOCK instruction.
2019-02-28 11:24:13 +01:00
Erik Stenman
01ae99f7e8
Removed unused enacl lib. Use eblake2 for hash. (#8)
* Removed unused lib.

* Replace local blake2 implementation with eblake2.

* Add eblake2 dep to app file.

* Add eblake2 to rebar config.

* Use hex for eblake2.

* Bump version.

* Replace local rlp with aeserialization repo. Use ref till first release is available.

* Remove unused vars.
2019-02-26 08:53:46 +01:00
Erik Stenman
a35307f61b Add annotations (comments) to bytecode. Add strip function to remove symboltable and annotations from bytecode. 2019-02-25 07:57:08 +01:00
Erik Stenman
d04a827f05 Add fate code pretty printer. Add symbol table to binary. Add tests of rundtrip serialization and deserialization. 2019-02-23 22:13:19 +01:00
Erik Stenman
3c056db0b5 Cleanup. 2019-02-20 14:06:11 +01:00
Erik Stenman
5e9d34849f Explicit export. 2019-02-20 11:37:43 +01:00
Erik Stenman
c0f2ac3163 Instructions are uppercase. 2019-02-20 09:49:11 +01:00
Erik Stenman
ce33ba8818 Add new instructions. 2019-02-19 12:15:01 +01:00
Erik Stenman
3ddae5e674 Code generation api. 2019-02-19 11:50:23 +01:00
Erik Stenman
7b671d2187 Lexer for inc and switch. 2019-02-18 18:13:40 +01:00
Erik Stenman
16644ded72 Handle most ops. 2019-02-18 18:09:00 +01:00
Erik Stenman
08e169c3b2 New format for functions, signatures and code. 2019-02-15 16:14:20 +01:00
Erik Stenman
18eb37a8c5 Fix function_call. 2019-02-15 15:38:34 +01:00