The reference implementation of the Go programming language is relatively easy to port to new systems, but it's somewhat unusual. In this presentation I'll describe the structure of the toolchain, and you'll learn how to modify the Plan 9-derived toolchain to target a new platform. We'll take a look at how the runtime works in areas of synchronisation, scheduling and signals. We will also look at the integration betwen networking and the runtime. We'll delve deep into the Solaris port to illustrate specific issues and pitfalls. I'll show you how to use the debugger to solve real bugs that occurred during the port and I will try to offer advice on how you can avoid these type of bugs in your own port.
I'll offer as much practical advice as I can; much of it details about the implementation, but also practical advice on how to build your workflow and tips about how to progress faster and how to make sure you are on the right track.