Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plan for euddraft 1.0.0 #119

Open
armoha opened this issue Dec 3, 2023 · 1 comment
Open

Plan for euddraft 1.0.0 #119

armoha opened this issue Dec 3, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@armoha
Copy link
Owner

armoha commented Dec 3, 2023

Overview

 ┌──────────────────────┐
 │                      │
 │   epScript language  │
 │                      │  ┌───────────────────┐
 └───────────┬──────────┘  │                   │
             │             │                   │
 ┌───────────▼──────────┐  │  Khala language   │
 │                      │  │                   │
 │ eudplib Python lib   │  │                   │
 │                      │  │                   │
 └───────────┬──────────┘  └─────────┬─────────┘
             │                       │
   ┌─────────▼───────────────────────▼───────┐
   │                                         │
   │     SSA form IR                         │
   │                                         │
   └─────────────────────┬───────────────────┘
                         │
   ┌─────────────────────▼───────────────────┐
   │                                         │
   │          low-level Trigger IR           │
   │                                         │
   └─────────────────────┬───────────────────┘
                         │
       ┌─────────────────▼────────────────┐
       │                                  │
       │           EUD map                │
       │                                  │
       └──────────────────────────────────┘
  • cx_Freeze :

  • mypyc seems to be best for AOT compiling eudplib codes. eudplib is kind of internal DSL for making EUD triggers, and type annotation helps a lot for users. Comparison with other AOT Python compilers:
    Nuitka:

    • Pros: Nuitka can embed and compile most Python dependencies.
    • Cons: Nuitka takes old python compatibility very seriously, which does not matter to us. Nuitka seems to not support or utilize type annotations.

    Cython:

    • Pros: Nuitka can embed and compile most Python dependencies.
    • Cons: Different syntax.
  • Rust/PyO3 : Python/Rust interop, will replace current C++/pybind11 codes in project. (tired of C++ build systems)

@armoha armoha added the enhancement New feature or request label Dec 3, 2023
@armoha armoha pinned this issue Dec 3, 2023
@armoha armoha unpinned this issue Dec 7, 2023
@armoha
Copy link
Owner Author

armoha commented Dec 10, 2023

going to structure eudplib project similar to https://github.com/pyca/cryptography

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

1 participant