Commit Graph

11 Commits

Author SHA1 Message Date
7b3e6c5b76
P# introduces virtual classes and virtual methods 2018-07-30 17:08:25 +02:00
cd2adc1f51
Useless variable declaration & assignment 2018-07-28 11:56:09 +02:00
8ab80ff8bc
Several fixes to multiple inheritance
* Only first inherited class should be available via 'parent' keyword
 * If class X extends Y, Z and both Y and Z implements a(), $this->a() should match to the first one
2018-07-28 11:53:56 +02:00
72f2cc2c1b
Remove useless fields, free some memory. 2018-07-27 23:41:51 +02:00
caf9126f0b
Several changes:
* small code cleanup
 * implement new structure for storing information about class inheritance
 * implement PH7_NewClassInfo()
 * make a use of smaller ph7_class_info instead of ph7_class, to reduce memory usage
2018-07-27 21:05:54 +02:00
e47eef7d97
Fix error reporting 2018-07-27 20:01:45 +02:00
4bf46f1a87
I hate typos 2018-07-27 19:00:29 +02:00
9e885b3196
Generally speaking ... this is working.
This commit partially fixes #5, however it still needs some work. TODO:
 * remove debugging printf calls,
 * some tuning, to consume less memory,
 * implement similar solution for interfaces
2018-07-27 17:42:12 +02:00
b040886b97
Test and temporary version of compiler emiting PH7_OP_CLASS_INIT instruction.
However it works on ph7_class and thus passes whole class into the VM, what causes memory overhead,
as finally we have to find this class on the VM's stack. Instead, we could pass some ph7_class_info
structure containing a name of class to look for and information about its inheritances.
2018-07-27 08:24:53 +02:00
ceca007cd1 Correct some typos 2018-07-22 19:25:12 +01:00
abb91a9874
Reorganize the repository for new build system 2018-07-20 22:35:09 +02:00