Skip to content
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
Compare
Choose a tag to compare
@larryk85 larryk85 released this 08 Feb 04:10
· 280 commits to release/1.6.x since this release
1cd8964

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 using eosio-cc and purely for C smart contracts.
    • The Contracts will be available to eosio-cpp for smart contract writing.
    • Core will be available to eosio-cpp for any of the modes (present and future).
    • eosio-cpp in fnative mode will have access to all of these groups.
  • 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 for wasm-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 when wasm-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 and post_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 with std::variant types, and nested std::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 and eosio-cpp. In the future use eosio-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