Excuse me if i say something stupid, i do that a lot.
aspe:keyoxide.org:LWJJT46QY6F7W5MOKRUD3W6IOY
I see. i didn’t know that, thank you.
I love compiler dev, so i can give you a few tips:
It may be hard to compile to rust, due to the borrow checker; but C or javascript are great first backends, i always go with C for my prototypes.
PS: Don’t go with LLVM early on, it has almost no documentation! it’s not worth it, i learned that the hard way. Even zig replaced their LLVM backend with a C one.
Also some good libraries for rust:
Here’s a great list of libraries that can help with building it: https://github.com/Kixiron/rust-langdev
Good luck with OA :)
That’s pretty cool, was this a practice for actual compiler development? Or for fun, or an actual project?
Yep, codeberg is great for personal/hobby or small projects, but beyond that it’s not ideal. The worst part is git is a decentralized protocol; yet github has centralized it, basically forcing developers to use it if they want their projects to live, or get a job. It’s a vicious cycle.
But i still think developers should migrate to codeberg, if all of us just wait for codeberg to get big to use it, there’d be no users in the first place. Even if you put your project as a mirror, it’s still a step, or even better: vice versa, see river.
I didn’t know, thanks. But last commit was 8 months ago :(
Codeberg is criminally underrated. The UI is great, it’s 100% open source, it has CI, and it will have federation in the future. It’s a shame more people don’t use it. Piefed/river and a bunch of cool niche projects are on it though :D
The lemmy developers should seriously think of moving lemmy to codeberg, it’d be in line with lemmy’s anti-corporate stance.
Use a keyword, it’ll make your life a lot easier for parsing. If you’re reluctant on using “enum” as a keyword, you should check out OCaml/ML’s “type” keyword (they are the exact same contept: ADTs, but rust weirdly associates them with enums)
Don’t use magic strings! Not only is this hard to check for errors while writing code, you also can’t tell easily if it is a normal string, or an enum.
In my old project, my syntax looked like this:
// Flavour and vec of ingredients type Food[T] { | Pizza str, vec[T] | Cake str, vec[T] | Soup vec[T] }
not only is this easy to parse, i’d say it sticks true to its ML roots. You should check odin’s enum syntax if you’re keen on making a unique syntax.