Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Go 1.13 support #929

Open
hajimehoshi opened this issue Jun 27, 2019 · 3 comments

Comments

@hajimehoshi
Copy link
Member

commented Jun 27, 2019

The season will come soon :)

@eclipseo

This comment has been minimized.

Copy link

commented Jul 29, 2019

We are already testing Go 1.13 in Fedora, and the latest build for F31 failed because of this.
https://koji.fedoraproject.org/koji/taskinfo?taskID=36633628

@dmitshur

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

I've created the go1.13 branch with the first commit. The rest of the work still needs to be done by someone.

@dmitshur

This comment has been minimized.

Copy link
Member

commented Aug 12, 2019

I've pushed one commit to go1.13 branch. It fixes build errors in sync package.

Next up we'll need deal with internal/reflectlite. It's a new internal package added in Go 1.13:

https://tip.golang.org/pkg/internal/reflectlite/

Package reflectlite implements lightweight version of reflect, not using any package except for "runtime" and "unsafe".

We'll need to find a way to implement it or find a way to make it not required by other packages. I tried two approaches unsuccessfully so far:

  1. replacing all the internal/reflectlite imports with reflect:
    • this doesn't work because of import cycles: reflect imports errors which imports internal/reflectlite (which is exactly why the standard library needed to create a second reflect package)
  2. copying reflect package source code (overrides) and trimming them down to what's needed
    • this is not easy because there's no clean subset of GopherJS's reflect package that will implement all of internal/reflectlite API; new code will need to be written and it may be a substantial effort that requires understanding how GopherJS implements and represents reflection (something I'm not closely familiar with, and we haven't created docs for it)

Stopping here for now, just wanted to post an update about some progress made. Others are welcome to pick it up from here if you have the bandwidth.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.