No runtime
No BCL
No objects or GC
No debugger
Strings are ASCII
I did not see the readme mention anything about bool/byte/char/short/int/long sizes or signed and unsigned. It can be quite a surprise to find yourself with 8 bit long longs! As some found with sdcc for gameboy.If you admit that it looks like C(99), what's "C#" about it then? This can probably be done with just about every C-syntax-derived language, which is why I think the title is a bit clickbaity; I was expecting some sort of highly-stripped-down CLR.
If it could even get to 'method calls with ref structs' you would start getting into where I'd want to YOLO with it, maybe even use Nesticle to test for the irony.
>Building a project should produce a *.nes binary, that is byte-for-byte identical to a program written in C.
What about memory management? Is the garbage collector included in the generated code? If not, any idea on how memory management is done?
No shade btw, just seeing the title made me perhaps expect quite the effort while this is still a fun project of sorts.
I wonder how's the performance vs. C (for both, C# and Rust).
Edit: It's my understanding that the 6502 is extremely stack-limited, so a well-versed assembler would use the stack very little and allocate mostly on the heap. In C, you can replicate this with global variables, and I believe (and I would be very happy if someone related to the 6502 rust port could chime in here) on Rust you can do the same with `static mut` on Rust 2021 and `Unsafecell` on Rust 2024.