Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
PNaCl/LLVM Go Compiler
Jason Hickey, Herbert Czymontic, Michal Cierniak
{jyh,herbertc,cierniak}@google.com
Vision
• Apps run anywhere and
everywhere
• Your browser is a full featured
development environment
• Includes code develo...
Running Go in Chrome
Future Directions
Basic Strategy
• Want 100% compatibility with standard gc runtime
• Full support for goroutines, stack extension, precise ...
Go calling convention
• All arguments and return values are passed on the stack
• All registers are caller-save (the calle...
LLVM: introduce an explicit stack
Phases
Status
• Available in the Vanadium Internet of Things project
Complete Go-based development env, security, networking
http...
Nächste SlideShare
Wird geladen in …5
×

PNaCl/LLVM Go Compiler

1.321 Aufrufe

Veröffentlicht am

We are interested in truly distributed development environments for the internet of things. Environments where you can compile, debug, and run your code anywhere, on your workstation, laptop, phone, refrigerator, or wherever. Sandboxing is a prerequisite technology that allows code to be run safely and portably across a range of devices. In this talk, we present a new technology to compile programs written in the Go language to the Portable Native Client (PNaCl) sandbox, based on LLVM.

Veröffentlicht in: Software
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

PNaCl/LLVM Go Compiler

  1. 1. PNaCl/LLVM Go Compiler Jason Hickey, Herbert Czymontic, Michal Cierniak {jyh,herbertc,cierniak}@google.com
  2. 2. Vision • Apps run anywhere and everywhere • Your browser is a full featured development environment • Includes code development, compilation, debugging, security • How do we run anywhere? • How do we develop anywhere? • How do we debug anywhere?
  3. 3. Running Go in Chrome
  4. 4. Future Directions
  5. 5. Basic Strategy • Want 100% compatibility with standard gc runtime • Full support for goroutines, stack extension, precise garbage collection, etc. • Can’t use the LLVM stack • Can’t be extended, doesn’t support inspection, garbage collection, or stack switching • Solution • Custom compiler (written in Go) • Ignore the LLVM stack and use our own
  6. 6. Go calling convention • All arguments and return values are passed on the stack • All registers are caller-save (the callee can trash them)
  7. 7. LLVM: introduce an explicit stack
  8. 8. Phases
  9. 9. Status • Available in the Vanadium Internet of Things project Complete Go-based development env, security, networking https://vanadium.googlesource.com/release.go.pnacl Vanadium: http://v.io • Most features are implemented, aiming for Dec.

×