Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
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...
Prochain SlideShare
Chargement dans…5
×

PNaCl/LLVM Go Compiler

1 337 vues

Publié le

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.

Publié dans : Logiciels
  • Identifiez-vous pour voir les commentaires

  • Soyez le premier à aimer ceci

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.

×