Hi Ian, On Tue, Nov 10, 2009 at 17:21, Ian Lance Taylor <i...@google.com> wrote: > For the last year and a half I've been working on a gcc frontend for > Go, a new experimental systems programming language designed by a > small group at Google. We've just open sourced it. You can read more > about it at http://golang.org/ . > > The gcc frontend is called gccgo. I've just committed it to > svn://svn/gcc/branches/gccgo. The frontend is written in, yes, C++. > There are are a relatively small number of changes to the middle-end. > > Please take a look if you are interested.
I haven't looked at the gccgo branch yet, but have quickly browsed over the material at golang.org, and I found no document describing, at a high level, the design of the compiler(s) and the runtime of go. So, I still have some high level questions, not addressed in the pages of golang.org. How are the goroutines implemented/translated by gccgo? How are the channels implemented? What kind of memory model did the go authors had in mind: shared memory, NUMA, or heterogeneous systems? I have the impression that go targets, for now, only shared memory systems with pthreads. I would appreciate pointers either to high level design documents, or to the source code. Thanks, Sebastian