Commit Graph

526 Commits

Author SHA1 Message Date
hyunghwan.chung
a1de67b513 deleted unneeded lines 2018-01-25 09:35:50 +00:00
hyunghwan.chung
7cba31e8f9 added Socket>>writeBytes:offset:length: 2018-01-24 13:29:36 +00:00
hyunghwan.chung
625e2fbcdb attempted to count watchers in Scoket 2018-01-24 10:31:34 +00:00
hyunghwan.chung
b823b0b218 included sys/types.h in configure.ac when testing socket address types 2018-01-24 02:48:05 +00:00
hyunghwan.chung
e33ea4321e added moo_backuperrmsg() 2018-01-19 17:44:07 +00:00
hyunghwan.chung
d54552aff8 changed configure.ac to print more info 2018-01-19 17:33:35 +00:00
hyunghwan.chung
c2504848e5 changed Socket.moo a little 2018-01-19 13:37:38 +00:00
hyunghwan.chung
80e909caf1 regenerated build files 2018-01-19 13:31:44 +00:00
hyunghwan.chung
9a49b4fa53 updated the default definition of moo_sa_family_t 2018-01-19 13:29:15 +00:00
hyunghwan.chung
d3a57db467 refactored code for legacy platforms 2018-01-19 09:33:47 +00:00
hyunghwan.chung
84e91d5682 removed the forced -fPIC from mod/Makefile.am 2018-01-19 08:45:25 +00:00
hyunghwan.chung
74c5a1bb88 regenerated build files 2018-01-19 08:28:17 +00:00
hyunghwan.chung
ca182c122c added the syserrstrb and syserrstrb callback. either one must be supplied.
added some conditionals for nanosleep, strerror_r, pthread
2018-01-19 08:26:58 +00:00
hyunghwan.chung
741d45cf0a changed the socket module to set socket descriptors to be CLOEXEC and NONBLOCK 2018-01-18 16:27:17 +00:00
hyunghwan.chung
08cc62478b switched to use AX_CHECK_NUMVALOF() to detect PATH_MAX 2018-01-17 14:54:16 +00:00
hyunghwan.chung
a7b0814551 fixed code a bit for a legacy platform and compiler 2018-01-17 02:57:03 +00:00
hyunghwan.chung
0ba4764c18 fixed a wrongly commented line 2018-01-17 02:37:04 +00:00
hyunghwan.chung
11290dce63 beautified the autoconf code snippet to define the value of PATH_MAX 2018-01-16 23:54:17 +00:00
hyunghwan.chung
bfa190a4fa added autoconf code to define MOO_PATH_MAX is PATH_MAX is defined in limits.h 2018-01-16 15:30:10 +00:00
hyunghwan.chung
8eae9095c1 made an accepted socket non-block 2018-01-14 15:38:06 +00:00
hyunghwan.chung
2255425b3f fixed a bug in socket accept 2018-01-14 15:11:53 +00:00
hyunghwan.chung
2b56b1c2b0 added more socket functions 2018-01-14 15:01:56 +00:00
hyunghwan.chung
38ac31d307 added a function to return an address length given a socket address object.
fixed pf_connect to get the right address argument
2018-01-12 16:06:05 +00:00
hyunghwan.chung
b95102f953 added socklen_t test and sa_family_t test into configure.ac 2018-01-11 16:29:43 +00:00
hyunghwan.chung
b31049f808 added byteorder change functions and macros 2018-01-10 14:39:31 +00:00
hyunghwan.chung
4666b5efff added partital socket address conversion routines to sck-addr.c 2018-01-10 14:32:21 +00:00
hyunghwan.chung
77942761f5 added various checks related to socket address to configure.ac and regenerated build files 2018-01-09 15:27:39 +00:00
hyunghwan.chung
68259e735f experimented on setting the number of fixed fields forcibly in a module import function - sck.addr, SocketAddress 2018-01-09 13:43:44 +00:00
hyunghwan.chung
5b7ad01194 added the moo_compoochars() macro 2018-01-08 04:31:10 +00:00
hyunghwan.chung
31ea41a895 fixed bugs in moo_compXXX() functions
added moo_compbchars() and moo_compuchars()
2018-01-08 03:33:24 +00:00
hyunghwan.chung
31f40812f5 attempted to add SocketAddress 2018-01-07 15:14:15 +00:00
hyunghwan.chung
9ae27ee39a checked the number of instance/class variables against the internal limit 2018-01-07 14:59:54 +00:00
hyunghwan.chung
171b02449e enhanced set_syntax_errbmsg() to set_syntax_errbfmt().
collapsed three separate syntax error code to a single code MOO_SYNERR_INHERITBANNED.
added moo_seterrbfmtv() and moo_seterrufmtv() for internal use
2018-01-07 08:00:23 +00:00
hyunghwan.chung
e9b33016a4 disallowd a non-pointer object to inherit a pointer object with instance variables 2018-01-06 17:42:42 +00:00
hyunghwan.chung
de1f8c9551 debugged handling of class(#type(N)) processing 2018-01-06 04:18:10 +00:00
hyunghwan.chung
f4875ba51d supporting fixed type size specification for a nonpointer variable object like class(#byte(30))). work still in progress 2018-01-05 17:46:10 +00:00
hyunghwan.chung
68f67cf595 added experimental code for builtin object equality test, still commented out 2018-01-04 15:42:29 +00:00
hyunghwan.chung
506c6900e0 changed basicShift and basicFill primitives not to validate source position and destination position when count is <= 0 2018-01-04 10:07:42 +00:00
hyunghwan.chung
f0df2fcd92 changed a variable name in Socket.moo 2018-01-03 15:33:09 +00:00
hyunghwan.chung
15f27702f1 minor changes to IP6Address>>fromString: 2018-01-03 15:01:13 +00:00
hyunghwan.chung
9a2de69aae removed unneeded blank lines 2018-01-03 07:18:50 +00:00
hyunghwan.chung
8f69172898 revised moo_compucharsucstr() and similar functions 2018-01-03 06:56:41 +00:00
hyunghwan.chung
5474ae242d added Apex>>basicMoveFrom:with:count: and Apex>>basicShiftFrom:to:count: 2018-01-02 16:25:37 +00:00
hyunghwan.chung
2a4314c640 fixed a wrong comment in Socket.moo 2018-01-01 15:59:34 +00:00
hyunghwan.chung
907edeb45b attempted to add IP6Address>>fromString 2018-01-01 15:56:55 +00:00
hyunghwan.chung
277559684b added sck-addr.c 2018-01-01 05:14:55 +00:00
hyunghwan.chung
a594dda529 changed exception handling in Socket>>fromString: 2017-12-31 16:59:48 +00:00
hyunghwan.chung
27dbedbc50 fixed the invalid memory access issue in moo_compucharsucstr() and similar functions.
added the log.default_type_mask field 
restructured the builtin primitive function table
2017-12-31 16:46:52 +00:00
hyunghwan.chung
c4daf616f0 fixed a bug of setting a byte object field wrongly in pf-basic.c 2017-12-31 03:19:50 +00:00
hyunghwan.chung
d0b20bee08 added comparision to the Character class 2017-12-30 19:07:31 +00:00
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