Commit Graph

  • 937895ef59 added a new method modifier #lenient that applies to a primitive method. when set, it turns soft failure to error return hyunghwan.chung 2017-05-07 16:45:27 +00:00
  • f45cde7ba7 redefined Integer<<timesRepeat: hyunghwan.chung 2017-05-07 14:45:27 +00:00
  • 8f00605804 fixed minor issues in dealing with poll() hyunghwan.chung 2017-05-07 14:32:38 +00:00
  • f4a9a9abd8 added more code to support poll() hyunghwan.chung 2017-05-07 12:43:52 +00:00
  • 0a804402cd added partial code to support poll() hyunghwan.chung 2017-05-07 10:23:21 +00:00
  • b93bfc9ec6 added header file checks for io multiplexer and dynamic linker in configure.ac hyunghwan.chung 2017-05-07 08:58:34 +00:00
  • 63519c1ca3 introduced a new class modifier #immutable to indicate that an instantiated object cannot be modified using basicAt:put: hyunghwan.chung 2017-05-07 05:18:21 +00:00
  • 1dff630fdd changed how to calculate the mid point in a binary search loop hyunghwan.chung 2017-05-04 05:22:45 +00:00
  • 68a7118fb2 finished handling of #limited and #final class modifiers hyunghwan.chung 2017-05-01 12:54:41 +00:00
  • c4d0b804ef fixed strneq to STREQ in libltdl/loaders/dyld.c hyunghwan.chung 2017-04-30 05:18:09 +00:00
  • 275f5810cc changed memxxx() macros to use HAVE___BUILTIN_MEMXXX autoconf variables. started adding the #final modifier for class definition hyunghwan.chung 2017-04-30 05:07:08 +00:00
  • 2a6206cc80 changed to use AC_LINK_IFELSE() when checking for some __builtin_memxxx functions. started adding the #limited modifier for class definition hyunghwan.chung 2017-04-30 04:50:33 +00:00
  • e2a7646b75 added strftime %z check into configure.ac hyunghwan.chung 2017-04-28 23:25:21 +00:00
  • 3a072e9d7c changed to use %Z with strftime on solaris hyunghwan.chung 2017-04-28 14:57:00 +00:00
  • f69c54c339 added /dev/poll interfacing code for solaris change rbt.c to align the value pointer on a word boundary to avoid bus error on sparc64 hyunghwan.chung 2017-04-28 14:45:13 +00:00
  • bce77eda6c added --enable-mod-x11 and --enable-mod-ffi to configure hyunghwan.chung 2017-04-28 04:03:52 +00:00
  • 9ee7d9e110 touched up raw memory access primitives hyunghwan.chung 2017-04-27 15:40:04 +00:00
  • b0a3b4aef7 fixed CompiledMethod>>preambleCode hyunghwan.chung 2017-04-26 16:01:56 +00:00
  • be57cffbe6 added MOO_METHOD_PREAMBLE_FLAG_DUAL and set it on in a method preamble for a dual method hyunghwan.chung 2017-04-26 15:44:57 +00:00
  • 6fe65f66fc implemented until and do..until loop hyunghwan.chung 2017-04-26 15:31:07 +00:00
  • 04864659a8 added the #dual modifier to method definition. a method defined with #dual is registered in both the instance side and the class side. hyunghwan.chung 2017-04-26 03:09:55 +00:00
  • 8298bad3e0 added moo_process_t.perr and Processor>>primError to capture the last error set by a primitive function hyunghwan.chung 2017-04-25 15:20:58 +00:00
  • d3c9a33c30 enhanced the compiler to set RDONLY on the array member elements in the RDONLY context hyunghwan.chung 2017-04-24 16:37:57 +00:00
  • 08e54cb524 enhanced the compiler to handle default initial values for class instance variables hyunghwan.chung 2017-04-24 14:32:21 +00:00
  • 8a0d476d18 fixed a lexer bug of eating up one more character when reading a single-letter identifier C, S, M followed by a non-identifier letter in get_ident(). changed various test programs according to syntax changes hyunghwan.chung 2017-04-24 09:20:27 +00:00
  • 5bf8d20a93 enhanced the compiler to handle default initial values for instance variables and class variables hyunghwan.chung 2017-04-24 04:26:03 +00:00
  • 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 hyunghwan.chung 2017-04-19 16:46:44 +00:00
  • a768bd8803 added experimental code to handle xcb window resizing hyunghwan.chung 2017-04-08 14:11:01 +00:00
  • 536a66fbbf enhanced the check on the nullified io semaphore slot hyunghwan.chung 2017-04-08 07:33:06 +00:00
  • 89c0a406f3 fixed a bug of not updating the system multiplexer when moving an IO semphoare object hyunghwan.chung 2017-04-08 07:23:31 +00:00
  • 88b2a0787f more xcb implementation code hyunghwan.chung 2017-04-07 15:50:05 +00:00
  • db3cdd057d added X11.moo hyunghwan.chung 2017-04-05 16:48:20 +00:00
  • b93b17c42b wrote more xcb code hyunghwan.chung 2017-04-05 16:48:03 +00:00
  • 8bdab5520a fixed a macro definition for os2 hyunghwan.chung 2017-04-03 14:53:16 +00:00
  • 46e29918f3 added error mappings for os2 hyunghwan.chung 2017-04-03 14:51:07 +00:00
  • 08f01329ab added MOO_EMSGRCV. added System putUintX()/putIntX() and SmallPoitner putUintX()/putIntX() hyunghwan.chung 2017-04-03 13:24:18 +00:00
  • b7a8348de3 added System _malloc/_calloc/_free and SmallPointer free hyunghwan.chung 2017-04-03 05:43:50 +00:00
  • cee4a01be0 refactored exec.c a bit hyunghwan.chung 2017-04-02 17:13:04 +00:00
  • 4f9767422b added raw memory access primitive functions to SmallPointer hyunghwan.chung 2017-04-02 17:08:03 +00:00
  • e2d73eccdb extended the tag bits to support more than 3 special types. tag bit calculation got slower but it can use up to 4 bits to represent more types hyunghwan.chung 2017-04-02 13:13:33 +00:00
  • 2ed62a5edb added a new method directive #liberal to indicate a method that accept a fully variadic number of arguments. the directive #liberal allows the caller to omit the named arguments as well. the directive #variadic requires the caller to provide at least the named arguments hyunghwan.chung 2017-04-01 06:54:27 +00:00
  • aeb02213b4 changed moo_getpfnum(). added argument count checks when processing primitive method pragmas hyunghwan.chung 2017-04-01 04:58:02 +00:00
  • 447670aba8 implemented more prechecks including the existence of the primitive function handler and the number of supported arguments when compiling primitive method defintions hyunghwan.chung 2017-03-31 14:21:22 +00:00
  • 0f84a115ae added moo_pfbase_t and changed some functions to return moo_pfbase_t* instead of moo_pfimpl_t touched up some modules hyunghwan.chung 2017-03-30 14:59:55 +00:00
  • 9748410354 Added more xcb code hyunghwan.chung 2017-03-26 17:15:25 +00:00
  • da04686176 fixed a bug in handling io semaphores when no process is runnable hyunghwan.chung 2017-03-25 05:16:18 +00:00
  • df1619bf7d added more experimental xcb code hyunghwan.chung 2017-03-24 18:09:34 +00:00
  • 3fcfcff0ad added a new modifier #variadic to make variadic method definition more obvious. allowed the #primitive modifier in a method definition not associated with an external module. fixed a bug in handling soft failure from numbered primitive functions hyunghwan.chung 2017-03-23 16:14:22 +00:00
  • 65722cf89b changed System to be a class instead of an instance of a system dictionary hyunghwan.chung 2017-03-22 16:55:41 +00:00
  • 46ba3bb3f5 added respondsTo: and perform:with: fixed a bug in Dictionary>>__remove_at: added gc callback to external modules hyunghwan.chung 2017-03-19 14:18:37 +00:00
  • 6a2add620b fixed two minor bugs in main.c hyunghwan.chung 2017-03-09 13:39:59 +00:00
  • 3bfffe09d9 removed the association literal notation hyunghwan.chung 2017-03-09 07:26:43 +00:00
  • 8bf134e8e3 refactored compiler code abit hyunghwan.chung 2017-03-08 14:48:12 +00:00
  • 308318b615 changed to accept identifer instead of symbols in pooldic definition hyunghwan.chung 2017-03-08 13:53:41 +00:00
  • 1ebfe8d5e9 added a simple LinkedList hyunghwan.chung 2017-03-04 05:48:23 +00:00
  • 90f46cc1fe simplified the event handling thread implementation by letting only 1 thread waiting for events hyunghwan.chung 2017-02-22 09:48:58 +00:00
  • 513ed296a0 enhanced the event handling code further hyunghwan.chung 2017-02-21 19:51:10 +00:00
  • 52d6867944 wrote experimental code to handle events efficiently and asynchronously hyunghwan.chung 2017-02-21 19:20:27 +00:00
  • b45d896d9f renamed the #native method modifier to #primitive for consistency improved the method modifier processing logic in the compiler hyunghwan.chung 2017-02-20 04:45:23 +00:00
  • 6a7cbc8dcb finished the native method handling code in the compiler hyunghwan.chung 2017-02-19 17:33:53 +00:00
  • 8442968f9c fixed a tokenization bug in getting a empty string literal. allowed a zero-length symbol to be created hyunghwan.chung 2017-02-19 15:45:51 +00:00
  • 93e776a9d8 wrote some incomplete code to support native method definition - method(#native) ... hyunghwan.chung 2017-02-18 15:00:45 +00:00
  • 607e6c8502 experimenting with event driven mechanism hyunghwan.chung 2017-02-18 13:31:47 +00:00
  • be677dd53a added partial experimental code for io event handling hyunghwan.chung 2017-02-15 11:57:24 +00:00
  • bc5ab97ccf added the main program to handle SIGINT hyunghwan.chung 2017-02-14 14:00:14 +00:00
  • f89d809cdc added moo_genpfmethods() and moo_findpfimpl() for convenience of writing primitive modules hyunghwan.chung 2017-02-14 10:25:26 +00:00
  • 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 hyunghwan.chung 2017-02-14 08:29:30 +00:00
  • d7cb283e44 added a few useful macros hyunghwan.chung 2017-02-13 13:40:35 +00:00
  • 73231a29d7 enhanced the primitive module loader such that it can load multiple primitmive groups from a single module file. fixed a bug of setting errnum wrongly in character conversion functions hyunghwan.chung 2017-02-13 13:25:42 +00:00
  • ff122bdcc8 removed the accidentally added -lxcb from lib/Makefile.am hyunghwan.chung 2017-02-12 19:03:08 +00:00
  • 4c13989947 enabled the compiler to support a class name as a namespace. started adding code for event-driven IO handling hyunghwan.chung 2017-02-12 18:59:03 +00:00
  • 2c8eb87408 refactored moo_execute() by taking process switcher out to a separate inline function hyunghwan.chung 2017-02-11 05:48:30 +00:00
  • 7384777b59 introduced vm_getttime, vm_sleep, vm_startup, vm_cleanup callbacks hyunghwan.chung 2017-02-10 09:06:53 +00:00
  • b1c28d03d7 changed VM to emulate 'Dictionary new: ..' for MAKE_DICTIONARY changed VM to emulate 'dic put_assoc: assoc' for POP_INTO_DICTIONARY hyunghwan.chung 2017-02-10 07:38:29 +00:00
  • 46f3e8635e updated lib/Makefile.am to use ENABLE_LIBLTDL hyunghwan.chung 2017-02-09 16:30:28 +00:00
  • 0178693f77 added --enable-libltdl to configure hyunghwan.chung 2017-02-09 16:26:44 +00:00
  • c613b6955d fixed a segfault bug when the source file cannot be opened hyunghwan.chung 2017-02-09 15:56:51 +00:00
  • 2a40be7742 updated the compiler to fix the jump instruction positions for break and continue upon instruction eliminations hyunghwan.chung 2017-02-09 10:22:44 +00:00
  • c6cf64a586 fixed some issues in logfmt routines. changed the dl_getsym callback to use the dynamic memory allocation if the static buffer isn't large enough hyunghwan.chung 2017-02-09 08:05:14 +00:00
  • 2101bb38b4 renamed __assocPut: to __put_assoc: hyunghwan.chung 2017-02-08 13:14:29 +00:00
  • a05793a66d rewrote a few methods to use if/while instead of ifTrue:/whileTrue: in Collect.moo hyunghwan.chung 2017-02-07 18:09:07 +00:00
  • 5c07a48c5a wrote code to handle dictionary expression and association expression notation hyunghwan.chung 2017-02-07 17:40:34 +00:00
  • 62eb6db83d in progress of fixing a bug in instruction elimination hyunghwan.chung 2017-02-06 17:53:33 +00:00
  • 60c38a1ecb added make_association, pop_into_association_key, pop_into_association_value byte codes to support assocation expressions hyunghwan.chung 2017-02-05 15:05:25 +00:00
  • eb83c8d83a started the first step to implement array expression support enclosed in #{ }. added 2 new byte codes - MAKE_ARRAY, POP_INTO_ARRAY for implementation hyunghwan.chung 2017-02-05 13:54:52 +00:00
  • 98b6dd1118 enhanced the dynamic library loader a bit hyunghwan.chung 2017-02-04 05:30:15 +00:00
  • 54a2128713 fixed -L directory order in lib/Makefile.am to avoid linking to libmoo-xxx shared objects when MOO_ENABLE_STATIC_MODULE is on and $(libdir) contains libmoo-xxx files - place the module build directory in front of other library directories. fixed problems when MOO_OOCH_IS_BCH hyunghwan.chung 2017-02-03 06:28:12 +00:00
  • ea6d48eb0e improved the #include handling to remember the file loaded and use it when loading an includee file hyunghwan.chung 2017-02-02 12:45:15 +00:00
  • 5c755d68f5 rewrote whileTrue:, whileFalse:, and similar methods for BlockContext in an imperative style hyunghwan.chung 2017-02-02 04:46:29 +00:00
  • 07d8d0ea83 implemented simple optimization in compiling an if expression hyunghwan.chung 2017-01-31 16:14:11 +00:00
  • 22013650bb added the jump_backward_if_true instruction. added more do-while handling code hyunghwan.chung 2017-01-30 16:48:42 +00:00
  • 341966e373 added a little code for elimination of unneeded code generated hyunghwan.chung 2017-01-29 07:29:58 +00:00
  • 03ddf6b68d added some code to compile the break statement hyunghwan.chung 2017-01-29 07:14:36 +00:00
  • 10ca940d72 added small amount of code to handle break & continue hyunghwan.chung 2017-01-27 15:25:46 +00:00
  • b7a19a3b14 implemented the while expression handling. break and continue yet to be implemented hyunghwan.chung 2017-01-25 13:57:14 +00:00
  • 6209b13410 added the local return byte code - BCODE_LOCAL_RETURN -> it returns to the origin of the active context hyunghwan.chung 2017-01-22 18:01:26 +00:00
  • e80b2bc572 enhanced the compiler to store some jump positions in a dynamical data structure when parsing the if expresson hyunghwan.chung 2017-01-20 19:19:28 +00:00
  • 5c6a5f4baf deleted unneeded files hyunghwan.chung 2017-01-19 17:33:27 +00:00
  • 4a0cefacc3 added a new libltdl m4 file hyunghwan.chung 2017-01-19 17:29:03 +00:00
  • c19674ce13 added/deleted new/unneeded files hyunghwan.chung 2017-01-19 17:18:30 +00:00