by mtmk on 5/24/24, 9:35 AM with 24 comments
by le-mark on 5/25/24, 1:18 AM
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.by userbinator on 5/25/24, 2:42 AM
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.
by DeathArrow on 5/25/24, 8:49 AM
>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?
by noobermin on 5/25/24, 3:26 AM
No shade btw, just seeing the title made me perhaps expect quite the effort while this is still a fun project of sorts.
by ladyanita22 on 5/25/24, 8:16 AM
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.
by DeathArrow on 5/25/24, 8:53 AM
by richardfey on 5/25/24, 7:39 AM
by codespin on 5/25/24, 12:21 AM