Re:Go 1.1 Function Calls
by safetydank on Tuesday October 01, 2013 @09:08PM
(#6480034)
Ios disallows dynamic code generation at runtime - what other environments could Go target with these restrictions?
[ Parent
| on HN ]
iOS actually doesn't have a restriction as strict as this: you can take a page of memory and map it again without issue. This is the technique used by imp_implementationWithBlock, and current versions of libffi can generate closures based on the technique.
RSC's saying that 1.1's new calling convention removed the need for dynamic code generation.
Native Client, Android, ummm, pretty much any environment that is encapsulated in a sandbox.
Re:Go 1.1 Function Calls
by safetydank on Tuesday October 01, 2013 @09:29PM
(#6480098)
Ah yes, Native Client. I assume Android allows it since it runs V8.
I guess Android has a different kind of sandbox than most typical software fault isolation based sandboxes (e.g. NaCl).
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