2.0 KiB
2.0 KiB
Introduction
Below is a list of project ideas for the 2014 GSoC Application for Nimrod. You will need to spend a considerable amount of time experimenting with the Nimrod programming language before you attempt these projects.
Projects
Compiler
Add support for coroutines Fix bugs with iterators/generics Fix/Expand Compiler as a Service features
Standard Library
Integrate and expand new async io module
Enhance the filesystem monitoring module "fsmonitor.nim"
- Allow the fsmonitor module to work on Windows by using native api's to gather information about changes in monitored files and directories.
- Revise the fsmonitor module api to decouple unix/linux file handle paradigms (such as using sockets.poll) from the api, allowing easier implementations of native backends.
- Integrate the fsmonitor module's polling mechanism into the new asynchronous io modules.
Add a cross-platform stat()-like procedure to the operating system module "os.nim"
- Implement a procedure which uses native stat-like calls on Linux, Mac, Windows, and other operating systems to gather detailed information about specific file system objects. Allow the bypassing of symlinks and hardlinks, where possible.
Enhance and expand standard library documentation
- Ensure that documentation exists for all public methods and modules
- Create and design new CSS and HTML layouts for the documentation, to better fit with the main website
- Add search capabilities to the documentation
Tools & Infrastructure
Update and refactor nimrod builder
- 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.
Implement re2nim, a lexer generator for nimrod
- Model it after re2c or the Ragel state machine generator
Implement a Nimrod backend for the Ragel state machine generator
Implement support for the JavaScript backend in the tester