Releases: Tolc-Software/tolc
Releases · Tolc-Software/tolc
v0.7.0
News
- Added Objective-C as a supported language through
objcswitch- Creates a middle layer of Objective-C++ with a header of only Objective-C
- Sets the Objective-C++ version to the same as the users target
Misc
- Update to
pybind11v2.9.2 - Sets the C++ version of the generated target to the same as the users target
- True for both the build target as well as the underlying Clang instance
v0.6.3
v0.6.2
v0.6.1
v0.6.0
News
Bindings
Python
-
Add support for transferring documentation from C++ namespaces to pybind11 modules
-
Add support for the following operators:
| C++ operator | Python operator |
|---|---|
| operator+ | __add__ |
| operator- | __sub__ |
| operator* | __mul__ |
| operator/ | __truediv__ |
| operator% | __mod__ |
| operator+= | __iadd__ |
| operator-= | __isub__ |
| operator*= | __imul__ |
| operator/= | __itruediv__ |
| operator%= | __imod__ |
| operator== | __eq__ |
| operator!= | __ne__ |
| operator> | __gt__ |
| operator>= | __ge__ |
| operator< | __lt__ |
| operator<= | __ge__ |
| operator[] | __getitem__ |
| operator() | __call__ |
Overloading is also supported. There are more extensive documentation in the examples section.
-
Added support for polymorphic classes
- Inherit from virtual C++ classes in python
- Override virtual C++ member functions in python
- Call functions via C++ base class on derived class from python
-
Improve readability of generated output
WebAssembly
- Added support for inheriting from C++ classes from javascript
- Automatic downcasting
- Improved documentation
- Improved readability of output somewhat
- Supports raw pointers when necessary
- Trusts the C++ side to know when to deallocate
Minor
- Improve accessibility of documentation site on mobile
v0.5.0
News
Bindings
- Add support for transferring documentation from C++ to pybind11
- Add tests for all officially supported documentation styles
- Supported for:
- Classes
- Member variables
- Enums
- Functions
Examples of documentation string styles:
// One line comment
class OneLiner {};
/** Single multi line comment */
class SingleMulti {};
/**
* Multi
* line
* comment
*/
class Multi {};
/**
Bare multi
Another line
*/
class BareMulti {};
/*!
* Qt style
*/
class QtStyle {};
/*******************************************************************************
* JavaDoc Style
* is
* boxy
******************************************************************************/
class JavaDoc {};
///
/// Triplets is a commitment
///
class Triplets {};
//!
//! This is one of the doxy styles
//!
class DoxyBang {};v0.4.1
News
Documentation
- Add examples on how to use the
WebAssemblyfrom a web page.
Minor
- Make it easier to add linker flags to
WebAssemblytargets- More info in the documentation: https://docs.tolc.io/webassembly/introduction/
v0.4.0
News
Output
-
Renamed the bindings output file from
{library}.cppto{library}_{language}.cpp- This matches what the
targetis called inCMake - If you are using the
CMakewrappers this is an internal change
- This matches what the
-
Vastly improved the readability of the
WebAssemblybindings- Removed excessive whitespace when binding multiple namespaces
- Fixed indentation when using public enums within classes
Minor
- Removed
SYSTEMwhen creating aCPythonlibrary withpybind11since it no longer has any effect
If you want to include pybind11 as a system header then add the following after calling tolc_create_bindings:
set_property(TARGET pybind11::pybind11 APPEND PROPERTY NO_SYSTEM_FROM_IMPORTED)v0.3.0
News
Features
- Now supports generating bindings to WebAssembly via
frontend.wasm- Checkout the documentation for more info.
Breaking
- Renamed
CMakefunctiontolc_create_translationtotolc_create_bindings.
v0.2.0
News
Initial versioned release!
Features
- Most C++ constructs are automatically given a binding to python
See https://tolc.io for more information