@@ -40,26 +46,8 @@ Once generated, the C++ code file can be compiled using your compiler of choice:
...
@@ -40,26 +46,8 @@ Once generated, the C++ code file can be compiled using your compiler of choice:
$(CXX) -O3 $(typon --cpp-flags) input.cpp
$(CXX) -O3 $(typon --cpp-flags) input.cpp
```
```
Note: gcc may require the `-fcoroutines` flag.
Currently, you'll get the best support with G++ 13.
## Test harness
## Test harness
`cd` into the `trans` directory, set up your `.env` file (you can copy the `.env.example` file), and run `python3 test_runner.py`.
`cd` into the `trans` directory, set up your `.env` file (you can copy the `.env.example` file), and run `python3 test_runner.py`.
If you're getting include errors, make sure you've cloned the runtime submodule. If you forgot, run `git submodule update --init --recursive`.
## TODO (2023-10-17)
Implement custom protocol definition so that we can define stuff like Iterable and it generates a concept in C++ and a type erased wrapper (like std::function)
If you call a function that takes Iterable => the function is a template so no overhead
Be able to store functions using their real functor type name so no overhead of std::function
If you store a function with no further information it uses our callable type
If you store an object into a protocol type => it uses the protocol type erased wrapper
Implement decorators as template inheriting classes as to allow people to implement their own decorators in the c++ side
Use "static" to store the python interpreter for lazy init of python functions