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
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
57bb1657b3
added new instructions - push_clsvar, store_into_clsvar, pop_into_clsvar
2022-01-01 14:58:57 +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
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
90b6603567
experiment to convert an error from a primitive function to an exception
2021-06-18 07:10:38 +00:00
b41be3e5c4
added some code to handle defclass
2021-05-29 05:44:29 +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
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
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
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
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
e716c8bba9
fixed a bug of not providing the number of temporaries when arraning the initial context
2021-04-23 15:46:35 +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
5a519faf77
removed a duplicate line
2021-04-20 14:11:00 +00:00
5aa6506106
simplified code a bit
2021-04-18 18:02:02 +00:00
cfa019a16d
fixing code to implement exception handling
2021-04-14 16:20:18 +00:00
cb917ff44b
working on try-catch implementation
2021-04-11 15:45:01 +00:00
5537e1850a
reimplementing try-catch
2021-04-11 15:08:27 +00:00
08149767b5
improving function block and control block handling in the compiler code
2021-04-09 08:22:40 +00:00
307bdee5cc
added more code to implement simple exception handling
2021-03-02 15:58:13 +00:00
6631779768
added some code for throw
2021-02-28 17:00:28 +00:00
50148c7eab
added the flags field to the context object
2021-02-24 16:57:26 +00:00
e61602082d
added the try_catch instruction
2021-02-22 14:56:27 +00:00
037174ddb6
adding hcl_openstd()
2021-02-07 17:57:35 +00:00
ac58758da0
added some semaphore handling code
2021-02-05 15:22:39 +00:00
9c2f757e16
preparing to implement semaphores
2021-02-03 14:50:51 +00:00
81c9b25cad
fixed some process management code
2021-02-02 23:43:12 +00:00
2d22b53c96
fixed some compiler bugs
2021-02-01 13:20:46 +00:00
65c23a3ff5
removed unneeded code
...
uniformize the naming of locptr, dbgl to dbgi
2021-02-01 03:32:09 +00:00
7d6436a4de
enhanced the vm to supplement the error message with debug information
2021-01-31 18:46:13 +00:00
0568cb0ae3
removed some unneeded code.
...
changed the source input handler to set the name field for the main stream
2021-01-30 16:13:27 +00:00
db9e0f5248
cleaned up a bit
2021-01-29 17:24:13 +00:00
7fc4262d01
made enhancement to show location information for the ECALL runtime error
2021-01-29 12:39:31 +00:00
525078fbe5
removed unneeded code
2021-01-29 09:41:39 +00:00
d36c12e21a
changing compiler code to preserve some debugging information
2021-01-27 08:47:08 +00:00
8829e27c33
preparing to produce debug information
2021-01-26 10:10:18 +00:00
581b13aedd
found a bug upon VM abortion. yet to fix it
2021-01-24 15:53:35 +00:00
41de130fe4
enhanced the new compiler to produce working bytecodes for the #() list
2021-01-24 15:45:28 +00:00
6720640ed7
adding some work-in-progress code to store debugging information for generated byte codes
2021-01-03 13:51:23 +00:00
1828b4f29b
fixed to reset hcl->sp before returning from hcl_execute()
2020-12-31 19:03:37 +00:00
11e831bbcc
switching GC from semi-space copying to mark-sweep
2020-12-31 17:48:47 +00:00
656e0150a9
cleaned up code and build files
2020-11-15 10:26:14 +00:00
0823ddc2d0
cleaned up build files
2020-11-15 09:56:06 +00:00
852543ee19
Added some incomplete code for process-switching
2020-10-15 12:57:05 +00:00
d02bf34322
removed irrelevant comments
2020-10-13 17:25:29 +00:00
27edbfdb91
removed the unneeded sp field from hcl_context_t
2020-10-13 17:20:01 +00:00
adb374f02d
fixed non-local return behaviors
2020-10-13 14:44:00 +00:00
b9f78f7c13
working on return-from-home for non-local return
2020-10-10 17:36:33 +00:00
d127456da8
added hcl_block_t to express a base block. no more reuse of hcl_context_t for the base block
2020-10-09 07:14:32 +00:00
a69434a96f
enhancing the compiler and hcl_execute() for better interactive use
2020-10-08 09:25:54 +00:00
9d5e580387
fixing compiler bugs regarding MAKE_FUNCTION and literal frame rebasing
2020-10-07 08:06:49 +00:00
0ffb5b239d
debugging the compiler
2020-10-06 09:40:39 +00:00
dcae55ab70
fixing more bugs..
2020-10-05 14:49:54 +00:00
e30cbc844c
writing code for function activation using function-local literal frame
2020-10-05 09:37:26 +00:00
a28553b195
fixing types of some fields in hcl_context_t and hcl_function_t for clarity and consistency
2020-10-04 19:34:53 +00:00
1b07957718
fixed a gc error not fixed in the previous commit
2020-10-04 19:07:21 +00:00
2b786018d7
changing vm implementation a bit. this commit is buggy
2020-10-04 18:21:05 +00:00
c7e87698d0
still experimenting to find a good way to represent byte codes and literal frames in the interactive mode
2020-09-28 15:44:04 +00:00
b8fd5c6712
experiments...
2020-09-22 09:19:53 +00:00
e6be071a54
adding some experimental code
2020-09-19 11:55:58 +00:00
2255d894b0
added --enable-full-liw to configure.ac
2019-04-17 05:51:36 +00:00
140682dfc4
reorganized some callback functions into cb-impl.c
2018-11-03 15:57:14 +00:00
7f0428d288
cleaned up some code
2018-11-02 14:15:28 +00:00
9a186711e4
dropped cli-mode code. it turned out to be not effective
2018-08-08 03:41:17 +00:00
f87ebd527e
Added a work file
2018-08-07 16:05:41 +00:00
28cc69ea21
wrote more compiler mode to handle input in the cli mode
2018-08-07 11:04:38 +00:00
fe28d23307
added more experimental code for the cli mode
2018-08-06 10:41:38 +00:00
0634bf26b3
enhanced the cli-mode reader a bit
2018-08-04 00:59:35 +00:00
25243fc7af
added experimental code to execute an external command
2018-08-02 17:09:32 +00:00
deb53399a4
introduced the new type hcl_bitmask_t
2018-04-26 04:39:20 +00:00
d51ad1cd6a
Added partial sample program to accept requests over a socket
2018-03-12 10:39:13 +00:00
27e1e55a7c
added hcl_getip(), hcl_getbclen(), hcl_getlflen()
...
renamed vm_checkpoint to vm_checkbc while adding a new parameter
2018-03-11 11:16:28 +00:00
f9e60cea28
changed the position of abortion check
2018-03-11 03:05:42 +00:00
536f7fd9f2
added hcl_abort()
...
taken out vm_startup and vm_cleanup from hcl_vmprim_t and moved them to hcl_cb_t
2018-03-10 17:53:44 +00:00
a60bd0c898
renamed hcl_purgeatdic() to hcl_zapatdic()
...
exposed hcl_moveoop()
extended the meaning of the kernel bits in the object flags
extended hcl_pfbase_t to include the type - one of HCL_PFBASE_FUNC, HCL_PFBASE_VAR, HCL_PFBASE_CONST. HCL_PFBASE_CONST not fully implemented yet
2018-03-08 14:18:30 +00:00