wiki:GSoC2017/PHP7/Journal

Community Bonding Week 1: May 6–May 12

Entry 1

Entry 2

  • Currently looking on object creation in Swig for simple C++ classes.

Community Bonding Week 2: May 13–May 19

Entry 1

  • Working on Object creation approach for PHP SWIG.

Entry 2

  • We have a working object creation approach of PHP SWIG (but only is valid to very simple classes with single class structure and single instance).
  • Problems : By taking down convert ptr, Convert Resource Ptr, Convert Resource Data functions, the code breaks everywhere. This was used to store C++ this pointer in a PHP type - zend resource.
  • Problems : What is ZEND_BEGIN_ARG_INFO_EX and its usage in SWIG_ZEND_NAMED_FE (sending swig_arginfo_0/swig_arginfo_00).
  • Problems : Garbage Collection breaks with multiple instances.

Entry 3

  • Currently looking at How best to store C++ this pointer in a PHP Type. (Zend Resource or a Struct object).

Community Bonding Week 3: May 20–May 26

Entry 1

  • Successfully completed wrapping simple classes.

Entry 2

  • Looking at different problems faced with simple classes.
  • Public variables need to have getter and setter methods.
  • Inheritance
  • When <std_string.i> isn't included while having string return values,there is another mnit code generated. (For destroying the String object).We can make std_string compulsory for string return values/arguments to keep it clean?
  • For much simpler classes without a class, just procedural functions. How to go about it then?

Community Bonding Week 4: May 27–June 2 (work begins May 30)

Entry 1

  • Fixing some problems from earlier work.(Still using struct to store c++ this pointer).

Entry 2

  • Going with Dual Plan. struct to store C++ this pointers and other pointers of class/struct type. And going with Swig Wrapper with other types of pointers.

Coding Week 3: June 3–June 9

Entry 1

  • Using Examples as base line for now to overhaul existing wrappers to use object approach.

Examples Categorizing

  • callback - Director class
  • extend - Director class
  • overloading - Overloading
  • references - Vectors
  • class - Inheritance
  • constants - Simple
  • cpointer - Pointers
  • disown - Disown
  • enum - Enum
  • funcptr - Pointers
  • pointer - Pointers
  • pragmas - Pragma Code
  • proxy - Object Factory
  • simple - Simple
  • sync - Variable Sync
  • value - Values
  • variables - Variables
  • Working on Simple Example Category.

Coding Week 4: June 10–June 16

Entry 1

  • Working on the following Categories. Categories
    • Inheritance.
    • Object Factory Category.
    • Enum Category.
    • Variable Sync.

Coding Weeky 5: June 17–June 23

Entry 1

  • Working on the following Categories. Categories
    • Pragma Code.
    • Pointers.
    • Values.
    • Variables.

Coding Week 6: June 24–June 30 (evaluations: June 26–30)

Entry 1

  • Sending Patches. (Should have done it earlier. But needed some solid base to open a pr).

Entry 2

  • Currently working on Compatibility Issues. To keep the compatibility to the at most extent in my code.

Entry 3

Coding Week 7: July 1–July 7

Entry 1

Entry 2

  • Completed overloading code.

Entry 3

  • Working on comments on the pull request.

Coding Week 8: July 8–July 14

Entry 1

  • Worked to support multiple types in overloading code. (Spill Over)
  • Used the current flow to work with overloaded code.
  • reused code to create a in place swig_overload_dispatch for class overloaded methods. This is to skip the this pointer from the function header.

Entry 2

  • Completed Disown Code

Entry 3

  • Changed the param input / output structure - Code Refactor.

Coding Week 9: July 15–July 21

Entry 1

  • Code refactor to use swig_object_wrapper itself to wrap the objects.And store the C++ class pointers in ptr member of swig_object_wrapper of type void.
  • Code refactor to accommodate the above change in the class creation and deletion structure flow.

Coding Week 10: July 22–July 28 (evaluations: July 24–28)

Entry 1

  • Code refactor to make it work with the normal example at Example/php

Entry 2

  • Started looking at Director Classes.

Coding Week 11: July 29–August 4

Entry 1

  • Director Class examples running.
  • Refactor code to support %rename of both class and method names.

Coding Week 12: August 5–August 11

Entry 1

  • Working on test cases.
    • Total test case - 512
    • Current fail test case - 420

Coding Week 13: August 12–August 18

Entry 1

  • Working on test cases.
    • Total test case - 512
    • Current fail test case - 250

Coding Week 14: August 19–August 25 (evaluations; August 21–29)

Entry 1

  • Working on test cases.
    • Total test case - 512
    • Current fail test case - 15

Final Evaluations: August 26–August 29

Last modified 2 years ago Last modified on 27/08/17 18:46:11
Note: See TracWiki for help on using the wiki.