Commit Graph

94 Commits

Author SHA1 Message Date
ValKmjolnir 68c1b43179 change STACK_MAX_DEPTH to nasal_gc::stack_depth 2022-04-09 23:14:28 +08:00
ValKmjolnir 51e9b0b5ab add math.pow 2022-03-27 16:14:55 +08:00
ValKmjolnir d89c0fe096 fix bytecode output format bug 2022-03-27 13:10:35 +08:00
ValKmjolnir c6efb9f190 change opcode print format 2022-03-27 01:20:17 +08:00
ValKmjolnir d5d426d6eb update main.cpp and bug fix 2022-03-20 18:28:45 +08:00
ValKmjolnir 7ef9dd9371 change enum obj_type to nasal_obj::obj_type 2022-03-15 22:51:14 +08:00
ValKmjolnir 6fee4da9a0 delete operand op_nop 2022-02-16 23:27:22 +08:00
ValKmjolnir c7909bfdf8 prepare for function-call optimization 2022-02-12 18:03:50 +08:00
ValKmjolnir 54da9e4ee1 optimize test file & little update. 2022-02-06 19:55:45 +08:00
ValKmjolnir 9a245078d7 change 'global' & 'local' in codegen to std::unordered_map & std::vector<std::unordered_map>> 2022-02-02 23:52:00 +08:00
ValKmjolnir de0a6d9388 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 93b2edc08c add new option -op & --optimize to use optimizer | delete bytecode op_pone & op_pzero 2022-01-22 13:37:49 +08:00
ValKmjolnir a51b7fe11a optimize codes 2022-01-16 22:48:00 +08:00
ValKmjolnir ac80216ea8 update README.md 2021-12-23 21:46:53 +08:00
ValKmjolnir 1ae354c0cf lexer,parser,import,codegen use the same error module. 2021-12-23 21:15:50 +08:00
ValKmjolnir bde94f8ec6 update error info (except parser)
prepare for nasal_err module
2021-12-23 14:09:54 +08:00
ValKmjolnir 82181b7af4 add debugger framework
with function:backtrace,run,help,show global/local/upvalue,exit
2021-12-20 21:33:22 +08:00
ValKmjolnir 083293e3db little update 2021-12-16 23:53:13 +08:00
ValKmjolnir cabce9370a delete ret stack/ add math.lg
now return address is stored on value stack
2021-12-02 22:23:22 +08:00
ValKmjolnir 7169f25774 delete op_cntpop & counter stack
now the iterator will be type vm_cnt and be stored on value stack.
2021-11-25 18:13:31 +08:00
ValKmjolnir 56c9cb60ab fixed bug of in_foreach and in_forindex 2021-11-22 14:24:28 +08:00
ValKmjolnir e1d5ab2da5 add unix.isdir and unix.isfile 2021-11-15 22:47:52 +08:00
ValKmjolnir b67cd85cb4 2 bugs fixed:
empty string will be true in conditional expressions,but now it is false(and string that is not empty and is not numerable will be true)

foreach(var i;func(){return []}()); will cause sigsegv because codegen generates error op_pop and op_cntpop,now the counter in_foreach and in_forindex change after generating
foreach/forindex expression before block generation.
2021-11-14 23:05:34 +08:00
ValKmjolnir bc9039dd37 change code structure 2021-11-02 22:44:42 +08:00
ValKmjolnir b131a3ea9e add io lib & bug fixed 2021-10-27 23:05:25 +08:00
ValKmjolnir 101714986d optimize nasal_ast and fix bug in opr_slc2 2021-10-20 20:54:23 +08:00
ValKmjolnir a7b1851967 optimize code structure 2021-10-16 21:08:57 +08:00
ValKmjolnir 645a652830 change function name and cli format 2021-10-14 23:22:28 +08:00
ValKmjolnir 414c9c7487 change output format of information of bytecodes 2021-10-13 22:59:15 +08:00
ValKmjolnir 3ab5f00097 optimize source code 2021-10-12 18:26:10 +08:00
ValKmjolnir b77d9a48fb fully functional closure & add benchmark 2021-10-10 14:29:23 +08:00
ValKmjolnir b4f55f0d01 prepare for version 8.0 2021-10-08 15:32:18 +08:00
Li Haokun 52fbd729cc bad access bug fixed 2021-09-13 19:55:03 +08:00
Li Haokun 5ed1b63143 update 2021-09-10 19:13:42 +08:00
Li Haokun 1982ab6b8e security holes fixed 2021-08-19 17:54:36 +08:00
Li Haokun e9bd033883 update 2021-08-09 19:13:39 +08:00
ValKmjolnir 143a59c735 update 2021-08-09 01:02:27 +08:00
Li Haokun b069f3875e update 2021-08-05 19:02:41 +08:00
Li Haokun a6fe835ed4 variables can be used before definition
change program to command line
change trace back info
change print function of nasal_vec and nasal_hash
2021-08-03 18:55:11 +08:00
ValKmjolnir 26bbdcf463 bug fixed & raw string print 2021-07-21 00:20:25 +08:00
Li Haokun d9d7a1edfc add trace back info 2021-07-16 17:18:13 +08:00
ValKmjolnir 5de65e584d prepare for debugger 2021-07-16 02:17:53 +08:00
ValKmjolnir e974468881 add const compare instructions 2021-07-03 15:22:23 +08:00
ValKmjolnir 81131520d7 add instruction & changes in codegen
add some instructions that execute const values.
the first symbol called in assignment will use op_load instead of op_meq,op_pop to assign.
2021-06-29 17:18:05 +08:00
ValKmjolnir 855e0e441f avoid unnecessary deep copy by using rvalue ref
and test file update.
bug fixed in test/lexer.nas
2021-06-24 22:10:08 +08:00
ValKmjolnir f0565c7de6 change mcall to call->mcall&allow differen lvalue in assignment 2021-06-21 16:46:47 +08:00
Valk Richard Li 40a1189b18 nothing changed 2021-06-20 01:27:01 +08:00
Valk Richard Li b9aa7f5db2 add statistical information 2021-06-19 00:32:10 +08:00
Valk Richard Li 05fcacde37 bug fixed & delete operand vapp 2021-06-15 00:49:32 +08:00
Valk Richard Li 411c2e5c4c add tips 2021-06-13 01:01:32 +08:00