Chromium Code Reviews| Index: native_client_sdk/src/doc/reference/ideas.rst |
| diff --git a/native_client_sdk/src/doc/reference/ideas.rst b/native_client_sdk/src/doc/reference/ideas.rst |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5b66d601894cac0cd2ee9595456d0228676d8b7c |
| --- /dev/null |
| +++ b/native_client_sdk/src/doc/reference/ideas.rst |
| @@ -0,0 +1,143 @@ |
| +.. _ideas: |
| + |
| +================= |
| +Contributor Ideas |
| +================= |
| + |
| +.. contents:: |
| + :local: |
| + :backlinks: none |
| + :depth: 3 |
| + |
| +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. |
| + |
| +.. _native-client-discuss: https://groups.google.com/group/native-client-discuss |
| + |
| +Ideas |
| +===== |
| + |
| +We've separated contributor ideas into broad areas of interest: |
| + |
| +* **Ports** encompass all the code that *uses* the PNaCl platform. Put simply, |
| + the point of ports is to make existing open-source code work. |
| +* **Programming languages** sometimes involves compiler work, and sometimes |
| + requires getting an interpreter and its APIs to work well within the Web |
| + platform. |
| +* **LLVM and PNaCl** requires compiler work: PNaCl is based on the LLVM |
| + toolchain, and most of the work in this area would occur in the upstream LLVM |
| + repository. |
| +* **NaCl** mostly deals with low-level systems work and security. |
| + |
| + |
| +.. |
| + Adding a proposal to this document should follow this format: |
| + Project: *project title* |
| + Brief explanation: *brief description* |
| + Expected results: *how do we evaluate the project's success?* |
| + Knowledge Prerequisite: *programming languages, CS topics, ...* |
| + Mentor: *one or multiple, their roles in this project* |
| + The above list is inspired by the Google Summer of Code guidelines, and the |
| + KDE project list. |
| + |
| +Ports |
| +----- |
| + |
| + |
| +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 |
| +^^^^ |
| + |
| +* **Project:** Support the Rust programming languages |
| +* **Brief explanation:** The Rust_ programming language uses LLVM. The aim of |
| + this project is to allow it to deliver PNaCl ``.pexe`` files. |
| +* **Expected results:** The Rust test suite passes within the browser. How to |
| + use Rust to target PNaCl is well documented and easy to do. |
| +* **Knowledge Prerequisite:** Compilers, LLVM. |
| +* **Mentor:** Ben Smith. |
| + |
| +.. _Rust: http://www.rust-lang.org |
| + |
| +Haskell |
| +^^^^^^^ |
| + |
| +* **Project:** Support the Haskell programming language |
| +* **Brief explanation:** GHC_ targets LLVM. The aim of this project is to allow |
| + it to deliver PNaCl ``.pexe`` files. One interesting difficulty will be to |
| + ensure that tail call optimization occurs properly in all targets. |
| +* **Expected results:** The Haskell test suite passes within the browser. How to |
| + use Haskell to target PNaCl is well documented and easy to do. |
| +* **Knowledge Prerequisite:** Compilers, LLVM. |
| +* **Mentor:** Ben Smith. |
| + |
| +.. _GHC: |
| + http://www.haskell.org/ghc/docs/latest/html/users_guide/code-generators.html |
| + |
| +Julia |
| +^^^^^ |
| + |
| +* **Project:** Support the Julia programming language |
| +* **Brief explanation:** Julia_ targets LLVM, but it does so through LLVM's |
| + Just-in-Time compiler which PNaCl doens't support. The aim of this project is |
| + to allow it to deliver PNaCl ``.pexe`` files. |
| +* **Expected results:** The Julia test suite passes within the browser. How to |
| + use Julia to target PNaCl is well documented and easy to do. |
| +* **Knowledge Prerequisite:** Compilers, LLVM. |
| +* **Mentor:** Ben Smith. |
| + |
| +.. _Julia: http://julialang.org |
| + |
| +Scala |
| +^^^^^ |
| + |
| +* **Project:** Support the Scala programming language |
| +* **Brief explanation:** The aim of this project is to allow Scala_ to deliver |
| + PNaCl ``.pexe`` files. |
| +* **Expected results:** The Scala test suite passes within the browser. How to |
| + use Scala to target PNaCl is well documented and easy to do. |
| +* **Knowledge Prerequisite:** Compilers. |
| +* **Mentor:** Ben Smith. |
| + |
| +.. _Scala: http://www.scala-lang.org |
| + |
| +Mono |
| +^^^^ |
| + |
| +* **Project:** Support C# running inside Mono |
| +* **Brief explanation:** C# is traditionally a Just-in-Time compiled language, |
| + the aim of this project is to be able to run C# code withing Mono_ while |
| + compiling ahead-of-time. |
| +* **Expected results:** The Mono test suite passes within the browser. How to |
| + use Mono to target PNaCl is well documented and easy to do. |
| +* **Knowledge Prerequisite:** Compilers. |
| +* **Mentor:** Ben Smith. |
| + |
| +.. _Mono: http://www.mono-project.com |
| + |
|
jvoung (off chromium)
2015/02/11 18:53:45
elm-lang
JF
2015/02/11 23:30:15
Done.
|
| +LLVM and PNaCl |
| +-------------- |
| + |
|
jvoung (off chromium)
2015/02/11 18:53:45
Some sandbox-related optimizations? E.g., compiler
JF
2015/02/11 23:30:15
Done.
|
| + |
| +NaCl |
| +---- |