https://github.com/pyxherb/slake
An embeddable programming language.
https://github.com/pyxherb/slake
c-plus-plus c-plus-plus-17 cpp cpp17 embeddable-language gamedev gamedev-library language programming-language scripting-language
Last synced: about 2 months ago
JSON representation
An embeddable programming language.
- Host: GitHub
- URL: https://github.com/pyxherb/slake
- Owner: pyxherb
- License: other
- Created: 2024-11-29T05:52:27.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-30T17:02:56.000Z (over 1 year ago)
- Last Synced: 2024-11-30T17:37:05.452Z (over 1 year ago)
- Language: C++
- Size: 1.31 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Slake

## Introduction
Slake is a type-safe and embeddable programming language for extensible
applications.
It supports:
* Function Overloading
* Value-based Generics
* Union Enumeration (ADT-like)
* Coroutine
* and more...
## Development Progress
✅: Completed
🕓: Working In Progress
⏸: Paused/Postponed
📝: Planned
* Compiler 🕓
* Type Checker 🕓
* Type-based Generic ✅
* Value-based Generic ✅
* Function Invoking ✅
* Parameter-name-based Function Invoking 📝
* Class Instantiation ✅
* Class Inheritance ✅
* Cyclic Inheritance Checker ✅
* Interface Implementing ✅
* Cyclic Inheritance Checker ✅
* Structure Instantiation 🕓
* Type Recursion Checker ✅
* Coroutine 🕓
* As Type 🕓
* Exception 🕓
* Constant Enumeration (syntatic sugar) 🕓
* Scoped Enumeration 🕓
* Union Enumeration (ADT-like) 🕓
* Type Recursion Checker ✅
* Tuple Type 🕓
* Parameter Pack 🕓
* Unpacking as Parameters ✅
* Type-specific Path (`with`) 🕓
* Pattern Matching 🕓
* Type-based Pattern Matching 🕓
* Attribute 🕓
* Lambda Expression 🕓
* Generic Type Specialization 📝
* Generic Function Specialization 📝
* Macro 📝
* Accessor (syntactic sugar, with back field accessing) 📝
* Language Server 📝
* Linting 📝
* Snippets 📝
* Formatting 📝
* Renaming 📝
* Runtime 🕓
* Interpreter ✅ (Most of the functions are completed)
* Program Analyzer 🕓
* Program Optimizer 🕓
* Runtime Library 🕓
* JIT Recompiler 🕓
* x86-64 Backend 🕓
* ARM64 Backend 📝
* RISC-V Backend 📝
* AOT Compiler 🕓
* Native C++ Backend (SLX2CXX) 🕓
* WASM Backend (SLX2WASM) 📝
## Building
To build Slake, you will always need:
* CMake (version > 3.23)
* A C++ compiler with C++17 support
* A C++17 standard library, which at least has freestanding environment support.
* The PEFF library
## License
Slake is licensed under GNU Lesser Public License v3.0 with linking exception.