Go 1.1 Function Calls
docs.google.com
docs.google.com
Same here, which is why I like to idle in the channel when possible (and occasionally answer questions when I can).
People often underestimate how much impact the community behind a language has. The Go community has been one of the friendliest, and also one of the most willing to share its knowledge.
FYI, it's #go-nuts, just in case anybody reading this is inspired to check it out.
When reflecting at certain events a few years ago I remember that I was put off from learning <a language> because I stumbled upon some hostility within the community (I was just an observer in the incident, but it still affected me).
Reading some of the comments made me realise the friendly community and "healthy ecology" of a programming language are very important (Disclaimer: that's my personal experience).
Why doesn't google treat non-logged in users the same as those w/o an account?
It's asking for your password because you apparently do have a Google account and it wants to verify your identity before it lets you access things that are tied to your account.
I wager what they actually want to do is treat those without an account the same as those who are not logged in, but realize they can't get away with that quite yet. (That is to say, I suspect that they would like to turn away all users without accounts.)
I'd assume (and I have no insider knowledge) that it's because Google assumes if you have a Google account that you probably want to be logged into it when using Google products. Otherwise it would suck if you tried to do something that requires an account and were told "log in" and then had to refresh the page, potentially losing state. The up-front login avoids some usability issues there. (Of course there are many ways to approach this, this is merely my hypothesis.)
Closures need the combination of code and data. There are multiple implementation strategies to pair the two together though. Delphi, for example, has implemented method pointers for a very long time as a pair of pointers, one code and one data.
When I added anonymous method support, that wouldn't fly because it doesn't handle account memory management (Delphi is not garbage collected). So I implemented a different form, using COM-style interfaces, where the code pointer is the first method after QI, Addref and Release. Since Delphi had auto-refcounting support for COM pointers, this solved the dynamic closure allocation problem; and since it was language independent, it solved the C++ interop problem.
https://code.google.com/p/go-wiki/wiki/DesignDocuments
There are a lot of interesting reads in there.
It is number crunching code (random forests) but go 1.1 is faster then gccgo as well (though i haven't tried the latest version of that).
Its more reminiscent of plan9's per process namespaces than anything else. http://plan9.bell-labs.com/sys/doc/names.html
Regardless, the main issue that was preventing Go from running on Android was the linker's inability to link go pkgs as a shared library. Fortunately support for external linking on ARM is scheduled to land in the go1.2 release.
http://tip.golang.org/doc/go1.2#gc_changes
When it comes to go support for NaCl, llgo is imho the most promising solution for that. http://github.com/axw/llgo
Making a distinction between known and unknown calls in the implementation is not only a good thing, but in a language with first-class functions it is all but inevitable because the performance win is so large. (The majority of calls are known, and known calls can be compiled significantly more efficiently than any general purpose call machinery.)