3 ms·
While I agree with the end goal here, isn't 60k lines of C actually a rather small program to attempt to port in a one shot effort? There will also be an inevit
by fidotron 13y ago
While I agree with the end goal here, isn't 60k lines of C actually a rather small program to attempt to port in a one shot effort? There will also be an inevitable clean up phase since the Go generated is less than likely to be idiomatic.
For me the really fun bit is getting to having the whole runtime in Go, which would be a situation not dissimilar from classic Smalltalk environments - especially writing the GC in the target language.
- seanmcdirmid 13y ago> which would be a situation not dissimilar from classic Smalltalk environments - especially writing the GC in the target language. Like the Jikes RVM? IBM Research did some really cool stuff. Anyways, anything is possible when you go meta.
- pjmlp 13y agoI am looking forward to see Hotspot replaced by Graal, post Java 8. Lets see if it really happens.
- dsymonds 13y ago60k of very subtle, complex, intertwined C code is actually quite a lot. Porting the runtime to Go is also on the drawing board, but later. Right now the compiler complexity makes it harder to work on, hence porting it first is going to pay off quicker.
- tolmasky 13y agoNot saying this is all that matters, but if you have a verifiable c->go translator (that is to say, a well understood and tested translator known ("proven") to give you an output program that behaves identically to the input program), then you may be able to skip (or more likely alleviate) the awkward phase of bug introduction when translating a program. I think a problem like this is one of the cases where its easier to reason about in the abstract ("Clearly all arrays should be converted in this fashion"), vs the concrete ("in this part of the code we should do this with the array"), and also avoids the inevitable temptation of "fixing" or "cleaning things up" during the translation. Also of course there is a huge incentive for a good c->go translator to exist for the go community.