hyunghwan.chung
e39dd6027e
fixed some socket methods
2017-12-28 17:45:55 +00:00
hyunghwan.chung
6bf073cb0e
fixed primitive function names in mod/x11.c and mod/con.c
2017-12-28 17:15:59 +00:00
hyunghwan.chung
e10f00a1ab
fixed an IO thread termination bug
2017-12-28 17:10:30 +00:00
hyunghwan.chung
09585a4ea5
initialized sem_gcfin in vm_startup().
...
fixed a new problem in error message output bound for stderr.
fixed wrong timeout value calculatin in exec.c
2017-12-28 16:12:10 +00:00
hyunghwan.chung
dbb38a5d31
use EPOLLET when modifying with epoll_ctl()
2017-12-28 07:26:19 +00:00
hyunghwan.chung
edba0207fb
fixed log mask parsing in main.c.
...
touched up error handling a little bit
2017-12-28 04:58:17 +00:00
hyunghwan.chung
9f27e27d25
improved error handling a bit
2017-12-27 10:32:57 +00:00
hyunghwan.chung
3c6b73b2b5
cleaned up code related to IO semaphores and multiplexing
2017-12-26 15:55:06 +00:00
hyunghwan.chung
ded869708d
added ax_pthread.m4
2017-12-26 14:15:27 +00:00
hyunghwan.chung
959c376308
revised io semaphore handling routines
2017-12-25 18:35:23 +00:00
hyunghwan.chung
3d0bcf970e
changed to support a pair of semaphores on a single handle for input and output respectively
2017-12-24 17:36:20 +00:00
hyunghwan.chung
f27856fa72
enhanced the compiler to auto-sense the use of comma in a byte array literal
2017-12-20 16:40:04 +00:00
hyunghwan.chung
4fe38f883c
changed the compiler to allow a character literal within a byte array literal
2017-12-20 16:25:20 +00:00
hyunghwan.chung
d8b36bdf66
added Socket<<endConnect:
2017-12-18 13:34:47 +00:00
hyunghwan.chung
63e34ccf71
attempted to fix some socket class issues
2017-12-17 15:38:38 +00:00
hyunghwan.chung
e63596688a
added moo_seterrwithsyserro()let the compier to remove the leading underscores when resolving a primitive function in a separate module
2017-12-17 15:20:58 +00:00
hyunghwan.chung
cf88ac40ec
enhanced error message printing
2017-12-17 06:38:08 +00:00
hyunghwan.chung
5132238bfd
corrected a wrong complication condition
2017-12-16 16:27:27 +00:00
hyunghwan.chung
c64d56c268
committing an unsaved file
2017-12-16 16:24:21 +00:00
hyunghwan.chung
e9cea47273
added the --debug option for the debug build
2017-12-16 16:14:23 +00:00
hyunghwan.chung
49f0ff0bda
fixed the wrong argument handling problem
2017-12-16 05:21:38 +00:00
hyunghwan.chung
27fa6fa560
catered for slow process switching in test-002.moo
2017-12-14 02:27:51 +00:00
hyunghwan.chung
5ea15c24bd
renamed moo_mod_console to moo_mod_con
2017-12-14 02:04:52 +00:00
hyunghwan.chung
62009f7266
renamed console.c con.c
2017-12-14 02:01:38 +00:00
hyunghwan.chung
b61734a9e8
fixed an GC issue caused by unbalanced moo_pushtmp() and moo_poptmp() calls
2017-12-13 16:00:48 +00:00
hyunghwan.chung
92a21f04b8
renamed mod_console to mod_con.
...
added --enable-mod-con in configure.ac
2017-12-13 10:57:31 +00:00
hyunghwan.chung
9770ddbac6
revised some semaphore related methods, primitive functions
2017-12-11 16:27:53 +00:00
hyunghwan.chung
69b2107ed9
changed semaphore primitive functions to return MOO_PF_FAILURE upon an error
2017-12-10 15:40:29 +00:00
hyunghwan.chung
6a8db215f8
relocated gc related primitive functions
2017-12-09 17:45:10 +00:00
hyunghwan.chung
7c5afe2d5b
added SmallPointer<<getBytes, SmallPointer<<putBytes
2017-12-09 16:04:17 +00:00
hyunghwan.chung
541ab59028
added System<<getBytes, System<<putBytes.
...
also added primitive functions for the above
2017-12-09 15:47:43 +00:00
hyunghwan.chung
471d8ad797
relocated system/smptr primiives to pf-sys.c
2017-12-08 15:28:51 +00:00
hyunghwan.chung
b6cb06c680
started migrating some primitive functions to a separate file
2017-12-05 16:51:20 +00:00
hyunghwan.chung
7395a5d2d2
touched up some primitive functions
2017-12-03 17:08:04 +00:00
hyunghwan.chung
a817083543
added #pragma qc(on) and qc(off) to turn on/off double-quoted string comment
2017-11-26 06:45:59 +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
d8bcb6e012
extended the value of the -l option to have log types after a log file name. e.g. -l /dev/stderr,app,gc
2017-11-23 15:45:25 +00:00
hyunghwan.chung
7710ad99d0
added MOO_LOG_STDOUT, MOO_LOG_STDERR
...
changed the main program to write log messages to a specified file
added moo_getuopt()/moo_getbopt()/moo_getopt()
2017-11-22 04:52:45 +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
85b25d53bc
relocated quite a few methods from ProcessorScheduler to System
2017-11-05 16:47:13 +00:00
hyunghwan.chung
b451835c4b
added an informational log message upon program termination
2017-11-04 03:57:38 +00:00
hyunghwan.chung
384c5702bf
changed to raise/lower the number of IO semaphores being waited on when a semaphore is added/removed to/from a semaphore group.
...
reverted semaphore removal disallowance implemented in the previous revision
2017-11-04 03:41:08 +00:00
hyunghwan.chung
27c2c5b404
disallowed semaphore removal from a group when a process is waiting for the semaphore to be signaled
2017-11-03 16:26:55 +00:00
hyunghwan.chung
f7272c00fb
decremented the waiting count of IO semaphores in a semaphore in a semaphore group is signaled
2017-11-03 08:10:52 +00:00
hyunghwan.chung
7410f09cf5
fixed a wrong error message
2017-11-01 08:12:20 +00:00
hyunghwan.chung
b3ded6e42c
changed test-004 further
2017-10-31 15:14:12 +00:00
hyunghwan.chung
c86018a644
changed test-004.moo
2017-10-31 15:08:58 +00:00
hyunghwan.chung
8baf88b070
fixed a fault in mod/Makefile.am.
...
autoreconfed the build files
2017-10-31 14:45:15 +00:00
hyunghwan.chung
5ae166c1d4
attempted to fix wrong IO semaphore handling over a semaphore group
2017-10-31 07:13:22 +00:00
hyunghwan.chung
9ae1b99b43
fixed wrong handling of a comment closer in the builtin compiler
2017-10-31 02:57:38 +00:00
hyunghwan.chung
d042f0f494
added MOO_EBADHND
2017-10-30 01:11:18 +00:00
hyunghwan.chung
2c85319cb0
started adding a socket module and the Socket class
2017-10-18 16:15:51 +00:00
hyunghwan.chung
016b7c2dac
enhanced primitive methods and operations on a semaphore group
2017-10-08 18:13:10 +00:00
hyunghwan.chung
643d70f474
added header files for pragma pack
2017-10-08 15:51:45 +00:00
hyunghwan.chung
32a77bc6db
simplified SemaphoreGroup by switching a semaphore array to a semaphore list.
...
added some copy methods to Array
2017-10-08 15:40:32 +00:00
hyunghwan.chung
1fd9ce285c
added experimental code that implements singal callback in semaphore
2017-10-05 17:14:38 +00:00
hyunghwan.chung
a54c2e21f2
added the equality(=) method to Array.
...
fixed the equality primitive handler to accept the subclasses of Semaphore/SemaphoreGroup
2017-10-02 01:22:49 +00:00
hyunghwan.chung
c412097f6f
converted isKindOf: to a dual method
2017-09-30 04:53:00 +00:00
hyunghwan.chung
cb2b93d01c
fixed an issue in isKindOf:
2017-09-30 04:49:54 +00:00
hyunghwan.chung
a240b0be7d
prevented the _is_kind_of primitive handler from returning an error
2017-09-29 15:12:01 +00:00
hyunghwan.chung
303b49270d
added moo_iskindof().
...
changed isKindOf: to utilize a new primitive _is_kind_of.
marked BlockContext and MethodContext to be #final and #limited
2017-09-29 15:03:54 +00:00
hyunghwan.chung
e38a4f1f20
fixed potential race condition issues when 'select' or 'poll' is used as a multiplexer backend
2017-09-27 14:03:05 +00:00
hyunghwan.chung
3b5f059569
added more code to use 'select' as a multiplexer
2017-09-27 06:48:01 +00:00
hyunghwan.chung
64e1cee44a
added the 'select' support as a multiplexer mechanism
2017-09-27 01:03:18 +00:00
hyunghwan.chung
c647f76cdf
removed a redundant argument declaration from the EXIT_DISPATCH_LOOP() macro
2017-09-26 23:48:33 +00:00
hyunghwan.chung
002424626f
enhanced the check for labels as values support
2017-09-26 15:17:28 +00:00
hyunghwan.chung
a05c86dd27
changed the scheduler to reset the return value of the wait context of a semaphore group forcibly to a singaled semaphore.
...
added the waitWithTimeout method to a semaphore group
2017-09-26 09:01:42 +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
ce72ffa193
implemented wait on a semaphore group and related semaphore handling
2017-09-21 14:22:36 +00:00
hyunghwan.chung
6711bc01fa
refactored the bytecode interpretation loop with computed jump tables
...
added incomplete code to support a semaphore group
2017-09-21 07:56:51 +00:00
hyunghwan.chung
fb48e48889
cleaned up bootstrapping code a bit
2017-08-22 13:45:37 +00:00
hyunghwan.chung
37cf7be1bb
changed the way to exit the gc finalizer.
...
touched up processor scheduling debug statements
2017-08-20 14:43:34 +00:00
hyunghwan.chung
3a62300269
fixed a comparison bug in sift_down_sem_heap() for semaphore heap management
2017-08-19 15:54:03 +00:00
hyunghwan.chung
a7675116b6
changed to print backtrace upon assertion failure.
...
fixed some process scheduler bugs
2017-08-17 18:10:29 +00:00
hyunghwan.chung
8f6b21a4f6
changed the process id map to put the freed id at the back of the list
2017-07-30 15:15:47 +00:00
hyunghwan.chung
f78bf33866
improved pid management
2017-07-27 17:29:45 +00:00
hyunghwan.chung
e65912ae72
improved gcfin handling a bit
...
attempted to use XLoadFontSet in the x11 plugin experimentally
2017-07-27 08:32:16 +00:00
hyunghwan.chung
a46113abad
enhanced the gc finalization process a bit more
2017-07-25 15:26:04 +00:00
hyunghwan.chung
447012b214
changed process management code for gc finalization support. incompelete yet
2017-07-24 13:25:25 +00:00
hyunghwan.chung
7412ae0dac
enhanced finalization handling further
2017-07-21 16:54:43 +00:00
hyunghwan.chung
03fd02d59b
added some experimental code to support object finalization
2017-07-20 16:33:53 +00:00
hyunghwan.chung
fc121cd70a
added moo_ucwidth()
2017-07-05 14:23:13 +00:00
hyunghwan.chung
d0b38926d4
added more X11 code related to GC handling
2017-06-29 15:04:35 +00:00
hyunghwan.chung
a2877ac905
added more X11 code
2017-06-27 16:03:29 +00:00
hyunghwan.chung
979040e7b3
fixed the io semaphore handling error when DEVPOLL is activated
2017-06-27 13:47:58 +00:00
hyunghwan.chung
6a721bb62a
renamed get_event to get_llevent in X11
2017-06-27 07:36:55 +00:00
hyunghwan.chung
246662220f
interim commit of ongoing X11 works
2017-06-23 16:09:07 +00:00
hyunghwan.chung
16ff846013
ongoing x11 experiment
2017-06-18 17:29:32 +00:00
hyunghwan.chung
d311c7cb6e
interim commit of various experiments
2017-06-16 09:45:22 +00:00
hyunghwan.chung
9b3c3007fd
Added a new syntax error code MODIMPFAIL
2017-06-08 14:39:17 +00:00
hyunghwan.chung
40ec8fc157
added some test cases
2017-06-07 17:22:14 +00:00
hyunghwan.chung
e3e897ee83
changed build files to detect a library containing setupterm()
2017-06-07 16:47:48 +00:00
hyunghwan.chung
307c43eb3e
fixed an initial value handling bug and implemented getter and setter generation when a variable is set with #get and/or #set
2017-06-07 04:46:14 +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
36c48a8daf
made some changes to system logging primtitives and supporting codes.
...
struggling with name space handling
2017-05-21 16:57:21 +00:00
hyunghwan.chung
1bdaba968d
added nsup field to the class object to chain back to the upper namespace in the hierarchy.
...
changed bootstrapping code and compiler code to weave top-level namespace hierarchy more consistantly, mostly related to the System class and its intrinsic namespace dictionary linked via the nsdic field
2017-05-20 02:27:48 +00:00
hyunghwan.chung
8324f64dea
refactored array and byte array processing code in the compiler
2017-05-16 15:01:31 +00:00
hyunghwan.chung
a639fe9f93
fixed an error in moo_seterrbfmt() and moo_seterrufmt()
2017-05-16 02:04:18 +00:00
hyunghwan.chung
5e7771b799
added MOO_LOG_MAXCAPA
2017-05-12 16:38:16 +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
95f3df6424
moved .gitattributes up a directory
2017-05-08 03:43:07 +00:00
hyunghwan.chung
942b43a97b
added the .gitattributes file
2017-05-08 03:31:34 +00:00
hyunghwan.chung
937895ef59
added a new method modifier #lenient that applies to a primitive method. when set, it turns soft failure to error return
2017-05-07 16:45:27 +00:00
hyunghwan.chung
f45cde7ba7
redefined Integer<<timesRepeat:
2017-05-07 14:45:27 +00:00
hyunghwan.chung
8f00605804
fixed minor issues in dealing with poll()
2017-05-07 14:32:38 +00:00
hyunghwan.chung
f4a9a9abd8
added more code to support poll()
2017-05-07 12:43:52 +00:00
hyunghwan.chung
0a804402cd
added partial code to support poll()
2017-05-07 10:23:21 +00:00
hyunghwan.chung
b93bfc9ec6
added header file checks for io multiplexer and dynamic linker in configure.ac
2017-05-07 08:58:34 +00:00
hyunghwan.chung
63519c1ca3
introduced a new class modifier #immutable to indicate that an instantiated object cannot be modified using basicAt:put:
2017-05-07 05:18:21 +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
68a7118fb2
finished handling of #limited and #final class modifiers
2017-05-01 12:54:41 +00:00
hyunghwan.chung
c4d0b804ef
fixed strneq to STREQ in libltdl/loaders/dyld.c
2017-04-30 05:18:09 +00:00
hyunghwan.chung
275f5810cc
changed memxxx() macros to use HAVE___BUILTIN_MEMXXX autoconf variables.
...
started adding the #final modifier for class definition
2017-04-30 05:07:08 +00:00
hyunghwan.chung
2a6206cc80
changed to use AC_LINK_IFELSE() when checking for some __builtin_memxxx functions.
...
started adding the #limited modifier for class definition
2017-04-30 04:50:33 +00:00
hyunghwan.chung
e2a7646b75
added strftime %z check into configure.ac
2017-04-28 23:25:21 +00:00
hyunghwan.chung
3a072e9d7c
changed to use %Z with strftime on solaris
2017-04-28 14:57:00 +00:00
hyunghwan.chung
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
2017-04-28 14:45:13 +00:00
hyunghwan.chung
bce77eda6c
added --enable-mod-x11 and --enable-mod-ffi to configure
2017-04-28 04:03:52 +00:00
hyunghwan.chung
9ee7d9e110
touched up raw memory access primitives
2017-04-27 15:40:04 +00:00
hyunghwan.chung
b0a3b4aef7
fixed CompiledMethod>>preambleCode
2017-04-26 16:01:56 +00:00
hyunghwan.chung
be57cffbe6
added MOO_METHOD_PREAMBLE_FLAG_DUAL and set it on in a method preamble for a dual method
2017-04-26 15:44:57 +00:00
hyunghwan.chung
6fe65f66fc
implemented until and do..until loop
2017-04-26 15:31:07 +00:00
hyunghwan.chung
04864659a8
added the #dual modifier to method definition. a method defined with #dual is registered in both the instance side and the class side.
2017-04-26 03:09:55 +00:00
hyunghwan.chung
8298bad3e0
added moo_process_t.perr and Processor>>primError to capture the last error set by a primitive function
2017-04-25 15:20:58 +00:00
hyunghwan.chung
d3c9a33c30
enhanced the compiler to set RDONLY on the array member elements in the RDONLY context
2017-04-24 16:37:57 +00:00
hyunghwan.chung
08e54cb524
enhanced the compiler to handle default initial values for class instance variables
2017-04-24 14:32:21 +00:00
hyunghwan.chung
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
2017-04-24 09:20:27 +00:00
hyunghwan.chung
5bf8d20a93
enhanced the compiler to handle default initial values for instance variables and class variables
2017-04-24 04:26:03 +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
a768bd8803
added experimental code to handle xcb window resizing
2017-04-08 14:11:01 +00:00
hyunghwan.chung
536a66fbbf
enhanced the check on the nullified io semaphore slot
2017-04-08 07:33:06 +00:00
hyunghwan.chung
89c0a406f3
fixed a bug of not updating the system multiplexer when moving an IO semphoare object
2017-04-08 07:23:31 +00:00
hyunghwan.chung
88b2a0787f
more xcb implementation code
2017-04-07 15:50:05 +00:00
hyunghwan.chung
db3cdd057d
added X11.moo
2017-04-05 16:48:20 +00:00
hyunghwan.chung
b93b17c42b
wrote more xcb code
2017-04-05 16:48:03 +00:00
hyunghwan.chung
8bdab5520a
fixed a macro definition for os2
2017-04-03 14:53:16 +00:00
hyunghwan.chung
46e29918f3
added error mappings for os2
2017-04-03 14:51:07 +00:00
hyunghwan.chung
08f01329ab
added MOO_EMSGRCV.
...
added System putUintX()/putIntX() and SmallPoitner putUintX()/putIntX()
2017-04-03 13:24:18 +00:00
hyunghwan.chung
b7a8348de3
added System _malloc/_calloc/_free and SmallPointer free
2017-04-03 05:43:50 +00:00
hyunghwan.chung
cee4a01be0
refactored exec.c a bit
2017-04-02 17:13:04 +00:00
hyunghwan.chung
4f9767422b
added raw memory access primitive functions to SmallPointer
2017-04-02 17:08:03 +00:00
hyunghwan.chung
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
2017-04-02 13:13:33 +00:00
hyunghwan.chung
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
2017-04-01 06:54:27 +00:00
hyunghwan.chung
aeb02213b4
changed moo_getpfnum().
...
added argument count checks when processing primitive method pragmas
2017-04-01 04:58:02 +00:00
hyunghwan.chung
447670aba8
implemented more prechecks including the existence of the primitive function handler and the number of supported arguments when compiling primitive method defintions
2017-03-31 14:21:22 +00:00
hyunghwan.chung
0f84a115ae
added moo_pfbase_t and changed some functions to return moo_pfbase_t* instead of moo_pfimpl_t
...
touched up some modules
2017-03-30 14:59:55 +00:00
hyunghwan.chung
9748410354
Added more xcb code
2017-03-26 17:15:25 +00:00
hyunghwan.chung
da04686176
fixed a bug in handling io semaphores when no process is runnable
2017-03-25 05:16:18 +00:00
hyunghwan.chung
df1619bf7d
added more experimental xcb code
2017-03-24 18:09:34 +00:00
hyunghwan.chung
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
2017-03-23 16:14:22 +00:00
hyunghwan.chung
65722cf89b
changed System to be a class instead of an instance of a system dictionary
2017-03-22 16:55:41 +00:00
hyunghwan.chung
46ba3bb3f5
added respondsTo: and perform:with:
...
fixed a bug in Dictionary>>__remove_at:
added gc callback to external modules
2017-03-19 14:18:37 +00:00
hyunghwan.chung
6a2add620b
fixed two minor bugs in main.c
2017-03-09 13:39:59 +00:00
hyunghwan.chung
3bfffe09d9
removed the association literal notation
2017-03-09 07:26:43 +00:00
hyunghwan.chung
8bf134e8e3
refactored compiler code abit
2017-03-08 14:48:12 +00:00
hyunghwan.chung
308318b615
changed to accept identifer instead of symbols in pooldic definition
2017-03-08 13:53:41 +00:00
hyunghwan.chung
1ebfe8d5e9
added a simple LinkedList
2017-03-04 05:48:23 +00:00
hyunghwan.chung
90f46cc1fe
simplified the event handling thread implementation by letting only 1 thread waiting for events
2017-02-22 09:48:58 +00:00
hyunghwan.chung
513ed296a0
enhanced the event handling code further
2017-02-21 19:51:10 +00:00
hyunghwan.chung
52d6867944
wrote experimental code to handle events efficiently and asynchronously
2017-02-21 19:20:27 +00:00
hyunghwan.chung
b45d896d9f
renamed the #native method modifier to #primitive for consistency
...
improved the method modifier processing logic in the compiler
2017-02-20 04:45:23 +00:00
hyunghwan.chung
6a7cbc8dcb
finished the native method handling code in the compiler
2017-02-19 17:33:53 +00:00
hyunghwan.chung
8442968f9c
fixed a tokenization bug in getting a empty string literal.
...
allowed a zero-length symbol to be created
2017-02-19 15:45:51 +00:00
hyunghwan.chung
93e776a9d8
wrote some incomplete code to support native method definition - method(#native) ...
2017-02-18 15:00:45 +00:00
hyunghwan.chung
607e6c8502
experimenting with event driven mechanism
2017-02-18 13:31:47 +00:00
hyunghwan.chung
be677dd53a
added partial experimental code for io event handling
2017-02-15 11:57:24 +00:00
hyunghwan.chung
bc5ab97ccf
added the main program to handle SIGINT
2017-02-14 14:00:14 +00:00
hyunghwan.chung
f89d809cdc
added moo_genpfmethods() and moo_findpfimpl() for convenience of writing primitive modules
2017-02-14 10:25:26 +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
d7cb283e44
added a few useful macros
2017-02-13 13:40:35 +00:00
hyunghwan.chung
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
2017-02-13 13:25:42 +00:00
hyunghwan.chung
ff122bdcc8
removed the accidentally added -lxcb from lib/Makefile.am
2017-02-12 19:03:08 +00:00
hyunghwan.chung
4c13989947
enabled the compiler to support a class name as a namespace.
...
started adding code for event-driven IO handling
2017-02-12 18:59:03 +00:00
hyunghwan.chung
2c8eb87408
refactored moo_execute() by taking process switcher out to a separate inline function
2017-02-11 05:48:30 +00:00
hyunghwan.chung
7384777b59
introduced vm_getttime, vm_sleep, vm_startup, vm_cleanup callbacks
2017-02-10 09:06:53 +00:00
hyunghwan.chung
b1c28d03d7
changed VM to emulate 'Dictionary new: ..' for MAKE_DICTIONARY
...
changed VM to emulate 'dic put_assoc: assoc' for POP_INTO_DICTIONARY
2017-02-10 07:38:29 +00:00
hyunghwan.chung
46f3e8635e
updated lib/Makefile.am to use ENABLE_LIBLTDL
2017-02-09 16:30:28 +00:00
hyunghwan.chung
0178693f77
added --enable-libltdl to configure
2017-02-09 16:26:44 +00:00
hyunghwan.chung
c613b6955d
fixed a segfault bug when the source file cannot be opened
2017-02-09 15:56:51 +00:00
hyunghwan.chung
2a40be7742
updated the compiler to fix the jump instruction positions for break and continue upon instruction eliminations
2017-02-09 10:22:44 +00:00
hyunghwan.chung
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
2017-02-09 08:05:14 +00:00
hyunghwan.chung
2101bb38b4
renamed __assocPut: to __put_assoc:
2017-02-08 13:14:29 +00:00
hyunghwan.chung
a05793a66d
rewrote a few methods to use if/while instead of ifTrue:/whileTrue: in Collect.moo
2017-02-07 18:09:07 +00:00
hyunghwan.chung
5c07a48c5a
wrote code to handle dictionary expression and association expression notation
2017-02-07 17:40:34 +00:00
hyunghwan.chung
62eb6db83d
in progress of fixing a bug in instruction elimination
2017-02-06 17:53:33 +00:00
hyunghwan.chung
60c38a1ecb
added make_association, pop_into_association_key, pop_into_association_value byte codes to support assocation expressions
2017-02-05 15:05:25 +00:00
hyunghwan.chung
eb83c8d83a
started the first step to implement array expression support enclosed in #{ }.
...
added 2 new byte codes - MAKE_ARRAY, POP_INTO_ARRAY for implementation
2017-02-05 13:54:52 +00:00
hyunghwan.chung
98b6dd1118
enhanced the dynamic library loader a bit
2017-02-04 05:30:15 +00:00
hyunghwan.chung
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
2017-02-03 06:28:12 +00:00
hyunghwan.chung
ea6d48eb0e
improved the #include handling to remember the file loaded and use it when loading an includee file
2017-02-02 12:45:15 +00:00
hyunghwan.chung
5c755d68f5
rewrote whileTrue:, whileFalse:, and similar methods for BlockContext in an imperative style
2017-02-02 04:46:29 +00:00
hyunghwan.chung
07d8d0ea83
implemented simple optimization in compiling an if expression
2017-01-31 16:14:11 +00:00
hyunghwan.chung
22013650bb
added the jump_backward_if_true instruction.
...
added more do-while handling code
2017-01-30 16:48:42 +00:00
hyunghwan.chung
341966e373
added a little code for elimination of unneeded code generated
2017-01-29 07:29:58 +00:00
hyunghwan.chung
03ddf6b68d
added some code to compile the break statement
2017-01-29 07:14:36 +00:00
hyunghwan.chung
10ca940d72
added small amount of code to handle break & continue
2017-01-27 15:25:46 +00:00
hyunghwan.chung
b7a19a3b14
implemented the while expression handling. break and continue yet to be implemented
2017-01-25 13:57:14 +00:00
hyunghwan.chung
6209b13410
added the local return byte code - BCODE_LOCAL_RETURN -> it returns to the origin of the active context
2017-01-22 18:01:26 +00:00
hyunghwan.chung
e80b2bc572
enhanced the compiler to store some jump positions in a dynamical data structure when parsing the if expresson
2017-01-20 19:19:28 +00:00
hyunghwan.chung
5c6a5f4baf
deleted unneeded files
2017-01-19 17:33:27 +00:00
hyunghwan.chung
4a0cefacc3
added a new libltdl m4 file
2017-01-19 17:29:03 +00:00
hyunghwan.chung
c19674ce13
added/deleted new/unneeded files
2017-01-19 17:18:30 +00:00
hyunghwan.chung
002aa9a3f1
changed the compiler to emit PUSH_NIL when the braced block is empty for if
2017-01-19 17:12:16 +00:00
hyunghwan.chung
40ba50fc53
added primitive code to compile the 'if' expression
2017-01-18 17:17:05 +00:00
hyunghwan.chung
4a4d40dea1
enclosed a dyncall related line inside USE_DYNCALL
2017-01-16 14:46:07 +00:00
hyunghwan.chung
bc83b95acb
added some argument checks into ffi
...
added more string manipulation functiions
2017-01-16 14:42:39 +00:00
hyunghwan.chung
70f9976af3
added moo_duputobcharswithheadroom(), moo_dupbtoucharswithheadroom()
...
added moo_inttoooi() and made public moo_inttooow()
enhanced the ffi module a bit more
2017-01-15 17:53:37 +00:00
hyunghwan.chung
79198df35b
added MOO_OBJ_GET_XXX_SLOT() macros
2017-01-12 17:48:04 +00:00
hyunghwan.chung
750f529201
added more string duplication and conversion functions
2017-01-12 16:33:26 +00:00
hyunghwan.chung
ec3285da57
added more character conversion functions
2017-01-12 10:06:43 +00:00
hyunghwan.chung
d130ec02ec
added more code to ffi
2017-01-11 15:33:03 +00:00
hyunghwan.chung
f23486468d
removed unnecesary code from the ffi module
2017-01-10 14:34:54 +00:00
hyunghwan.chung
808586ca00
added the dyncall library detection into configure.ac
2017-01-10 14:27:31 +00:00
hyunghwan.chung
1612143499
added MOO_IN_SMPTR_RANGE(), MOO_SMPTR_TO_OOP(), MOO_OOP_TO_SMPTR().
...
refactored ffi a bit more
2017-01-10 13:56:19 +00:00
hyunghwan.chung
faf6ca28e5
added MOO_VMPRIM_OPENDL_PFMOD.
...
started refactoring ffi handling code
2017-01-10 10:50:26 +00:00
hyunghwan.chung
95885e4dec
fixed some wrong code
2017-01-09 14:52:15 +00:00
hyunghwan.chung
cd79383202
simple error handling in write handler
2017-01-09 13:48:33 +00:00
hyunghwan.chung
65f2f862f8
started taking ffi out of the main vm, putting it to a separate module
2017-01-09 13:41:11 +00:00
hyunghwan.chung
2528dcdbe5
changed the compiler to allow assignment to an argument in a method
2017-01-09 13:20:46 +00:00
hyunghwan.chung
7460ce819c
renamed *.st files to *.moo
2017-01-09 12:52:37 +00:00
hyunghwan.chung
68a455e128
fixed some build file issues
2017-01-09 12:16:51 +00:00
hyunghwan.chung
b2fb361df4
renamed stix to moo
2017-01-09 10:25:22 +00:00