Commit Graph

  • 10d3bfe5e1 Correct comments. belliash 2018-09-10 20:17:42 +02:00
  • 7e754db07f Implement SyStrtok(); belliash 2018-09-10 20:16:46 +02:00
  • eb79ed500e Store float values in an union. Single variable cannot have many values of different types. This also saves some memory, because union allocates memory just for one of its members. belliash 2018-09-07 12:04:51 +02:00
  • af1d59dab4 Don't try to get an integer representation of float. belliash 2018-09-07 06:49:50 +02:00
  • ac8b8b0fdb Don't try to get an integer representation of float. belliash 2018-09-07 06:43:07 +02:00
  • 9ee0f1954c Do not omit the floating point. Every modern hardware, including embedded devices, should support floating point numbers. belliash 2018-09-07 06:38:32 +02:00
  • 0a9cfce672 Group and add missing keywords. belliash 2018-09-06 19:47:06 +02:00
  • 43a36f070c Correct comments. belliash 2018-09-06 18:00:34 +02:00
  • cb8ddaab5f This is obsolete. belliash 2018-09-05 21:54:52 +02:00
  • 3887aa69a6 Never disable hash functions. belliash 2018-09-05 21:46:25 +02:00
  • c3a4c8de77 Never disable builtin functions. belliash 2018-09-05 20:47:07 +02:00
  • 00e1c842d5 Never disable builtin functions. belliash 2018-09-05 20:43:39 +02:00
  • ea4daa9335 Take last instruction being executed, not necessarily OP_CALL. belliash 2018-09-05 19:45:38 +02:00
  • 6387026e15 Do not limit the output buffering callbacks. belliash 2018-09-05 18:46:42 +02:00
  • 11ba0ce738 No need to store output length in VM. belliash 2018-09-05 18:33:53 +02:00
  • 404f5a2688 No need to store unique ID in VM. belliash 2018-09-05 18:24:34 +02:00
  • ae79cb57de No need to store information about line number in ph7_class struct. belliash 2018-09-05 17:42:10 +02:00
  • 894dbe47d6 Allow compiler to specify line number, on which instruction has been generated. This also fixes line number on OP_CLASS_INIT and OP_INTERFACE_INIT. belliash 2018-09-05 17:31:06 +02:00
  • 543176a2f4 Switch VM state to PH7_VM_INCL when including new file. belliash 2018-09-05 13:28:20 +02:00
  • d58249cb3f Use debug trace only if VM is really executing some code. belliash 2018-09-05 13:16:57 +02:00
  • 765d2cf3eb Another VM state. belliash 2018-09-05 13:13:36 +02:00
  • 8ca6deca4e Allow to set memory limit from SAPI. belliash 2018-09-04 11:52:55 +02:00
  • c00c91599f Enable unused API functions. belliash 2018-09-04 09:33:28 +02:00
  • 19eaaab081 Remove unused code. belliash 2018-09-04 09:19:15 +02:00
  • 1643d2ee94 Remove unused code. belliash 2018-09-04 09:18:13 +02:00
  • 03e452ea7b Shutdown library properly on error. belliash 2018-09-04 09:13:28 +02:00
  • 1daf17bcd4 Correct typo. belliash 2018-09-04 09:07:58 +02:00
  • d793d3ed70 Rename PH7_VmGenericError() to PH7_VmThrowError() belliash 2018-09-04 08:54:48 +02:00
  • 758ace0d1a Shutdown library properly on error. belliash 2018-09-04 08:49:38 +02:00
  • dc0a55c8c0 Cleanup old error handler. belliash 2018-09-04 08:38:41 +02:00
  • ac73632cb1 Use new error handler. belliash 2018-09-04 08:26:58 +02:00
  • bd44dba33c Use new error handler in modules. belliash 2018-09-03 20:19:12 +02:00
  • d85a517eb0 Rework trigger_error() builtin function. belliash 2018-09-03 19:27:38 +02:00
  • 0a28e492a7 error_reporting() is useless for Aer. Whole configuration should be done in config file. belliash 2018-09-03 19:11:44 +02:00
  • fd4206a227 Remove error_log() builtin function and corresponding PH7_VM_CONFIG_ERR_LOG_HANDLER. It was not fully implemented and such feature should be implemented in separate module or on developers own. belliash 2018-09-03 19:03:05 +02:00
  • 109f4e981a Aer does not support custom error handlers. Errors are used only internally to emit notifications about compilation/execution problems. They should not be catched and handled by custom handlers, but properly configured (to be displayed or logged). Instead developers should use exceptions that can be catched with try-catch block. belliash 2018-09-03 16:43:08 +02:00
  • dd35b5b8b4 Uncaught exception message. belliash 2018-09-03 16:29:50 +02:00
  • d3d3dcc767 Partially switch to new error reporting. belliash 2018-09-03 16:16:32 +02:00
  • 5895141ae1 Add missing declarations. belliash 2018-09-03 10:59:20 +02:00
  • 0298299169 Extend SEQ field. belliash 2018-09-03 09:36:22 +02:00
  • 9c4eb59b49 Variable list of arguments for PH7_VmGenericError(); belliash 2018-09-03 09:30:23 +02:00
  • f176414bce Release VM and exit automatically, do not rely on VM. belliash 2018-09-03 08:40:18 +02:00
  • eea9eee6e5 Implement PH7_VmGenericError(); belliash 2018-09-03 08:19:14 +02:00
  • a2acf64272 VmExtractDebugTrace() provides information about a kind of call. Both VmExtractDebugTrace() and VmDebugTrace structure should provide information whether it was object call or a static method call. belliash 2018-09-02 20:15:17 +02:00
  • d135748bcd Always iterate through all frames. belliash 2018-09-02 18:53:23 +02:00
  • ea7955b6ee Remove useless VmExtractPeekDebugTrace(); belliash 2018-09-02 18:50:00 +02:00
  • f89af70ab2 Fix VmExtractDebugTrace(); If there is no information about class in the frame (when closure was called), pClassName should point always to NULL. belliash 2018-09-02 18:46:30 +02:00
  • 3e1d91e909 Add more comments. belliash 2018-09-02 18:45:01 +02:00
  • da198fcb44 Implement PH7_VmMemoryError(); belliash 2018-09-02 12:27:32 +02:00
  • 90ab131ce8 Do not append spaces. Instructions names are properly displayed without them. belliash 2018-09-01 20:28:16 +02:00
  • 8bfaa83b04 Correct typo. belliash 2018-09-01 20:19:10 +02:00
  • 4dae0bcc9e Always record last instruction. belliash 2018-09-01 19:56:36 +02:00
  • 383fe01943 Reserve 10KB for error reporting. belliash 2018-09-01 17:54:45 +02:00
  • 8fcb3c608a Remove duplicate of SySetUsed() macro. belliash 2018-08-31 23:45:46 +02:00
  • d9db6bbc26 There is no need for global working buffer in VM. belliash 2018-08-31 23:34:35 +02:00
  • 67ce98d924 Look for executed OP_CALL. Each function contains a list of all instructions inside, thus we should consider only OP_CALL that has already been executed. As the list is browsed from bottom to top, no more checks are necessary. The first match is what we are looking for. belliash 2018-08-31 08:30:59 +02:00
  • 838842fa02 Add execution marker to each instruction. belliash 2018-08-31 08:25:48 +02:00
  • 3e2a5b3be2 Correct field length. belliash 2018-08-30 19:23:06 +02:00
  • 90a02d8fdd Add operator ID to the debugging information. belliash 2018-08-30 16:52:09 +02:00
  • 461ee00034 Allow to use PH7_CTX_DEPRECATED. belliash 2018-08-30 13:47:01 +02:00
  • fbc725c935 We are tokenizing Aer. belliash 2018-08-30 12:33:38 +02:00
  • 8215c4e984 Correct comment. belliash 2018-08-30 12:15:48 +02:00
  • 041c65d63e Implement SySetGetUsed(); belliash 2018-08-30 12:00:02 +02:00
  • b6161b0e4b Fix VM ByteCode debugging. Only executed bytecode should be registered for debugging. In this way we do not register all emitted bytecode and save some memory. What is more, this change registers the bytecode in correct executing order including jumps. Previously all bytecode generated by compiler has been saved what made the bytecode to be saved in compile, not execute order. belliash 2018-08-30 09:46:40 +02:00
  • 98d3de2105 Record all instructions in debugging set. belliash 2018-08-29 08:04:19 +02:00
  • 8f92782fe2 Fix segmentation fault. belliash 2018-08-28 19:07:07 +02:00
  • d97c0a6634 Fix VmExtractPeekDebugTrace(); belliash 2018-08-28 11:17:32 +02:00
  • 603672b8e2 PH7 disallows function calls from global scope. belliash 2018-08-28 11:16:34 +02:00
  • 37c960e313 Fix uninitialized value leading to segmentation fault. belliash 2018-08-27 20:23:08 +02:00
  • 6a14e88973 Remove unused definition. belliash 2018-08-27 20:22:23 +02:00
  • 349bbed774 Allow to enable or disable debugging. belliash 2018-08-27 19:53:24 +02:00
  • c8e2dccbeb Assign Program::main() return value as program exit code. belliash 2018-08-27 19:32:17 +02:00
  • 7a740c0570 Correct typo. belliash 2018-08-27 18:23:12 +02:00
  • 6d27069590 Add new file for every chunk. Every chunk should has its own file associated, even if it is [MEMORY]. Otherwise, some false information can be provided by interpreter to developer. belliash 2018-08-27 18:04:45 +02:00
  • c9a1971ace Rewrite debug_backtrace() builtin function. It makes a use of new VmExtractDebugTrace() function. This probably fixes #45. belliash 2018-08-27 15:47:34 +02:00
  • ce621cc49c Implement VmExtractPeekDebugTrace(); belliash 2018-08-27 12:42:02 +02:00
  • d0b0a416d0 Allow to dump last frame only. belliash 2018-08-27 12:36:21 +02:00
  • 8f7b28d46c Formatting for VM dump. belliash 2018-08-27 12:16:41 +02:00
  • fb671ec2d7 Implement VmExtractDebugTrace(). belliash 2018-08-27 11:32:21 +02:00
  • 18222dce8c Implement VmDebugTrace structure. belliash 2018-08-27 11:22:02 +02:00
  • 1403b144d9 Sequence numbers should start from 1. belliash 2018-08-27 09:30:51 +02:00
  • 782a4df1cf Formatting, add information about file and line. belliash 2018-08-27 09:17:18 +02:00
  • b1f71167d9 Unify memory indicator. belliash 2018-08-27 08:22:05 +02:00
  • 3f7bac2d85 Associate a filename with VM instructions. belliash 2018-08-27 06:45:53 +02:00
  • f552c54992 Better formatting. belliash 2018-08-26 22:10:47 +02:00
  • e6ad76b031 Dump VM after execution. VM instructions dump should be processed after script execution to follow included files. belliash 2018-08-26 20:29:19 +02:00
  • a7bbd55d48 Temporarily enable debugging by default. belliash 2018-08-26 20:09:30 +02:00
  • 178f3820f6 Enable debugging. This commit introduces ne debug feature. The PH7 Engine limits the VM dump to the global scope. Since Aer Script is fully object-oriented language the dump option contains only information about last call of OP_DONE. This change, forces the VM to store all instructions set in a global container when debugging is enabled, thus providing information the dump of whole script parse. belliash 2018-08-26 19:59:17 +02:00
  • ab5ee94f99 API function rename. belliash 2018-08-26 19:18:33 +02:00
  • 98ee931a04 Correct instruction length. belliash 2018-08-26 18:33:57 +02:00
  • 877d19a815 API function rename. belliash 2018-08-26 18:30:21 +02:00
  • c8c6208cca Return script exit code. belliash 2018-08-26 08:37:35 +02:00
  • 94b213674a Change the script located in memory indicator. For easier reading with line numbers. belliash 2018-08-23 18:27:14 +02:00
  • 4197737ddc Move structure definitions to header. belliash 2018-08-23 17:08:10 +02:00
  • 82c18dc109 Do not pop out the processed files. List of procesed files is still needed, as we point to them. belliash 2018-08-23 07:06:33 +02:00
  • 20c1611902 Implement PH7_VmExtractActiveClass(). This function extracts an active class with specified depth, #45. belliash 2018-08-22 15:33:16 +02:00
  • 0ff32e6673 Remove duplicated constants. belliash 2018-08-22 11:24:34 +02:00
  • dbe373d537 Resolve __CLASS__ at compile time. Ticket: #45: __CLASS__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data. belliash 2018-08-22 09:59:10 +02:00
  • 3e18a5b8e8 Optimize the code, #45. belliash 2018-08-22 08:51:45 +02:00
  • a0f7949b24 Resolve __DIR__ at compile time. Ticket: #45: __DIR__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data. belliash 2018-08-22 06:23:43 +02:00