Skip to content

Releases: Tolc-Software/tolc

v0.7.0

16 Jun 19:04
Compare
Choose a tag to compare

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

25 May 17:19
d064236
Compare
Choose a tag to compare

News

  • Update to LLVM14

v0.6.2

24 May 20:02
980716c
Compare
Choose a tag to compare

News

  • Add support for Visual Studio 2022

v0.6.1

11 May 20:47
d201639
Compare
Choose a tag to compare

News

  • Update to Parser v0.5.6

    • Adds better support for how to handle forward declarations
  • Update to Frontend.py v0.6.1

  • Update to Frontend.wasm v0.5.1

What's Changed

Full Changelog: v0.6.0...v0.6.1

v0.6.0

29 Mar 18:07
9b6f975
Compare
Choose a tag to compare

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

20 Mar 16:14
c34cb6a
Compare
Choose a tag to compare

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

10 Mar 14:27
Compare
Choose a tag to compare

News

Documentation

  • Add examples on how to use the WebAssembly from a web page.

Minor

v0.4.0

08 Mar 11:03
9c1315d
Compare
Choose a tag to compare

News

Output

  • Renamed the bindings output file from {library}.cpp to {library}_{language}.cpp

    • This matches what the target is called in CMake
    • If you are using the CMake wrappers this is an internal change
  • 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 a CPython library with pybind11 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

28 Feb 19:30
b8e9bc6
Compare
Choose a tag to compare

News

Features

Breaking

  • Renamed CMake function tolc_create_translation to tolc_create_bindings.

v0.2.0

23 Feb 20:19
feebd0f
Compare
Choose a tag to compare

News

Initial versioned release!

Features

  • Most C++ constructs are automatically given a binding to python

See https://tolc.io for more information