Commit Graph

  • ae79cb57de
    No need to store information about line number in ph7_class struct. belliash 2018-09-05 17:42:10 +0200
  • 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 +0200
  • 543176a2f4
    Switch VM state to PH7_VM_INCL when including new file. belliash 2018-09-05 13:28:20 +0200
  • d58249cb3f
    Use debug trace only if VM is really executing some code. belliash 2018-09-05 13:16:57 +0200
  • 765d2cf3eb
    Another VM state. belliash 2018-09-05 13:13:36 +0200
  • 8ca6deca4e
    Allow to set memory limit from SAPI. belliash 2018-09-04 11:52:55 +0200
  • c00c91599f
    Enable unused API functions. belliash 2018-09-04 09:33:28 +0200
  • 19eaaab081
    Remove unused code. belliash 2018-09-04 09:19:15 +0200
  • 1643d2ee94
    Remove unused code. belliash 2018-09-04 09:18:13 +0200
  • 03e452ea7b
    Shutdown library properly on error. belliash 2018-09-04 09:13:28 +0200
  • 1daf17bcd4
    Correct typo. belliash 2018-09-04 09:07:58 +0200
  • d793d3ed70
    Rename PH7_VmGenericError() to PH7_VmThrowError() belliash 2018-09-04 08:54:48 +0200
  • 758ace0d1a
    Shutdown library properly on error. belliash 2018-09-04 08:49:38 +0200
  • dc0a55c8c0
    Cleanup old error handler. belliash 2018-09-04 08:38:41 +0200
  • ac73632cb1
    Use new error handler. belliash 2018-09-04 08:26:58 +0200
  • bd44dba33c
    Use new error handler in modules. belliash 2018-09-03 20:19:12 +0200
  • d85a517eb0
    Rework trigger_error() builtin function. belliash 2018-09-03 19:27:38 +0200
  • 0a28e492a7
    error_reporting() is useless for Aer. Whole configuration should be done in config file. belliash 2018-09-03 19:11:44 +0200
  • 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 +0200
  • 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 +0200
  • dd35b5b8b4
    Uncaught exception message. belliash 2018-09-03 16:29:50 +0200
  • d3d3dcc767
    Partially switch to new error reporting. belliash 2018-09-03 16:16:32 +0200
  • 5895141ae1
    Add missing declarations. belliash 2018-09-03 10:59:20 +0200
  • 0298299169
    Extend SEQ field. belliash 2018-09-03 09:36:22 +0200
  • 9c4eb59b49
    Variable list of arguments for PH7_VmGenericError(); belliash 2018-09-03 09:30:23 +0200
  • f176414bce
    Release VM and exit automatically, do not rely on VM. belliash 2018-09-03 08:40:18 +0200
  • eea9eee6e5
    Implement PH7_VmGenericError(); belliash 2018-09-03 08:19:14 +0200
  • 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 +0200
  • d135748bcd
    Always iterate through all frames. belliash 2018-09-02 18:53:23 +0200
  • ea7955b6ee
    Remove useless VmExtractPeekDebugTrace(); belliash 2018-09-02 18:50:00 +0200
  • 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 +0200
  • 3e1d91e909
    Add more comments. belliash 2018-09-02 18:45:01 +0200
  • da198fcb44
    Implement PH7_VmMemoryError(); belliash 2018-09-02 12:27:32 +0200
  • 90ab131ce8
    Do not append spaces. Instructions names are properly displayed without them. belliash 2018-09-01 20:28:16 +0200
  • 8bfaa83b04
    Correct typo. belliash 2018-09-01 20:19:10 +0200
  • 4dae0bcc9e
    Always record last instruction. belliash 2018-09-01 19:56:36 +0200
  • 383fe01943
    Reserve 10KB for error reporting. belliash 2018-09-01 17:54:45 +0200
  • 8fcb3c608a
    Remove duplicate of SySetUsed() macro. belliash 2018-08-31 23:45:46 +0200
  • d9db6bbc26
    There is no need for global working buffer in VM. belliash 2018-08-31 23:34:35 +0200
  • 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 +0200
  • 838842fa02
    Add execution marker to each instruction. belliash 2018-08-31 08:25:48 +0200
  • 3e2a5b3be2
    Correct field length. belliash 2018-08-30 19:23:06 +0200
  • 90a02d8fdd
    Add operator ID to the debugging information. belliash 2018-08-30 16:52:09 +0200
  • 461ee00034
    Allow to use PH7_CTX_DEPRECATED. belliash 2018-08-30 13:47:01 +0200
  • fbc725c935
    We are tokenizing Aer. belliash 2018-08-30 12:33:38 +0200
  • 8215c4e984
    Correct comment. belliash 2018-08-30 12:15:48 +0200
  • 041c65d63e
    Implement SySetGetUsed(); belliash 2018-08-30 12:00:02 +0200
  • 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 +0200
  • 98d3de2105
    Record all instructions in debugging set. belliash 2018-08-29 08:04:19 +0200
  • 8f92782fe2
    Fix segmentation fault. belliash 2018-08-28 19:07:07 +0200
  • d97c0a6634
    Fix VmExtractPeekDebugTrace(); belliash 2018-08-28 11:17:32 +0200
  • 603672b8e2
    PH7 disallows function calls from global scope. belliash 2018-08-28 11:16:34 +0200
  • 37c960e313
    Fix uninitialized value leading to segmentation fault. belliash 2018-08-27 20:23:08 +0200
  • 6a14e88973
    Remove unused definition. belliash 2018-08-27 20:22:23 +0200
  • 349bbed774
    Allow to enable or disable debugging. belliash 2018-08-27 19:53:24 +0200
  • c8e2dccbeb
    Assign Program::main() return value as program exit code. belliash 2018-08-27 19:32:17 +0200
  • 7a740c0570
    Correct typo. belliash 2018-08-27 18:23:12 +0200
  • 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 +0200
  • 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 +0200
  • ce621cc49c
    Implement VmExtractPeekDebugTrace(); belliash 2018-08-27 12:42:02 +0200
  • d0b0a416d0
    Allow to dump last frame only. belliash 2018-08-27 12:36:21 +0200
  • 8f7b28d46c
    Formatting for VM dump. belliash 2018-08-27 12:16:41 +0200
  • fb671ec2d7
    Implement VmExtractDebugTrace(). belliash 2018-08-27 11:32:21 +0200
  • 18222dce8c
    Implement VmDebugTrace structure. belliash 2018-08-27 11:22:02 +0200
  • 1403b144d9
    Sequence numbers should start from 1. belliash 2018-08-27 09:30:51 +0200
  • 782a4df1cf
    Formatting, add information about file and line. belliash 2018-08-27 09:17:18 +0200
  • b1f71167d9
    Unify memory indicator. belliash 2018-08-27 08:22:05 +0200
  • 3f7bac2d85
    Associate a filename with VM instructions. belliash 2018-08-27 06:45:53 +0200
  • f552c54992
    Better formatting. belliash 2018-08-26 22:10:47 +0200
  • 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 +0200
  • a7bbd55d48
    Temporarily enable debugging by default. belliash 2018-08-26 20:09:30 +0200
  • 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 +0200
  • ab5ee94f99
    API function rename. belliash 2018-08-26 19:18:33 +0200
  • 98ee931a04
    Correct instruction length. belliash 2018-08-26 18:33:57 +0200
  • 877d19a815
    API function rename. belliash 2018-08-26 18:30:21 +0200
  • c8c6208cca
    Return script exit code. belliash 2018-08-26 08:37:35 +0200
  • 94b213674a
    Change the script located in memory indicator. For easier reading with line numbers. belliash 2018-08-23 18:27:14 +0200
  • 4197737ddc
    Move structure definitions to header. belliash 2018-08-23 17:08:10 +0200
  • 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 +0200
  • 20c1611902
    Implement PH7_VmExtractActiveClass(). This function extracts an active class with specified depth, #45. belliash 2018-08-22 15:33:16 +0200
  • 0ff32e6673
    Remove duplicated constants. belliash 2018-08-22 11:24:34 +0200
  • 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 +0200
  • 3e18a5b8e8
    Optimize the code, #45. belliash 2018-08-22 08:51:45 +0200
  • 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 +0200
  • 02242bb93d
    Resolve __FILE__ at compile time. Ticket: #45: __FILE__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data. belliash 2018-08-21 20:18:39 +0200
  • 19a504fe11
    Enter the class block during compilation, #45. belliash 2018-08-21 19:45:50 +0200
  • 33523e4e8a
    Block definitions for class and namespace. belliash 2018-08-21 19:35:00 +0200
  • 2d99881240
    Get rid of manual optimisation technique. This optimisation technique results in non insignificant speed boost on some old x86 architectures. Novadays, we should rely on compiler optimisation. belliash 2018-08-21 06:27:07 +0200
  • 81325b5059
    Correct typo. belliash 2018-08-18 21:05:46 +0200
  • 2160747479
    Make get_included_files() returning full path. belliash 2018-08-18 21:02:23 +0200
  • cbb4a0aa5c
    get_included_files() should return a list of included, files. belliash 2018-08-18 20:42:54 +0200
  • 00dc23ee4a Get rid of manual optimisation technique resulting in non insignificant speed boost on some old x86 architectures, #38; belliash 2018-08-18 19:43:00 +0200
  • 4b3279ef01
    Correct function description. belliash 2018-08-18 19:32:33 +0200
  • 4dbd3ea412
    New memory subsystem. This is a new memory subsystem implementing heap calculations as well as new builtin functions: * get_memory_usage() * get_memory_peak_usage() * get_memory_limit() It also allows to set an upper memory limit, ensuring that processed script will not be able to allocate more memory from OS. New subsystem is based on work done in 'memory_limit' branch. Big thanks to devnexen! This finally fixes #25. belliash 2018-08-18 19:24:38 +0200
  • 08c47b7528
    Correct dictionary issues. belliash 2018-08-17 09:25:29 +0200
  • ab1266ef5d
    Rename VFS belliash 2018-08-16 22:05:30 +0200
  • c83d6e13fc
    Removing xExec. First of all, VFS is not a right place for this, finally it was not implemented anyway. belliash 2018-08-16 21:37:34 +0200
  • 03a5b7e397 Merge branch 'compiler_rework' into master Rafal Kupiec 2018-08-16 21:28:49 +0200
  • a8a88b4746
    Compile closures. belliash 2018-08-16 18:40:23 +0200
  • f28c671e69
    Compile closures. belliash 2018-08-16 18:31:12 +0200