Piotr Likoski 
							
						 
					 
					
						
						
							
						
						8681dcf61c 
					 
					
						
						
							
							Added new chapter  
						
						 
						
						
						
						
					 
					
						2018-08-02 20:18:48 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e0b939d9a2
	 
				 
					 
					
						
						
							
							In general it is a bad idea to compare memory. We should compare strings and check its length.  Fixes   #34 .  
						
						 
						
						
						
						
					 
					
						2018-08-02 17:42:19 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Piotr Likoski 
							
						 
					 
					
						
						
							
						
						19f8cf2599 
					 
					
						
						
							
							Comply with GCC extensions  
						
						 
						
						
						
						
					 
					
						2018-08-02 16:33:07 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Piotr Likoski 
							
						 
					 
					
						
						
							
						
						c86361a08b 
					 
					
						
						
							
							Add paragraph about native UTF-8 support  
						
						 
						
						
						
						
					 
					
						2018-08-02 16:21:04 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6527b58b74 
					 
					
						
						
							
							Fix ASM keyword in hash.c  
						
						 
						
						... 
						
						
						
						See: https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html#Alternate-Keywords  
						
						
					 
					
						2018-08-02 02:54:01 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ddfa1ecb0d 
					 
					
						
						
							
							Syntax Error in vfs.c  
						
						 
						
						... 
						
						
						
						Fix a syntax error (OR operation) inside WINNT macro. 
						
						
					 
					
						2018-08-02 02:45:23 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						614c192ec4
	 
				 
					 
					
						
						
							
							It derives also from C++  
						
						 
						
						
						
						
					 
					
						2018-08-01 18:27:48 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						77c02c8055
	 
				 
					 
					
						
						
							
							Correct a typo  
						
						 
						
						
						
						
					 
					
						2018-08-01 18:27:20 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f83822343b
	 
				 
					 
					
						
						
							
							Update issue template  
						
						 
						
						
						
						
					 
					
						2018-08-01 17:24:13 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7afe2c7c41
	 
				 
					 
					
						
						
							
							AerScript on the read  
						
						 
						
						
						
						
					 
					
						2018-08-01 17:04:42 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b0cbf5c0f6
	 
				 
					 
					
						
						
							
							Build Aer  
						
						 
						
						
						
						
					 
					
						2018-08-01 16:43:26 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b3ffd9cd8a
	 
				 
					 
					
						
						
							
							The language is called AerScript or just Aer  
						
						 
						
						
						
						
					 
					
						2018-08-01 16:35:30 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						449c427450
	 
				 
					 
					
						
						
							
							Automatically build everything if necessary  
						
						 
						
						
						
						
					 
					
						2018-08-01 12:16:03 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5abfefbb04
	 
				 
					 
					
						
						
							
							Remove duplicated entries  
						
						 
						
						
						
						
					 
					
						2018-08-01 12:02:00 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2c37807370
	 
				 
					 
					
						
						
							
							Get rid of global keyword,  fixes   #29  
						
						 
						
						
						
						
					 
					
						2018-07-31 15:24:56 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						aa5a20f283
	 
				 
					 
					
						
						
							
							There is nothing like GOTO statement in P#  
						
						 
						
						
						
						
					 
					
						2018-07-30 17:35:40 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7b3e6c5b76
	 
				 
					 
					
						
						
							
							P# introduces virtual classes and virtual methods  
						
						 
						
						
						
						
					 
					
						2018-07-30 17:08:25 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b7792dfc3d
	 
				 
					 
					
						
						
							
							P# is not going to derive namespace syntax from PHP, but from C++.  
						
						 
						
						
						
						
					 
					
						2018-07-30 16:55:49 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						48b2e9d1c6
	 
				 
					 
					
						
						
							
							Update comments  
						
						 
						
						
						
						
					 
					
						2018-07-28 23:40:00 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e300575ab1
	 
				 
					 
					
						
						
							
							P# does not support PHP tags, thus there is also no need to support shortcut for echo.  
						
						 
						
						
						
						
					 
					
						2018-07-28 23:18:48 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						159cd76020
	 
				 
					 
					
						
						
							
							No need to duplicate exit()  
						
						 
						
						
						
						
					 
					
						2018-07-28 22:48:32 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3f1397ed93
	 
				 
					 
					
						
						
							
							Get rid of switch: endswitch construct  
						
						 
						
						
						
						
					 
					
						2018-07-28 22:45:20 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ef2ea60a60
	 
				 
					 
					
						
						
							
							Treat whole file as P# source code.  Fixes   #24 .  
						
						 
						
						
						
						
					 
					
						2018-07-28 18:28:19 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						488fee5caf
	 
				 
					 
					
						
						
							
							Another bunch of typos eliminated  
						
						 
						
						
						
						
					 
					
						2018-07-28 13:16:38 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						eb088cd0d7
	 
				 
					 
					
						
						
							
							Correcting another typos in code  
						
						 
						
						
						
						
					 
					
						2018-07-28 12:56:19 +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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						deabbd5554 
					 
					
						
						
							
							Merge branch 'include_fix' into 'master'  
						
						 
						
						
						
						
					 
					
						2018-07-28 10:17:18 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						765ec4d074
	 
				 
					 
					
						
						
							
							This is not needed anymore  
						
						 
						
						
						
						
					 
					
						2018-07-28 00:02:48 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						72f2cc2c1b
	 
				 
					 
					
						
						
							
							Remove useless fields, free some memory.  
						
						 
						
						
						
						
					 
					
						2018-07-27 23:41:51 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						bdf053a205
	 
				 
					 
					
						
						
							
							Implement a fix also for interface. This commit also adds initial and partial support for multiple inheritance.  
						
						 
						
						
						
						
					 
					
						2018-07-27 23:28:34 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a6a43b5f3b
	 
				 
					 
					
						
						
							
							This is useless now  
						
						 
						
						
						
						
					 
					
						2018-07-27 21:19:59 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						db93fd8b25
	 
				 
					 
					
						
						
							
							Make a use of our internal allocator instead of malloc()  
						
						 
						
						
						
						
					 
					
						2018-07-27 21:16:50 +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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						33ab488ace
	 
				 
					 
					
						
						
							
							Removing a debug printf calls and improve error handling.  
						
						 
						
						
						
						
					 
					
						2018-07-27 18:52:32 +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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						af2c23d3b2
	 
				 
					 
					
						
						
							
							Add some basic checks. At this point, I can say it detects correctly a class declared inside inclueded file.  
						
						 
						
						
						
						
					 
					
						2018-07-27 17:01:58 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e70a89fcdb
	 
				 
					 
					
						
						
							
							This is useless.  
						
						 
						
						
						
						
					 
					
						2018-07-27 08:28:57 +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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c24a9bc251
	 
				 
					 
					
						
						
							
							Our implementation of SyStrncpy()  
						
						 
						
						
						
						
					 
					
						2018-07-27 08:22:55 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0e6e6773bb
	 
				 
					 
					
						
						
							
							This field is useless now  
						
						 
						
						
						
						
					 
					
						2018-07-25 19:04:08 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						09451f4042
	 
				 
					 
					
						
						
							
							Two changes come here:  
						
						 
						
						... 
						
						
						
						* do not allow two or more classes / interfaces with the same name
 * fix class_exists() builtin function so that it does not return true if interface is found 
						
						
					 
					
						2018-07-25 19:00:49 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						63b0f450d3
	 
				 
					 
					
						
						
							
							Move VM initialization into separate step to enable errors reporting earlier.  
						
						 
						
						
						
						
					 
					
						2018-07-25 18:15:40 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7bf76c3fa0 
					 
					
						
						
							
							Make reported errors more PHP-like  
						
						 
						
						
						
						
					 
					
						2018-07-25 18:11:53 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						eaf5ca7b5f
	 
				 
					 
					
						
						
							
							Make reported errors more PHP-like  
						
						 
						
						
						
						
					 
					
						2018-07-25 16:54:25 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0c08bc61d4
	 
				 
					 
					
						
						
							
							Add some basic tests for the beginning  
						
						 
						
						
						
						
					 
					
						2018-07-25 13:41:31 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6628a1ea3d
	 
				 
					 
					
						
						
							
							This is probably what we would like to skip during compilation.  
						
						 
						
						
						
						
					 
					
						2018-07-25 13:34:17 +02:00