Petal compiler, specification, and tools 1.1KB

Supported platforms

amd64 / linux

As of Petal 1.0, the Petal compiler will only support amd64 on Linux.


Petal aims to support desktop computers for GUI and command line applications. The overwhelming majority of desktop computers use amd64. Windows and OSX both cost money.


The target for Petal 1.1 is WebAssembly. The major blocking issue is creating our own garbage collector, and after that is a Javascript foreign function interface. When we create this, we’ll split the standard library slightly according to what can be done in WebAssembly and what can’t (which means system-level stuff and IO, mainly).

One issue here is that strings in JS are UTF-16. We might want to create a type that makes it efficient to manage them. We might also need to ensure our template system can make it easier to handle various types of strings. Alternatively, we could make our existing string type support both UTF-8 and UTF-16. (How hard would that be?)

Future targets

Future targets include Windows, AArch64, and MIPS. The primary development environment for Petal on Windows will likely be WINE. OSX will only be supported with donations.