> The GOPATH environment variable now has a default value if it is unset. It defaults to $HOME/go on Unix and %USERPROFILE%/go on Windows. [0]<p>Finally. This is going to make it easier for newcomers to the Go ecosystem, since commands such as "go get" will now work out of the box.<p>[0] <a href="https://beta.golang.org/doc/go1.8#gopath" rel="nofollow">https://beta.golang.org/doc/go1.8#gopath</a>
What a blockbuster release (candidate). Congrats golang team!<p>I can't wait to start adding in the mutex contention to our tests, remove our custom graceful http shutdown library, compile 15% faster, start using context within our queries, write custom comparators [I needed this just last week! We had a type that already implemented the sort interface, but I needed to sort it by a different key in this one-off] for sorting, and have a much better time debugging JSON unmarshalling.<p>And those were just the big pieces I noticed that will be an immediate improvement!
One thing that might snag web applications built with Go 1.8 is the change to the html/template library. If you ever need to include script templates in your HTML for usage by a Javascript template framework (in my case it was EJS), then you will need to be aware that html entities will be escaped in a way they were not in 1.7<p>Given the following literal:<p><script type="text/javascript">
<div><%= something %></div>
</script><p>Go 1.8 will escape the EJS delimiter, breaking the template. I.e.:<p><script type="text/javascript">
<div>&lt;%= something %></div>
</script><p>I selected EJS specifically because I wanted a templating library that didn't conflict with html/template's handlebars syntax. If you're in the same boat you'll want to find a template engine with non-html entity delimiters.
You can easily install the RC as its own binary with the new awesome version tool:<p><pre><code> $ go get golang.org/x/build/version/go1.8rc1
$ go1.8rc1 download
$ go1.8rc1 version
go version go1.8rc1 darwin/amd64
$ go1.8rc1 build ...</code></pre>
There was talk of the go team deciding on a vendoring paradigm. I don't see any mention in the release notes. Anyone have ideas/updates on how much closer we're getting to an official vendoring decision?
It would be neat if there was a Go Playground running the latest beta/RC version of Go. (Or is there?)<p>I wanted to quickly test out the new struct type conversion behavior and obviously my code[1] doesn't compile on the normal playground.<p>Perhaps interesting to note, the `beta.golang.org`[2] homepage specifically adds an inline `display:none` style to the div containing the mini Go Playground which is normally on the `golang.org`[3] homepage - removing that style in the Chrome inspector, you can see the mini Playground, but it doesn't work. Upon closer inspection, the code to init the playground is still there, but the `playground.js` script isn't – the init code, however, checks for this so it doesn't throw any errors.<p>I like the attention to detail, at least – you don't want the homepage for a beta version to have the plaground running the current stable release version; that would be pretty confusing. Still, I wonder why the HTML and JS initialization code for the playground is still there? If they went through the effort to add a `display:none` style to the HTML and a condition to check if the Playground script is available, why not just remove it entirely?<p>Just my random thoughts - obviously not a big deal at all, I just found it interesting!<p>[1] <a href="https://play.golang.org/p/_OSA3O2vTR" rel="nofollow">https://play.golang.org/p/_OSA3O2vTR</a><p>[2] <a href="https://beta.golang.org/" rel="nofollow">https://beta.golang.org/</a><p>[3] <a href="https://golang.org/" rel="nofollow">https://golang.org/</a>
<p><pre><code> Go 1.8 will be the last release to support Linux on ARMv5E and ARMv6 processors: Go 1.9 will likely require the ARMv6K (as found in the Raspberry Pi 1) or later.
</code></pre>
Does this mean that we will not be able to produce ARMv5 binaries or this is only a prerequisite for the compiler?
What's a good version manager that allows me to jump versions without moving my whole workspace over? Currently using gvm which installs and runs different versions fine, but whenever you switch version you have to move your entire workspace over or download all your packages again.<p>Any ideas?
>Note that many common MIPS-based routers lack an FPU and have firmware that doesn't enable kernel FPU emulation; Go won't run on such machines.<p>I'm considering using Go for a small service that would live on my OpenWRT router.<p>What does this mean for me?