Go 1.12 Release Candidate 1 is released
groups.google.com
groups.google.com
I understand that your mod file is always up to date when this happens, but imo you should be able to use them like ivy files for example. (Using the readonly flag unfortunately does not work either).
If so, that is addressed for Go 1.12:
When 1.11 came out I started using a project with modules, which caused many go tools pulled into vscode to completely break. One of those tools was the sourcegraph language server:
https://github.com/sourcegraph/go-langserver#go-language-ser...
Bingo (referenced in above link) seems to at least work, but seems to be a bit slow sometimes.
I am assuming at this point that this change set is just laying the foundation:
https://go-review.googlesource.com/c/tools/+/136676#message-...
https://github.com/golang/tools/tree/master/cmd/gopls
There's also a vscode directory, so maybe it's worth checking out. I'm guessing it's too soon, but at least I know where to look more closely now.
This release removes the optimized assembly implementations. RC4 is insecure and should only be used for compatibility with legacy systems.
---
So why did they get rid of the optimized implementations and kept the slow one? What was the actual reasoning behind this decision?
For compatibility with legacy systems
> why did they get rid of the optimized implementations
Probably to give people less reasons to choose rc4, in case this was enough reasons for these people to choose rc4. Also because this is less code to maintain.
I understand, so why didn't they keep the optimized version?
> Probably to give people less reasons to choose rc4, in case this was enough reasons for these people to choose rc4. Also because this is less code to maintain.
But they just said that they kept it for legacy reasons. It has already been chosen, and most of the time you simply can't choose to move to another one. The only difference is now that legacy systems will be stuck with a slower implementation. For what reason exactly?
Is "less code to maintain" really a valid concern? Do they actually have to maintain it after it's been written? Do you have to touch the already-existing optimized code? I assume there are no bugs in there, so I don't know what there is to maintain about it.
https://github.com/golang/go/commit/30eda6715c6578de2086f03d... is the removal commit, which also points out that the optimization didn’t seem to have mattered much (depending on the CPU).
OK, this reason makes more sense to me. Thanks.
Yes, it really is. And yes, you still have to maintain code that's been written.
See discussion at https://github.com/golang/go/issues/25417
The pure Go code was already faster than the assembly on some CPUs. For the other CPUs where the assembly was faster, we'd rather just fix the compiler to optimize better.
Yeah, it makes more sense to me than the reason (perhaps it was not intended to be the reason but I read it as such) provided on that page. Thanks for clearing it up.
I hope so, i was testing running a service as a lambda function in AWS,
I am using time.NewTicker()/time.After() and co to control go routines behaviour (via channels).
To my surprise, this is not behaving well in lambda, many times, a Ticker configured for 1 second for example, will tick after 12 sec, sometimes even 200sec, it's not consistent at all.
When i increase the memory allocated to the lambda function (which will increase the number of cpu) it behaves better.
It's a large service with millions of call per day. i don't know if this was related to the GC stopTheWorld, Or something is wrong with lambda runtime.
See: https://aws.amazon.com/blogs/compute/container-reuse-in-lamb...
¹ish. take that statement w/ a grain of salt.