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.belliash2018-09-07 12:04:51 +02:00
af1d59dab4
Don't try to get an integer representation of float.belliash2018-09-07 06:49:50 +02:00
ac8b8b0fdb
Don't try to get an integer representation of float.belliash2018-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.belliash2018-09-07 06:38:32 +02:00
0a9cfce672
Group and add missing keywords.belliash2018-09-06 19:47:06 +02:00
c3a4c8de77
Never disable builtin functions.belliash2018-09-05 20:47:07 +02:00
00e1c842d5
Never disable builtin functions.belliash2018-09-05 20:43:39 +02:00
ea4daa9335
Take last instruction being executed, not necessarily OP_CALL.belliash2018-09-05 19:45:38 +02:00
6387026e15
Do not limit the output buffering callbacks.belliash2018-09-05 18:46:42 +02:00
11ba0ce738
No need to store output length in VM.belliash2018-09-05 18:33:53 +02:00
404f5a2688
No need to store unique ID in VM.belliash2018-09-05 18:24:34 +02:00
ae79cb57de
No need to store information about line number in ph7_class struct.belliash2018-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.belliash2018-09-05 17:31:06 +02:00
543176a2f4
Switch VM state to PH7_VM_INCL when including new file.belliash2018-09-05 13:28:20 +02:00
d58249cb3f
Use debug trace only if VM is really executing some code.belliash2018-09-05 13:16:57 +02:00
0a28e492a7
error_reporting() is useless for Aer. Whole configuration should be done in config file.belliash2018-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.belliash2018-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.belliash2018-09-03 16:43:08 +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.belliash2018-09-02 20:15:17 +02:00
d135748bcd
Always iterate through all frames.belliash2018-09-02 18:53:23 +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.belliash2018-09-02 18:46:30 +02:00
4dae0bcc9e
Always record last instruction.belliash2018-09-01 19:56:36 +02:00
383fe01943
Reserve 10KB for error reporting.belliash2018-09-01 17:54:45 +02:00
8fcb3c608a
Remove duplicate of SySetUsed() macro.belliash2018-08-31 23:45:46 +02:00
d9db6bbc26
There is no need for global working buffer in VM.belliash2018-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.belliash2018-08-31 08:30:59 +02:00
838842fa02
Add execution marker to each instruction.belliash2018-08-31 08:25:48 +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.belliash2018-08-30 09:46:40 +02:00
98d3de2105
Record all instructions in debugging set.belliash2018-08-29 08:04:19 +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.belliash2018-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.belliash2018-08-27 15:47:34 +02:00
e6ad76b031
Dump VM after execution. VM instructions dump should be processed after script execution to follow included files.belliash2018-08-26 20:29:19 +02:00
a7bbd55d48
Temporarily enable debugging by default.belliash2018-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.belliash2018-08-26 19:59:17 +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.belliash2018-08-22 09:59:10 +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.belliash2018-08-22 06:23:43 +02:00