wiki:GSoC2016/HHVM/Journal

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

Last modified 3 years ago Last modified on 20/08/16 10:05:08