Table of Contents
- Community Bonding: April 25-May 22
- Coding Week 1: May 23-May 29
- Coding Week 2: May 30-June 5
- Coding Week 3: June 6-June 12
- Coding Week 4: June 13-June 19
- Coding Week 5: June 20-June 26
- Coding Week 6: June 27-July 3 (Midterm deadline June 27)
- Coding Week 7: July 4-July 10
- Coding Week 8: July 11-July 17
- Coding Week 9: July 18-July 24
- Coding Week 10: July 25-July 31
- Coding Week 11: August 1-August 7
- Coding Week 12: August 8-August 14
- Submit code and evaluations: August 15-August 23
Community Bonding: April 25-May 22
- Studied swig's development documentation, particularly the sections on extending swig to support new languages.
- Skimmed over implementation of a few modules. (PHP, Python and JS)
- Set up repo and started out with basic skeleton.
Coding Week 1: May 23-May 29
- Added support for constants of primitive types
- Started out with functions
- implemented and tested basic functions (will later configure test suite)
Coding Week 2: May 30-June 5
- Handled default parameters of primitive types. (Will have to reiterate on this)
- Scrapped previous functions model in support of swig's default dispatch function.
- Trying to modify existing dispatch mechanism
- Added custom dispatch mechanism (Will have to reiterate on this, depending on the feedback)
- Basic overloading mechanism complete
Coding Week 3: June 6-June 12
- Started on configuring test suite and examples
- Examples configured and set to make on make-examples and make-hhvm-examples
- Configured examples: simple and overloading (function).
- Used default variable and global variable handler to handle them.
- Started out on classes, stuck on handling class pointer (and the approach to wrap classes)
Coding Week 4: June 13-June 19
- After rounds of discussions on various approaches, implemented a small wrapping class for pointers.
- Used swig's proxy class approach to wrap classes.
Coding Week 5: June 20-June 26
- On a small leave (Graduation)
- Classes: restructured to fix some bugs
Coding Week 6: June 27-July 3 (Midterm deadline June 27)
- Static methods and variables
- Restructured dispatch function's code gen to support overloaded methods
- Handled a few corner cases of overloading global functions
- Implemented overloaded methods
Coding Week 7: July 4-July 10
- Inheritance skeleton implemented
- Class example added
- Implemented References for basic data-types
- Implemented handling of objects as parameters
Coding Week 8: July 11-July 17
- Reimplemented pointers to be handled like references
- Implemented pass by reference for Objects
- Implemented returning of Objects from functions (this took much longer than expected because of segfaults)
- Added Value and Reference Examples
Coding Week 9: July 18-July 24
- Changed accessors to be handled inline. (using php magic methods)
- Changed accessors again to be handled using HHVM prophandlers.
- Updated and tested all the examples to pass with above changes.
Coding Week 10: July 25-July 31
- Added special handling for member constants.
- Added support for global enums.
- Added support for member enums.
- Added examples.
- Started with typewrapper classes.
Coding Week 11: August 1-August 7
- Implemented class caching.
- Completed typewrapper classes (similar to Java and C# typewrappers)
- Added typemaps for std::string
- Set up test-suite, enlist failing test-cases
- Fixed several bugs to get some test cases to pass
Coding Week 12: August 8-August 14
- On Leave for relocation (informed olly on irc)
- Re-implemented overloading to use swig's overload dispatch
- Fixed bugs for examples and a few more test cases to pass
Submit code and evaluations: August 15-August 23
Note: See TracWiki for help on using the wiki.