This repository was archived by the owner on Aug 2, 2022. It is now read-only.
Repository navigation
[CANDIDATE] EOSIO.CDT Version 1.6.0-rc1
Pre-release
Pre-release
·
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
CAPIwill only be available to contract writers usingeosio-ccand purely forCsmart contracts. - The
Contractswill be available toeosio-cppfor smart contract writing. Corewill be available toeosio-cppfor any of the modes (present and future).eosio-cppinfnativemode 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-mallocto the compiler you can opt in to using the old implementation. #356 - New data structure
eosio::ropeis introduced in this release. This is a thin data structure for fast string concatenations, this will be more useful forwasm-qlwhen 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-rtto 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-qlarrives and future WASM modes are added. #325
tools
eosio-cpp
- Auto generation of dispatcher for smart contracts. #395
- Two new function hooks,
pre_dispatchandpost_dispatchhave 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-cppfor issues withstd::varianttypes, 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-ldandeosio-cpp. In the future useeosio-cppwith the--abigenflag, 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