Page 2 of 3

Re: Go support on Epiphany

PostPosted: Sat Feb 02, 2013 5:52 am
by mortdeus
Okay. So having read the spec, ill catch everyone up to date with go.

Regarding the runtime, gc statically compiles the go runtime and any imported dependencies directly into the executable binary. There is no shared libraries and runtime linking or anything like that. Some may object to this due to bloated sizes of executables, however this is done in an optimal way where an entire lib isnt being compiled in. A "special" header is created via all the imported dependencies a go program actually uses. A quick example of this means that, for your package foo to reference an exported variable in bar, which itself is a imported type from package baz. Package foo doesnt need to include the baz package to know what that type is because all that information was compiled into package bar's library (bar.a).

A "hello world" go executable comes out to be about 1 mb in size. (http://play.golang.org/). Which is substantial. You wont be able to load an entire go program into a single e-core and read just from it's local memory like you would be able to using musl-c or uClibc. Here is a go implementation of plan9's version of the cat program with the source and the produced asm pre linkage. https://gist.github.com/4696208 for anybody curious.

In my opinion, running a go executable on a core by core basis is too much overhead and cycles wasted. Instead what im envisioning is that the arm cpu would handle the main goroutine, and then any subsequent goroutines called from main() can be dispatched to an available core and then popped off to be replaced by any other goroutines being handled by the runtime scheduler.

I think its very feasible to implement go for epiphany. Ill post updates here with any news.

Re: Go support on Epiphany

PostPosted: Sat Feb 02, 2013 12:20 pm
by Folknology
Nice work @mortdeus and a good plan, we will follow your progress with great interest.

regards
Al

Re: Go support on Epiphany

PostPosted: Sat Feb 02, 2013 4:20 pm
by Folknology
@mortdeus One more thing, I think main() and the main processor will also have to manage all of the garbage collection on behalf of all cores in order to keep the Epiphany core memory free for goroutines and their data.

This implies a custom memory manager/garbage collector, and go routines themselves may face certain memory restrictions

regards
Al

Re: Go support on Epiphany

PostPosted: Wed Feb 06, 2013 7:54 pm
by mortdeus
For anybody who wants to follow my progress on the epiphany port of go's compiler, ive created a repo at github.
https://github.com/mortdeus/ego

Re: Go support on Epiphany

PostPosted: Wed Feb 06, 2013 10:32 pm
by Folknology
Love the project name 'ego', will be great keeping abreast of this, thanks

regards
Al

Re: Go support on Epiphany

PostPosted: Sun Feb 10, 2013 9:28 am
by 8l
although, i don't like the syntax of go, (wish more d programming language combine with go..)

Why I Like Go
https://gist.github.com/freeformz/4746274

Re: Go support on Epiphany

PostPosted: Wed Apr 24, 2013 8:41 am
by Gerald
Hi,

It would be great to get some feedback from Adapteva if some people like mortdeus are trying to push go forward on the Parallella...

Re: Go support on Epiphany

PostPosted: Wed Apr 24, 2013 12:52 pm
by 9600
Gerald wrote:Hi,

It would be great to get some feedback from Adapteva if some people like mortdeus are trying to push go forward on the Parallella...


What sort of feedback do you mean? I know that they are delighted that someone is working on Go support.

Cheers,

Andrew

Re: Go support on Epiphany

PostPosted: Thu Apr 25, 2013 1:07 am
by mortdeus
Sorry guys for the lack of commitment going into the ego repo on github over the last couple of weeks. Ive been rather busy and waiting for a board I can tinker with. Andrew just set me up with ssh access into a remote parallella board the other day so ive started working on ego again.

BTW, there is a discussion about ego also happening in go's google group mailing list.

https://groups.google.com/forum/?fromgr ... WsVYrK2n0J

Re: Go support on Epiphany

PostPosted: Sat Oct 26, 2013 10:25 pm
by elimisteve
Anyone know of any recent progress that has been made on Go support for Epiphany? Thanks.