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

cmd/compile/internal/logopt: optimizer logging directory doesn't handle Windows #41614

Closed
stamblerre opened this issue Sep 24, 2020 · 2 comments

Comments

@stamblerre
Copy link
Contributor

We're having trouble working with the GC optimization details on Windows in gopls.
It seems that checkLogPath expects absolute paths to start with /, which is not true for Windows file paths (C:\x\y\z, etc.). We tried passing a file URI, but that also doesn't work, as file URIs should be of the form file:///C:/x/y/z, not file://C:/x/y/z. We can work around this with https://golang.org/cl/256940, but I think there are some issues with URI parsing here.

If it's helpful, here is the code that translates between file URIs and filenames in gopls: https://github.com/golang/tools/blob/06f3a46a9d1e4913ecf04347e6eea61252bf3c41/internal/span/uri.go.

/cc @pjw @dr2chase

@dr2chase
Copy link
Contributor

Darn it, sorry.
Looks I stepped on an industry-standard rake.

@gopherbot
Copy link

Change https://golang.org/cl/257677 mentions this issue: cmd/compile: fix logopt URI decoding for windows

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Oct 14, 2020
Features

Completion speed improvements

https://golang.org/cl/257240 eliminated some duplicate type-checking in completions (and some other features), halving latency in most cases.
Improvements to symbol rankings

From https://golang.org/cl/254037:

    Downrank symbols if they are:

        Unexported and outside of the workspace. Since one wouldn't jump to these symbols to e.g. view documentation, they are less relevant.
        Fields and interface methods. Usually one would jump to the type name, so having fields highly ranked can be noisy.

Warnings for excluded files

You will now see diagnostics if you open a file that is excluded from the current build, likely by build tags. This should aid in understanding cases when gopls fails to work on a certain file.
Better error reporting when code lenses fail

A pop-up with an error will appear if a code lens fails to run its command.
Experimental
Multi-module workspace support

The proposal described in golang/go#32394 is partially implemented, but off by default.
Enable multi-module workspace support by adding the following to your settings:

"gopls": {
    "experimentalWorkspaceModule": true,
}

With this setting, you will be able to open a directory that contains multiple modules. Most features will work across modules, but some, such as go mod tidy diagnostics, are not yet implemented.

Give this a try if you're interested in this new feature, but please note that it is still very experimental.
Fixes
Toggle GC Details on Windows

There was a bug in the new experimental GC details code lens on Windows machines (golang/go#41614). We added a work-around to fix the issue.

A list of all issues fixed can be found in the gopls/v0.5.1 milestone.
Documentation

The documentation for settings is now automatically generated so it will stay up-to-date. Documentation was also updated for working with Neovim and for working on the Go project itself.
Thank you to our contributors!

@heschik @findleyr @dandua98 @pjweinb @ainar-g
@golang golang locked and limited conversation to collaborators Sep 26, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants