Commit Graph

118 Commits

Author SHA1 Message Date
Rafal Kupiec 7b3e6c5b76
P# introduces virtual classes and virtual methods 2018-07-30 17:08:25 +02:00
Rafal Kupiec b7792dfc3d
P# is not going to derive namespace syntax from PHP, but from C++. 2018-07-30 16:55:49 +02:00
Rafal Kupiec 5cb19f63a5
Get rid of alternative syntax for control structures (endif, endwhile, endfor, endforeach). Only curly brackets are allowed. 2018-07-28 23:11:29 +02:00
Rafal Kupiec 159cd76020
No need to duplicate exit() 2018-07-28 22:48:32 +02:00
Rafal Kupiec 3f1397ed93
Get rid of switch: endswitch construct 2018-07-28 22:45:20 +02:00
Rafal Kupiec ef2ea60a60
Treat whole file as P# source code. Fixes #24. 2018-07-28 18:28:19 +02:00
Rafal Kupiec 72f2cc2c1b
Remove useless fields, free some memory. 2018-07-27 23:41:51 +02:00
Rafal Kupiec 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
Rafal Kupiec 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
Rafal Kupiec 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
Rafal Kupiec 0e6e6773bb
This field is useless now 2018-07-25 19:04:08 +02:00
Rafal Kupiec e2aa774a6a
Reimplement SyRealPath(); fix build. 2018-07-23 20:45:30 +02:00
Rafal Kupiec 52d9616503
Revert d937d0c825 2018-07-23 19:39:21 +02:00
David Carlier dba8e5098f fixing in the vm context instead, making the feature available in case realpath could be implemented as well 2018-07-23 06:07:27 +01:00
David Carlier e7b78be8e5 Fix #15, merge from fix_debug_backtrace branch (#18) 2018-07-22 19:24:00 +01:00
David Carlier 357be5ec0d Attempt to fix #3 (#14) 2018-07-22 19:23:50 +01:00
Rafal Kupiec b7caeefded
Move math library into separate module 2018-07-21 08:24:20 +02:00
Rafal Kupiec abb91a9874
Reorganize the repository for new build system 2018-07-20 22:35:09 +02:00