Commit Graph

563 Commits

Author SHA1 Message Date
c753643daf changed the implementation of return-from-home to traverse the call chain and detect dead context more accurately 2022-03-04 18:08:26 +00:00
fb46b058d7 making return-from-home more rewind friendly 2022-02-28 16:08:44 +00:00
f4661d018a fixing bugs related to stack, class stack, exceptio stack handling 2022-02-27 19:35:47 +00:00
3f03140dcc changed an error message 2022-02-24 17:25:15 +00:00
c446330f4a compiler enhancement in checking instance variable access in class methods 2022-02-24 17:16:02 +00:00
50c04bb770 trying to detect prohibited access to an instance vairables in a class method.
inventing the class instantiation method concept
2022-02-24 16:47:26 +00:00
6d409c809f proper return variables handling in message sends 2022-02-21 16:07:55 +00:00
5c7febf9a8 integrating test scripts 2022-02-21 08:15:00 +00:00
f0b6ccdf42 enhanced the compiler to emit the right instruction for super 2022-02-19 17:26:26 +00:00
e482ce620f fixed wrong instructions generated for set-r and return variables.
class variables access fixed to use hcl->active_context->home->owner instead of hcl->active_context->owner
2022-02-19 16:57:06 +00:00
026ece9aea added the super keyword 2022-02-18 16:32:19 +00:00
420d38c8be simplified the class variable access by remembering the method owner class in context objects 2022-02-17 12:40:22 +00:00
fcfbec6647 meaningless interim commit 2022-02-14 01:21:01 +00:00
4b4e6a6385 added a class-side dictionary to the class object 2022-02-13 10:15:14 +00:00
eefc544644 wrote some code to process class method definition 2022-02-13 02:39:37 +00:00
cdc499763e adding class_cmstore and class_imstore. deleting class_mstore 2022-02-12 15:05:31 +00:00
36aba57e4b some more code clean-up 2022-02-08 14:00:45 +00:00
a61197d3f7 some code clean-up 2022-02-08 13:57:48 +00:00
78543920f5 fixed some type warnings 2022-02-08 12:01:57 +00:00
2c2cfc99bb changed the object instantiation function to add up the instance variables counts of the superclass chain 2022-02-07 15:13:38 +00:00
ef24bf68df implementing instance variable access with regards to inheritance 2022-02-06 16:06:48 +00:00
eac89bff5c removed an annoying comma in the syncode enumerator definition 2022-02-05 17:37:06 +00:00
495cea5704 added a new identifier - self 2022-02-05 17:35:10 +00:00
d1c12bc543 attempting to touch up the context object 2022-02-03 00:57:36 +00:00
5ded15d06a more code for message sending 2022-01-31 04:38:05 +00:00
72ed203f80 renamed class_set to class_mstore 2022-01-31 01:36:59 +00:00
84e53e3459 adding the class_set instruction 2022-01-29 17:43:11 +00:00
a89b83a6fd writing message sending implementation code 2022-01-29 09:58:52 +00:00
d72baec0a9 more code added for message sending implementation 2022-01-25 07:54:11 +00:00
e94936b893 some code for message sending 2022-01-24 15:39:49 +00:00
d8a23ad52c fixed %js handling in the formatting funtion 2022-01-24 07:39:43 +00:00
6cdbc457a0 implementing message sending 2022-01-23 16:46:13 +00:00
7ad9b2d499 rearranged the stack for the call operation by pushing a dummy receiver.
the rearrangement is done to make aa plain function call look the same as a message send
2022-01-22 15:40:38 +00:00
a7a69d9a11 implementing a message sending list 2022-01-14 16:09:52 +00:00
bdf527f298 writing the compiler code for class variable handling 2022-01-09 16:47:38 +00:00
0fd038ddb6 utf8 range limiting.
compiler work for class variable access in the class defintion scope
2022-01-08 09:26:54 +00:00
7c6511d4ad rewriting variable collection in a class 2022-01-04 15:26:17 +00:00
8582b9288d removed a debugging message 2022-01-04 13:43:51 +00:00
a830d578e0 touching up variable declaration handling in a class 2022-01-03 17:59:55 +00:00
57bb1657b3 added new instructions - push_clsvar, store_into_clsvar, pop_into_clsvar 2022-01-01 14:58:57 +00:00
a61f6f5f47 fixed the missing prototype defintion of hcl_instantiate() 2021-12-31 08:39:12 +00:00
72724799b3 working on object instanttiation 2021-12-27 23:12:36 +00:00
7b653c0df8 fixed yet another bug compiling a catch block 2021-12-26 16:37:54 +00:00
73148041a2 fixed another bug compiling a catch block 2021-12-26 16:00:08 +00:00
447fafd7b2 fixed a wrong compiler check in the post_catch() phase 2021-12-26 14:59:34 +00:00
afeebc08c9 fixed process stack handling 2021-12-25 15:33:49 +00:00
d2e6f94b33 enhanced try_exit and try_exit2 to restore the class stack pointer 2021-12-24 14:59:16 +00:00
c230355e90 changed do_throw() to clear the class stack when the exception is empty 2021-12-24 05:10:50 +00:00
3d4e161a5f added 'class_push_exit'
enhanced the compiler to produce 'pop_stacktop' at the end of the class if the class body is not empty
2021-12-24 00:05:58 +00:00
a24f591074 some lines of compiler code 2021-12-12 16:09:31 +00:00
f6236f767f removed unneded trailing spaces in comp.c 2021-11-26 15:17:09 +00:00
cf77f8eb6f trying to implement object instantiation 2021-11-26 14:55:50 +00:00
10934db873 removed an unneeded function 2021-11-24 14:08:25 +00:00
1712858fe9 changed emit_variable_access() 2021-11-24 02:45:28 +00:00
67c9bcbbe4 enhanced variable access code in comp.c 2021-11-23 15:52:01 +00:00
7521512db1 improving find_variable_backward() to resolve instance variables 2021-11-23 14:42:20 +00:00
dbdb694974 changing indexed variable access code 2021-11-23 02:37:58 +00:00
6d9f2cc91a fixed the wrong assertion in find_variable_backward() in comp.c 2021-11-21 16:16:59 +00:00
4a0ecfa0f1 improving the compiler code 2021-11-21 16:02:39 +00:00
b78513ad0a fixed a minor typecasting flaw 2021-07-24 15:28:59 +00:00
28bac46b39 added HCL_LOG_TARGET_BCS and HCL_LOG_TARGET_UCS 2021-07-19 18:59:17 +00:00
08cf4548bb reworked on HCL_LOG_TARGET 2021-07-19 07:11:41 +00:00
59be44fa34 work in progress 2021-06-29 11:51:08 +00:00
6b476b5c6e more code to implement class 2021-06-27 17:47:51 +00:00
2f2baf2f59 fixed initialization of hcl->nil_process
got rid of HCL_CODE_MAKE_CLASS and merged its feature to HCL_CODE_CLASS_ENTER
2021-06-25 16:07:29 +00:00
2fbb2eda6c wrote more code to support classes 2021-06-25 15:19:11 +00:00
5cd8bc15ed added the class_enter and class_exit instructions - partially implemented yet 2021-06-19 17:19:24 +00:00
2141768b6f changed compile_return() to cater for exception handling 2021-06-18 19:07:36 +00:00
c994eb6fed work in progress - enhancing compiler to support class definition 2021-06-18 18:54:50 +00:00
90b6603567 experiment to convert an error from a primitive function to an exception 2021-06-18 07:10:38 +00:00
0f1df4684a making a useless commit 2021-06-07 01:11:17 +00:00
75b6e3cc81 wrote some comments 2021-06-02 16:28:34 +00:00
bb72984905 more code to implement class 2021-06-01 09:50:35 +00:00
184212b6a0 implementing defclass 2021-05-31 16:20:18 +00:00
d086d7bd4b trying to change some code 2021-05-31 08:59:18 +00:00
b41be3e5c4 added some code to handle defclass 2021-05-29 05:44:29 +00:00
6cf198dbc5 minor indentation fix in std.c 2021-05-23 18:23:18 +00:00
5b26ef46b1 some code for class instantiation 2021-05-21 16:21:23 +00:00
03cb4c67fb implementing make_class instructoin 2021-05-21 09:59:35 +00:00
a9abaf5623 adding va-count, va-get, va-context for handling variable arguments 2021-05-16 10:32:27 +00:00
3f1e5f297f added process termination primitives 2021-05-15 11:19:52 +00:00
b1f7ab6538 implemented multiple return values assignment with set-r 2021-05-15 05:31:36 +00:00
ebda2ffa0a enhanced compile_return() to handle 'return' differently in a function block containing return variables 2021-05-13 15:54:30 +00:00
550e39e21e some more code to support multiple return values via return variables 2021-05-13 14:43:40 +00:00
faea7b60df writing code for return variables support 2021-05-11 15:04:53 +00:00
391d62511b writing code to implement return variables 2021-05-09 15:32:54 +00:00
01719d0056 enhancing the compiler to support the variable argument list with the ellipsis 2021-05-07 08:53:01 +00:00
44d2c067e1 fixed issues related to the new make_block, make_function instruction scheme 2021-05-06 17:44:58 +00:00
8430090d5d fixing bugs 2021-05-06 14:47:37 +00:00
15fdedcfae updating code to handle the new make_block, make_function scheme 2021-05-06 08:14:00 +00:00
c37b695a76 fixing bugs introduced for block temporaries sheme 2021-05-05 17:37:26 +00:00
bd3730fd12 changed the block temporaries scheme 2021-05-05 14:37:01 +00:00
f954199d38 changing the encoding scheme to store the block temporaries 2021-05-04 09:48:19 +00:00
5d83fdbfe2 trying to support variable arguments and return variables 2021-05-03 15:31:19 +00:00
c65c384d59 fixed a bug in prepare_new_context() and fork handling 2021-05-01 11:26:59 +00:00
3e18319619 removed two unused variables 2021-04-24 13:53:50 +00:00
999024e54b added hcl_compile_flag_t 2021-04-24 13:50:51 +00:00
e716c8bba9 fixed a bug of not providing the number of temporaries when arraning the initial context 2021-04-23 15:46:35 +00:00
38b7178f80 changed code for emit_indexed_variable_access() 2021-04-23 08:27:23 +00:00
3224989b99 try-catching working in the top-level now. implemented a way to secure space for top-level temporary variables 2021-04-23 07:17:40 +00:00