Commit Graph

1219 Commits

Author SHA1 Message Date
ValKmjolnir 9c055a9a23 add new third-lib libkey that includes function: kbhit,getch,nonblock 2022-02-19 16:55:54 +08:00
ValKmjolnir 13a09343e6 update README.md 2022-02-18 15:59:27 +08:00
ValKmjolnir 8c67e04cc4 update test file 2022-02-18 15:36:34 +08:00
ValKmjolnir e77bb73a82 add special character `\e`. 2022-02-18 01:58:49 +08:00
ValKmjolnir 05fc5db337 change parameter name in native function split. 2022-02-17 23:34:58 +08:00
ValKmjolnir a4738e8c7d delete operand `op_nop` 2022-02-16 23:27:22 +08:00
ValKmjolnir 5f6051e333 change tutorial's place in README.md 2022-02-15 23:42:17 +08:00
ValKmjolnir 51afe3dacd fixed bug when -O0 the program crashes with code 01.
add `nasal_err():error(0){}` in `nasal_err.h:47` as the constructor.
2022-02-14 17:40:19 +08:00
ValKmjolnir 0291908675 update README.md 2022-02-14 17:29:26 +08:00
ValKmjolnir 5fba784d05 add new gc type vm_upval 2022-02-13 22:40:54 +08:00
ValKmjolnir 9139e34c0b update README & bug fixed 2022-02-13 16:10:02 +08:00
ValKmjolnir e7f503fae1 now local values are stored on stack. upvalue is generated when creating a new function in local scope.
may include some bugs inside. but all test files has passed the test so i decide to push it.
2022-02-12 23:12:30 +08:00
ValKmjolnir 980350d70a prepare for function-call optimization 2022-02-12 18:03:50 +08:00
ValKmjolnir 0ccd3c9bd0 update test/calc.nas & print function of nasal_vec/nasal_hash 2022-02-11 17:04:27 +08:00
ValKmjolnir 3e7ba4d774 little update 2022-02-10 22:20:18 +08:00
ValKmjolnir a176022840 add notes in lib.nas & add runtime.gc() & add total instruction count in '-o'. 2022-02-09 15:53:09 +08:00
ValKmjolnir 24a1e39ad3 add garbage collector and memory allocator info. use '-d' to activate this function. 2022-02-08 23:40:52 +08:00
ValKmjolnir a09c6ae2f9 update/optimize test files 2022-02-07 23:41:50 +08:00
ValKmjolnir 2a85e92d4a optimize test file & little update. 2022-02-06 19:55:45 +08:00
ValKmjolnir 92646840e4 reuse codes in nasal_vec::print and nasal_hash::print
now they all use nasal_ref::print
2022-02-05 23:55:56 +08:00
ValKmjolnir c55ce758ed change increment arguments to a more efficiency level & change gc.nil, gc.one, gc.zero to constant nil, one, zero 2022-02-04 01:51:30 +08:00
ValKmjolnir aa301aefc3 change increment argument in nasal_gc, because new vm doesn't need to alloc new objects frequently.
vm_str  2048 -> 512

vm_func 1024 -> 512

vm_vec  8192 -> 512
2022-02-03 22:43:51 +08:00
ValKmjolnir d6d90ab7c8 change 'global' & 'local' in codegen to std::unordered_map & std::vector<std::unordered_map>> 2022-02-02 23:52:00 +08:00
ValKmjolnir bf780514e6 add constant string calculation in optimizer 2022-02-01 21:20:36 +08:00
ValKmjolnir eaa54035ff change name of enum:ast_hashmember->ast_pair, ast_new_iter->ast_iter
change ast_hashmember to ast_pair is because this type in fact is the same as std::pair<std::string,nasal_ref> in C++
2022-01-31 17:22:44 +08:00
ValKmjolnir baa4f5a258 change error info of native function __builtin_import 2022-01-31 14:48:51 +08:00
ValKmjolnir df24db5b58 optimize nasal_import::check_import 2022-01-30 23:26:30 +08:00
ValKmjolnir 4def93b4ad bug fixed in nasal_vec::print and nasal_hash::print
if vec's or hash's size is 0, a bug will occur because ++depth. now the ++depth has been put behind the size()
2022-01-29 19:51:43 +08:00
ValKmjolnir 0a407437a4 change native function num()
num now returns nil if the argument is not a number or numerable string.
2022-01-27 21:41:06 +08:00
ValKmjolnir 05ab4640da add notes of some native functions in lib.nas 2022-01-26 23:51:25 +08:00
ValKmjolnir b92eb4b089 update README.md 2022-01-25 15:02:57 +08:00
ValKmjolnir 5778d1e38d update new test data 2022-01-24 15:19:27 +08:00
ValKmjolnir 479e5a2c52 fix errors in README.md 2022-01-22 22:19:14 +08:00
ValKmjolnir 2f455c52c1 fix error in README.md 2022-01-22 22:09:00 +08:00
ValKmjolnir 78c1f9b7a9 add contents in README.md 2022-01-22 22:05:42 +08:00
ValKmjolnir c68b4c5947 add new option -op & --optimize to use optimizer | delete bytecode op_pone & op_pzero 2022-01-22 13:37:49 +08:00
ValKmjolnir 40344455e6 add optimizer
optimizer now does one work: calculate const number before generating bytecode
2022-01-22 00:41:08 +08:00
ValKmjolnir 630c99c39a optimize codes 2022-01-16 22:48:00 +08:00
ValKmjolnir 46716620e3 add test file 'turingmachine.nas' & change output format of ast & bug fixed 2021-12-28 20:23:47 +08:00
ValKmjolnir 70a43c2f03 bug fixed 2021-12-25 15:56:08 +08:00
ValKmjolnir 1923fc74e4 update README.md 2021-12-23 21:46:53 +08:00
ValKmjolnir f0ae63bce5 lexer,parser,import,codegen use the same error module. 2021-12-23 21:15:50 +08:00
ValKmjolnir 30650bb64f update error info (except parser)
prepare for nasal_err module
2021-12-23 14:09:54 +08:00
ValKmjolnir d87aef82b7 debug info now shows both source code and bytecode 2021-12-21 19:57:23 +08:00
ValKmjolnir e79d1eb8a4 add debugger function: break point & next step 2021-12-21 15:27:38 +08:00
ValKmjolnir 189d49fa4a add debugger framework
with function:backtrace,run,help,show global/local/upvalue,exit
2021-12-20 21:33:22 +08:00
Li Haokun 6a543f2aa7
Merge pull request #7 from sidi762/master
Update c-cpp.yml to solve failures
2021-12-17 00:31:16 +08:00
ValKmjolnir c27c5b70ee little update 2021-12-16 23:53:13 +08:00
Sidi Liang 0a246d2fc7
Merge branch 'ValKmjolnir:master' into master 2021-12-13 08:49:45 +08:00
Sidi Liang 0956a08bec
Update c-cpp.yml 2021-12-13 08:46:20 +08:00