Commit Graph
161 Commits
Author SHA1 Message Date
belliash 5f02a34b10 Resolve inherited method overloads across C3 MRO using full input signatures and own import path storage for the lifetime of the VM
Build / AerScript (push) Successful in 39s
2026-10-24 12:27:01 +02:00
belliash bc5e5f6a8e Implement C3 class linearization and validate inheritance graphs
Build / AerScript (push) Successful in 2m13s
2026-10-24 01:16:34 +02:00
belliash cd924eb066 Revert context frame implementation
Build / AerScript (push) Successful in 32s
2025-08-30 18:27:59 +02:00
belliash d73eb9b5b2 Implement exponentiation (**) operator
Build / AerScript (push) Successful in 40s
2025-08-29 22:04:55 +02:00
belliash 5ff7d03ed1 Get rid of OP_UNUSED and implement additional context frame to resolve scope issue
Build / AerScript (push) Failing after 28s
2025-08-29 14:32:01 +02:00
belliash dc5725d1af Unset local for variable, fixes #62
Build / AerScript (push) Failing after 26s
2025-08-28 18:38:28 +02:00
belliash 9d762a2350 Move debug-related code into separate file.
The build was successful.
2019-12-15 13:32:45 +01:00
belliash ad5784f81f Reimplement import() builtin function as a global-scope statement. This fixes #58.
The build was successful.
2019-12-14 23:30:38 +01:00
belliash 9290db2504 Another changes in file inclusion mechanism (#58):
The build was successful.
* Remove builtin functions: 'include' & 'require'
* Implement 'include' and 'require' statements compiler
* Implement OP_INCLUDE operator
* Allow 'require' statement to be used in global scope as well as in method body and 'include' only in method body
2019-12-10 16:09:26 +01:00
belliash a24e44fbf3 Completely remove this broken threading implementation. Fixes #55.
The build was successful.
2019-10-28 21:35:16 +01:00
belliash f3972a9ca2 Rename LFB/LFE operators.
The build was successful.
2019-10-25 23:09:30 +02:00
belliash 426ec932ec Implement MemObjIsHashmap().
The build was successful.
2019-09-10 10:55:54 +02:00
belliash 3b9d91f186 Revert 3dcc908788.
The build was successful.
2019-08-29 14:23:33 +02:00
belliash 616b2eeae3 Cleanup the headers a bit.
The build was successful.
2019-06-29 11:50:01 +02:00
belliash 48d5088265 Enable the magic number protection.
The build was successful.
2019-06-27 22:57:08 +02:00
belliash 3dcc908788 Enable threading.
The build was successful.
2019-06-27 20:52:37 +02:00
belliash dcf37af75e Implement a NULL-coalescing '??' operator.
The build was successful.
2019-06-21 00:34:41 +02:00
belliash 6d964d6113 Add missing declaration for PH7_MemObjIsNull() function.
The build was successful.
2019-06-21 00:30:35 +02:00
belliash ca51e2a5da Add comments.
The build was successful.
2019-06-19 10:14:01 +02:00
belliash bd24aa0605 Correct more compiler warnings.
The build was successful.
2019-06-19 09:31:40 +02:00
belliash 0be38392bd Correct variable types, to make compiler silent.
The build was successful.
2019-06-17 14:28:03 +02:00
belliash bffd44a7b4 Get rid of some annoying compiler warnings.
The build was successful.
2019-06-17 09:51:37 +02:00
belliash b3eb2d0139 Include missing header.
The build was successful.
2019-06-16 08:41:42 +02:00
belliash 050a637e88 Add missing declarations.
The build was successful.
2019-06-16 08:31:43 +02:00
belliash 1a91fedb1f Proper SXUNUSED() macro implementation.
The build was successful.
2019-06-16 00:10:27 +02:00
belliash 0bef248298 Implement PH7_VmDestroyMemObj() to forcibly destroy a memory object.
The build was successful.
2019-06-14 17:11:34 +02:00
belliash 5c824ec67d Do not set any recursion depth limit.
The build was successful.
2019-06-10 12:11:55 +02:00
belliash cbe4f29909 Define 'auto' keyword.
The build was successful.
2019-06-08 12:19:00 +02:00
belliash d0995a4239 Rename 'instanceof' to 'is'.
The build was successful.
2019-06-06 11:53:17 +02:00
belliash 5948c3a5b6 Remove unused function argument.
The build was successful.
2019-06-05 17:30:17 +02:00
belliash 9fe4aa653f We will store 'finally' block bytecode here.
The build was successful.
2019-06-04 06:31:07 +02:00
belliash d57d6caf2d Add 'finally' frame definition.
The build was successful.
2019-06-03 19:21:03 +02:00
belliash d0840d7eea Cleanup after switching from 'parent' constant to '$parent' variable.
The build was successful.
2019-06-03 12:31:28 +02:00
belliash 625a386b69 Get rid of 'self' statement.
The build was successful.
2019-06-03 12:29:21 +02:00
belliash b1b78433dd Clean up $base statement.
The build was successful.
2019-05-30 18:16:29 +02:00
belliash e654e42b07 Store class directly in function container.
The build was successful.
2019-05-22 08:33:56 +02:00
belliash ddd46a4e80 Quick small cleanup.
The build was successful.
2019-05-21 19:18:52 +02:00
belliash 3cca5faa76 Store variable type in dedicated field.
The build was successful.
2019-05-21 14:49:36 +02:00
belliash 0f4a666b89 Variable type should be separated from control flags.
The build was successful.
2019-05-21 10:58:34 +02:00
belliash 1acbd21caf Store a pointer to class container in each method.
The build was successful.
2019-05-21 08:40:10 +02:00
belliash e8c675bd8e Store a pointer to class container to reduce memory usage.
The build was successful.
2019-05-16 15:41:37 +02:00
belliash 7203492763 Store a class name in each attribute.
The build was successful.
2019-05-16 13:25:06 +02:00
belliash 8aed5af238 Correct indentation.
The build was successful.
2019-05-15 20:15:26 +02:00
belliash f2116a6461 Always use HTTPS when possible.
The build was successful.
2019-05-15 20:02:39 +02:00
belliash 07bd3ceec3 Reimplement 'parent' construct as variable $parent.
The build was successful.
This commit also adds new controls to variables, which prevents from re-assigning a value when set. Thanks to that, both $this and $parent cannot be overwritten by using OP_STORE instruction. Other instructions still need some
work.
2019-05-08 08:26:48 +02:00
belliash 0c8ca53f70 Continuous numeration.
The build was successful.
2019-05-07 09:24:43 +02:00
belliash c4b63a3018 Rename OP_LOAD instruction to OP_LOADV.
The build was successful.
2019-05-05 09:33:06 +02:00
belliash 23900f2aed Remove unused compiler function - PH7_CompileLangConstruct().
The build was successful.
In AerScript, there are no such language constructs, that have syntax similiar to functions. If so, it is just a builtin function.
2019-05-04 18:53:11 +02:00
belliash b36510943d Implement 'define' statement for defining constants globally.
The build was successful.
2019-05-04 17:08:09 +02:00
belliash ab8bf48485 Make constant declarations local.
The build was successful.
There are several changes in this commit:
 * first of all constants declared by 'const' statement should be local (declared in current scope / frame),
 * constants are declared by using OP_DECLARE instruction,
 * OP_LOADC browses both global and local constants container,
 * PH7_VmRegisterConstant() allows both global and local declarations.
Since this commit, there are 3 kinds of constants:
 1) global
 2) local (in loop, closure, method)
 3) class members.
Actually there is no way to declare a global constant except the built-in constants.
2019-05-04 13:45:32 +02:00