The Future of fpGUI: it's getting a new engine🚀 #189
Replies: 7 comments 9 replies
-
|
TBH I would love to try out this compiler. I've done some things in kotlin and there are things I love about it. Like Result := case a/b/c type things. or the when keyword. I had some crazy thoughts to try to make the fpc compiler backend part consume kotlin code but then I came to my senses 😰 Generics as core language feature is amazing as well with endless lists of particular item types. I've been using the TFPGObjectList a lot. I submitted a patch once to let generic forwards work but it wasn't applied. Maybe it was a forward for the item type. Something Like that. Nope, generic adjacent but no Here Anyway, super ambitious. I look forward to it. 😃 |
Beta Was this translation helpful? Give feedback.
-
|
Will your language support creating classes on the stack (without allocating dynamic memory), similar to C++? |
Beta Was this translation helpful? Give feedback.
-
|
When using trig functions with single types, and probably doubles, FPC seemed to have a major bottleneck compared to C. I am just a hobbyist, but I personally thought that was ridiculous considering it is 2026, and FPC has been around for over 25 years. I tested in Delphi CE12. Same issue! I was shocked. I wanted to create PCM audio with the single type. I didn't need the precision of a double. It looks like FPC/Delphi converted all singles to double while doing the trig functions. Maybe this is a low level x86_64 issue ? No fast intrinsic CPU instructions for single sine ? Single Tanh? Will your compiler be able to do single precision faster than double precision with expected speed? As far as I know, single precision is fine for audio and some video work. |
Beta Was this translation helpful? Give feedback.
-
|
Excellent, Graeme, you're a true Pascal lover. |
Beta Was this translation helpful? Give feedback.
-
|
Another idea is to create equivalents of StringView in C++, Slice in Go, and Span and ReadOnlySpan in C#, and add support at the RTL (compiler?) level. |
Beta Was this translation helpful? Give feedback.
-
|
Will this be ISO 7185 compatible ? ISO 7185:1990 ? ISO/IEC 10206:1990 Extended Pascal ? Just curious...there are reasons to adhere and reasons not to. |
Beta Was this translation helpful? Give feedback.
-
|
The Blaise project has landed ✨ : https://github.com/graemeg/blaise |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
So here's the thing. I've built a custom cross-platform GUI toolkit, a project build system (PasBuild) to unify Object Pascal projects, and a dedicated debug format (OPDF) with a reference CLI debugger. I’m also currently building an IDE to bring all of these pieces together into one optimised development environment.
So what's the next big thing?
Years later, I’ve come to the same conclusion as Martin Schreiber (MSEide-MSEgui). I only wish he’d shared more of his rationale in the
mselangREADME—it would have been great to compare notes. With FPC development effectively stalled (no major releases in over five years) and my continued frustration with the resistance to language evolution and the team mentality (excluding one or two members), I decided to start my own "modern Pascal compiler."It isn't based on
mselang, but it shares similar goals. It currently uses a QBE backend, with an LLVM backend (the industry gold standard for optimised code generation) coming soon to support even more platforms.It’s early days and plans can change,
so I’m keeping the name under wraps for now,but here is the vision for the new Blaise Compiler:Thanks to the help of AI as a coding partner, this isn't a "ten-year dream" any more. I design and architect; the AI assists in implementation. Every line is human-reviewed and verified through Test-Driven Development (TDD) from day one.
So when does this start? It already has! 🎉
One week in, and a boatload of tokens later, my new compiler is officially self-hosting as of today! 🥳 It can now bootstrap and recompile itself over two consecutive stages with a byte-for-byte exact match. I already have a test suite of over 860 tests and growing.
While it only supports "basic" Pascal at this moment, the foundations for ARC, generics, records with methods, classes, and interfaces are already live and tested.
We’ve spent years working around the limitations of the past. It’s time we had a toolchain that works for us, not against us. I can't wait to show you what's next.
Onwards,
Graeme
[Update 29 Apr 2026]: Head over to the official Blaise project page: https://github.com/graemeg/blaise
Beta Was this translation helpful? Give feedback.
All reactions