Changes between Version 44 and Version 45 of GSoc2011

Show
Ignore:
Timestamp:
04/04/11 21:01:52 (9 years ago)
Author:
dukeleto
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GSoc2011

    v44 v45  
    6464 * '''Possible Mentors''':  
    6565 * '''Details''': Embed Parrot into Mozilla Firefox. This will require some research. 
    66  * '''Expected Deliverables''': Ability to load and run bytecode from the Firefox web browser. Documentation and tests that show that the code works and how to use it.. 
     66 * '''Expected Deliverables''': Ability to load and run bytecode from the Firefox web browser. 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. 
    6767 
    6868=== Embed Parrot into Inkscape === 
     
    7272 * '''Possible Mentors''': 
    7373 * '''Details''': Embed Parrot inside of Inkscape, to allow Inkscape to be scripted with any language Parrot understands. 
    74  * '''Expected Deliverables''': Load and run bytecode with new Embed API from within Inkscape. Documentation and tests that show that the code works and how to use it. 
     74 * '''Expected Deliverables''': Load and run bytecode with new Embed API from within Inkscape. 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. 
    7575 
    7676=== Parrot bindings to Tor === 
     
    8080 * '''Possible Mentors''': 
    8181 * '''Details''': Embed Parrot inside of Tor, to allow Tor to be scripted with any language Parrot understands. 
    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. 
    83105 
    84106=== Bytecode Emitters for POST === 
     
    89111 * '''Details''': Several languages compile down to an abstract syntax tree type called POST. POST is the last stage of analysis and transformation before output code generation. Update existing POST, or create a new POST library capable of outputting bytecode directly. Update PAST to create new POST tree. You should not output PIR and rely on the PIR compiler to generate the bytecode. Emphasis for this project is placed on the ability to output working bytecode, not necessarily on the quality of the generated bytecode nor the throughput performance of the converters. 
    90112 * '''Expected Deliverables''': A POST extension or POST replacement which is able to generate bytecode. Includes necessary unit tests and all necessary documentation. 
     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 
    91122 
    92123=== TapTinder === 
     
    162193 * '''Expected Deliverables''': An ANTLR code generating backend or plugin for ANTLR which "works". Includes all necessary unit tests, code examples, and documentation. 
    163194 
    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. 
    171195 
    172196=== Code Metrics Utility === 
     
    194218 * '''Details''': A text templating engine, similar to Liquid or Lua-Codegen which runs on top of Parrot. The templating engine should follow good design and best practices and be "safe" (or have a "safe" mode) for use in public environments like the web. A good templating library will work with Parrot's immutable strings implementation to produce a high-performance and flexibile templating and formatting solution. This project should be implemented in a lower-level Parrot language for maximum portability (PIR, NQP-rx, Winxed, etc). 
    195219 * '''Expected Deliverables''': A templating library, example code, unit tests, and user documentation. 
    196  
    197220 
    198221=== GCC Translator === 
     
    206229 
    207230=== Java on Parrot === 
     231 
    208232 * '''Difficulty''': 4/5 
    209233 * '''Links of Interest''': http://java.sun.com/docs/books/jls/, http://www.gnu.org/software/classpath/ 
     
    212236 * '''Expected Deliverables''': A Parrot HLL implementation including registered HLL runtime compiler and fakecutable, examples and tests, user documentation. 
    213237 
    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. 
    221238 
    222239=== GNU Multi-Precision Library (GMP) bindings for Parrot === 
     
    235252 * '''Expected Deliverables''': pure python compiler + core python types (likely written in winxed). 
    236253 
    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  
    252254=== Javascript on Parrot === 
    253255 
    254  * '''Difficulty''': 1/5 - 4/5 
     256 * '''Difficulty''': 4/5 
    255257 * '''Links of Interest''': https://github.com/leto/jaspers, http://whiteknight.github.com/2010/12/07/javascript_on_parrot_plan.html 
    256258 * '''Possible Mentors''': Whiteknight