57bb1657b3
added new instructions - push_clsvar, store_into_clsvar, pop_into_clsvar
2022-01-01 14:58:57 +00:00
a61f6f5f47
fixed the missing prototype defintion of hcl_instantiate()
2021-12-31 08:39:12 +00:00
72724799b3
working on object instanttiation
2021-12-27 23:12:36 +00:00
7b653c0df8
fixed yet another bug compiling a catch block
2021-12-26 16:37:54 +00:00
73148041a2
fixed another bug compiling a catch block
2021-12-26 16:00:08 +00:00
447fafd7b2
fixed a wrong compiler check in the post_catch() phase
2021-12-26 14:59:34 +00:00
afeebc08c9
fixed process stack handling
2021-12-25 15:33:49 +00:00
d2e6f94b33
enhanced try_exit and try_exit2 to restore the class stack pointer
2021-12-24 14:59:16 +00:00
c230355e90
changed do_throw() to clear the class stack when the exception is empty
2021-12-24 05:10:50 +00:00
3d4e161a5f
added 'class_push_exit'
...
enhanced the compiler to produce 'pop_stacktop' at the end of the class if the class body is not empty
2021-12-24 00:05:58 +00:00
a24f591074
some lines of compiler code
2021-12-12 16:09:31 +00:00
f6236f767f
removed unneded trailing spaces in comp.c
2021-11-26 15:17:09 +00:00
cf77f8eb6f
trying to implement object instantiation
2021-11-26 14:55:50 +00:00
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