Ulf Norell 3a7c8f905a Fix incorrect type specs
h/t OTP-21 dialyzer
2019-01-28 14:54:34 +01:00
2019-01-28 14:54:34 +01:00
2019-01-25 16:16:20 +01:00
2019-01-07 19:16:39 +01:00
2019-01-25 16:16:20 +01:00

aesophia

This is the sophia compiler for the æternity system which compiles contracts written in sophia code to the æternity VM code.

For more information about æternity smart contracts and the sophia language see Smart Contracts and the Sophia Language.

It is an OTP application written in Erlang and is by default included in the æternity node. However, it can also be included in other system to compile contracts coded in sophia which can then be loaded into the æternity system.

Modules

aeso_compiler

The Sophia compiler

Description

This module provides the interface to the standard Sophia compiler. It returns the compiled module in a map which can then be loaded.

Types

contract_string() = string() | binary()
contract_map() = #{bytecode => binary(),
                   compiler_version => string(),
                   contract_souce => string(),
                   type_info => type_info()}
type_info()
errorstring() = binary()

Exports

file(File)

file(File, Options) -> CompRet

from_string(ContractString, Options) -> CompRet

Types

ContractString = contract_string()
Options = [Option]
CompRet = {ok,ContractMap} | {error,ErrorString}
ContractMap = contract_map()
ErrorString = errorstring()

Compile a contract defined in a file or in a string.

The pp_ options all print to standard output the following:

pp_sophia_code - print the input Sophia code.

pp_ast - print the AST of the code

pp_types - print information about the types

pp_typed_ast - print the AST with type information at each node

pp_icode - print the internal code structure

pp_assembler - print the generated assembler code

pp_bytecode - print the bytecode instructions

check_call(ContractString, Options) -> CheckRet

Types

ContractString = string() | binary()
CheckRet = {ok,string(),{Types,Type | any()},Terms} | {error,Term}
Types = [Type]
Type = term()

Check a call in contract through the __call function.

sophia_type_to_typerep(String) -> TypeRep

Types

 {ok,TypeRep} | {error, badtype}

Get the type representation of a type declaration.

version() -> Version

Types

Version = integer()

Get the current version of the Sophia compiler.

Description
Stand alone compiler for the Sophia smart contract language
Readme ISC 13 MiB
v7.4.0 Latest
2023-09-05 17:04:46 +09:00
Languages
Erlang 99%
Reason 0.9%