82 | | * '''Expected Deliverables''': Load and run bytecode with new Embed API from within Tor. Allow the basic creation and destruction of Tor circuits. The student should concentrate on the API to create an internal Tor node (not an exit node) to reduce the scope of the project. If the student has extra time, the exit node API can be worked on. Documentation and tests that show that the code works and how to use it.. |
| 82 | * '''Expected Deliverables''': Load and run bytecode with new Embed API from within Tor. Allow the basic creation and destruction of Tor circuits. The student should concentrate on the API to create an internal Tor node (not an exit node) to reduce the scope of the project. If the student has extra time, the exit node API can be worked on. Documentation and tests that show that the code works and how to use it. Students are expected to coordinate with both Parrot and Tor developers to come up with a plan that both communities find feasible. |
| 83 | |
| 84 | === LAPACK Bindings for Parrot-Linear-Algebra === |
| 85 | |
| 86 | * '''Difficulty''': 3/5 |
| 87 | * '''Links of Interest''': https://github.com/whiteknight/parrot-linear-algebra |
| 88 | * '''Possible Mentors''': Whiteknight |
| 89 | * '''Details''': Parrot-Linear-Algebra (PLA) provides bindings and wrapper PMC types for the BLAS library. This provides access to basic matrix and vector operations, but does not provide access to the full range of algorithms implemented by LAPACK. Implement bindings to use LAPACK (CLAPACK, etc) routines with PLA matrix types from a Parrot application. Since LAPACK provides so many interfaces, only a relatively small subset of routines must be made accessible. The student should be able to perform common operations from Parrot including finding eigenvalues and eigenvectors, performing common matrix factorizations and decompositions, and Solving systems of linear equations including least-squares solutions. |
| 90 | * '''Expected Deliverables''': LAPACK bindings for PLA, including necessary build and test infrastructure improvements, new unit tests, code examples to cover cases mentioned above, and necessary documentation. |
| 91 | |
| 92 | === OpenCL bindings for Parrot === |
| 93 | * '''Difficulty''': <4/5> |
| 94 | * '''Links of Interest''': http://www.khronos.org/opencl/ |
| 95 | * '''Possible Mentors''': dukeleto |
| 96 | * '''Details''': OpenCL is the first open, royalty-free standard for cross-platform and parallel programming, mostly for Graphical Processing Units (GPUs). Parrot would like bindings to OpenCL, which will allow high-performance computing from Parrot languages. This will have far-reaching potential for scientific computing, cryptography, number theory and any computationally intensive tasks. |
| 97 | * '''Expected Deliverables''': OpenCL is a large standard, this GSoC project will be confined to providing the smallest set of bindings to OpenCL that can be built up. Most likely, access to integer calculations should be done. More details to follow. |
| 98 | |
| 99 | === Refactor PL/Parrot to use the new Parrot Embed API === |
| 100 | * '''Difficulty''': 4/5 |
| 101 | * '''Links of Interest''': http://pl.parrot.org, https://github.com/parrot/parrot/tree/master/src/embed, https://github.com/parrot/parrot/blob/master/docs/embed_new.pod |
| 102 | * '''Possible Mentors''': dukeleto, Whiteknight |
| 103 | * '''Details''': PL/Parrot embeds Parrot Virtual Machine into PostgreSQL. It was written before the new Parrot embed API was written, which has a much nicer interface. This project will consist of refactoring the PL/Parrot codebase to use the new API. In the process of converting to the new embed API, many bugs in PL/Parrot will be fixed, since PL/Parrot inherits many bugs from the old embed API. |
| 104 | * '''Expected Deliverables''': A new implementation of PL/Parrot that uses the new embed API. The PL/Parrot and PL/Perl6 test suite should pass, more tests should be added, and developer docs should be written so that it is easier for other developers to contribute to PL/Parrot. |
| 113 | |
| 114 | === GNU Scientific Library (GSL) bindings for Parrot === |
| 115 | |
| 116 | * '''Difficulty''': <3/5> |
| 117 | * '''Links of Interest''': http://www.gnu.org/software/gsl/ http://search.cpan.org/~leto/Math-GSL/ |
| 118 | * '''Possible Mentors''': ? |
| 119 | * '''Details''': This project can be thought of as porting a subset Math::GSL to Parrot. |
| 120 | * '''Expected Deliverables''': There are many GSL subsystems, so this project should focus on binding to Special Function, Random Distributions and Cumulative Distribution Functions (CDFs), which have the simplest function signatures. Deliverables will be the implementation, examples, docs and tests. |
| 121 | |
164 | | === LAPACK Bindings for Parrot-Linear-Algebra === |
165 | | |
166 | | * '''Difficulty''': 3/5 |
167 | | * '''Links of Interest''': <NONE, please add some> |
168 | | * '''Possible Mentors''': Whiteknight |
169 | | * '''Details''': Parrot-Linear-Algebra (PLA) provides bindings and wrapper PMC types for the BLAS library. This provides access to basic matrix and vector operations, but does not provide access to the full range of algorithms implemented by LAPACK. Implement bindings to use LAPACK (CLAPACK, etc) routines with PLA matrix types from a Parrot application. Since LAPACK provides so many interfaces, only a relatively small subset of routines must be made accessible. The student should be able to perform common operations from Parrot including finding eigenvalues and eigenvectors, performing common matrix factorizations and decompositions, and Solving systems of linear equations including least-squares solutions. |
170 | | * '''Expected Deliverables''': LAPACK bindings for PLA, including necessary build and test infrastructure improvements, new unit tests, code examples to cover cases mentioned above, and necessary documentation. |
214 | | === GNU Scientific Library (GSL) bindings for Parrot === |
215 | | |
216 | | * '''Difficulty''': <3/5> |
217 | | * '''Links of Interest''': http://www.gnu.org/software/gsl/ http://search.cpan.org/~leto/Math-GSL/ |
218 | | * '''Possible Mentors''': ? |
219 | | * '''Details''': This project can be thought of as porting a subset Math::GSL to Parrot. |
220 | | * '''Expected Deliverables''': There are many GSL subsystems, so this project should focus on binding to Special Function, Random Distributions and Cumulative Distribution Functions (CDFs), which have the simplest function signatures. Deliverables will be the implementation, examples, docs and tests. |
237 | | === OpenCL bindings for Parrot === |
238 | | * '''Difficulty''': <4/5> |
239 | | * '''Links of Interest''': http://www.khronos.org/opencl/ |
240 | | * '''Possible Mentors''': dukeleto |
241 | | * '''Details''': OpenCL is the first open, royalty-free standard for cross-platform and parallel programming, mostly for Graphical Processing Units (GPUs). Parrot would like bindings to OpenCL, which will allow high-performance computing from Parrot languages. This will have far-reaching potential for scientific computing, cryptography, number theory and any computationally intensive tasks. |
242 | | * '''Expected Deliverables''': OpenCL is a large standard, this GSoC project will be confined to providing the smallest set of bindings to OpenCL that can be built up. Most likely, access to integer calculations should be done. More details to follow. |
243 | | |
244 | | |
245 | | === Refactor PL/Parrot to use the new Parrot Embed API === |
246 | | * '''Difficulty''': 4/5 |
247 | | * '''Links of Interest''': http://pl.parrot.org, https://github.com/parrot/parrot/tree/master/src/embed, https://github.com/parrot/parrot/blob/master/docs/embed_new.pod |
248 | | * '''Possible Mentors''': dukeleto, Whiteknight |
249 | | * '''Details''': PL/Parrot embeds Parrot Virtual Machine into PostgreSQL. It was written before the new Parrot embed API was written, which has a much nicer interface. This project will consist of refactoring the PL/Parrot codebase to use the new API. In the process of converting to the new embed API, many bugs in PL/Parrot will be fixed, since PL/Parrot inherits many bugs from the old embed API. |
250 | | * '''Expected Deliverables''': A new implementation of PL/Parrot that uses the new embed API. The PL/Parrot and PL/Perl6 test suite should pass, more tests should be added, and developer docs should be written so that it is easier for other developers to contribute to PL/Parrot. |
251 | | |