41 Commits

Author SHA1 Message Date
hyunghwan.chung
7eb10b162a started representing a block([...]) in a CompiledBlock object. BlockContext represents an activated CompiledBlock context from now on 2020-10-15 14:50:08 +00:00
hyunghwan.chung
b5b72c626c enhanced the compiler to handle a string as a series of bytes in a byte array literal.
added FileAccessor>>seek:whence:
2019-10-29 14:21:14 +00:00
hyunghwan.chung
feb1825c41 set processor's primitive error information before handling #lenient 2019-10-24 15:17:46 +00:00
hyunghwan.chung
e145c4742e enhanced the compiler and the interface structure to allow an interface as a name space.
enhanced formatted output of namespace, interface, class to include the hierarchy.
changed the pooldic item terminator from a period to a comma
2019-09-30 08:46:50 +00:00
hyunghwan.chung
42df4239a6 added ProcessScheduler>>processById:
attempting to correct signal handling behavior
2019-08-18 17:46:40 +00:00
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
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
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
3e1aded8a8 enhanced compile_if_expression() not to eliminate blocks containing one or more labels 2019-08-07 05:33:35 +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
3e506cbcfb added System>>backtrace 2019-07-12 07:24:37 +00:00
hyunghwan.chung
8e5e5234cb simplified source line and source text representation of a methond in dbgi 2019-07-12 03:38:45 +00:00
hyunghwan.chung
d5475d79b6 added pf_method_get_ip_source_line() and defined CompiledMethod::ipSourceLine 2019-07-11 06:43:47 +00:00
hyunghwan.chung
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
2019-07-10 09:19:38 +00:00
hyunghwan.chung
b4c6e6a9de added CompiledMethod>>sourceFile, CompiledMethod>>sourceLine.
added pf_method_get_source_file().
enhanced moo_addmethodtodbginfo().
enhanced the compiler to call moo_addfiletodbginfo(), moo_addmethodtodbginfo()
2019-07-09 15:56:34 +00:00
hyunghwan.chung
7f835ea120 added moo_ischildclassof().
filled pf_context_find_exception_handler() to speed up exception handling a bit
2019-07-05 08:12:42 +00:00
hyunghwan.chung
3f6b0335d9 changed comp.c to pass source location to emit_XXX_instruction() functions 2019-07-04 10:04:59 +00:00
hyunghwan.chung
4c7b5f2df8 removed the S'' literals from the moo codes 2019-06-27 08:06:33 +00:00
hyunghwan.chung
fcb987891e no more ## comment. // as a signle-line comment starter. 2019-06-27 06:29:09 +00:00
hyunghwan.chung
102de55322 changed the block comment style the same as C 2019-06-19 12:38:09 +00:00
hyunghwan.chung
b9500933b8 renamed SymbolSet to SymbolTable.
added some exception classes to use when something is not found.
renamed Set to AssociativeCollection and started writing a new Set class
2018-06-20 18:01:04 +00:00
hyunghwan.chung
e074607a00 renamed jump_xxxward_if_xxx to jumpop_xxxward_if_xxx because it does pop the stack top.
added jump_forward_if_true, jump_forward_if_fase, jump2_forward_if_true, jump2_forward_if_false to use with the and and or logical operation keywords
2018-05-30 15:32:09 +00:00
hyunghwan.chung
acb71f521c work in progress. trying a different way of implementing async socket 2018-05-02 09:53:02 +00:00
hyunghwan.chung
7395a5d2d2 touched up some primitive functions 2017-12-03 17:08:04 +00:00
hyunghwan.chung
76b975a152 changed the compiler to remove all leading spaces from a method name when composing a primitive identifer.
started enhancing the compiler to support the #pragma directive
2017-11-24 17:40:20 +00:00
hyunghwan.chung
6177cd6865 removed the DEH symbol ({%).
added new experimental features
 - the signal method to the Error class for simplified error/exception handling
 - the catch method to the BlockContext for simplified error/exception catching instead of the full-fledged on:do
2017-11-21 15:05:12 +00:00
hyunghwan.chung
b07cab3874 migrated some primitives from Processor to System.
Fixed a bug in manipulating moo->sem_io_wait_count.
Experimenting to add a shortcut exception handling syntax
2017-11-21 09:15:22 +00:00
hyunghwan.chung
7ee4453bf3 removed experimental code on error exceptionization.
made the sp method of the Process class a primitive method for accuracy
fixed omission of some fields when initializing a nil_process.
wrote a macro to inspect a receiver and changed the receiver inspect code to use the macro
corrected the order between return value setting and process suspension/temrination/activation in some primitive functions
2017-09-25 15:16:19 +00:00
hyunghwan.chung
34a5e0cab8 gave up the idea of constants.
enhanced namespace handling with selfns and self
uniformified identifier handling related to namespacing
2017-06-01 15:42:05 +00:00
hyunghwan.chung
a639fe9f93 fixed an error in moo_seterrbfmt() and moo_seterrufmt() 2017-05-16 02:04:18 +00:00
hyunghwan.chung
f5d311e825 enhanced logging functions to be more error-resistent 2017-05-12 04:15:09 +00:00
hyunghwan.chung
9208d078b2 added moo_seterrbfmt() and moo_seterrufmt() 2017-05-11 14:59:20 +00:00
hyunghwan.chung
ce69989a86 touched up primitive failure handling a bit 2017-05-09 15:48:44 +00:00
hyunghwan.chung
a1782753a9 touched up primitive failure handling in exec.c 2017-05-08 16:00:55 +00:00
hyunghwan.chung
1dff630fdd changed how to calculate the mid point in a binary search loop 2017-05-04 05:22:45 +00:00
hyunghwan.chung
b0a3b4aef7 fixed CompiledMethod>>preambleCode 2017-04-26 16:01:56 +00:00
hyunghwan.chung
6fe65f66fc implemented until and do..until loop 2017-04-26 15:31:07 +00:00
hyunghwan.chung
4656bf128e added a new class variable declarator 'var' or 'variable'
supported  | .. | style declartion at the class level.
added the RDONLY flag to the object header
wrote some code to support default values for class-level variables such as instance variables
2017-04-19 16:46:44 +00:00
hyunghwan.chung
71aa1110ed added more preamable codes.
enhanced the system to be able to attach trailing spaces to an object upon instantiation, especially for external modules to be able to secure GC-safe free workspace inside an instantiated object
added moo_setclasstrsize(), moo_getobjtrailer() for the trailer feature
2017-02-14 08:29:30 +00:00
hyunghwan.chung
7460ce819c renamed *.st files to *.moo 2017-01-09 12:52:37 +00:00