Solod: Go can be a better C
solod.dev
Solod: Go can be a better C
1–10 of 188 posts
Re: Solod: Go can be a better C
#2Re: Solod: Go can be a better C
#3Re: Solod: Go can be a better C
#4How does it deal with pointers if everything is stack based? You can't really return a pointer to something on the stack because it could get overwritten between when you return it and when you access it.
Re: Solod: Go can be a better C
#5How does it deal with pointers if everything is stack based? You can't really return a pointer to something on the stack because it could get overwritten between when you return it and when you access it.
"Everything is stack-allocated by default; heap is opt-in through the standard library."
So it supports both stack and heap, and I guess static allocation too.
Re: Solod: Go can be a better C
#6Re: Solod: Go can be a better C
#7Re: Solod: Go can be a better C
#8How does it deal with pointers if everything is stack based? You can't really return a pointer to something on the stack because it could get overwritten between when you return it and when you access it.
func newPerson() *Person {
p := Person{Name: "Alice", Age: 30}
return &p
}
becomes static main_Person* newPerson(void) {
main_Person p = (main_Person){.Name = so_str("Alice"), .Age = 30};
return &p;
}
Quoting the FAQ: "So itself has few safeguards other than the default Go type checking. It will panic on out-of-bounds array access, but it won't stop you from returning a dangling pointer or forgetting to free allocated memory. Most memory-related problems can be caught with AddressSanitizer in modern compilers, so I recommend enabling it during development by adding -fsanitize=address to your CFLAGS."So saying you get the "safety of Go" is a bit of a stretch.
Re: Solod: Go can be a better C
#9I was a little worried at the start because nobody would normally consider Go for games, but I did a bunch of tests and found it's just no big deal.
(I'm focused on game play and not interested in pushing hardware to its limits.)
Re: Solod: Go can be a better C
#10I've been using Go and Raylib to make a game lately and I really don't have a problem with garbage collection. It's so fast that it's not having an impact on my frame rate. I was a little worried at the start because nobody would normally consider Go for games, but I did a bunch of tests and found it's just no big deal. (I'm focused on game play and not interested in pushing hardware to its limits.)