I’m going through the go by example website, using the .net core platform. Everything just seems to work, which is really impressive. I was wondering how it works ? For example I’m doing channels, is that just using everything in the go base library and not making use of any classes in the .net framework ?
It’s a mixture. Basically, the Go Base Library provides all there standard types and infrastructure Google’s Go ships that’s implemented in Go. Anything that this Go code doesnt contain but calls into native or C APIs, we replicate ourselves within the Go Base Library (those are the .pas files), leaving of course whats available omg the respective platforms under the hood (eg .NET apis for .NET, Island RTL and platform-native Apis for Island, etc).
Diego and Carlo will be able to go into more detail for specific aspects.
As Marc said, it’s a mixture. The missing parts from Go library (go builtin types like string, Slices…) we added, mainly using oxygene. For platform code, like sockets, we use platform specific (System.Net.Socket in .net, …).
What is amazing is things like slice, we implemented in oxygene and can be used in any Go code, it thinks it is just another Go native object…