Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

PNaCl/LLVM Go Compiler

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.

  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

PNaCl/LLVM Go Compiler

  1. 1. PNaCl/LLVM Go Compiler Jason Hickey, Herbert Czymontic, Michal Cierniak {jyh,herbertc,cierniak}
  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 Vanadium: • Most features are implemented, aiming for Dec.