Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 .. _ideas: | |
| 2 | |
| 3 ================= | |
| 4 Contributor Ideas | |
| 5 ================= | |
| 6 | |
| 7 .. contents:: | |
| 8 :local: | |
| 9 :backlinks: none | |
| 10 :depth: 3 | |
| 11 | |
| 12 Contributing? Me‽ | |
| 13 ================= | |
| 14 | |
| 15 NaCl and PNaCl are very big projects: they expose an entire operating system to | |
| 16 developers, interact with all of the Web platform, and deal with compilers | |
| 17 extensively to allow code written in essentially any programming language to | |
| 18 execute on a variety of CPU architectures. This can be daunting when trying to | |
| 19 figure out how to contribute to the open-source project! This page tries to make | |
| 20 contributing easier by listing project ideas by broad area of interest, and | |
| 21 detailing the required experience and expectations for each idea. | |
| 22 | |
| 23 This isn't meant to constrain contributions! If you have ideas that aren't on | |
| 24 this page please contact the native-client-discuss_ mailing list. | |
| 25 | |
| 26 If you like an idea on this page and would like to get started, contact the | |
| 27 native-client-discuss_ mailing list so that we can help you find a mentor. | |
| 28 | |
| 29 .. _native-client-discuss: https://groups.google.com/group/native-client-discuss | |
| 30 | |
| 31 Ideas | |
| 32 ===== | |
| 33 | |
| 34 We've separated contributor ideas into broad areas of interest: | |
| 35 | |
| 36 * **Ports** encompass all the code that *uses* the PNaCl platform. Put simply, | |
| 37 the point of ports is to make existing open-source code work. | |
| 38 * **Programming languages** sometimes involves compiler work, and sometimes | |
| 39 requires getting an interpreter and its APIs to work well within the Web | |
| 40 platform. | |
| 41 * **LLVM and PNaCl** requires compiler work: PNaCl is based on the LLVM | |
| 42 toolchain, and most of the work in this area would occur in the upstream LLVM | |
| 43 repository. | |
| 44 * **NaCl** mostly deals with low-level systems work and security. | |
| 45 | |
| 46 | |
| 47 .. | |
| 48 Adding a proposal to this document should follow this format: | |
| 49 Project: *project title* | |
| 50 Brief explanation: *brief description* | |
| 51 Expected results: *how do we evaluate the project's success?* | |
| 52 Knowledge Prerequisite: *programming languages, CS topics, ...* | |
| 53 Mentor: *one or multiple, their roles in this project* | |
| 54 The above list is inspired by the Google Summer of Code guidelines, and the | |
| 55 KDE project list. | |
| 56 | |
| 57 Ports | |
| 58 ----- | |
| 59 | |
| 60 | |
| 61 Languages | |
| 62 --------- | |
| 63 | |
| 64 PNaCl already has support for C and C++, and virtual machines such as | |
| 65 JavaScript, Lua, Python and Ruby. We'd like to support more languages, either by | |
| 66 having these languages target LLVM bitcode or by making sure that the language | |
| 67 virtual machine's APIs work well on the Web platform. | |
| 68 | |
| 69 Rust | |
| 70 ^^^^ | |
| 71 | |
| 72 * **Project:** Support the Rust programming languages | |
| 73 * **Brief explanation:** The Rust_ programming language uses LLVM. The aim of | |
| 74 this project is to allow it to deliver PNaCl ``.pexe`` files. | |
| 75 * **Expected results:** The Rust test suite passes within the browser. How to | |
| 76 use Rust to target PNaCl is well documented and easy to do. | |
| 77 * **Knowledge Prerequisite:** Compilers, LLVM. | |
| 78 * **Mentor:** Ben Smith. | |
| 79 | |
| 80 .. _Rust: http://www.rust-lang.org | |
| 81 | |
| 82 Haskell | |
| 83 ^^^^^^^ | |
| 84 | |
| 85 * **Project:** Support the Haskell programming language | |
| 86 * **Brief explanation:** GHC_ targets LLVM. The aim of this project is to allow | |
| 87 it to deliver PNaCl ``.pexe`` files. One interesting difficulty will be to | |
| 88 ensure that tail call optimization occurs properly in all targets. | |
| 89 * **Expected results:** The Haskell test suite passes within the browser. How to | |
| 90 use Haskell to target PNaCl is well documented and easy to do. | |
| 91 * **Knowledge Prerequisite:** Compilers, LLVM. | |
| 92 * **Mentor:** Ben Smith. | |
| 93 | |
| 94 .. _GHC: | |
| 95 http://www.haskell.org/ghc/docs/latest/html/users_guide/code-generators.html | |
| 96 | |
| 97 Julia | |
| 98 ^^^^^ | |
| 99 | |
| 100 * **Project:** Support the Julia programming language | |
| 101 * **Brief explanation:** Julia_ targets LLVM, but it does so through LLVM's | |
| 102 Just-in-Time compiler which PNaCl doens't support. The aim of this project is | |
| 103 to allow it to deliver PNaCl ``.pexe`` files. | |
| 104 * **Expected results:** The Julia test suite passes within the browser. How to | |
| 105 use Julia to target PNaCl is well documented and easy to do. | |
| 106 * **Knowledge Prerequisite:** Compilers, LLVM. | |
| 107 * **Mentor:** Ben Smith. | |
| 108 | |
| 109 .. _Julia: http://julialang.org | |
| 110 | |
| 111 Scala | |
| 112 ^^^^^ | |
| 113 | |
| 114 * **Project:** Support the Scala programming language | |
| 115 * **Brief explanation:** The aim of this project is to allow Scala_ to deliver | |
| 116 PNaCl ``.pexe`` files. | |
| 117 * **Expected results:** The Scala test suite passes within the browser. How to | |
| 118 use Scala to target PNaCl is well documented and easy to do. | |
| 119 * **Knowledge Prerequisite:** Compilers. | |
| 120 * **Mentor:** Ben Smith. | |
| 121 | |
| 122 .. _Scala: http://www.scala-lang.org | |
| 123 | |
| 124 Mono | |
| 125 ^^^^ | |
| 126 | |
| 127 * **Project:** Support C# running inside Mono | |
| 128 * **Brief explanation:** C# is traditionally a Just-in-Time compiled language, | |
| 129 the aim of this project is to be able to run C# code withing Mono_ while | |
| 130 compiling ahead-of-time. | |
| 131 * **Expected results:** The Mono test suite passes within the browser. How to | |
| 132 use Mono to target PNaCl is well documented and easy to do. | |
| 133 * **Knowledge Prerequisite:** Compilers. | |
| 134 * **Mentor:** Ben Smith. | |
| 135 | |
| 136 .. _Mono: http://www.mono-project.com | |
| 137 | |
|
jvoung (off chromium)
2015/02/11 18:53:45
elm-lang
JF
2015/02/11 23:30:15
Done.
| |
| 138 LLVM and PNaCl | |
| 139 -------------- | |
| 140 | |
|
jvoung (off chromium)
2015/02/11 18:53:45
Some sandbox-related optimizations? E.g., compiler
JF
2015/02/11 23:30:15
Done.
| |
| 141 | |
| 142 NaCl | |
| 143 ---- | |
| OLD | NEW |