Blaise v0.7.0 (alpha) โ€” Independence Day ๐ŸŽ‰ ยท graemeg blaise ยท Discussion #24

2 min read Original article โ†—

I'm excited to share a milestone release of the Blaise Pascal Compiler!

Blaise is a next-generation Object Pascal compiler targeting native code
via QBE. One language mode, one string type,
automatic reference counting, reified generics, and a clean break from
30 years of legacy baggage.

The big news: FPC is gone from the toolchain

As of v0.7.0, Free Pascal is no longer required anywhere in the
toolchain
. The bootstrap chain is now:

released Blaise binary โ†’ compiles Blaise source โ†’ new Blaise binary

The compiler is fully self-hosting. The test suite (1,268 tests) compiles
and runs under the Blaise-compiled test runner. The fixpoint is verified:
stage-2 IR and stage-3 IR are identical, byte for byte.

This is what I've been working toward since the project started โ€” a
compiler that builds itself and tests itself.

Other improvements in this release

  • Low() and High() now work on strings as well as arrays
  • Fixed implicit-self method calls with var/out and open-array parameters
  • Fixed a buffer overflow in the temp file RTL helper
  • The release archive now includes blaise_rtl.a so you can link
    compiled programs without building the RTL from source

Try it out (for the brave folks)

The Linux x86-64 binary is available on the
v0.7.0 release page.

Feedback on language design, syntax choices, and the direction of the
project is very welcome โ€” please use the
Discussions tab on GitHub.

Up Next โšก

Continue expanding on language support and building out the RTL. I also
want to convert the C-based RTL to a pure Object Pascal implementation.
Working towards removing the GCC bootstrap requirement. Hopefully also
squeeze in a few speed improvements.


Built with โค for the Pascal community.