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
ValKmjolnir
5a80258d20
bug fixed & add os.platform
2021-12-08 18:46:32 +08:00
Li Haokun
85bb502191
Merge pull request #6 from sidi762/master
...
New Github Action for nightly builds on macOS
2021-12-07 10:37:39 +08:00
Sidi Liang
ead49a657e
Change the asset name to 'nasal'
2021-12-06 23:00:25 +08:00
Sidi Liang
df5be35af8
Attempt to make nightly builds for macOS
2021-12-06 22:55:18 +08:00
Sidi Liang
19d5952210
Update c-cpp.yml
2021-12-06 22:47:37 +08:00
Sidi Liang
afd87da5e7
Try out GitHub Actions
2021-12-06 22:36:08 +08:00
ValKmjolnir
9861ecd03e
add dylib.dlopen dylib.dlsym dylib.dlclose dylib.dlcall
...
now you could add your own modules into nasal without changing the source code!
2021-12-03 19:31:03 +08:00
ValKmjolnir
aa191a9feb
delete ret stack/ add math.lg
...
now return address is stored on value stack
2021-12-02 22:23:22 +08:00
ValKmjolnir
b8ef3cf6b6
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
0a8655eb4d
fixed bug of in_foreach and in_forindex
2021-11-22 14:24:28 +08:00
ValKmjolnir
52b49edbcf
add unix.isdir and unix.isfile
2021-11-15 22:47:52 +08:00
ValKmjolnir
6a35c58df4
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
cd08b2d1bb
change code structure
2021-11-02 22:44:42 +08:00
ValKmjolnir
f8e2918561
add unix.opendir unix.readdir unix.closedir
2021-10-31 23:11:04 +08:00
ValKmjolnir
e4ea34db51
add unix.time unix.chdir unix.sleep unix.getcwd unix.getenv
2021-10-29 19:52:49 +08:00
ValKmjolnir
4bfce37f40
add bits lib
2021-10-28 21:49:08 +08:00
ValKmjolnir
fd0d836c03
add io lib & bug fixed
2021-10-27 23:05:25 +08:00
ValKmjolnir
183446d32a
bug fixed
2021-10-26 22:34:02 +08:00
ValKmjolnir
540aeb73f4
optimize nasal_ast and fix bug in opr_slc2
2021-10-20 20:54:23 +08:00
ValKmjolnir
4f0acc4d63
fix dynamic para error
2021-10-18 22:05:31 +08:00
ValKmjolnir
56280db2c7
fix sigsegv error
2021-10-18 21:50:25 +08:00