{{+bindTo:partials.standard_nacl_article}}

Contributor Ideas

Contributing? Me‽

NaCl and PNaCl are very big projects: they expose an entire operating system to developers, interact with all of the Web platform, and deal with compilers extensively to allow code written in essentially any programming language to execute on a variety of CPU architectures. This can be daunting when trying to figure out how to contribute to the open-source project! This page tries to make contributing easier by listing project ideas by broad area of interest, and detailing the required experience and expectations for each idea.

This isn’t meant to constrain contributions! If you have ideas that aren’t on this page please contact the native-client-discuss mailing list.

If you like an idea on this page and would like to get started, contact the native-client-discuss mailing list so that we can help you find a mentor.

Ideas

We’ve separated contributor ideas into broad areas of interest:

Ports

New Filesystems

Open Source Porting

Languages

PNaCl already has support for C and C++, and virtual machines such as JavaScript, Lua, Python and Ruby. We’d like to support more languages, either by having these languages target LLVM bitcode or by making sure that the language virtual machine’s APIs work well on the Web platform.

Rust

Haskell

Julia

Scala

Elm

Mono

Perl

TCC

LLVM and PNaCl

PNaCl relies heavily on LLVM in two key areas:

Most of the contribution ideas around LLVM would occur in the upstream LLVM repository, and would improve LLVM for more than just PNaCl’s sake (though PNaCl is of course benefiting from these improvements!). Some of these ideas would also apply to Subzero, a small and fast translator from portable executable to machine-specific code.

Sandboxing Optimizations

Binary Size Reduction

Vector Support

Atomics

Security-enhanced PNaCl

NaCl

Auto-Sandboxing

New Sandbox

64-bit Sandbox

{{/partials.standard_nacl_article}}