Commit Graph

547 Commits

Author SHA1 Message Date
a20587537e minor code fixes 2021-03-27 10:32:23 +00:00
e46d7fa286 fixed minor flaws in the code 2021-03-25 16:53:05 +00:00
307bdee5cc added more code to implement simple exception handling 2021-03-02 15:58:13 +00:00
6631779768 added some code for throw 2021-02-28 17:00:28 +00:00
9409e8ec65 removed 'return' from where it's not needed 2021-02-28 06:43:22 +00:00
50148c7eab added the flags field to the context object 2021-02-24 16:57:26 +00:00
e61602082d added the try_catch instruction 2021-02-22 14:56:27 +00:00
05d7b73bdb enhancing the compiler to support (try ... catch ...) 2021-02-22 09:20:45 +00:00
13a24ee4bb trivial changes 2021-02-21 16:55:45 +00:00
378bae261a fixed some compiler bugs in processing weird if..elif..else expressions without body parts - (if true), (if false else), (if false elif true) 2021-02-18 15:48:44 +00:00
33db65a8b9 set the defailt logging mask to 0.
fixed wrong format specifiers in std.c
2021-02-11 14:14:49 +00:00
6789e4b3a4 fixed a bug in hcl_allocheap() 2021-02-11 09:35:38 +00:00
43322c6901 moved the heapsize parameter from hcl_open() to hcl_ignite() 2021-02-09 17:47:22 +00:00
816b900231 touched up code a bit 2021-02-09 15:06:41 +00:00
1d0c7a8bbc allowed vmprim.alloc_heap() to create a bigger heap than requested.
enhanced the standard implementation(std.c) to attempt HUGETLB if the requested heap size is over 1/2 of the huge page size
2021-02-09 14:54:54 +00:00
aa8f8fac2d removed unneeded code 2021-02-08 15:50:53 +00:00
1aeee25ac6 removed cb-impl.c and cb-impl.h 2021-02-08 15:42:24 +00:00
4b3e318428 used hcl_openstdwithmmgr() in hcl-s.c and deleted unneeded code 2021-02-08 09:41:40 +00:00
7d7c709591 initialized the io multiplexer properly in cb_vm_startup() 2021-02-08 09:16:53 +00:00
e67985e58f added std.c 2021-02-07 17:58:23 +00:00
037174ddb6 adding hcl_openstd() 2021-02-07 17:57:35 +00:00
ac58758da0 added some semaphore handling code 2021-02-05 15:22:39 +00:00
9c2f757e16 preparing to implement semaphores 2021-02-03 14:50:51 +00:00
81c9b25cad fixed some process management code 2021-02-02 23:43:12 +00:00
770de52eba fixed a flaw in post_lambda() in the compiler code 2021-02-01 13:26:48 +00:00
2d22b53c96 fixed some compiler bugs 2021-02-01 13:20:46 +00:00
65c23a3ff5 removed unneeded code
uniformize the naming of locptr, dbgl to dbgi
2021-02-01 03:32:09 +00:00
7d6436a4de enhanced the vm to supplement the error message with debug information 2021-01-31 18:46:13 +00:00
0568cb0ae3 removed some unneeded code.
changed the source input handler to set the name field for the main stream
2021-01-30 16:13:27 +00:00
db9e0f5248 cleaned up a bit 2021-01-29 17:24:13 +00:00
7fc4262d01 made enhancement to show location information for the ECALL runtime error 2021-01-29 12:39:31 +00:00
525078fbe5 removed unneeded code 2021-01-29 09:41:39 +00:00
d19fab7e3f renamed hcl_read2() and hcl_compile2() to hcl_read() and hcl_compile() respectively 2021-01-29 08:40:10 +00:00
d4fbd0a298 removed hcl_read() and hcl_compile().
in the next commit(), hcl_read2() and hcl_compile2() will get renamed to hcl_read() and hcl_compile() respectively
2021-01-29 08:35:31 +00:00
3dad8ce013 enhanced the compiler to support (continue) 2021-01-29 08:13:18 +00:00
624f2d02cd compiler enhancement in progress 2021-01-28 10:09:38 +00:00
c93ddd5042 more compiler code to store source locations of byte codes emitted 2021-01-28 08:17:50 +00:00
162d4431ca more ongoing compiler enhancements 2021-01-28 07:25:05 +00:00
745ce163a1 interim commit while enhancing the compiler 2021-01-27 16:11:56 +00:00
4a7e5dc44e enhanced the compiler a bit 2021-01-27 16:01:36 +00:00
d36c12e21a changing compiler code to preserve some debugging information 2021-01-27 08:47:08 +00:00
79d0385600 minor code change 2021-01-26 15:47:22 +00:00
8829e27c33 preparing to produce debug information 2021-01-26 10:10:18 +00:00
1a0594ac3f fixed a wrong field name in cb-impl.c 2021-01-26 04:25:40 +00:00
2e3fae05e4 fixed the reader and the compiler to process the a dic/array/byte-array item after a period in a data list properly 2021-01-25 15:23:24 +00:00
fbbdb6188e fixed bugs in compile_symbol() and read_vlist() 2021-01-25 14:24:00 +00:00
581b13aedd found a bug upon VM abortion. yet to fix it 2021-01-24 15:53:35 +00:00
41de130fe4 enhanced the new compiler to produce working bytecodes for the #() list 2021-01-24 15:45:28 +00:00
f3315811ed restored the module loading code in the new compiler. but this needs a total makeover 2021-01-22 15:07:47 +00:00
51e347889d the new compiler is becoming usable. but not complete yet.
added more string copy functions
2021-01-22 14:43:47 +00:00
58165aad49 updated lambda/return/return-from-home compiling code in the new compiler 2021-01-21 14:59:01 +00:00
16557a970c yet implementing the new compiler 2021-01-19 14:07:42 +00:00
e4ae7add8b coding a better compiler 2021-01-17 17:45:39 +00:00
58ec16aa0a corrected clean-up actions in read_object() in read2.c 2021-01-16 08:23:52 +00:00
b327791484 experimenting with the new reader 2021-01-15 09:12:28 +00:00
554667b227 modified code further to enhance the reader 2021-01-13 09:54:44 +00:00
9752533d12 changing code for the new reader and compiler 2021-01-12 09:06:25 +00:00
ad4c8e35d4 changing read2.c 2021-01-12 00:21:43 +00:00
963f162c4e more code to implement a new object reader 2021-01-10 16:04:36 +00:00
8936bb5bec changing code to improve the compiler 2021-01-09 16:53:47 +00:00
5d05984664 changing code to improve the compiler 2021-01-09 16:53:35 +00:00
24b96e4c29 attempting to preserve token location between the reader and the compiler 2021-01-06 09:37:29 +00:00
75ecff7aca removed unneeded code 2021-01-03 17:58:57 +00:00
6720640ed7 adding some work-in-progress code to store debugging information for generated byte codes 2021-01-03 13:51:23 +00:00
1828b4f29b fixed to reset hcl->sp before returning from hcl_execute() 2020-12-31 19:03:37 +00:00
c6145a2302 fixed an issue with an old compiler 2020-12-31 18:15:27 +00:00
42688f26ce renamed some struct member names which have not been changed since changes in the main part 2020-12-31 18:02:58 +00:00
11e831bbcc switching GC from semi-space copying to mark-sweep 2020-12-31 17:48:47 +00:00
fbb7ce853a added xma.c 2020-12-28 17:03:29 +00:00
5f771b6035 stop specifying explicit DEPENDENCIES by listing the .la files in LDADD/LIBADD 2020-11-16 13:07:15 +00:00
6b094588d5 added quadmath.h check to configure.ac 2020-11-15 10:32:34 +00:00
656e0150a9 cleaned up code and build files 2020-11-15 10:26:14 +00:00
0823ddc2d0 cleaned up build files 2020-11-15 09:56:06 +00:00
966888844b fixed an object protection mistake in hcl_divints() 2020-10-25 05:51:44 +00:00
164be69b9d minor whitespace removal from code 2020-10-15 13:47:52 +00:00
852543ee19 Added some incomplete code for process-switching 2020-10-15 12:57:05 +00:00
d02bf34322 removed irrelevant comments 2020-10-13 17:25:29 +00:00
27edbfdb91 removed the unneeded sp field from hcl_context_t 2020-10-13 17:20:01 +00:00
adb374f02d fixed non-local return behaviors 2020-10-13 14:44:00 +00:00
b9f78f7c13 working on return-from-home for non-local return 2020-10-10 17:36:33 +00:00
d127456da8 added hcl_block_t to express a base block. no more reuse of hcl_context_t for the base block 2020-10-09 07:14:32 +00:00
a69434a96f enhancing the compiler and hcl_execute() for better interactive use 2020-10-08 09:25:54 +00:00
9d5e580387 fixing compiler bugs regarding MAKE_FUNCTION and literal frame rebasing 2020-10-07 08:06:49 +00:00
0ffb5b239d debugging the compiler 2020-10-06 09:40:39 +00:00
dcae55ab70 fixing more bugs.. 2020-10-05 14:49:54 +00:00
e30cbc844c writing code for function activation using function-local literal frame 2020-10-05 09:37:26 +00:00
a28553b195 fixing types of some fields in hcl_context_t and hcl_function_t for clarity and consistency 2020-10-04 19:34:53 +00:00
1b07957718 fixed a gc error not fixed in the previous commit 2020-10-04 19:07:21 +00:00
2b786018d7 changing vm implementation a bit. this commit is buggy 2020-10-04 18:21:05 +00:00
c7e87698d0 still experimenting to find a good way to represent byte codes and literal frames in the interactive mode 2020-09-28 15:44:04 +00:00
b9ae46afff adding experimental changes for compiler enhancement 2020-09-24 08:24:47 +00:00
b8fd5c6712 experiments... 2020-09-22 09:19:53 +00:00
bfba16a757 restored the lost code for 'J' in fmt.c 2020-09-21 08:34:08 +00:00
e6be071a54 adding some experimental code 2020-09-19 11:55:58 +00:00
e8ac460f59 added hcl_add_ntime()/hcl_sub_ntime() 2020-09-03 06:21:01 +00:00
52aa942508 removed unneeded substitutions in configure.ac 2020-08-19 05:10:22 +00:00
1fc6f09909 changed --enable-unicode to --enable-wide-char in configure.ac and removed c++ stuffs 2020-08-18 03:03:45 +00:00
64b8a5b1ef changed ambiguous code in lib/fmt.c 2020-07-10 14:52:29 +00:00
51b52ca844 updated ax_pthread.m4 2020-02-27 07:57:19 +00:00
8af190ac46 fixed wrong prefix output for %# in fmt.c 2019-11-24 08:06:06 +00:00
6ba4cedd4a added hcl_oocu_t, hcl_ucu_t, hcl_bcu_t 2019-11-19 13:59:24 +00:00
9b2f40c282 renamed hcl_getrbtstyle() to hcl_get_rbt_style() 2019-11-18 14:09:57 +00:00
8b96d6fc0f added HCL_BITSOF(x) 2019-09-26 05:24:13 +00:00
d53151a080 added hcl_inttouintmax()/hcl_inttointmax()/hcl_uintmaxtoint()/hcl_intmaxtoint() 2019-08-13 07:15:12 +00:00
947dd4c5d3 added static assertion macros 2019-08-06 03:08:36 +00:00
21ec6f6c5f not useful macro trimming 2019-06-24 11:38:58 +00:00
705aaea0cc not useful macro reordering 2019-06-24 11:36:07 +00:00
e27058d771 added the _instsize field to hcl_t, hcl_server_t, hcl_client_t 2019-06-21 12:36:25 +00:00
ff685bac79 fixed a bug and a typo introduced in the earlier commit of json.c 2019-06-15 05:31:29 +00:00
7462427af4 touched up json processor 2019-06-11 16:27:39 +00:00
3af707bc07 fixed a buffer management bug in json.c 2019-06-11 15:07:29 +00:00
02042b5e47 removed unused functions 2019-06-10 08:52:41 +00:00
19bba8d7e4 diverted w/W to k/K in format_stack_args() in the non-unicode mode 2019-06-02 15:58:12 +00:00
20fb7f54b7 fixed a flaw in print_ucs() in fmt.c
renamed ENABLE_HCLEX to ENABLE_HCLX
2019-06-02 06:42:47 +00:00
16c7c290ce added hcl_prufmtv() and hcl_prbfmtv() 2019-06-02 05:06:08 +00:00
77f8047af8 added fmt.c 2019-06-01 14:05:45 +00:00
a161944682 refactored fmt code 2019-05-31 10:54:13 +00:00
4ce47cb435 added the bin directory and moves files for binary commands into it 2019-05-14 04:21:35 +00:00
6e5a92a041 refined the msb positioning functions
migrated hcl_isint()/hcl_isbigint() to hcl-prv.h
2019-05-04 17:56:45 +00:00
a58f9e47b0 added __cplusplus when determining inline availability 2019-05-03 08:42:52 +00:00
727865dcc5 enhanced hcl_bswap16/32/64() 2019-05-03 07:39:01 +00:00
882ca9358c refined some endian conversion macros with proper type casting 2019-05-03 03:20:10 +00:00
c3359bac1d redefined endian conversion routines 2019-05-02 07:58:36 +00:00
2255d894b0 added --enable-full-liw to configure.ac 2019-04-17 05:51:36 +00:00
0cbf9e4edf added hcl_flushio() and HCL_IO_FLUSH 2019-04-17 05:37:56 +00:00
2d9f5b51ad added sys.time, sys.random, sys.srandom.
removed test-bi.sh
wrote a simple bigint test program into test-bi.hcl
2019-04-17 03:46:39 +00:00
9045220ef8 changed hcl_inttostr()
touched up log output and formatted output functions
2019-04-16 15:46:00 +00:00
dc3c393247 added -v to hcl. found a bug of a new line printed when printf is called. need to debug it 2019-04-16 09:35:56 +00:00
7f7a2685d0 synchronized the bigint functions with moo 2019-04-16 09:06:30 +00:00
49ba5ed881 added typecasting to some hcl_xxxx() macros 2019-04-13 01:02:20 +00:00
b14668d3d5 optimized bigint division a bit 2019-03-25 13:01:05 +00:00
346f3c35f9 changed PUT_BYTE_IN_HEX() 2019-03-19 13:58:40 +00:00
02c468bd1f renamed inconsistent function names 2019-03-19 13:29:59 +00:00
1a6aaf1831 added hcl_byte_to_bcstr().
implemented k/K/w/W in the formatted output function
2019-03-18 15:37:07 +00:00
258567dca9 fixed wrong conditionals in hcl-utl.h 2019-03-07 12:54:23 +00:00
4e4ac37dec added section titles to hcl-utl.h 2019-03-06 01:57:06 +00:00
fd99432186 redefined hash functions 2019-03-06 01:50:46 +00:00
ad985e3862 fixed indentataion 2019-03-05 06:39:10 +00:00
947f6080d1 changed hcl_hash_bytes() to use fnv-1 hash 2019-03-01 09:12:34 +00:00
d75b34126e changed hcl_hash_bytes() to sdbm hash 2019-03-01 07:51:53 +00:00
2b14218a43 fixed a bug in bigint division 2019-02-20 17:38:56 +00:00
b39ce631b3 added hcl_fill_uchars()/hcl_fill_bchars() 2019-02-18 17:18:21 +00:00
fe81119228 changed project url 2019-02-01 16:41:57 +00:00
8994e67067 fixed a bug of not honoring precision specified with %.* in computing string length given for 's' and 'S' 2019-01-31 09:12:24 +00:00
6cdec68b01 set UNTYPED if no type is given in hcl_logbfmtv() and hcl_logufmtv() 2019-01-28 13:51:27 +00:00
1fa0d684bc corrected a minor coding flaw in number.c 2019-01-09 16:00:54 +00:00
0011937699 removed unnecessary restoration code in string_to_fpdec() 2019-01-08 08:57:37 +00:00
de44f7e57c changed hcl_mulints() a little bit 2018-12-28 08:09:01 +00:00
c447bde889 fixed a gc bug in bigint.c 2018-12-27 15:46:31 +00:00
985ec11cae fixed wrong capacity computation for hcl->inttostr.t and hcl->inttostr.xbuf in bigint.c 2018-12-20 14:12:36 +00:00
e935ba7221 fixed a bug in alloc_numeric_array() that allocated the extra 'len' bytes instead of a single extra 'unit' bytes 2018-12-10 09:26:34 +00:00
46405428f3 fixed the wrong pfmod prefix in Makefile.am 2018-11-03 16:02:38 +00:00
1a60b897f1 updated some wrong prefix 2018-11-03 15:59:49 +00:00
140682dfc4 reorganized some callback functions into cb-impl.c 2018-11-03 15:57:14 +00:00
8537f8a67f interim commit while adding vmprim.assertfail 2018-11-03 14:05:37 +00:00
4e1ad5b5b0 fixed the wrong unit used for interval passed to SetWaitableTimer() 2018-11-02 14:24:21 +00:00
7f0428d288 cleaned up some code 2018-11-02 14:15:28 +00:00
19d39ca20a renamed USE_MACH_O to USE_MACH_O_DYLD 2018-10-14 12:01:51 +00:00
7001dfa037 added localtime_r check.
added SA_SIGINFO check
2018-10-14 10:28:28 +00:00
9e72cb1ca3 enhanced pfmod loading code 2018-10-14 10:13:24 +00:00
8459db3adc supported mach-o/dyld loader 2018-10-14 09:56:12 +00:00
2aaff1b317 added 2 lines of comments 2018-08-08 03:47:12 +00:00
d7f2458ed0 removed unremoved code in the previous commit 2018-08-08 03:44:11 +00:00
9a186711e4 dropped cli-mode code. it turned out to be not effective 2018-08-08 03:41:17 +00:00
f87ebd527e Added a work file 2018-08-07 16:05:41 +00:00
28cc69ea21 wrote more compiler mode to handle input in the cli mode 2018-08-07 11:04:38 +00:00
fe28d23307 added more experimental code for the cli mode 2018-08-06 10:41:38 +00:00
256472b2ea fixed many bugs in cli mode reader 2018-08-05 18:46:54 +00:00
0634bf26b3 enhanced the cli-mode reader a bit 2018-08-04 00:59:35 +00:00
25243fc7af added experimental code to execute an external command 2018-08-02 17:09:32 +00:00
f90adb468e add a bit of code into the cli mode reader 2018-07-31 15:51:16 +00:00
d5eb6a85e5 hmm.. just a few lines of cli mode code 2018-07-30 15:37:03 +00:00
9e3ddd1e2c added more code to read_object_in_cli_mode() 2018-07-29 08:01:43 +00:00
8c4b56002d started adding an new experimental reader 2018-07-29 07:27:10 +00:00
1b59610444 added hcl_getsynerrnum() and enhanced EOF handling 2018-07-28 04:08:09 +00:00
4280387771 added some type castings and changed the type of two variables for iteration 2018-07-01 13:17:42 +00:00
34e5508881 changed the way to set/unset O_NONBLOCK & O_CLOEXEC 2018-06-29 06:27:38 +00:00
1d6951f22d fixed MOO_SMOOI_TO_OOP to pacify clang about the warning 'warning: shifting a negative signed value is undefined' 2018-05-28 09:49:32 +00:00
af709feb96 removed ctx2 & ctx3 from hcl_tmr_event_t 2018-05-03 06:14:10 +00:00
5bbe3470fd fixed character handling in json.c 2018-04-26 09:31:15 +00:00
b0d302baec converted a unicode character to utf8 stream in the bch mode when handling \u or \U in json.c 2018-04-26 09:18:49 +00:00
baae283222 change to print header in backtrace 2018-04-26 06:36:49 +00:00
71da060d29 fixed the stack backtrace function 2018-04-26 06:35:43 +00:00
a07f943dbc added libunwind interface support for stack frame backtracing 2018-04-26 04:50:40 +00:00
deb53399a4 introduced the new type hcl_bitmask_t 2018-04-26 04:39:20 +00:00
727f612b38 changed to null-terminate the intermediate token all the time in json.c 2018-04-25 16:12:59 +00:00
687d633c15 changed to call lt_dlinit() and lt_dlexit() as necessary when libltdl is enabled 2018-04-25 04:12:13 +00:00
bf030731fd added '\n' to is_spacechar() 2018-04-24 05:24:58 +00:00
527f48fe80 added to handle a character literal 2018-04-23 14:30:00 +00:00
b6df00f2d2 added more error checks 2018-04-23 09:40:26 +00:00
407b469ec2 finished wring a primitive standalone json parser 2018-04-23 09:16:27 +00:00
c6e4aa0702 add some json parsing code 2018-04-22 18:18:45 +00:00
fa726cd82b renamed hcl_json_t to hcl_jsoner_t 2018-04-21 05:36:06 +00:00
f87fdba5cb added json related files 2018-04-21 02:13:53 +00:00
7c886ae2e3 added hcl_setinloc() and called this on each .SCRIPT command received in the server 2018-04-12 02:50:37 +00:00
9a1b20a47d enhanced the hcl server to write back an error message for input-phase errors 2018-04-12 02:22:17 +00:00
436d67b5eb improved error message handling in hcl server 2018-04-11 09:44:29 +00:00
64acfe3aec restructured client and server code into a single library libhclex.
also migrated socket related functions into the library
2018-04-10 13:57:17 +00:00
dfee95436f touched up an error message shown for an invalid hashed literal encountered whose first character after # is invalid 2018-04-10 10:10:50 +00:00
13ecb7e337 exported hcl_server_proto_feed_reply() 2018-04-10 09:17:00 +00:00