Commit Graph

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