G Lang – A lightweight interpreter written in D (2.4MB)
33 points by pouyathe 4 days ago
33 points by pouyathe 4 days ago
Hi HN,
I've been working on a programming language called G. It is designed to be memory-safe and extremely fast, with a focus on a tiny footprint.
The entire interpreter is written in D and weighs in at only 2.4MB. I built it because I wanted a modern scripting language that feels lightweight but has the safety of a high-level language.
Key Features:
Small: The binary is ~2.4MB.
Fast: Optimized for x86_64.
Safe: Memory-safe execution.
Std Lib: Includes std.echo, std.newline, etc.
GitHub: https://github.com/pouyathe/glangI would love to get some feedback on the syntax or the architecture from the community!
No offense, but the source code for this is wild. It's almost like outsider art.
https://github.com/pouyathe/glang/blob/main/source/dub/sourc... Still, I have to respect the dedication it must have taken to get this working. I'm sure you'll go far. My advice to you would be to read Crafting Interpreters by Bob Nystrom (it's free online) and try to apply some of the techniques from it to your project. Everything was going reasonably OK until I got down to that gigantic rat's nest of if-else statements and embedded for loops. OMG Yowza! Lines 1566-1637 consist entirely of closing braces. That's 70 closing braces in a row. Beyond the nightmare of maintenance, it's got to be a performance drag on the compilation. I think this is a really cool project! The syntax here is interesting. I was wondering if you could shed some light on it, I wasn't able to find what `[@] : ` or `[%] : ` meant. Also, can I ask why the source code for the interpreter looks like that? This is an honest question. I thought it might have been machine generated (via a sort of self-hosting G transpiler) but the comments at the top dissuade me from this view. Do you have anything real to show? Do you have already a working memory safety mechanism?
pouyathe - 2 days ago
"Update: Wow, this got a second life! Seeing a spike in GitHub clones (328+ in 2 days). If anyone's trying G, I'd love to hear:
What's your use case?
What's the biggest hurdle you faced?
What feature would make G actually useful for you?
Thanks for checking it out! — A 17yo student building this."
snovymgodym - 4 hours ago
its_magic - 3 hours ago
ternaryoperator - 3 hours ago
olivia-banks - 3 hours ago
Panzerschrek - 2 hours ago