Commit Graph

1155 Commits

Author SHA1 Message Date
hyunghwan.chung
071ebb7788 fixed comparison bugs in moo_pf_basic_at_test_put()
changed some methods to use basicLastIndex instead of basicSize - 1
2019-08-17 15:56:47 +00:00
hyunghwan.chung
68eb5d8db8 added Apex>>basicLastIndex, Apex>>_basicLastIndex. Apex>>basicFirstIndex, Apex>>_basicFirstIndex 2019-08-17 10:08:25 +00:00
hyunghwan.chung
a65b64a0d9 completed Apex>>basicAt:test:put.
changed BlockContext>>ensure: and Context>>unwindTo:return: to use basicAt:test:put to make the test-and-set operation uninterruptible
2019-08-17 06:30:34 +00:00
hyunghwan.chung
f3953c4754 adding Apex>>basicAt:test:put: 2019-08-17 05:28:25 +00:00
hyunghwan.chung
24f8525db3 fixed a compiler bug in patch_forward_jump_instruction()
enhanced the compiler to disallow 'goto' in an argument expression to jump out.
2019-08-16 16:19:21 +00:00
hyunghwan.chung
f51fbd1a33 added the vm_setsig vm primitive function to improve os signal handler
changed System>>__os_signal_handelr and System>>startup for improved os signal handling
2019-08-16 15:29:36 +00:00
hyunghwan.chung
f23a5bd22c added two new vm primitives - vm_getsigfd and vm_getsig - to support os signal handling more promptly 2019-08-15 15:55:06 +00:00
hyunghwan.chung
3253b8fe0a enhancing VM to handle OS signals properly. work in progress 2019-08-14 16:24:39 +00:00
hyunghwan.chung
62777b97d6 changed a couple of MOO_ASSERT()'s to MOO_STATIC_ASSERT()'s in lib/bigint.c 2019-08-13 07:19:23 +00:00
hyunghwan.chung
f3c91bbed2 attempting to implement os signal handling. work in progress 2019-08-12 15:54:09 +00:00
hyunghwan.chung
f33af85fbc code clean-up 2019-08-12 02:52:32 +00:00
hyunghwan.chung
2cf12ade33 enhanced pf_call with moo_intmaxtoint() for FMTC_LONGLONG 2019-08-12 02:46:59 +00:00
hyunghwan.chung
2cd60cbed8 added moo_uintmaxtoint() 2019-08-12 02:32:04 +00:00
hyunghwan.chung
bd614c504b enhanced make_bloated_bigint_with_ooi() to handle MOO_TYPE_MIN(moo_ooi_t) 2019-08-12 01:43:11 +00:00
hyunghwan.chung
32341c1773 enhanded make_bigint_with_ooi() to handle MOO_TYPE_MIN(moo_ooi_t) 2019-08-11 16:15:55 +00:00
hyunghwan.chung
273e2d4d02 fixed an infinite loop bug in mod/ffi.c
changed some macros in lib/bigint.c
2019-08-11 14:58:04 +00:00
hyunghwan.chung
5de32310cf added FMTC_BLOB in mod/ffi.c 2019-08-11 10:11:54 +00:00
hyunghwan.chung
7c88b00952 enhanced LONGLONG argument handling in mod/ffi.c 2019-08-10 17:36:34 +00:00
hyunghwan.chung
3f2e39cf44 added moo_inttouintmax and moo_inttointmax 2019-08-10 16:20:44 +00:00
hyunghwan.chung
99bca6a028 removed garbage from mod/ffi.c 2019-08-10 04:10:13 +00:00
hyunghwan.chung
85eae9e78b fixed pointer argument handling issues when interfacing with libffi in mod/ffi.c 2019-08-10 04:08:49 +00:00
hyunghwan.chung
70c97f5ab5 started using libffi in mod/ffi.c if it's available. work in progress 2019-08-09 18:19:13 +00:00
hyunghwan.chung
58b41bc2a5 changed moo->mmgr to moo->_mmgr in lib/std.c 2019-08-08 03:48:26 +00:00
hyunghwan.chung
7b4945f231 enhanced resolve_goto_label() to check block id as well collecting block ids 2019-08-07 09:16:28 +00:00
hyunghwan.chung
bb41dc5486 enhanced compile_while_expression()/compile_do_while_expression() not to eliminate blocks containing one or more labels 2019-08-07 08:34:53 +00:00
hyunghwan.chung
3e1aded8a8 enhanced compile_if_expression() not to eliminate blocks containing one or more labels 2019-08-07 05:33:35 +00:00
hyunghwan.chung
b2ac09072b refactored compile_if_expression() a bit 2019-08-06 15:04:33 +00:00
hyunghwan.chung
569ee2424d added a few comments to lib/comp.c 2019-08-06 10:13:44 +00:00
hyunghwan.chung
11b2629680 fixed some issues regarding goto handling 2019-08-06 10:01:54 +00:00
hyunghwan.chung
c299101781 fixed the issue of a disappearing backward jump instruction in compile_braced_block() 2019-08-05 16:01:40 +00:00
hyunghwan.chung
5296cadde2 fixed a bug of not skipping a goto struct with its ip set to INVALID_IP in adjust_all_gotos_for_elimination() 2019-08-05 15:18:22 +00:00
hyunghwan.chung
ea69bb8d45 changing how to emit code for square bracked block to solve goto related issues. work still in progress 2019-08-05 09:08:03 +00:00
hyunghwan.chung
55bf7e269e trying to fix some goto implementation issues 2019-08-04 16:38:09 +00:00
hyunghwan.chung
490804d0aa added a test case in test-003.moo 2019-08-02 16:19:24 +00:00
hyunghwan.chung
f3218dc90a updated README.md 2019-08-02 16:12:12 +00:00
hyunghwan.chung
763d7f965e renumbered some jump byte codes for easy conversion between forward jump and backward jump 2019-08-02 15:59:19 +00:00
hyunghwan.chung
c30f7466a5 attempting to adjust goto and label ips upon code elimination 2019-08-02 10:17:59 +00:00
hyunghwan.chung
e08edffb0c renamed patch_long_forward_jump_instruction() to patch_forward_jump_instruction().
enhanced to change a forward jump to a backward jump if target ip is less than the instruction pointer
2019-08-02 09:32:19 +00:00
hyunghwan.chung
bd3fc07aaa got rid of short jump instructions(jump offset encoded in the last 2 bits of the instruction)
added jump_backward_if_false/true instruction and the like
2019-08-02 09:23:08 +00:00
hyunghwan.chung
3b6e59d98c more code to the compiler's goto handling functions 2019-08-01 16:05:04 +00:00
hyunghwan.chung
0fb20bfd40 writing a function to resolve jump labels for goto 2019-08-01 12:33:32 +00:00
hyunghwan.chung
5f4133e9fd wrote a few more lines in add_label() in comp.c 2019-07-31 08:53:44 +00:00
hyunghwan.chung
090a3cd6f7 changed clear_method_data() to free goto and label information 2019-07-30 15:39:33 +00:00
hyunghwan.chung
24ada7f0be updated README.md 2019-07-30 06:07:24 +00:00
hyunghwan.chung
5ef1c3b989 slightly more code for goto handling 2019-07-28 15:37:01 +00:00
hyunghwan.chung
299faf4a87 some code for goto handling 2019-07-26 07:40:58 +00:00
hyunghwan.chung
bd1d30360e shortened elsif to elif.
enhanced is_reserved_word() to return a token type through a non-NULL second parameter
2019-07-26 04:40:33 +00:00
hyunghwan.chung
05837aef28 more goto-label handling code 2019-07-18 15:51:55 +00:00
hyunghwan.chung
6fddd95dce removed an unused variable 2019-07-17 17:05:54 +00:00
hyunghwan.chung
d3f1a435cb fixed a lexer bug than returned FPDECLIT where INTLIT was desired.
added more code to process jump labels
2019-07-17 17:04:27 +00:00