Updated GSoC 2014 Ideas (markdown)

This commit is contained in:
Dominik Picheta 2014-02-11 13:48:55 -08:00
parent c980d5279c
commit 37b047c9e7
1 changed files with 14 additions and 2 deletions

View File

@ -41,7 +41,7 @@ Below is a list of project ideas for [GSoC](https://www.google-melange.com/gsoc/
**Description**:
* Allow the nimrod bootstrap process to integrate the nimrod standard library source code and other associated resources into the nimrod binary, to be used by the nimrod binary when compiling source code. The included library modules should be overridable, either by a switch passed to the nimrod executable, or by placing an actual library file in a pre-determined path.
**Mentor:** Araq ([@Araq](http://github.com/Araq))
**Mentor:** zahary ([@zah](http://github.com/zah))
## Standard Library
@ -52,7 +52,7 @@ Below is a list of project ideas for [GSoC](https://www.google-melange.com/gsoc/
The Nimrod standard library currently lacks a YAML parsing module. This task requires you to read the YAML specification and to create a module which will be able to parse YAML data into an AST. Subsequently the parser can be used to create a high-level API to access the data.
#### Integrate and expand new Async IO module
**Mentor:** Araq ([@Araq](http://github.com/Araq))
#### Enhance the filesystem monitoring module "fsmonitor.nim"
**Skill Requirements:** Knowledge of the Microsoft Windows api.
@ -62,6 +62,8 @@ The Nimrod standard library currently lacks a YAML parsing module. This task req
* Revise the fsmonitor module api to decouple Unix/Linux file handle paradigms (such as using the poll method in in the sockets module) from the api, allowing easier implementations of multiple native backends.
* Integrate the fsmonitor module's polling mechanism into the new asynchronous io modules.
**Mentor:** dom96 ([@dom96](http://github.com/dom96))
#### Add a cross-platform stat()-like procedure to the operating system module "os.nim"
**Skill Requirements:** Knowledge of file system api's for Linux, MacOSX, or Microsoft Windows.
@ -76,6 +78,8 @@ The Nimrod standard library currently lacks a YAML parsing module. This task req
* Create and design new CSS and HTML layouts for the documentation, to better fit with the main website.
* Add search capabilities to the online documentation.
**Mentor:** zahary ([@zah](http://github.com/zah))
#### Add documentation to the nimrod compiler internals
**Skill Requirements:** Basic writing and documentation skills.
@ -91,12 +95,16 @@ The Nimrod standard library currently lacks a YAML parsing module. This task req
* Fix limitations to do with time intervals, specifically subtracting a TTimeInterval from a TTimeInfo.
* Provide a ``$`` for TTimeInterval. Goal is to be able to get timing info like "5 minutes ago".
**Mentor:** dom96 ([@dom96](http://github.com/dom96))
#### Add an implementation of the ISAAC psuedorandom number generator
**Skill Requirements:** Pseudo-Random number generation theory, C programming.
**Description:**
* Create a pure-nimrod implementation of the [[ISAAC Random Number Generator|http://burtleburtle.net/bob/rand/isaacafa.html]] .
**Mentor:** Araq ([@Araq](http://github.com/Araq)), dom96 ([@dom96](http://github.com/dom96))
#### Wrap and test the Qt framework
**Skill Requirements:** Knowledge of C++. Experience with the Qt framework is desirable.
@ -117,6 +125,8 @@ The Nimrod standard library currently lacks a YAML parsing module. This task req
**Bonus Points:** Write high-level bindings which provide an idiomatic Nimrod API on top of the wrapper.
**Mentor:** dom96 ([@dom96](http://github.com/dom96))
## Tools & Infrastructure
#### Update and refactor nimrod builder
**Skill Requirements**: JSON parsing, modular program construction, inter-process communication.
@ -124,6 +134,8 @@ The Nimrod standard library currently lacks a YAML parsing module. This task req
**Description**:
* Reduce the number of assumptions the nimrod builder makes about its host system, in order to reduce configuration restrictions. Assumptions include location and usage of external tools, such as git.
**Mentor:** dom96 ([@dom96](http://github.com/dom96))
#### Implement re2nim, a lexer generator for nimrod
* Model it after re2c or the Ragel state machine generator