| Go 1.6 planning | rsc | 12/08/15 16:38 | The Go 1.5 release candidate is looking good. Hopefully in a week or so it will be out, and we'll open the tree for Go 1.6 development. That makes now a good time to talk about what we want to do in Go 1.6.
Go 1.6 will be a shorter than usual cycle, because Go 1.5 ran long. The freeze is Nov 1 (2.5 months from now) and the release is scheduled for Feb 1. There are a few long-term things that have been in progress for a few cycles and may be ready for Go 1.6, most notably the new SSA-based compiler back end (at least for amd64) and transparent HTTP/2 support in net/http. Many of us, though, will be focusing on cleanup and polish during the Go 1.6 cycle. Go 1.5 introduced much new code, and the debugging during the freeze highlighted a number of ways we can make it cleaner, more flexible, and easier to maintain for the future. This is especially true in the runtime and the new all-Go toolchain. There are also many lingering bugs that would be nice to finally fix. Marcel has a plan for #7363 (long-standing reflect issue), and we should try again to fix the encoding/json and encoding/xml issues whose fixes were rolled back late in Go 1.5 for compatibility reasons. There are probably many other lingering, not too important bugs that nonetheless add up to significant pain points for users. It would be nice if Go 1.6 work focused on closing these. We are also going to try to make sure we stay focused on issues and pending CLs throughout the Go 1.6 cycle. Too many of both were left until the freeze during Go 1.5. The new Go1.6Early milestone in GitHub is meant to help, and I intend to set up a single automated weekly mail to golang-dev reminding us what's pending, summarizing CLs, issues, and proposals. What are you planning to do in the Go 1.6 cycle? Or what GitHub issues do we not have marked with a Go 1.6 milestone yet but merit one, in your opinion? Please reply to the thread and we'll make a high-level doc out of the responses. Thanks. Russ |
| Re: [golang-dev] Go 1.6 planning | Dave Cheney | 12/08/15 16:48 | Thanks for starting this discussion Russ.
For 1.6 I would like to work on * Unifying the way auxv values are parsed, https://github.com/golang/go/issues/9538. This was brought home to me during the arm64 ports that there is a lot of duplication in the syscall package for auxv parsing in linux, and as auxv will be important for getting the page size, it sounds like a good time to clean this up. * Contribute arm and arm64 support for the ssa backends, or at least do what I can so those ports do not lag so far behind they make it problematic to switch over to the new backend when the time comes. * finish/fix duffzero and duffcopy for ppc64 and arm64 (or remove it, as Michael and I suspect it doesn't pay it's way on RISC) * Remove the use of the NaCl sRPC namespace and get us off the obsolete pepper_41, https://github.com/golang/go/issues/11961 * Address the duplication of Biobuf in the compiler, https://github.com/golang/go/issues/10652 Thanks Dave > -- > You received this message because you are subscribed to the Google Groups > "golang-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-dev+...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. |
| Re: [golang-dev] Go 1.6 planning | Ian Lance Taylor | 12/08/15 18:14 | I would like to do our best to address issues 12116 and 8310: document
how to safely pass pointers between C and Go. This is not terribly important, but I would also like to clean up the memory model to avoid the objections that memory model specialists have about it. I don't know that we have an open issue about that, but related to the memory model we have issues 9442, 7948, 5045. Ian |
| Re: [golang-dev] Go 1.6 planning | Michael Hudson-Doyle | 12/08/15 18:28 | I'm still going to be working on shared libraries, polishing and
porting to the other architectures we support Ubuntu on. There are some other toolchain cleanups and optimizations I'd like to work on (a new .a file format, some codegen improvements on arm64, maybe trying to reduce the number of integer conversions in cmd/internal/obj...) but nothing really major. It would be nice, although I don't know about realistic, to decide whether to complete cmd/newlink, or try to incrementally improve cmd/link to the point where newlink is no longer needed. Cheers, mwh |
| Re: Go 1.6 planning | brainman | 12/08/15 19:53 | I had to look at linker code recently. In particular pe.go and ldpe.go. It looks like C code converted to Go by robot: - no comments; - many global variables with non descriptive names; - code rely heavily on output file position to do all calculations; - IO is too low level, I think we should just define appropriate structs and use binary.Read and binary.Write; - some duplicate code that also lives (or should live) in debug/pe; - all code in one big file (pe - 1254 lines, ldpe.go - 534 lines); - use of linked lists instead of arrays and slices; - functionality is spread around different funcs, files and even packages and different arch and binary file formats - it is difficult to follow how program progress; - probably others I cannot remember. Of course it could be just me. I am happy to try and clean up that code. But I am not sure if you have time to review my changes. Also I suspect other parts of cmd/link are in a similar situation - elf and macho and dwarf code. Unfortunately I don't know anything about those. Maybe you have bigger picture. Alex |
| Re: [golang-dev] Re: Go 1.6 planning | Aram Hăvărneanu | 13/08/15 03:01 | I will be primarily working on the SPARC64 port. The target operating
system will be Solaris, it will be trivial (for someone else) to add Linux too. I will also help with arm64 issues, like conversion to SSA, etc. -- Aram Hăvărneanu |
| Re: [golang-dev] Go 1.6 planning | David du Colombier | 13/08/15 06:47 | I'd like to implement asynchronous cancelable i/o on Plan 9.
(issues #7237, #8908, #9554, #11454 and #11932). -- David du Colombier |
| Re: [golang-dev] Go 1.6 planning - internal/syscall/unix | Taru Karttunen | 13/08/15 06:48 | On 12.08 19:38, Russ Cox wrote:Hello I was working on using fstatat in package os under the hood in the 1.5 frame and it got delayed, and I'd like to get it in 1.6. However I would like to ask for someone more knowledgeable with the infrastructure to handle initializing internal/syscall/unix I think that it was wanted to have scripts there like syscall has for generating files. If anyone can help with that I would be very thankful. - Taru Karttunen |
| Go 1.6 planning | Ulderico Cirello | 13/08/15 07:27 | Hi Russ,
Although I am not a core member, I plan to keep improving the documentation, namely reusable examples. The idea is to serve more the beginners while not polluting for the long time Gophers. Two examples of what I have in mind: CL1273, CL13450
|
| Re: [golang-dev] Go 1.6 planning | Austin Clements | 13/08/15 07:48 | Rick and I have also been planning out garbage collector work for the 1.6 cycle. Sticking with the theme of 1.6, we'll be focusing on polish and performance. We're going to postpone major algorithmic changes until 1.7, but nevertheless we have plans across the board that should make the garbage collector faster and even more solid for 1.6. We've detailed our plans in a Google Doc, which we hope to keep at least somewhat up-to-date: --You received this message because you are subscribed to the Google Groups "golang-dev" group. |
| Re: [golang-dev] Go 1.6 planning | David Crawshaw | 13/08/15 08:21 | My high priority work is in x/mobile or google internal, but for 1.6 I
intend to work on: - oversized c-shared libraries on android/arm, #11663 - frame pointer support on darwin/arm64, #12100 - deadlock detector interaction with foreign threads, #10268 - PIE on android, part of #6940 - if I can get a builder (which depends on PIE): android/arm64 - minor work: #10477, other assigned issues
|
| Re: [golang-dev] Go 1.6 planning | Hyang-Ah Hana Kim | 13/08/15 08:42 | I intend to work on android/x86 support (#9327) for 1.6 to make x/mobile users happy. --
__
|
| Re: [golang-dev] Go 1.6 planning | David Chase | 13/08/15 08:47 | In the short run, help with SSA coverage and correctness so it is all there. Beyond that, attempt to use it to improve the generated code. Bounds check elimination is the first item on that list, nil check elimination is already done by other people, but the analysis to do bounds check elim might allow is to pick up "all" the unnecessary nil checks at no additional cost. There are some escape analysis issues to look at also: - watch out for late heap conversions of big things, #10936. - making pointers stored in ... args not automatically escape, #12006 - we could do a better job with escape analysis of recursive functions, - which would be an efficient-implementation enabler for #10526 . |
| Re: [golang-dev] Go 1.6 planning | Augusto Roman | 13/08/15 10:18 | I'd like to extend the json encoder/decoder to handle non-string keys on the Go side, as described in this conversation. I intend to submit an issue to track this. - Augusto |
| Re: Go 1.6 planning | Joe Shaw | 13/08/15 10:46 | Hi, I'd like to extend omitempty support to structs, allowing empty time.Time values (among others) to be omitted from JSON and XML serializations without needing to resort to pointers. I posted a proposal in #11939. Joe |
| Re: Go 1.6 planning | Oleku Konko | 13/08/15 16:26 | |
| Re: Go 1.6 planning | Chris Hines | 15/08/15 18:03 | I have a vested interest in seeing #11264 fixed and I am interested in working on it unless a core member (bradfitz perhaps?) already has plans to work on it. Chris
|
| Re: Go 1.6 planning | Didier Spezia | 16/08/15 00:01 | but I will probably need guidance to understand what the expected behavior is. I also have some minor code factorization/cleaning in the standard library. Regards, Didier. |
| Re: [golang-dev] Go 1.6 planning | Michael Hudson-Doyle | 27/08/15 14:01 | A bit belated, but prepping a shared library branch has reminded me
that I really want to sort out the mess around thread local storage on some platforms (the magical "tlsg" symbol, the way we decide whether to use platform TLS support or not, the number of 'goos == "android" conditionals in the linker...).
|
| Re: [golang-dev] Go 1.6 planning | minux | 27/08/15 22:26 | A mips64le port has been done, with all.bash nearly passing. The only remaining parts are cgo, external linking, and the disassembler. I propose to add mips64 ports (be and le) to Go 1.6. They'll be still based on the old (non-ssa) compiler. SSA conversion will come later. This port is done by cherry (cc'ed). Announcement will be posted shortly. 32-bit mips support is also important as using Go on low-end routers is always one of my goal. But that will come after the SSA conversion. The port is designed with 32-bit/64-bit hybrid support in mind, so I think supporting 32-bit mips only requires a new 32-bit gc backend. |
| Re: Go 1.6 planning | Chris Hines | 02/09/15 11:20 | On Wednesday, August 12, 2015 at 7:38:47 PM UTC-4, rsc wrote:
I would like to see #10886 added to the list for 1.6. Chris |
| Re: [golang-dev] Re: Go 1.6 planning | Ian Lance Taylor | 02/09/15 12:48 | I set it to the 1.6 milestone, although that is not a promise that
anybody will actually work on it. Ian |
| Re: [golang-dev] Re: Go 1.6 planning | Chris Hines | 02/09/15 12:53 | Thanks, Ian. I think we have a couple people willing to work on a CL. What do you recommend when it comes to getting a reviewer? I have submitted another CL this cycle without specifying a reviewer. I am inexperienced with the Go contribution process and would appreciate guidance in that respect. Thanks, Chris |
| Re: [golang-dev] Re: Go 1.6 planning | Ian Lance Taylor | 02/09/15 13:23 | On Wed, Sep 2, 2015 at 12:53 PM, Chris Hines <ggr...@cs-guy.com> wrote:Specifying a reviewer, but it is not necessary. We will look at it. Feel free to ping the CLs after a week if you don't hear anything. Ian |
| Re: Go 1.6 planning | Ralf Schülke | 07/09/15 17:11 | Hi, i missed a Painter package in Image/Draw with: - rect, line, dot, circle, ... - fill - fonts i miss a nativ window/view/canvas package, i like drawterm and RIO this make go more complete and goes more to nativ system lang, at time we can make apps for CLI and Web and GUI only with 3rd Party packages this are wraper bindings to qt/gtk etc. so ints nice when have go a nativ standard package. I miss svg and pdf for a output format amd a base bitmap Image /png /gif /svg /jpg /bitmap /pdf Draw /Image/... /Painter/... /Window/ /View /Canvas /... In the tool section can we have a drawterm app he used the new draw stuff, like Window(), View(), Canvas() etc... The most odears are came from pan9 rio, drawing and are minimal, the ruels are: - cross platform - nativ - without driver injects - stable - fast and low memeory - (later-> its works over the network) the citiclas are the GUI Server for all Plattform and comming Plattforms, but i think we have good Display standards in 2D, 3D are comming with Vulcan. also this are more nativ then a wrapping to a toolkit. i can live with edit the name Window to Page, an drop View and make Canvas only the canvas are a dobble buffering bitmap or better a extra gc runtime in the go gc runtime. Why we need this? Simple, to visualation data, graph, pdf, text, images outside a webbrowser and outside a terminal, this close some missing developer and bring golang to a system language back. So can we write apps for CLI, WEB, Desktop and later can we drawterm make ready for network via http, p9, socket, and create a cluster nodes, this make eg: raytracing simple an power full and bring more place for new tools eg. debuging visualitations. -ralf |
| Re: [golang-dev] Re: Go 1.6 planning | Nigel Tao | 07/09/15 22:13 | On Mon, Sep 7, 2015 at 4:05 PM, Ralf Schülke <ralf.s...@gmail.com> wrote:
> i missed a Painter package in Image/Draw with: > - rect, line, dot, circle, ... > - fill > - fonts I think that this mail thread is for people to announce what they are working on for 1.6, not what they would like other people to work on. In any case, those things you request are all useful, but I don't think any of them have to live in the standard library per se, and thus be tied to the 1.6 release cycle. For example, support for the Plan 9 font file format already exists and is as simple as "go get golang.org/x/image/font/plan9font". I'm not sure what you mean exactly by "a base bitmap", but "golang.org/x/image/bmp" implements the BMP file format. |
| Re: Go 1.6 planning | Tengiz Davitadze | 25/09/15 09:50 | I'd like to see a native GUI programming capabilities. It'll be cool and I can't wait for it. by this option usage of go will rise 100% extra on market. I like Gui, OpenGL and Directx programming in visual C++ and I want to switch on go. cause I like this language..... On Thursday, August 13, 2015 at 3:38:47 AM UTC+4, rsc wrote:
|
| Re: [golang-dev] Re: Go 1.6 planning | Brad Fitzpatrick | 25/09/15 09:52 | Btw, this thread is about what people plan to work on and not what people want. -- |