GuestNo new alerts

Go 1.10

- General445
 
While I was hoping for mid-stack inlining for those juicy performance boosts, Go 1.10 has turned out fairly nicely with performance improvements on a few architectures, dramatically improved build times (for Gosora at-least), a few new features for archive/zip (which we may use in a few places), improvements to the SQL drivers, and a new addition to html/template which we may mirror in the template transpiler.

There is one downside however, tests may behave a little oddly due to the test cache, although I'll have to take a closer look once 1.10 lands. We should be able to fix them up, but I'll have to see what exactly breaks when it arrives. Don't worry, this doesn't affect Gosora itself, just the tests we use to help us find bugs.


There are other changes too, but they are too numerous to count and don't have a big impact on us. This includes Go Plugin (not to be confused with Gosora plugins which will work on any platform today 😉) support on OSX, which I still don't think is enough, as I'd like it to work on Windows before making use of it.


All in all, I'd recommend upgrading to Go 1.10 upon it's release, if only to benefit from the improved build times / performance boosts. I'm still on the fence about whether we really need break / continue in templates, although I'm likely to add them in at some point for plugin / third party purposes.


The other bits are tentative, but I certainly won't hesitate if MySQL, etc. provide a better way of opening a connection based on the new API in Go 1.10, so there's a good chance of Gosora's minimum version being bumped.

This isn't just because I'm being difficult. There are major limitations in the way we currently open connections which makes the code prone to some pretty nasty mistakes.


Go 1.10 should be out around February-ish and I'm looking forward to it. Still, I'm waiting for the mid-stack inlining, I hope it lands in 1.11, it'll do wonders for performance (which is already great, but I'm always wanting more 😉).