This repository has been archived by the owner on Aug 2, 2022. It is now read-only.
[CANDIDATE] EOSIO.CDT Version 1.6.0-rc1
Pre-release
Pre-release
larryk85
released this
08 Feb 04:10
·
280 commits
to release/1.6.x
since this release
eosiolib
- Partitioning of eosiolib into three groups (CAPI, Contracts, and Core), these allow for finer grained allowance for particular modes of compilation. #405
- The
CAPI
will only be available to contract writers usingeosio-cc
and purely forC
smart contracts. - The
Contracts
will be available toeosio-cpp
for smart contract writing. Core
will be available toeosio-cpp
for any of the modes (present and future).eosio-cpp
infnative
mode will have access to all of these groups.
- The
- New simple, small and fast grab-bag malloc is being introduced as the new default malloc. Caveats are that this will not free any memory when calling free (essentially a noop). If your contract needs to free memory because of overrunning malloc'd memory, then passing the flag
use-freeing-malloc
to the compiler you can opt in to using the old implementation. #356 - New data structure
eosio::rope
is introduced in this release. This is a thin data structure for fast string concatenations, this will be more useful forwasm-ql
when it arrives. #356 - Fix off by one error in varint.hpp. #402
new libraries
- Softfloat and compiler-rt are introduced in this release, these can be used with the flag
use-rt
to produce a binary that doesn't import the compiler-rt intrinsics. This is useful for generating WebAssembly that is more self-contained. This will be more useful whenwasm-ql
arrives and future WASM modes are added. #325
tools
eosio-cpp
- Auto generation of dispatcher for smart contracts. #395
- Two new function hooks,
pre_dispatch
andpost_dispatch
have been added for flexibility in control over smart contract dispatching. #395 - New attribute
[[eosio::on_notify]]
to facilitate notification handling. #395 - ABI linking at the link stage of building smart contracts, this now allows for splitting your smart contract into multiple implementation files and still have ABI generation work. #395
- Created system for modal compilation, i.e.
native
,eosio smart contract
,wasm-ql
, and more flavors in the future. #356 - New attribute
[[eosio::wasm_entry]]
is introduced to allow for a naming agnostic way of having an arbitrary WebAssembly entry function wrapped with global constructor and destructor calls. #358 - New attribute
[[eosio::wasm_import]]
is introduced to allow for a more dynamic way of specifying WASM imports then a standalone file. This also allows for different libraries to easily expose their own import API. #358 - Fixes for
eosio-abigen | eosio-cpp
for issues withstd::variant
types, and nestedstd::variant
#399 - Removed timestamp from generated ABI file. #352
eosio-abigen
- This tool is now deprecated because of the "ABI" linking capabilities of
eosio-ld
andeosio-cpp
. In the future useeosio-cpp
with the--abigen
flag, the ABI shouldn't change unless you change your code, so these two should be linked anyway. #377
eosio-ld
- Linkage of ABIs (now held in the object files), to produce the generated ABI. #395
eosio-init
- Fix for invalid project names. #370
Special Thanks
- conr2d
- maoueh