Commit ef8a1925 authored by Tom Niget's avatar Tom Niget

Update pyproject and readme

parent 3f0e3b4a
......@@ -22,9 +22,15 @@ See the [runtime repository](https://lab.nexedi.com/typon/typon-concurrency).
This repository, TODO.
## Development setup
Install the dependencies using `pip3 install -r requirements.txt`.
## Getting started
```bash
git clone https://lab.nexedi.com/typon/typon-compiler.git --recursive
python3 -m venv typenv
source typenv/bin/activate
pip install ./typon-compiler
apt install libfmt-dev liburing-dev python3.12-dev libssl-dev
```
## Basic usage
......@@ -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
```
Note: gcc may require the `-fcoroutines` flag.
Currently, you'll get the best support with G++ 13.
## 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`.
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
\ No newline at end of file
......@@ -5,12 +5,12 @@ requires = ["setuptools"]
name = "typon"
version = "0.0.1"
dependencies = [
"clang-format == 15.0.7",
"nanobind ~= 1.4.0",
"colorama ~= 0.4.6",
"pygments ~= 2.15.1",
"colorful ~= 0.5.5",
"pybind11 ~= 2.11.1",
"colorful ~= 0.6.0a1",
"nanobind ~= 1.9.2",
"numpy ~= 2.0.0rc1",
"pybind11 ~= 2.12.0",
"Pygments ~= 2.17.2",
"python-dotenv ~= 1.0.1",
]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment