Commit Graph

811 Commits

Author SHA1 Message Date
10934db873 removed an unneeded function 2021-11-24 14:08:25 +00:00
1712858fe9 changed emit_variable_access() 2021-11-24 02:45:28 +00:00
67c9bcbbe4 enhanced variable access code in comp.c 2021-11-23 15:52:01 +00:00
7521512db1 improving find_variable_backward() to resolve instance variables 2021-11-23 14:42:20 +00:00
dbdb694974 changing indexed variable access code 2021-11-23 02:37:58 +00:00
6d9f2cc91a fixed the wrong assertion in find_variable_backward() in comp.c 2021-11-21 16:16:59 +00:00
4a0ecfa0f1 improving the compiler code 2021-11-21 16:02:39 +00:00
b78513ad0a fixed a minor typecasting flaw 2021-07-24 15:28:59 +00:00
28bac46b39 added HCL_LOG_TARGET_BCS and HCL_LOG_TARGET_UCS 2021-07-19 18:59:17 +00:00
08cf4548bb reworked on HCL_LOG_TARGET 2021-07-19 07:11:41 +00:00
59be44fa34 work in progress 2021-06-29 11:51:08 +00:00
6b476b5c6e more code to implement class 2021-06-27 17:47:51 +00:00
2f2baf2f59 fixed initialization of hcl->nil_process
got rid of HCL_CODE_MAKE_CLASS and merged its feature to HCL_CODE_CLASS_ENTER
2021-06-25 16:07:29 +00:00
2fbb2eda6c wrote more code to support classes 2021-06-25 15:19:11 +00:00
5cd8bc15ed added the class_enter and class_exit instructions - partially implemented yet 2021-06-19 17:19:24 +00:00
2141768b6f changed compile_return() to cater for exception handling 2021-06-18 19:07:36 +00:00
c994eb6fed work in progress - enhancing compiler to support class definition 2021-06-18 18:54:50 +00:00
90b6603567 experiment to convert an error from a primitive function to an exception 2021-06-18 07:10:38 +00:00
0f1df4684a making a useless commit 2021-06-07 01:11:17 +00:00
75b6e3cc81 wrote some comments 2021-06-02 16:28:34 +00:00
bb72984905 more code to implement class 2021-06-01 09:50:35 +00:00
184212b6a0 implementing defclass 2021-05-31 16:20:18 +00:00
d086d7bd4b trying to change some code 2021-05-31 08:59:18 +00:00
b41be3e5c4 added some code to handle defclass 2021-05-29 05:44:29 +00:00
6cf198dbc5 minor indentation fix in std.c 2021-05-23 18:23:18 +00:00
5b26ef46b1 some code for class instantiation 2021-05-21 16:21:23 +00:00
03cb4c67fb implementing make_class instructoin 2021-05-21 09:59:35 +00:00
a9abaf5623 adding va-count, va-get, va-context for handling variable arguments 2021-05-16 10:32:27 +00:00
3f1e5f297f added process termination primitives 2021-05-15 11:19:52 +00:00
b1f7ab6538 implemented multiple return values assignment with set-r 2021-05-15 05:31:36 +00:00
ebda2ffa0a enhanced compile_return() to handle 'return' differently in a function block containing return variables 2021-05-13 15:54:30 +00:00
550e39e21e some more code to support multiple return values via return variables 2021-05-13 14:43:40 +00:00
faea7b60df writing code for return variables support 2021-05-11 15:04:53 +00:00
391d62511b writing code to implement return variables 2021-05-09 15:32:54 +00:00
01719d0056 enhancing the compiler to support the variable argument list with the ellipsis 2021-05-07 08:53:01 +00:00
44d2c067e1 fixed issues related to the new make_block, make_function instruction scheme 2021-05-06 17:44:58 +00:00
8430090d5d fixing bugs 2021-05-06 14:47:37 +00:00
15fdedcfae updating code to handle the new make_block, make_function scheme 2021-05-06 08:14:00 +00:00
c37b695a76 fixing bugs introduced for block temporaries sheme 2021-05-05 17:37:26 +00:00
bd3730fd12 changed the block temporaries scheme 2021-05-05 14:37:01 +00:00
f954199d38 changing the encoding scheme to store the block temporaries 2021-05-04 09:48:19 +00:00
5d83fdbfe2 trying to support variable arguments and return variables 2021-05-03 15:31:19 +00:00
c65c384d59 fixed a bug in prepare_new_context() and fork handling 2021-05-01 11:26:59 +00:00
3e18319619 removed two unused variables 2021-04-24 13:53:50 +00:00
999024e54b added hcl_compile_flag_t 2021-04-24 13:50:51 +00:00
e716c8bba9 fixed a bug of not providing the number of temporaries when arraning the initial context 2021-04-23 15:46:35 +00:00
38b7178f80 changed code for emit_indexed_variable_access() 2021-04-23 08:27:23 +00:00
3224989b99 try-catching working in the top-level now. implemented a way to secure space for top-level temporary variables 2021-04-23 07:17:40 +00:00
6c2e0df741 coding the compiler to handle an exception variable in the catch part 2021-04-22 09:35:26 +00:00
030a71c7cd trying to implement the exception variable in catch 2021-04-22 00:00:12 +00:00
4ff6fff433 fixed a flaw in collect_local_vardcl(). 2021-04-20 16:17:15 +00:00
5a519faf77 removed a duplicate line 2021-04-20 14:11:00 +00:00
2655d7f0b0 updated HCL_PROCESS_NAMED_INSTVARS 12 to 13 2021-04-20 13:45:22 +00:00
5aa6506106 simplified code a bit 2021-04-18 18:02:02 +00:00
cfa019a16d fixing code to implement exception handling 2021-04-14 16:20:18 +00:00
cb917ff44b working on try-catch implementation 2021-04-11 15:45:01 +00:00
5537e1850a reimplementing try-catch 2021-04-11 15:08:27 +00:00
08149767b5 improving function block and control block handling in the compiler code 2021-04-09 08:22:40 +00:00
8aa9ada771 committing broken interim code 2021-04-09 01:23:08 +00:00
4761e76c07 more robust error handling in std.c 2021-03-30 06:13:46 +00:00
042fbbb880 added a few string formatting functions 2021-03-30 05:37:00 +00:00
270c9a434b attempted to emulate socketpair() where it's unavailable 2021-03-30 01:37:36 +00:00
68ad99eca7 added hcl_dupucstr(), hcl_dupbcstr() 2021-03-28 18:12:07 +00:00
9f89bd7c1b some more code cleanup 2021-03-28 03:44:27 +00:00
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
ae3745d5f3 added HCL_MOD_INCTX to hcl
added HCL_SERVER_MODULE_INCTX to hcl server
2018-04-09 15:54:54 +00:00
40aaa13e8e fixed an issue in logfmtv.h 2018-04-09 09:11:24 +00:00
8f3191011c fixed build files again 2018-04-09 06:11:57 +00:00
16ac5fe68d fixed build files 2018-04-09 05:36:32 +00:00
f73bd64bc7 fixed missing short-form reply handling in lib/main-c.c 2018-04-09 02:42:05 +00:00
480fd879ee renamed quo to div and added mdiv 2018-04-08 17:56:25 +00:00
69a68e3fa4 added the 'rem' and 'mod' primitive functions 2018-04-08 17:35:21 +00:00
e92407221f renamed some function names for naming consistency 2018-04-07 15:54:16 +00:00
746dceff43 added lambda? predicate 2018-04-07 15:21:05 +00:00
3d344fc649 set salit.size to 0 forcibly in get_symbol_array_literal() 2018-04-07 15:09:02 +00:00
bec9600463 fixed an error handling issue in get_symbol_array_literal() 2018-04-07 06:28:54 +00:00
54015185ab added many type checking predicates 2018-04-07 04:43:56 +00:00
726b8026b3 added the abs primitive function 2018-04-07 02:28:38 +00:00
9c23d72cec renamed some encoding functions for consistency 2018-04-06 16:33:17 +00:00
01335db507 remove some spaces 2018-04-06 15:16:23 +00:00
69a5ef94bd changed hcl_seterrxxx() functions not to set the errnum field again for failures in internal operations, especially in hcl_convxxx() 2018-04-06 14:59:44 +00:00
8726768be2 changed hcl_seterrxxx() functions 2018-04-06 14:37:40 +00:00
4ff11f147c changed notation from #{} to #() 2018-04-06 14:21:47 +00:00
913883f31a fixed an issume of producing a wrong closing bracket for a dictionary objecT 2018-04-06 08:55:23 +00:00
e41a02b957 changed hcl to be more json friendly including changing various notations and grammars 2018-04-06 08:33:25 +00:00
f1871fbe45 shortened bitwise-xxxx to bit-xxxx 2018-04-05 07:11:21 +00:00
3f614517a3 added primitive functions for bitwise operations on integers 2018-04-05 04:56:52 +00:00
46dc1968ad implemented sqrt for fixed-point decimal.
fixed a bug in getting sqrt of a negative number
2018-04-04 04:41:23 +00:00
d5097b998a added partial sqrt function 2018-04-03 14:02:40 +00:00
67c16596a8 added error messages in more places of bigint.c 2018-04-03 08:11:56 +00:00
9500b97c69 fixed a sign check bug in bigint.c 2018-04-03 07:49:46 +00:00
d4460c1b7c fixed a bug and a wrong assertion in mul_nums() 2018-04-02 12:59:37 +00:00
0d350e9707 added hcl_mltnums() which scales the result according to the first parameter 2018-04-02 12:52:10 +00:00
dd73887115 added hcl_genums(), hcl_gtnums(), hcl_lenums(), hcl_ltnums(), hcl_eqnums(), hcl_nenums() 2018-04-02 12:28:09 +00:00
2d7fd04f25 implemented %f for sprintf 2018-04-02 08:47:50 +00:00
6ed4d2e705 added hcl_truncfpdevcal().
fixed bugs in sprintf
2018-04-01 17:09:07 +00:00
16b96e49bc made code a bit win32 friendly 2018-03-31 07:10:43 +00:00
8df5087b9d enhanced the multiplication function to truncate the resulting fixed-point decimal to the equal precision to the operands 2018-03-30 18:11:11 +00:00
e466c6b68a disallowed fixed point decimal literal with no digit after the point.
fixed a bug in hcl_divnums
2018-03-30 17:37:40 +00:00
2253d09a18 implemented basic arithmetic operations for fixed-point decimals 2018-03-30 15:43:09 +00:00
dae10ef59c fixed an escaping problem in printing a character or a string object 2018-03-29 04:47:03 +00:00
3fb9b31192 fixed reply encoding in the unicode mode in the server 2018-03-29 03:08:43 +00:00
116512ae9d started adding fpdec calculation functions 2018-03-28 16:40:42 +00:00
3a30ffda7b implemented reading and printing of fixed-point decimal number. primitives yet to be written 2018-03-28 08:57:49 +00:00
25253fc0e1 added neq? nql? nqk? for convenience over using not.
added >, >=, <, <=, =, /=
2018-03-28 03:15:20 +00:00
e5fbf1967f added hcl_get_sockaddr_info() 2018-03-25 02:53:03 +00:00
0e2c892d8b enhanced server's error handling a bit 2018-03-24 06:06:01 +00:00
e7726ac3db added more error checks 2018-03-23 10:02:08 +00:00
8626c6c7aa improved error handling in main-c.c 2018-03-23 02:51:38 +00:00
b845bee716 checked O_CLOEXEC availablity 2018-03-22 09:53:16 +00:00
f575bc6add changed the server code to support multiple listening addresses 2018-03-22 09:46:44 +00:00
b7590398f1 implemented simple idle timeout on the server.
added --shutwr to the sample client code
2018-03-22 07:15:19 +00:00
41b7237ae5 improved the client sample code a bit 2018-03-22 06:08:44 +00:00
b3c0640ba6 fixed a bug in main-c.c 2018-03-22 04:31:18 +00:00
8be5e3fd83 moved the socket address convertion functions to the main hcl library
enhanced the client library and samples
2018-03-22 03:42:17 +00:00
57f8c8969a touched up hcl client code 2018-03-21 15:17:46 +00:00
f675835a11 added reply handler 2018-03-21 10:38:10 +00:00
69e50af80f added more client code 2018-03-20 14:54:32 +00:00
f9cf5e6554 added some hcl client code 2018-03-20 10:36:00 +00:00
11dbde8380 fixed a bug in the default log callback 2018-03-19 09:50:56 +00:00
46ff9acfe2 exposed hcl_addbuiltinprims(). 2018-03-19 09:22:12 +00:00
89f3fc2d08 started some code for hcl client 2018-03-18 15:29:16 +00:00
5aa3a72eea renamed main2.c to main-s.c
started adding client code
2018-03-17 16:07:51 +00:00
1968f11cdf fixed a logmask handling issue 2018-03-17 11:57:02 +00:00
c41c3a12af enhanced the inclusion path handling in the sample hcl server code
added HCL_SERVER_SCRIPT_INCLUDE_PATH
added optstate field in hcl_server_worker_t
2018-03-17 05:44:40 +00:00
b3cef9ec5c added the used field to hcl_server_wid_map_data_t
started implementing .SHOW-WORKERS and .KILL-WORKER
2018-03-16 17:27:24 +00:00
36ee74f0ec enhanced the log_write callback to use as few write system calls as possible.
changed the hcl server to raise an error if .SCRIPT is not followed by actual script text on the same line
2018-03-16 16:20:40 +00:00
0b7acc1fd8 Added HCL_SERVER_WORKER_MAX_COUNT
changed the main server loop to purge dead clients as soon as the multiplex is finished
2018-03-16 14:57:34 +00:00
70ef4b6299 enhanced the hcl server code to assign an ID to each worker created 2018-03-16 05:56:05 +00:00
a4e05ead91 fixed the hcl server to apply some settings to underlying hcl 2018-03-16 01:46:59 +00:00
2b2da9e780 added the empty hcl-c.h and hcl-c.c files 2018-03-15 15:27:34 +00:00
5dcb376907 enhanced the hcl server implementation further while fixing a couple bugs too 2018-03-15 15:23:51 +00:00
3228386c2c implemented actor_max_runtime primitively using timer events 2018-03-15 10:30:06 +00:00
6f69e018c4 added timer functions 2018-03-15 08:35:38 +00:00
b56218ee25 enhanced the error handling of address conversion failure 2018-03-14 15:01:07 +00:00
1736eb5c8b enclosed the value of a macro in parenthesis 2018-03-14 14:56:15 +00:00
b7434aa976 fixed a potential in set_err_with_syserr in hcl-s.c 2018-03-14 14:54:10 +00:00
de534fed83 cleaned up code a bit 2018-03-14 14:46:23 +00:00
25b71a4800 exported hcl_seterrbfmtv(), hcl_seterrufmtv()
added hcl_server_seterrbfmt(), hcl_server_seterrufmt(), hcl_server_seterrbfmtv(), hcl_server_seterrufmtv()
added socket address conversion functions
2018-03-14 14:40:05 +00:00
72fe88548f added .DATA to the chunked output 2018-03-14 10:39:36 +00:00
39749ab847 put the hcl server code into a library 2018-03-14 10:14:38 +00:00
773f09aab2 added hcl-s.c and hcl-s.h 2018-03-13 10:20:50 +00:00
34a23ef986 moving code in main2.c to hcl-s.c 2018-03-13 10:20:33 +00:00
6ff6286ecf speeded up termination
added functions to manipulate server options
2018-03-13 02:02:25 +00:00
3ba32a615d exported hcl_conv_ucs_to_bcs_with_cmgr() and similar functions
enhanced the sample server program
2018-03-12 16:45:42 +00:00
d51ad1cd6a Added partial sample program to accept requests over a socket 2018-03-12 10:39:13 +00:00
a2d8206c58 removed a duplicate macro definition in hcl-prv.h 2018-03-11 17:08:02 +00:00
27e1e55a7c added hcl_getip(), hcl_getbclen(), hcl_getlflen()
renamed vm_checkpoint to vm_checkbc while adding a new parameter
2018-03-11 11:16:28 +00:00
b9224dfa97 added a sample line commented out 2018-03-11 03:12:38 +00:00
f9e60cea28 changed the position of abortion check 2018-03-11 03:05:42 +00:00
536f7fd9f2 added hcl_abort()
taken out vm_startup and vm_cleanup from hcl_vmprim_t and moved them to hcl_cb_t
2018-03-10 17:53:44 +00:00
986e02ae69 fixed return types of io handlers in main.c 2018-03-09 05:12:55 +00:00
3acdae2cdf changed the hcl_ioimpl_t prototype to return 'int' instead of 'hcl_ooi_t'.
changed the io arguments to have a new 'xlen' field that holds the result of IO operations where 0 means end of stream
2018-03-09 05:05:09 +00:00
a60bd0c898 renamed hcl_purgeatdic() to hcl_zapatdic()
exposed hcl_moveoop() 
extended the meaning of the kernel bits in the object flags
extended hcl_pfbase_t to include the type - one of HCL_PFBASE_FUNC, HCL_PFBASE_VAR, HCL_PFBASE_CONST. HCL_PFBASE_CONST not fully implemented yet
2018-03-08 14:18:30 +00:00
02b02865ac work in progress to add the hcl_purgeatdic() function 2018-03-08 10:00:57 +00:00
de7db3e3bd updated the build files to utilize the standalone libltdl library if available 2018-03-07 07:50:28 +00:00
474d48a211 changed configure.ac to reset DL_LIBS if it's set to 'none required' 2018-03-05 04:39:57 +00:00
3eac18548c added mmap/munmap check to configure.ac 2018-03-05 04:08:11 +00:00
2c1b4448be changed the notatin of an error literal from #\eNNN to #eNNN.
changed the notation of a smptr literal from #\pXXXX to #pXXXX
2018-03-05 03:47:18 +00:00
e3b5d33811 implemented the builtin primitive function sprintf 2018-03-05 03:35:44 +00:00
d4d9491f3c exported hcl_readchar() and hcl_unreadchar() 2018-03-04 14:43:23 +00:00
71d024837d enhanced the compiler to implement short-circuited logical 'and' and 'or' special forms.
renamed the primitive function 'and' to '_and' and 'or' to '_or'
2018-03-03 17:16:41 +00:00
c387772803 added a new special word and and or. compiler yet to be enhanced 2018-03-03 03:28:10 +00:00
5aee382e9e fixed the wrong word output for #nil in the json format 2018-03-02 07:58:37 +00:00
60a32bf642 added HCL_LOG_PREFER_JSON and implemented %J 2018-03-02 07:44:13 +00:00
450526215a fixed a compilation issue about MMAP_HUGETLB 2018-03-02 02:09:41 +00:00
9094157e28 fixed print_formatted() to use hcl_outfmtobj() instead of hcl_print().
added 2 new optional callbacks - vmprim.alloc_heap and vmprim.free_heap
2018-03-01 14:47:12 +00:00
0b460a3f2a added the logf builtin function 2018-03-01 09:46:02 +00:00
e58d4e30cc fixed a bug printing %% in print_formatted.
changed to use #x #o #b for hexadecimal, octal, binary output
2018-03-01 08:56:56 +00:00
329fc6ce7d removed unused lines 2018-03-01 05:27:17 +00:00
6eaf73a3d7 touched up various remaining implementation details of the printf builtin function. 2018-03-01 05:25:09 +00:00
09302470f7 enhanced hcl_inttostr() to accept a negative radix to produce lower-case alphabetic digits 2018-02-28 15:57:19 +00:00
ed729adc2e removed unneeded code 2018-02-28 10:23:08 +00:00
ffa6c39852 fixed a bug in printing a single character when hcl_ooch_t is hcl_bch_t
implemented the primitive printf function partially
2018-02-28 10:17:05 +00:00
aaafc1371b changed the format of accepted values by --enable-unicode 2018-02-28 07:33:13 +00:00
701554af0d fixed a wrong index used when getting the mod pointer into/from the prim object 2018-02-28 05:04:42 +00:00
c865de4d61 changed the prototype of hcl_pfimpl_t to accept a hcl_mod_t* pointer 2018-02-28 04:52:01 +00:00
eaf7f9243d changed types of some variables from hcl_oow_t to hcl_ooi_t
attempted to add the builtin printf function
2018-02-26 15:52:15 +00:00
ef51ee4a1d enhanced the logfmtv to handle encoding conversion of the format string 2018-02-26 15:24:45 +00:00
bf49aa1260 changed a wrong function name from hcl_logoofmt to hcl_logufmt
enhanced the log formatter routine a bit
2018-02-26 10:49:31 +00:00
7e6b16e153 work in progress to implement the builtin printf function 2018-02-24 04:01:19 +00:00
a5fe90597c fixed a compiler bug that didn't check the number of arguments to a primitive function properly when no parameter was given 2018-02-24 01:28:58 +00:00
a4be9907b7 added some comments 2018-02-23 08:50:18 +00:00
9498530691 enhanced HCL_BRANDOF() to avoid multiple comparisons.
added the eqk? builtin primitive
removed unnecessary lines
2018-02-23 07:17:23 +00:00
9abb389aa2 got rid of hcl_getlastretv() but let hcl_execute() and hcl_executefromip() to return the returnv value 2018-02-22 12:57:31 +00:00
a78dba499f changed the reader to use a stack of 4-item arrays instead of chains of 3 cons cells
cleaned up some unused code
2018-02-22 10:02:39 +00:00
4876d1775c added hcl_getlastretv().
enhanced hcl_hashobj() to return hash values for nil, true, false
2018-02-22 07:41:03 +00:00
dbeac10a38 added more error immunity check for the log_write callback 2018-02-22 04:44:21 +00:00
a39e38cc8d made hcl immune to an error number/message set in the log_write callback 2018-02-22 04:35:55 +00:00
6e4a8f6081 enhanced pf_log to print a character without quotes.
fixed formatting specifiers in log_char_object() in prim.c
2018-02-21 13:13:25 +00:00
25e4bb040c added a new debugging macro HCL_DEBUG_LEXER
removed the debugging macro HCL_DBEUG_BIGINT
2018-02-21 13:02:05 +00:00
c12b85e0a0 enhanced --enable-unicode to accept ucs4 and ucs2 in addition to yes/no.
redefined the moo_uch_t type to follow the enable-unicode value
2018-02-21 10:12:47 +00:00
67a334bc26 deprecated NDEBUG and introduced HCL_BUILD_DEBUG and HCL_BUILD_RELEASE 2018-02-21 09:30:18 +00:00
5128c1a99f localized a local variable into a loop in PUT_OOCH and PUT_OOCS in logfmtv 2018-02-21 08:54:13 +00:00
14b3013c79 fixed the premature termination issue in logfmtv 2018-02-21 08:48:47 +00:00
ed7f580e54 changed the wrong field name when HCL_OOCH_IS_BCH 2018-02-21 07:54:38 +00:00
7a47ba6369 cleaned up code a bit 2018-02-21 07:38:59 +00:00
cfdc22ee60 added --enable-unicode to configure.ac
cleaned up unnecessary code
2018-02-21 07:37:10 +00:00
a1ce05a5fb more error checks 2018-02-20 14:53:12 +00:00
af67156d1b changed the main loop a little bit 2018-02-20 14:10:09 +00:00
e61207291c removed NDEBUG enclosing karatsuba_cutoff 2018-02-20 10:27:11 +00:00