Release Notes

Release Notes for icpp-pro


Semantic Versioning

We use semantic versioning (semver) for the release numbers:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality in a backwards compatible manner
  3. PATCH version when you make backwards compatible bug fixes

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Changelog

Version Changes
3.17.0rc3
Jun 14, '24
- Unique names for *.o across directories
- Reduce output during compile
3.17.0rc2
Jun 14, '24
- Building with -std=c++17 is now supported.
-> Run icpp init to see an example config icpp-c++17.toml
- Add option: icpp build-wasm --config [toml-file]
- Add option: icpp build-native --config [toml-file]
- Add option: icpp build-library --config [toml-file]
- Add option: icpp build-library-native --config [toml-file]
- Bugfix: Remove stubs from unreachable.c that are unrelated to io
- Bugfix: Expand cpp_include_dirs for build-library to full path
3.17.0rc1
Jun 11, '24
- Support static libraries in an icpp-pro project
3.16.1
May 25, '24
- Bug fix for cpp_link_flags of icpp.toml. It was ignored
- Removed -Wl,--strip-all, because this removed symbols from the wasm that are used by other tools. This is a first step towards enabling use of wasi2ic
3.16.0
May 22, '24
- Upgrade to wasi-sdk 22.0
- Upgrade ubuntu install to Clang 18
- Update Windows wsl commands to dfxvm based install
3.15.3
May 15, '24
The metadata dfx.tech_stack is now added to the wasm file according to the standard spec.
Note: it is automatic, you do not need to do anything.
3.15.2
Mar 25, '24
Update greet_0_auth in greet canister to use best practices for forward compatibility. Return a record wrapped in a variant.
No impact on functionality.
3.15.1
Feb 11, '24
Small fix to demo.ps1 in greet canister. No impact on functionality.
3.15.0
Feb 11, '24
- Upgrade to wasi-sdk 21.0 (LLVM 17)
- Windows: Upgrade to MinGW-w64 11.0.1 (UCRT)
=> This fixes build-native !!!
3.14.1
Feb 11, '24
- The Candid File is now embedded in the wasm file, and CandidUI works
- Added custom sections cdk:name & cdk:languages for usage aggregation purposes.
3.13.0
Jan 2, '24
Additional ic_api methods:
- is_controller
- get_canister_self
- get_canister_self_cycle_balance
-> example: canister_1
3.12.0
Dec 29, '23
Turn your C++ canister into a HTTP Webserver
-> http_request & http_request_update
-> example: canister_http
Counter HTML
3.11.0
Dec 19, '23
You can now overwrite default compile & link flags in icpp.toml
-> cpp_compile_flags_defaults
-> cpp_link_flags_defaults
-> c_compile_flags_defaults
-> example: canister_flags
3.10.0
Dec 16, '23
- Fix python 3.8
- Fix bug for CandidTypeRecord short form
- http_request
-> example: canister_http
3.9.0
Dec 8, '23
CandidTypeRecord with VecRecord field
3.8.1
Nov 27, '23
Turn off debug printout.
3.8.0
Nov 25, '23
CandidTypeOptVec
3.7.0
Nov 10, '23
CandidTypeOptVariant
3.6.0
Nov 4, '23
CandidTypeOptRecord
3.5.0
Oct 19, '23
CandidTypeVecRecord
- Updates to Type Tables
3.4.2
Oct 9, '23
add 'native' as a default include directory during 'build-native' command
3.4.1
Oct 9, '23
deprecate cpp_header_paths & c_header_paths in icpp.toml
3.4.0
Oct 9, '23
Add cpp_include_dirs & c_include_dirs to icpp.toml
3.3.0
Sep 27, '23
- Generate Javascript bindings as part of build
- Additional run_test API with candid_out
3.2.0
Sep 6, '23
Wildcard patterns in icpp.toml
3.1.1
Aug 13,'23
Add deprecation warning for Orthogonal Persistence methods. They are not needed based on this study and have a downside that they involve a copy of the data.
3.1.0
Aug 7, '23
Updates enabling running karpathy/llama2.c in a canister for inference.
3.0.2
Aug 1, '23
Better error messages
- Docs for orthogonal persistence
3.0.1
July 16, '23
- Faster compile using concurrency.
- Support for Windows PowerShell.
- Getting started example is fully cross-platform
- BREAKING CHANGE!
from_wire & to_wire use CandidArgs.
See icpp init
2.9.0
July 11, '23
- icpp-candid
2.8.1
July 7, '23
- Upgrade to wasi-sdk-20 & clang++ 16
2.7.0
June 13, '23
- IC_API constructor update to support additional system api calls, like canister_init.
2.6.0
June 8, '23
- Add sha256 to embedded hash library
- IC_API::time as static
- Additional constructor for CandidTypeVariant(label, CandidType) for simpler usage.
- Fix implementation of orthogonal persistence for associative containers (std::map & std::unordered_map)
2.5.0
June 2, '23
- Orthogonal persistence for containers.
- Smoketest can optionally specify a timeout
2.4.0
May 30, '23
- update calls
- automatic to_wire() call
2.3.0
May 19, '23
- api-reference
2.2.0
May 10, '23
- CandidTypeVariant
- Smoketest against MainNet
2.1.0
May 1, '23
- ic_api.get_caller()
2.0.0
Apr 29, '23
Initial BETA release