652f13246f
moved gcfin_should_exit from Processor to System
hyunghwan.chung
2019-08-26 14:43:41 +00:00
87cf4f4b6a
changed chain_to_semaphore() to be more fault resistent
hyunghwan.chung
2019-08-24 16:03:17 +00:00
c8e22fbd92
changed to call printf in test-bi
hyunghwan.chung
2019-08-24 15:45:08 +00:00
018a4790d0
fixed typos in mod/ffi.c
hyunghwan.chung
2019-08-24 06:20:36 +00:00
42df4239a6
added ProcessScheduler>>processById: attempting to correct signal handling behavior
hyunghwan.chung
2019-08-18 17:46:40 +00:00
071ebb7788
fixed comparison bugs in moo_pf_basic_at_test_put() changed some methods to use basicLastIndex instead of basicSize - 1
hyunghwan.chung
2019-08-17 15:56:47 +00:00
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
hyunghwan.chung
2019-08-17 06:30:34 +00:00
24f8525db3
fixed a compiler bug in patch_forward_jump_instruction() enhanced the compiler to disallow 'goto' in an argument expression to jump out.
hyunghwan.chung
2019-08-16 16:19:21 +00:00
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
hyunghwan.chung
2019-08-16 15:29:36 +00:00
f23a5bd22c
added two new vm primitives - vm_getsigfd and vm_getsig - to support os signal handling more promptly
hyunghwan.chung
2019-08-15 15:55:06 +00:00
3253b8fe0a
enhancing VM to handle OS signals properly. work in progress
hyunghwan.chung
2019-08-14 16:24:39 +00:00
62777b97d6
changed a couple of MOO_ASSERT()'s to MOO_STATIC_ASSERT()'s in lib/bigint.c
hyunghwan.chung
2019-08-13 07:19:23 +00:00
f3c91bbed2
attempting to implement os signal handling. work in progress
hyunghwan.chung
2019-08-12 15:54:09 +00:00
3f2e39cf44
added moo_inttouintmax and moo_inttointmax
hyunghwan.chung
2019-08-10 16:20:44 +00:00
99bca6a028
removed garbage from mod/ffi.c
hyunghwan.chung
2019-08-10 04:10:13 +00:00
85eae9e78b
fixed pointer argument handling issues when interfacing with libffi in mod/ffi.c
hyunghwan.chung
2019-08-10 04:08:49 +00:00
70c97f5ab5
started using libffi in mod/ffi.c if it's available. work in progress
hyunghwan.chung
2019-08-09 18:19:13 +00:00
58b41bc2a5
changed moo->mmgr to moo->_mmgr in lib/std.c
hyunghwan.chung
2019-08-08 03:48:26 +00:00
7b4945f231
enhanced resolve_goto_label() to check block id as well collecting block ids
hyunghwan.chung
2019-08-07 09:16:28 +00:00
bb41dc5486
enhanced compile_while_expression()/compile_do_while_expression() not to eliminate blocks containing one or more labels
hyunghwan.chung
2019-08-07 08:34:53 +00:00
3e1aded8a8
enhanced compile_if_expression() not to eliminate blocks containing one or more labels
hyunghwan.chung
2019-08-07 05:33:35 +00:00
b2ac09072b
refactored compile_if_expression() a bit
hyunghwan.chung
2019-08-06 15:04:33 +00:00
569ee2424d
added a few comments to lib/comp.c
hyunghwan.chung
2019-08-06 10:13:44 +00:00
c299101781
fixed the issue of a disappearing backward jump instruction in compile_braced_block()
hyunghwan.chung
2019-08-05 16:01:40 +00:00
5296cadde2
fixed a bug of not skipping a goto struct with its ip set to INVALID_IP in adjust_all_gotos_for_elimination()
hyunghwan.chung
2019-08-05 15:18:22 +00:00
ea69bb8d45
changing how to emit code for square bracked block to solve goto related issues. work still in progress
hyunghwan.chung
2019-08-05 09:08:03 +00:00
55bf7e269e
trying to fix some goto implementation issues
hyunghwan.chung
2019-08-04 16:38:09 +00:00
490804d0aa
added a test case in test-003.moo
hyunghwan.chung
2019-08-02 16:19:24 +00:00
763d7f965e
renumbered some jump byte codes for easy conversion between forward jump and backward jump
hyunghwan.chung
2019-08-02 15:59:19 +00:00
c30f7466a5
attempting to adjust goto and label ips upon code elimination
hyunghwan.chung
2019-08-02 10:17:59 +00:00
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
hyunghwan.chung
2019-08-02 09:32:19 +00:00
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
hyunghwan.chung
2019-08-02 09:23:08 +00:00
3b6e59d98c
more code to the compiler's goto handling functions
hyunghwan.chung
2019-08-01 16:05:04 +00:00
0fb20bfd40
writing a function to resolve jump labels for goto
hyunghwan.chung
2019-08-01 12:33:32 +00:00
5f4133e9fd
wrote a few more lines in add_label() in comp.c
hyunghwan.chung
2019-07-31 08:53:44 +00:00
090a3cd6f7
changed clear_method_data() to free goto and label information
hyunghwan.chung
2019-07-30 15:39:33 +00:00
5ef1c3b989
slightly more code for goto handling
hyunghwan.chung
2019-07-28 15:37:01 +00:00
299faf4a87
some code for goto handling
hyunghwan.chung
2019-07-26 07:40:58 +00:00
bd1d30360e
shortened elsif to elif. enhanced is_reserved_word() to return a token type through a non-NULL second parameter
hyunghwan.chung
2019-07-26 04:40:33 +00:00
05837aef28
more goto-label handling code
hyunghwan.chung
2019-07-18 15:51:55 +00:00
6fddd95dce
removed an unused variable
hyunghwan.chung
2019-07-17 17:05:54 +00:00
d3f1a435cb
fixed a lexer bug than returned FPDECLIT where INTLIT was desired.
hyunghwan.chung
2019-07-17 17:04:27 +00:00
1c0b23fa97
started working on parsing labels
hyunghwan.chung
2019-07-17 09:52:26 +00:00
dbe3c1cc07
some wasm code
hyunghwan.chung
2019-07-15 15:25:00 +00:00
8e27a62a40
added the wasm directory for experiments
hyunghwan.chung
2019-07-15 09:36:03 +00:00
a1880f7198
updated README.md with some TODOs
hyunghwan.chung
2019-07-14 16:46:08 +00:00
7b4e179560
defined MOO_EXPORT to EMSCRIPTEN_KEEPALIVE for EMSCRIPTEN
hyunghwan.chung
2019-07-14 16:34:16 +00:00
0d5956547a
updated README.md a bit
hyunghwan.chung
2019-07-13 03:06:07 +00:00
1533c42dbf
removed code_start_loc from moo_method_data_t and added start_loc
hyunghwan.chung
2019-07-12 08:05:44 +00:00
18e186677e
simplified source line and source text representation of a methond in dbgi
hyunghwan.chung
2019-07-12 05:06:05 +00:00
8e5e5234cb
simplified source line and source text representation of a methond in dbgi
hyunghwan.chung
2019-07-12 03:38:45 +00:00
fcf6d3ffc1
touched up pf_method_get_source_file() and pf_method_get_ip_source_line()
hyunghwan.chung
2019-07-11 15:58:16 +00:00
d5475d79b6
added pf_method_get_ip_source_line() and defined CompiledMethod::ipSourceLine
hyunghwan.chung
2019-07-11 06:43:47 +00:00
4afe4b459d
renamed clear_io_names() to moo_clearcionames(). attempting to write a fucntion that gives a source line for an instruction pointer
hyunghwan.chung
2019-07-10 15:30:08 +00:00
b3eb804f87
reorganized moo_duputobcstr(), moo_dupbtoucstr(), moo_dupbtouchars(), moo_duputobchars(). renamed add_io_name() to moo_addcioname(). changed input_handler in std.c to set arg->name when opening a file with moo_addcioname(). shortened dbginfo to dbgi. enhanced the compiler to record the class location in dbgi
hyunghwan.chung
2019-07-10 09:19:38 +00:00
b4c6e6a9de
added CompiledMethod>>sourceFile, CompiledMethod>>sourceLine. added pf_method_get_source_file(). enhanced moo_addmethodtodbginfo(). enhanced the compiler to call moo_addfiletodbginfo(), moo_addmethodtodbginfo()
hyunghwan.chung
2019-07-09 15:56:34 +00:00
8820c3db16
changed dbginfo functions and structures a bit
hyunghwan.chung
2019-07-09 09:59:38 +00:00
e6d7cbd767
some more code to handle dbginfo
hyunghwan.chung
2019-07-08 15:41:57 +00:00
b88900eda2
writing some debug information tracking functions
hyunghwan.chung
2019-07-08 07:51:53 +00:00
fba3c3213c
attempting to store the source location information collected while compiling into the moo_dbginfo_t data structure
hyunghwan.chung
2019-07-07 15:24:27 +00:00
81a1785c35
changed the compiler to set source_file and source_line into moo_method_t
hyunghwan.chung
2019-07-06 09:44:29 +00:00
c334b0af28
added the code_start_loc field to moo_method_data_t and updated emit_byte_instruction() to get distance of the instruction being emitted
hyunghwan.chung
2019-07-06 09:11:25 +00:00
70eaee601e
checking argument in pf_context_find_exception_handler()
hyunghwan.chung
2019-07-06 07:46:08 +00:00
7f835ea120
added moo_ischildclassof(). filled pf_context_find_exception_handler() to speed up exception handling a bit
hyunghwan.chung
2019-07-05 08:12:42 +00:00
3f6b0335d9
changed comp.c to pass source location to emit_XXX_instruction() functions
hyunghwan.chung
2019-07-04 10:04:59 +00:00
8e720e4bda
changed to pass source location to more calls to emit_xxx_instruction() functions
hyunghwan.chung
2019-07-03 15:06:54 +00:00
67c9c18282
made partial changes to pass source location to emit_XXX_instruction() functions
hyunghwan.chung
2019-07-03 08:48:02 +00:00
a9045a56b2
changed the moo_code_t structure a little
hyunghwan.chung
2019-07-02 09:48:56 +00:00
92093dd23f
added two more fields into CompiledMethod. no implementation change has been made yet
hyunghwan.chung
2019-06-29 10:46:28 +00:00
20b50c7bb6
defined select:,reject:,collect: in Array
hyunghwan.chung
2019-06-28 06:13:09 +00:00
2d8277a046
enhanced the compiler to process byte array in string notation - B"..."
hyunghwan.chung
2019-06-27 14:16:43 +00:00
4c7b5f2df8
removed the S'' literals from the moo codes
hyunghwan.chung
2019-06-27 08:06:33 +00:00
ea4d782c1d
changed %(, %[, %{ to ##(, ##[, ##{ respectively put back % into is_binselchar(). attempting to support a string-like byte array literal - B"XXXX"
hyunghwan.chung
2019-06-27 07:43:17 +00:00
fcb987891e
no more ## comment. // as a signle-line comment starter.
hyunghwan.chung
2019-06-27 06:29:09 +00:00