Projects Jams Discord News
Resources
Unwind Fishbowls Forums
About
Manifesto Our values About
Log In

Compiler progress update

Martin Dorazil January 17, 2020

Read here: http://biscuitlang.org/blogpost-17-jan-2020.html

Read more

Compiler internals

Martin Dorazil October 18, 2019

Original article. In this blog post I'm going to dig deeper into the compiler architecture an internals of the current version. This article can be helpful for people interested in programming languages and compiler internals but also for potential BL compiler contributors.

Build pipeline
Compilation process is consist of various compilation stages organized in one big pipeline. Every stage basically do some job and pass the result to next stage. Whole process is driven by builder. The builder creates assembly and then unit for every compiled file. Every unit is then passed to compilation process.

We can use simple hello world program as an example: [code] main :: fn ()

Read more

Plans for the next version

Martin Dorazil October 9, 2019

Even if the latest release of BL is closer to the "real" language we still miss lot of features and have lot of bugs to be fixed. Here is the list of things we're going to do next.

Static if statement
This one is really needed. Sometimes we want to include or exclude parts of code depending on various conditions (for example target platform, build type, etc.). Biscuit does not have this concept yet, we're just including whole files with platform depending code during compilation.

Example:

...
WINDOWS :: true;
#if WINDOWS {
    // compile this only on windows platform
}
...

Switch statement
We can use "wall of ifs" now, but the switch is sometimes more elegant. Syntax for switches is not defined yet and we are open to new ideas.

Concept: [code] ... switch a { case A: // implicit fall through when case is empty? case B: break; // explicit end of the switch branch case C:

Read more