Skip to content

A compiler for an experimental programming language that produces tiny Linux binaries (ELF x86_64) without LLVM dependency!

License

Notifications You must be signed in to change notification settings

belijzajac/WisniaLang

Repository files navigation

WisniaLang

Tests codecov license

Prerequisites

  • C++20 compatible compiler
  • CMake

Building from source

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc) wisnia

Debugging binaries

(gdb) set disassembly-flavor intel
(gdb) layout asm
(gdb) layout reg
(gdb) b *0x4000b0
(gdb) r

Example programs

Can be found in tests/programs/ProgramTest.cpp file.

Benchmarks

benchmarks

Note

The runtime range for WisniaLang was from 84.0 µs to 736.3 µs over 1000 program runs, indicating ambiguous results due to benchmarking a 17-line program that executes 3 lines of code 45 times. However, this does demonstrate the speed at which we can compile small programs.

benchmarks

License

This project is available under the GPLv3 license.