Mesche is a programming language that is designed for integration in C applications.
It is used as a high-performance scripting language to drive C applications and enable interactive development of program behavior. The compiler and runtime can be compiled directly into the C application so that this interactivity is available even in shipped applications.
- Simple: The compiler and runtime should be easy to understand and debug.
- Extensible: The language will be extensible through macros, Mesche modules, and easy registration of C functions into the runtime.
- Practical: Provides tools to build C/C++ projects that use Mesche (`mesche build`) and also manage project dependencies, especially those containing Mesche modules.
- Developing hackable tools for creative work (video and music production, writing, task management)
- Game development with the Substratic Engine
- Mobile application development (in the future)
Probably not, this project is highly experimental and will probably change frequently. However, if you find the idea interesting and would like to try it, I would certainly be happy to have your feedback!
- Compiles directly to bytecode running on a custom VM
- First-class functions with closures
- First-class delimited continuations via
reset
andshift
- Tail-call optimization for recursive algorithms and loops
- Modules can be defined and loaded into Mesche projects
- Record types with fast setter and accessor functions
- Native function registration for integrating with C APIs
- Supports running a VM per OS thread (theoretically, but not tested)
- Cross-platform build orchestration, dependency management, and release builds with
mesche build
andmesche cli
: https://github.com/mesche-lang/cli
- A set of persistent data structures a la Clojure
- Support for Windows, macOS, and Android
- Hygenic macro definitions following Scheme’s design
- Authoring C API bindings directly in Mesche code to generate C wrappers
- APIs for working with dynamic arrays of C structures
This project is licensed under the BSD 3-Clause License.