Hacker News new | ask | show | jobs
by bjackman 990 days ago
Interesting, I don't fully understand the goals.

I have certainly encountered issues where Go is hiding the platform from me and this is very annoying. This was only ever a real problem on Windows though, the "virtual platform" that Go provides is generally fine for Linux IMO. Is this mainly about non-Linux platforms? (Which would be perfectly reasonable, BTW. Linux is not the only platform )

Meanwhile, I can see why someone would be interested in no-GC. But this seems orthogonal to the goal of "adapting to the platform" - am I missing something there?

And on the no-go routines thing, what's the motivation for wanting that? Does their presence in the language have some related impact on it? Or is it just that you don't think they're useful and dropping them lets you focus on the other stuff?

1 comments

"adapting to the platform" is mostly related to the goroutine topic, as we are working on the js/wasm support and these applications prefer async/await operations.

re: goroutines

the official go runtime spawns goroutines during program startup, which makes the usage of M:N goruntine mandatory, and they have to call lockOSThread()[1] before initializing packages for certain applications (mostly GUI application).

We like the design of goroutines (especially the idea of a `g` register), but `pcz` currently doesn't have goroutine support, and we are making it possible to spawn goroutines with custom allocator (with or without gc) and scheduler attached, so you can chose 1:1, M:N model for goroutines on your own (as decided by the scheduler attached).

you can find more details in the project ROADMAP.md[2]

[1]: https://github.com/golang/go/blob/352c8835e7609ad72872b5a63b... [2]: https://github.com/primecitizens/pcz/blob/master/ROADMAP.md