Mesche is a platform for hacking personal tools, derived from the Scheme programming language.
¶Why Mesche?
There are many Scheme implementations in existence today, some old and some new. Why bother writing another one?
The simple answer is that I could not find one that satisfied my specific requirements:
- Supports major desktop OSes and mobile platforms
- Can produce standalone applications from Scheme code without a C compiler
- Can use C libraries, preferrably without bindings written in C
- Has reasonably good performance for multimedia applications
- Has a nice set of standard modules for multimedia programming, system management, and other practical use cases
The closest match I’ve found so far is Racket, but I feel that their heavy focus on language-oriented programming prevents them from providing a really good Scheme-focused experience.
Writing a new Scheme implementation certainly goes against conventional wisdom, but Mesche was created for a completely different reason than many others: as a platform for building personal tools.
¶Can I Use It?
Yes, you can use Mesche today but it is still in a very raw state and some things may not be very stable. That’s where you come in, see the section about contributing below!
To build the project, you need to clone the Git repository, install GCC and CMake, then run the following commands in the root of the repo:
./bootstrap.sh
cd build
make
./components/cli/mesche repl
This will build both the Mesche compiler and CLI, then launch the Mesche REPL.
Very early days here, but I’ve been able to use Mesche to participate in a few game jams! Live stream recordings can be found on the Flux Harmonic YouTube channel:
¶Contributing to Mesche
Until now, I’ve been working on Mesche by myself because I wanted to learn a lot about how to write a Scheme compiler and bytecode interpreter. Over time I’ve learned how big of a job this is for one person, so I’m opening up development to anyone who believes in the mission of this project!
You can contribute ideas, code, examples, and documentation to Mesche on Codeberg:
https://codeberg.org/mesche/mesche
Feel free to suggest new modules for the project even if a similar one already exists! Mesche can only thrive by the community adding new ideas.
¶Mesche is Free Software
Mesche and all of its standard modules will be licensed as Free Software under the GNU General Public License 3.0. Mesche exists for its users, plain and simple.