Commit Graph

  • 3c3c15281a Fix test master belliash 2026-10-29 23:23:58 +01:00
  • 4b8627b9ce Fix test belliash 2026-10-29 23:21:24 +01:00
  • cbe233a2fa Reject local shadowing across auxiliary VM frames belliash 2026-10-29 23:06:08 +01:00
  • 3c194e3fa6 Define include completion as void and reject file-open failures belliash 2026-10-29 22:44:18 +01:00
  • 54fd0cf7a6 Mask integer shift counts to six bits belliash 2026-10-29 19:36:40 +01:00
  • 2252d479a3 Enforce the byte range for numeric string escapes belliash 2026-10-29 19:14:19 +01:00
  • b4b0d94a65 Give eval an independent return boundary and result belliash 2026-10-29 18:53:40 +01:00
  • cf5058f478 Separate static and instance entry-point initialization belliash 2026-10-29 17:42:38 +01:00
  • 867bab0302 Reject non-public interface methods at compile time belliash 2026-10-29 16:32:19 +01:00
  • 4f6dd45058 Implement nominal class and interface types across declarations and calls belliash 2026-10-29 15:48:44 +01:00
  • 5f75319be9 Remove variable-variable parsing and dynamic local-name dispatch belliash 2026-10-28 19:55:25 +01:00
  • 4980848a8d Remove redundant flags belliash 2026-10-28 19:31:12 +01:00
  • 43b74325b2 Remove method reference returns and obsolete VM support belliash 2026-10-28 19:02:27 +01:00
  • a0dd23e63e Fix instance-call diagnostics and declaring scope for static methods belliash 2026-10-28 17:29:24 +01:00
  • d85154ac58 Preserve argv boundaries and empty arguments passed to main belliash 2026-10-27 19:28:55 +01:00
  • fa32262998 Validate Program entry points and resolve accessible zero-argument constructors belliash 2026-10-27 19:06:54 +01:00
  • 9d2578674c Fix signed int64 minimum formatting without overflow belliash 2026-10-27 18:26:16 +01:00
  • 62f81aea89 Implement deterministic int64 wrapping arithmetic belliash 2026-10-27 16:20:48 +01:00
  • 0e26fc4125 Fix null instruction dereference when compiling comma expressions belliash 2026-10-27 08:05:51 +01:00
  • b1605b0e82 Preserve value references across arena relocation during array copies belliash 2026-10-27 07:39:19 +01:00
  • f74af13f98 Implement numeric string escapes and fix hexadecimal escape parsing and respect constant name length in undefined constant diagnostics belliash 2026-10-26 23:09:29 +01:00
  • ab323701d0 Support explicit integer base prefixes and reject malformed literals belliash 2026-10-26 22:25:20 +01:00
  • 3c83579fb6 Preserve pending completions through finally and restore operand stack on unwind belliash 2026-10-26 20:43:57 +01:00
  • d912ddf4df Distinguish explicit NULL arguments from omitted defaults belliash 2026-10-26 18:57:03 +01:00
  • 329305c071 Warn when non-void methods and closures finish without returning belliash 2026-10-26 18:39:37 +01:00
  • 7ae2412a88 Implement __invoke dispatch and fix VM cleanup and allocator alignment belliash 2026-10-26 15:10:47 +01:00
  • 4fe0f4dcd9 Implement explicit value and reference captures for closures belliash 2026-10-26 00:05:05 +01:00
  • 85f59a2998 Evaluate local constants once per declaration and invocation belliash 2026-10-25 19:57:49 +01:00
  • 8a2d7d8bd3 Fix block scope for local declarations belliash 2026-10-25 19:22:50 +01:00
  • 3e3b795626 Keep source file descriptors stable for the lifetime of the VM and execute included fragments in the enclosing method and closure context belliash 2026-10-25 18:11:22 +01:00
  • c42b0ae010 Restrict require to global scope and track required files independently belliash 2026-10-24 23:53:53 +02:00
  • b513add46b Handle module import failures and duplicates safely and add module_loaded belliash 2026-10-24 22:51:09 +02:00
  • d7fc8c1137 Determine callback emptiness from the stored target for null coalescing belliash 2026-10-24 21:07:16 +02:00
  • 1026c8d525 Validate interface contracts against effective C3 implementations and support transitive interface checks belliash 2026-10-24 20:19:11 +02:00
  • c6e7151e72 Implement cooperative parent calls across runtime C3 MRO and enforce lifecycle method rules belliash 2026-10-24 19:20:52 +02:00
  • d511414453 Preserve class attribute identity and validate inheritance conflicts across C3 MRO belliash 2026-10-24 18:26:58 +02:00
  • cf68edd920 Fix test belliash 2026-10-24 13:58:30 +02:00
  • b306409a37 Validate method visibility, final overrides and effective virtual contracts across C3 MRO belliash 2026-10-24 13:50:32 +02:00
  • 5f02a34b10 Resolve inherited method overloads across C3 MRO using full input signatures and own import path storage for the lifetime of the VM belliash 2026-10-24 12:27:01 +02:00
  • bc5e5f6a8e Implement C3 class linearization and validate inheritance graphs belliash 2026-10-24 01:16:34 +02:00
  • 323793153c Implement short-circuit evaluation for the null coalescing operator belliash 2026-10-24 00:30:45 +02:00
  • 18e6da6c08 Preserve runtime object identity and declaring-class scope in inherited method calls belliash 2026-10-24 00:18:24 +02:00
  • 04a74de51a Preserve declared return types when cloning closures with captures belliash 2026-10-23 23:59:58 +02:00
  • 3c7f1b8f5b Fix overload resolution using argument compatibility and recursive array matching belliash 2026-10-23 23:36:25 +02:00
  • 206061c837 Correct comment belliash 2025-08-30 19:37:31 +02:00
  • cd924eb066 Revert context frame implementation belliash 2025-08-30 18:27:59 +02:00
  • 566997d080 Remove lonely hash belliash 2025-08-29 22:47:29 +02:00
  • e592eded1b Use strict type hinting with all OP_*_STORE opcodes belliash 2025-08-29 22:38:37 +02:00
  • b4486bf603 Fix test belliash 2025-08-29 22:37:17 +02:00
  • d73eb9b5b2 Implement exponentiation (**) operator belliash 2025-08-29 22:04:55 +02:00
  • 8ac9b148d1 Fix OP_*_STORE precedence belliash 2025-08-29 20:55:58 +02:00
  • c4023d62e1 Fix base32 test belliash 2025-08-29 14:34:04 +02:00
  • 5ff7d03ed1 Get rid of OP_UNUSED and implement additional context frame to resolve scope issue belliash 2025-08-29 14:32:01 +02:00
  • a167e4bc87 Permanently fix NULL comparision belliash 2025-08-29 14:27:58 +02:00
  • dc5725d1af Unset local for variable, fixes #62 belliash 2025-08-28 18:38:28 +02:00
  • eead19918d Fix NULL comparision belliash 2025-08-28 16:42:08 +02:00
  • fdfeb219d9 Always print FALSE value when dumping bool variable belliash 2025-08-28 15:33:48 +02:00
  • be203e2e60 Implement system() belliash 2025-08-28 15:14:59 +02:00
  • d4b6fd782e Dummy change belliash 2025-08-28 14:29:34 +02:00
  • 145a18aa7e Switch to Gitea pipeline belliash 2025-08-28 14:22:38 +02:00
  • 5e6ed0f668 New pipeline for new CI/CD. belliash 2020-06-19 23:12:25 +02:00
  • c940224d21 Tower of Hanoi test. belliash 2019-12-22 22:58:36 +01:00
  • 3eb82e632b Add new test - sudoku solver. belliash 2019-12-22 22:44:15 +01:00
  • 709b5971c6 Return can break loop execution as well. If it does, it needs to ensure VM_FRAME_ACTIVE is on top. belliash 2019-12-22 22:40:11 +01:00
  • c730082fa0 Do not issue OP_LF_STOP on 'break' inside 'switch' statement. belliash 2019-12-21 22:48:44 +01:00
  • 0bf2f6d94f Correct error message. belliash 2019-12-21 16:22:16 +01:00
  • b527840f10 Correct arguments length. Get rid of some additional non-printable characters from the end of string. belliash 2019-12-21 15:33:55 +01:00
  • ab36234ff3 Add beaufort cipher test. belliash 2019-12-17 14:41:27 +01:00
  • 9d762a2350 Move debug-related code into separate file. belliash 2019-12-15 13:32:45 +01:00
  • 0b5e94bacc Add missing operator description. belliash 2019-12-15 00:00:54 +01:00
  • e623111f41 Correct comment. belliash 2019-12-14 23:37:55 +01:00
  • fd0685f16e Code formatting. belliash 2019-12-14 23:31:47 +01:00
  • ad5784f81f Reimplement import() builtin function as a global-scope statement. This fixes #58. belliash 2019-12-14 23:30:38 +01:00
  • 0e757111a3 Add 'include' & 'require' statements test. belliash 2019-12-10 19:21:27 +01:00
  • 469e5ba059 Do not need debug symbols in CI/CD. belliash 2019-12-10 16:23:39 +01:00
  • 9290db2504 Another changes in file inclusion mechanism (#58): * 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 belliash 2019-12-10 16:09:26 +01:00
  • 09e7400349 Add forward declaration for VmExecIncludedFile(). belliash 2019-12-09 19:36:40 +01:00
  • cb91a4bbf4 Rework including mechanism (#58) related changes: * VmExecIncludedFile() does not need a call context * Builtin include() function does not need to return false, it throws an error belliash 2019-12-09 19:30:28 +01:00
  • f3156bcbd5 Throw E_ERROR when impossible to include specified file. belliash 2019-11-27 20:15:43 +01:00
  • cb71daec12 Code inclusion rework that include several changes (#58): * include() builtin function allows now to include a chunk of code, eg. a body of some loop * include() allows to load and execute file several times * require() still allows to include file just once and included file must have a valid OOP syntax * both functions will throw E_ERROR when impossible to include specified file belliash 2019-11-27 20:07:50 +01:00
  • 63fd76c9c8 Rework PH7_GenStateGetGlobalScopeHandler() function. belliash 2019-11-19 08:10:59 +01:00
  • e1e6a19f30 Update code formatting. belliash 2019-11-18 18:57:10 +01:00
  • d3479a6e80 Correct formatting. belliash 2019-11-18 08:11:13 +01:00
  • 7076a6f3ed Merge branch 'master' of AerScript/Aer into release/v0.1 v0.1.1 belliash 2019-11-02 09:24:55 +01:00
  • a24e44fbf3 Completely remove this broken threading implementation. Fixes #55. belliash 2019-10-28 21:35:16 +01:00
  • f3972a9ca2 Rename LFB/LFE operators. belliash 2019-10-25 23:09:30 +02:00
  • f323e3cb57 Make a use from PH7_MemObjIsHashmap(). belliash 2019-09-10 14:12:07 +02:00
  • 426ec932ec Implement MemObjIsHashmap(). belliash 2019-09-10 10:55:54 +02:00
  • 3aa31a9dfa Make a use from MemObjIsNumeric(). belliash 2019-09-10 10:10:52 +02:00
  • f0aba06f4f Allow increment/decrement operations only on numeric operands. belliash 2019-09-10 08:03:35 +02:00
  • 18b96064e4 Do not allow to call non-existen array/string index. PHP returns a NULL for each call to non-existen array element, while AerScript design disallows usage of indexes outside the bounds. This fixes one of most serious PHP problems. belliash 2019-09-09 16:55:48 +02:00
  • 91887c0185 Do not try to access non-existen string index. belliash 2019-09-07 20:07:46 +02:00
  • 3b9d91f186 Revert 3dcc908788. belliash 2019-08-29 14:23:33 +02:00
  • 0fb44bb1ae GitHub Funding. belliash 2019-08-23 13:48:56 +02:00
  • d2335c86b2 Base32::decode() cannot return boolean values. v0.1.0 Piotr Likoski 2019-07-12 17:05:27 +02:00
  • 843c2d67d9 I am pretty sure we want to use the number of elements in array in this place, not the actual size of array. The size of a structure is greater than the sum of its parts because of what is called packing. A particular processor has a preferred data size that it works with. Most modern processors' preferred size if 32-bits (4 bytes). Piotr Likoski 2019-07-12 14:36:56 +02:00
  • 33b0f20573 Check the snprintf() return value. Piotr Likoski 2019-07-12 14:10:09 +02:00
  • d96dcdf1e0 Little build warning removal David Carlier 2019-07-11 07:17:34 +00:00
  • a09c6b3fad Fix for index outside the bounds. belliash 2019-07-01 21:08:07 +02:00
  • 4d150c2fe3 No way this is working! belliash 2019-07-01 21:03:45 +02:00