“This change deletes the C implementations of the Go compiler and assembler”
81–90 of 137 posts
Re: “This change deletes the C implementations of the Go compiler and assembler”
#82(If you want to compile with a different compiler as a check, there's an LLVM-based compiler for Go.)
Re: “This change deletes the C implementations of the Go compiler and assembler”
#83Could someone, kindly, explain how future versions would be built? Thanks!
Re: “This change deletes the C implementations of the Go compiler and assembler”
#84Earlier quoted context omitted.
So if you want to avoid trusting trust, you need to audit not only a C compiler and the source code for the Go compiler you plan on using, but also every past Go compiler as well?
You could audit the Go source and then use the diverse double compiling technique[0] to verify that the binary you're using corresponds to that source code. [0] http://www.dwheeler.com/trusting-trust/dissertation/html/whe...
Re: “This change deletes the C implementations of the Go compiler and assembler”
#85Wow, github doesn't handle big diffs well. Some sort of automatic pagination would really help.
Re: “This change deletes the C implementations of the Go compiler and assembler”
#86Nice. That's a step forward. Another bit of legacy code bites the dust. Another step forward to the post-C world we need. (If you want to compile with a different compiler as a check, there's an LLVM-based compiler for Go.)
Re: “This change deletes the C implementations of the Go compiler and assembler”
#87Earlier quoted context omitted.
You could audit the Go source and then use the diverse double compiling technique[0] to verify that the binary you're using corresponds to that source code. [0] http://www.dwheeler.com/trusting-trust/dissertation/html/whe...
You mean, audit a large number of independently-written Go compilers?
Re: “This change deletes the C implementations of the Go compiler and assembler”
#88So, if I'm understanding this correctly, they are to re-write the Go compiler in Go, and compile it using the currently published compiler (i.e. 1.4)? Could someone, kindly, explain how future versions would be built? Thanks!
So to answer your question, this new Go-written-in-Go compiler will initially be compiled by the Go-written-in-C compiler. The output from that will be an executable Go-written-in-Go compiler, and _that_ will be used to compile itself in the future. I.e. Go compiler version 1.4 will be used to compile Go version 1.5 will be used to compile Go version 1.6...
Keep in mind that this is not at all unusual. The C compiler GCC has been compiled using older versions of GCC for a long time. Having a compiler compile itself is a sort of milestone that many languages aspire to as a way of showing that the language is "ready."
Re: “This change deletes the C implementations of the Go compiler and assembler”
#89Earlier quoted context omitted.
You should always be able to build a Go 1.x compiler with just the 1.4 tool chain binaries. We have committed to sticking to the Go 1.4 language and libraries for the compiler tool chain.
Where is this fact documented? Are patches tested against 1.4 tool chain binaries?
In the proposal section.
Re: “This change deletes the C implementations of the Go compiler and assembler”
#90So, if I'm understanding this correctly, they are to re-write the Go compiler in Go, and compile it using the currently published compiler (i.e. 1.4)? Could someone, kindly, explain how future versions would be built? Thanks!