Releases: Tolc-Software/tolc
Releases · Tolc-Software/tolc
v0.7.0
News
- Added Objective-C as a supported language through
objc
switch- 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
pybind11
v2.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
WebAssembly
from a web page.
Minor
- Make it easier to add linker flags to
WebAssembly
targets- More info in the documentation: https://docs.tolc.io/webassembly/introduction/
v0.4.0
News
Output
-
Renamed the bindings output file from
{library}.cpp
to{library}_{language}.cpp
- This matches what the
target
is called inCMake
- If you are using the
CMake
wrappers this is an internal change
- This matches what the
-
Vastly improved the readability of the
WebAssembly
bindings- Removed excessive whitespace when binding multiple namespaces
- Fixed indentation when using public enums within classes
Minor
- Removed
SYSTEM
when creating aCPython
library withpybind11
since 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
CMake
functiontolc_create_translation
totolc_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