📝 delete unnecessary code & change test file.
This commit is contained in:
parent
068743aa4c
commit
04a45064c8
|
@ -122,8 +122,7 @@ const char* ast_name[]=
|
||||||
"multi-assign",
|
"multi-assign",
|
||||||
"continue",
|
"continue",
|
||||||
"break",
|
"break",
|
||||||
"return",
|
"return"
|
||||||
nullptr
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class nasal_ast
|
class nasal_ast
|
||||||
|
|
|
@ -774,17 +774,15 @@ nas_ref builtin_read(nas_ref* local,nasal_gc& gc)
|
||||||
nas_ref len=local[3];
|
nas_ref len=local[3];
|
||||||
if(!fd.objchk(nas_obj::file))
|
if(!fd.objchk(nas_obj::file))
|
||||||
return builtin_err("read","not a valid filehandle");
|
return builtin_err("read","not a valid filehandle");
|
||||||
if(buf.type!=vm_str)
|
if(buf.type!=vm_str || buf.val.gcobj->unmut)
|
||||||
return builtin_err("read","\"buf\" must be string");
|
return builtin_err("read","\"buf\" must be mutable string");
|
||||||
if(buf.val.gcobj->unmut)
|
|
||||||
return builtin_err("read","\"buf\" is not a mutable string");
|
|
||||||
if(len.type!=vm_num)
|
if(len.type!=vm_num)
|
||||||
return builtin_err("read","\"len\" must be number");
|
return builtin_err("read","\"len\" must be number");
|
||||||
if(len.num()<=0 || len.num()>=(1<<30))
|
if(len.num()<=0 || len.num()>=(1<<30))
|
||||||
return builtin_err("read","\"len\" less than 1 or too large");
|
return builtin_err("read","\"len\" less than 1 or too large");
|
||||||
char* buff=new char[(usize)len.num()+1];
|
char* buff=new char[(usize)len.num()+1];
|
||||||
if(!buff)
|
if(!buff)
|
||||||
return builtin_err("read","memory allocation error");
|
return builtin_err("read","malloc failed");
|
||||||
f64 res=fread(buff,1,len.num(),(FILE*)fd.obj().ptr);
|
f64 res=fread(buff,1,len.num(),(FILE*)fd.obj().ptr);
|
||||||
buf.str()=buff;
|
buf.str()=buff;
|
||||||
delete []buff;
|
delete []buff;
|
||||||
|
@ -1120,6 +1118,8 @@ nas_ref builtin_dlopen(nas_ref* local,nasal_gc& gc)
|
||||||
return builtin_err("dlopen","\"libname\" must be string");
|
return builtin_err("dlopen","\"libname\" must be string");
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
wchar_t* str=new wchar_t[dlname.str().size()+1];
|
wchar_t* str=new wchar_t[dlname.str().size()+1];
|
||||||
|
if(!str)
|
||||||
|
return builtin_err("dlopen","malloc failed");
|
||||||
memset(str,0,sizeof(wchar_t)*dlname.str().size()+1);
|
memset(str,0,sizeof(wchar_t)*dlname.str().size()+1);
|
||||||
mbstowcs(str,dlname.str().c_str(),dlname.str().size()+1);
|
mbstowcs(str,dlname.str().c_str(),dlname.str().size()+1);
|
||||||
void* ptr=LoadLibraryW(str);
|
void* ptr=LoadLibraryW(str);
|
||||||
|
@ -1201,17 +1201,17 @@ string tohex(u32 num)
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
string md5(const string& source)
|
string md5(const string& src)
|
||||||
{
|
{
|
||||||
std::vector<u32> buff;
|
std::vector<u32> buff;
|
||||||
u32 num=((source.length()+8)>>6)+1;
|
usize num=((src.length()+8)>>6)+1;
|
||||||
u32 buffsize=num<<4;
|
usize buffsize=num<<4;
|
||||||
buff.resize(buffsize,0);
|
buff.resize(buffsize,0);
|
||||||
for(u32 i=0;i<source.length();i++)
|
for(usize i=0;i<src.length();i++)
|
||||||
buff[i>>2]|=((unsigned char)source[i])<<((i&0x3)<<3);
|
buff[i>>2]|=((u8)src[i])<<((i&0x3)<<3);
|
||||||
buff[source.length()>>2]|=0x80<<(((source.length()%4))<<3);
|
buff[src.length()>>2]|=0x80<<(((src.length()%4))<<3);
|
||||||
buff[buffsize-2]=(source.length()<<3)&0xffffffff;
|
buff[buffsize-2]=(src.length()<<3)&0xffffffff;
|
||||||
buff[buffsize-1]=((source.length()<<3)>>32)&0xffffffff;
|
buff[buffsize-1]=((src.length()<<3)>>32)&0xffffffff;
|
||||||
|
|
||||||
// u32(abs(sin(i+1))*(2pow32))
|
// u32(abs(sin(i+1))*(2pow32))
|
||||||
const u32 k[]={
|
const u32 k[]={
|
||||||
|
|
158
nasal_codegen.h
158
nasal_codegen.h
|
@ -80,87 +80,83 @@ enum op_code:u8
|
||||||
op_ret // return
|
op_ret // return
|
||||||
};
|
};
|
||||||
|
|
||||||
struct
|
const char* code_table[]=
|
||||||
{
|
{
|
||||||
u8 type;
|
"exit ",
|
||||||
const char* name;
|
"intg ",
|
||||||
}code_table[]=
|
"intl ",
|
||||||
{
|
"loadg ",
|
||||||
{op_exit, "exit "},
|
"loadl ",
|
||||||
{op_intg, "intg "},
|
"loadu ",
|
||||||
{op_intl, "intl "},
|
"pnum ",
|
||||||
{op_loadg, "loadg "},
|
"pnil ",
|
||||||
{op_loadl, "loadl "},
|
"pstr ",
|
||||||
{op_loadu, "loadu "},
|
"newv ",
|
||||||
{op_pnum, "pnum "},
|
"newh ",
|
||||||
{op_pnil, "pnil "},
|
"newf ",
|
||||||
{op_pstr, "pstr "},
|
"happ ",
|
||||||
{op_newv, "newv "},
|
"para ",
|
||||||
{op_newh, "newh "},
|
"def ",
|
||||||
{op_newf, "newf "},
|
"dyn ",
|
||||||
{op_happ, "happ "},
|
"not ",
|
||||||
{op_para, "para "},
|
"usub ",
|
||||||
{op_deft, "def "},
|
"add ",
|
||||||
{op_dyn, "dyn "},
|
"sub ",
|
||||||
{op_unot, "not "},
|
"mult ",
|
||||||
{op_usub, "usub "},
|
"div ",
|
||||||
{op_add, "add "},
|
"lnk ",
|
||||||
{op_sub, "sub "},
|
"addc ",
|
||||||
{op_mul, "mult "},
|
"subc ",
|
||||||
{op_div, "div "},
|
"multc ",
|
||||||
{op_lnk, "lnk "},
|
"divc ",
|
||||||
{op_addc, "addc "},
|
"lnkc ",
|
||||||
{op_subc, "subc "},
|
"addeq ",
|
||||||
{op_mulc, "multc "},
|
"subeq ",
|
||||||
{op_divc, "divc "},
|
"muleq ",
|
||||||
{op_lnkc, "lnkc "},
|
"diveq ",
|
||||||
{op_addeq, "addeq "},
|
"lnkeq ",
|
||||||
{op_subeq, "subeq "},
|
"addeqc",
|
||||||
{op_muleq, "muleq "},
|
"subeqc",
|
||||||
{op_diveq, "diveq "},
|
"muleqc",
|
||||||
{op_lnkeq, "lnkeq "},
|
"diveqc",
|
||||||
{op_addeqc,"addeqc"},
|
"lnkeqc",
|
||||||
{op_subeqc,"subeqc"},
|
"meq ",
|
||||||
{op_muleqc,"muleqc"},
|
"eq ",
|
||||||
{op_diveqc,"diveqc"},
|
"neq ",
|
||||||
{op_lnkeqc,"lnkeqc"},
|
"less ",
|
||||||
{op_meq, "meq "},
|
"leq ",
|
||||||
{op_eq, "eq "},
|
"grt ",
|
||||||
{op_neq, "neq "},
|
"geq ",
|
||||||
{op_less, "less "},
|
"lessc ",
|
||||||
{op_leq, "leq "},
|
"leqc ",
|
||||||
{op_grt, "grt "},
|
"grtc ",
|
||||||
{op_geq, "geq "},
|
"geqc ",
|
||||||
{op_lessc, "lessc "},
|
"pop ",
|
||||||
{op_leqc, "leqc "},
|
"jmp ",
|
||||||
{op_grtc, "grtc "},
|
"jt ",
|
||||||
{op_geqc, "geqc "},
|
"jf ",
|
||||||
{op_pop, "pop "},
|
"cnt ",
|
||||||
{op_jmp, "jmp "},
|
"findx ",
|
||||||
{op_jt, "jt "},
|
"feach ",
|
||||||
{op_jf, "jf "},
|
"callg ",
|
||||||
{op_cnt, "cnt "},
|
"calll ",
|
||||||
{op_findex,"findx "},
|
"upval ",
|
||||||
{op_feach, "feach "},
|
"callv ",
|
||||||
{op_callg, "callg "},
|
"callvi",
|
||||||
{op_calll, "calll "},
|
"callh ",
|
||||||
{op_upval, "upval "},
|
"callfv",
|
||||||
{op_callv, "callv "},
|
"callfh",
|
||||||
{op_callvi,"callvi"},
|
"callb ",
|
||||||
{op_callh, "callh "},
|
"slcbeg",
|
||||||
{op_callfv,"callfv"},
|
"slcend",
|
||||||
{op_callfh,"callfh"},
|
"slc ",
|
||||||
{op_callb, "callb "},
|
"slc2 ",
|
||||||
{op_slcbeg,"slcbeg"},
|
"mcallg",
|
||||||
{op_slcend,"slcend"},
|
"mcalll",
|
||||||
{op_slc, "slc "},
|
"mupval",
|
||||||
{op_slc2, "slc2 "},
|
"mcallv",
|
||||||
{op_mcallg,"mcallg"},
|
"mcallh",
|
||||||
{op_mcalll,"mcalll"},
|
"ret "
|
||||||
{op_mupval,"mupval"},
|
|
||||||
{op_mcallv,"mcallv"},
|
|
||||||
{op_mcallh,"mcallh"},
|
|
||||||
{op_ret, "ret "}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct opcode
|
struct opcode
|
||||||
|
@ -198,7 +194,7 @@ void opcode::print(const char* header,
|
||||||
<<std::setw(2)<<std::setfill('0')<<((num>>16)&0xff)<<" "
|
<<std::setw(2)<<std::setfill('0')<<((num>>16)&0xff)<<" "
|
||||||
<<std::setw(2)<<std::setfill('0')<<((num>>8)&0xff)<<" "
|
<<std::setw(2)<<std::setfill('0')<<((num>>8)&0xff)<<" "
|
||||||
<<std::setw(2)<<std::setfill('0')<<(num&0xff)
|
<<std::setw(2)<<std::setfill('0')<<(num&0xff)
|
||||||
<<" "<<code_table[op].name<<" "<<std::dec;
|
<<" "<<code_table[op]<<" "<<std::dec;
|
||||||
switch(op)
|
switch(op)
|
||||||
{
|
{
|
||||||
case op_addeq: case op_subeq: case op_muleq: case op_diveq:
|
case op_addeq: case op_subeq: case op_muleq: case op_diveq:
|
||||||
|
|
|
@ -104,7 +104,7 @@ void nasal_dbg::opcallsort(const u64* arr)
|
||||||
std::clog<<"\n ...";
|
std::clog<<"\n ...";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
std::clog<<"\n "<<code_table[i.first].name
|
std::clog<<"\n "<<code_table[i.first]
|
||||||
<<" : "<<i.second<<" ("<<rate<<"%)";
|
<<" : "<<i.second<<" ("<<rate<<"%)";
|
||||||
}
|
}
|
||||||
std::clog<<"\n total : "<<total<<'\n';
|
std::clog<<"\n total : "<<total<<'\n';
|
||||||
|
|
161
test/calc.nas
161
test/calc.nas
|
@ -1,85 +1,85 @@
|
||||||
var source=[
|
var source=[
|
||||||
"main.cpp ",
|
"main.cpp ",
|
||||||
"nasal_ast.h ",
|
"nasal_ast.h ",
|
||||||
"nasal_builtin.h ",
|
"nasal_builtin.h ",
|
||||||
"nasal_codegen.h ",
|
"nasal_codegen.h ",
|
||||||
"nasal_dbg.h ",
|
"nasal_dbg.h ",
|
||||||
"nasal_err.h ",
|
"nasal_err.h ",
|
||||||
"nasal_gc.h ",
|
"nasal_gc.h ",
|
||||||
"nasal_import.h ",
|
"nasal_import.h ",
|
||||||
"nasal_lexer.h ",
|
"nasal_lexer.h ",
|
||||||
"nasal_opt.h ",
|
"nasal_opt.h ",
|
||||||
"nasal_parse.h ",
|
"nasal_parse.h ",
|
||||||
"nasal_vm.h ",
|
"nasal_vm.h ",
|
||||||
"nasal.h "
|
"nasal.h "
|
||||||
];
|
];
|
||||||
|
|
||||||
var lib=[
|
var lib=[
|
||||||
"stl/fg_env.nas ",
|
"fg_env.nas ",
|
||||||
"stl/file.nas ",
|
"file.nas ",
|
||||||
"stl/lib.nas ",
|
"lib.nas ",
|
||||||
"stl/list.nas ",
|
"list.nas ",
|
||||||
"stl/log.nas ",
|
"log.nas ",
|
||||||
"stl/module.nas ",
|
"module.nas ",
|
||||||
"stl/process_bar.nas ",
|
"process_bar.nas ",
|
||||||
"stl/queue.nas ",
|
"queue.nas ",
|
||||||
"stl/result.nas ",
|
"result.nas ",
|
||||||
"stl/sort.nas ",
|
"sort.nas ",
|
||||||
"stl/stack.nas "
|
"stack.nas "
|
||||||
];
|
];
|
||||||
|
|
||||||
var testfile=[
|
var testfile=[
|
||||||
"test/ascii-art.nas ",
|
"ascii-art.nas ",
|
||||||
"test/auto_crash.nas ",
|
"auto_crash.nas ",
|
||||||
"test/bf.nas ",
|
"bf.nas ",
|
||||||
"test/bfcolored.nas ",
|
"bfcolored.nas ",
|
||||||
"test/bfconvertor.nas ",
|
"bfconvertor.nas ",
|
||||||
"test/bfs.nas ",
|
"bfs.nas ",
|
||||||
"test/bigloop.nas ",
|
"bigloop.nas ",
|
||||||
"test/bp.nas ",
|
"bp.nas ",
|
||||||
"test/calc.nas ",
|
"calc.nas ",
|
||||||
"test/choice.nas ",
|
"choice.nas ",
|
||||||
"test/class.nas ",
|
"class.nas ",
|
||||||
"test/coroutine.nas ",
|
"coroutine.nas ",
|
||||||
"test/diff.nas ",
|
"diff.nas ",
|
||||||
"test/exception.nas ",
|
"exception.nas ",
|
||||||
"test/fib.nas ",
|
"fib.nas ",
|
||||||
"test/filesystem.nas ",
|
"filesystem.nas ",
|
||||||
"test/hexdump.nas ",
|
"hexdump.nas ",
|
||||||
"test/httptest.nas ",
|
"httptest.nas ",
|
||||||
"test/json.nas ",
|
"json.nas ",
|
||||||
"test/leetcode1319.nas ",
|
"leetcode1319.nas ",
|
||||||
"test/lexer.nas ",
|
"lexer.nas ",
|
||||||
"test/life.nas ",
|
"life.nas ",
|
||||||
"test/loop.nas ",
|
"loop.nas ",
|
||||||
"test/mandel.nas ",
|
"mandel.nas ",
|
||||||
"test/mandelbrot.nas ",
|
"mandelbrot.nas ",
|
||||||
"test/md5.nas ",
|
"md5.nas ",
|
||||||
"test/md5compare.nas ",
|
"md5compare.nas ",
|
||||||
"test/module_test.nas ",
|
"module_test.nas ",
|
||||||
"test/nasal_test.nas ",
|
"nasal_test.nas ",
|
||||||
"test/occupation.nas ",
|
"occupation.nas ",
|
||||||
"test/pi.nas ",
|
"pi.nas ",
|
||||||
"test/prime.nas ",
|
"prime.nas ",
|
||||||
"test/qrcode.nas ",
|
"qrcode.nas ",
|
||||||
"test/quick_sort.nas ",
|
"quick_sort.nas ",
|
||||||
"test/scalar.nas ",
|
"scalar.nas ",
|
||||||
"test/snake.nas ",
|
"snake.nas ",
|
||||||
"test/tetris.nas ",
|
"tetris.nas ",
|
||||||
"test/trait.nas ",
|
"trait.nas ",
|
||||||
"test/turingmachine.nas",
|
"turingmachine.nas",
|
||||||
"test/utf8chk.nas ",
|
"utf8chk.nas ",
|
||||||
"test/wavecollapse.nas ",
|
"wavecollapse.nas ",
|
||||||
"test/ycombinator.nas "
|
"ycombinator.nas "
|
||||||
];
|
];
|
||||||
|
|
||||||
var module=[
|
var module=[
|
||||||
"module/fib.cpp ",
|
"fib.cpp ",
|
||||||
"module/keyboard.cpp ",
|
"keyboard.cpp ",
|
||||||
"module/nasocket.cpp ",
|
"nasocket.cpp ",
|
||||||
"module/libfib.nas ",
|
"libfib.nas ",
|
||||||
"module/libkey.nas ",
|
"libkey.nas ",
|
||||||
"module/libsock.nas "
|
"libsock.nas "
|
||||||
];
|
];
|
||||||
|
|
||||||
var getname=func(s){
|
var getname=func(s){
|
||||||
|
@ -95,22 +95,21 @@ var count=func(s,c){
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
var calc=func(codetype,files){
|
var calc=func(codetype,files,path=""){
|
||||||
println(codetype);
|
println(codetype);
|
||||||
var (bytes,line,semi,line_cnt,semi_cnt)=(0,0,0,0,0);
|
var (bytes,line,semi,line_cnt,semi_cnt)=(0,0,0,0,0);
|
||||||
forindex(var i;files){
|
forindex(var i;files){
|
||||||
var s=io.fin(getname(files[i]));
|
var s=io.fin(getname(path~files[i]));
|
||||||
(line_cnt,semi_cnt)=(count(s,'\n'),count(s,';'));
|
(line_cnt,semi_cnt)=(count(s,'\n'),count(s,';'));
|
||||||
println(files[i],'| ',line_cnt,' \tline | ',semi_cnt,' \tsemi');
|
println(files[i],'| ',line_cnt,'\tline | ',semi_cnt,' \tsemi');
|
||||||
bytes+=size(s);
|
bytes+=size(s);
|
||||||
line+=line_cnt;
|
line+=line_cnt;
|
||||||
semi+=semi_cnt;
|
semi+=semi_cnt;
|
||||||
}
|
}
|
||||||
println('total: | ',line,' \tline | ',semi,' \tsemi');
|
println('total: | ',line,'\tline | ',semi,' \tsemi');
|
||||||
println(' | ',bytes,'\tbytes| ',int(bytes/1024),' \tkb');
|
println(' | ',int(bytes/1024),'\tkb');
|
||||||
|
return int(bytes/1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
calc("source code:",source);
|
var all=calc("source code:",source)+calc("lib:",lib,"stl/")+calc("test file:",testfile,"test/")+calc("module:",module,"module/");
|
||||||
calc("lib:",lib);
|
println('\ntotal: | ',all,'\tkb');
|
||||||
calc("test file:",testfile);
|
|
||||||
calc("module:",module);
|
|
|
@ -9,112 +9,78 @@ var compare=func(){
|
||||||
"^","&","*","(",")","-","=","\\","|","[","]","{","}","`"," ","\t","?"
|
"^","&","*","(",")","-","=","\\","|","[","]","{","}","`"," ","\t","?"
|
||||||
];
|
];
|
||||||
return func(begin,end){
|
return func(begin,end){
|
||||||
|
var byte=0;
|
||||||
var total=end-begin;
|
var total=end-begin;
|
||||||
|
var timestamp=maketimestamp();
|
||||||
|
timestamp.stamp();
|
||||||
var bar=process_bar.bar(front:os.platform()=="windows"?"sharp":"block",back:"point",sep:"line",length:50);
|
var bar=process_bar.bar(front:os.platform()=="windows"?"sharp":"block",back:"point",sep:"line",length:50);
|
||||||
for(var i=begin;i<end;i+=1){
|
for(var i=begin;i<end;i+=1){
|
||||||
var s="";
|
var s="";
|
||||||
for(var j=0;j<i;j+=1){
|
for(var j=0;j<i;j+=1){
|
||||||
s~=ch[rand()*size(ch)];
|
s~=ch[rand()*size(ch)];
|
||||||
}
|
}
|
||||||
|
byte+=size(s);
|
||||||
var res=md5(s);
|
var res=md5(s);
|
||||||
if(cmp(res,_md5(s))){
|
if(cmp(res,_md5(s))){
|
||||||
die("error: "~str(i));
|
die("error: "~str(i));
|
||||||
}
|
}
|
||||||
print(" ",bar.bar((i-begin+1)/total)," (",i-begin+1,"/",total,")\t",res," max byte: ",end-1," \r");
|
print(" ",bar.bar((i-begin+1)/total)," (",i-begin+1,"/",total,")\t",res," byte: ",byte," elapsed time: ",timestamp.elapsedMSec()," \r");
|
||||||
}
|
}
|
||||||
print("\n");
|
print("\n");
|
||||||
};
|
};
|
||||||
}();
|
}();
|
||||||
|
|
||||||
var filechecksum=func(){
|
var filechecksum=func(){
|
||||||
var getname=func(s){
|
|
||||||
var (len,ch)=(size(s),' '[0]);
|
|
||||||
for(var i=0;i<len and s[i]!=ch;i+=1);
|
|
||||||
return substr(s,0,i);
|
|
||||||
}
|
|
||||||
var files=[
|
var files=[
|
||||||
"./stl/fg_env.nas ",
|
"./stl/fg_env.nas", "./stl/file.nas",
|
||||||
"./stl/file.nas ",
|
"./stl/lib.nas", "./stl/list.nas",
|
||||||
"./stl/lib.nas ",
|
"./stl/log.nas", "./stl/module.nas",
|
||||||
"./stl/list.nas ",
|
"./stl/process_bar.nas", "./stl/queue.nas",
|
||||||
"./stl/log.nas ",
|
"./stl/result.nas", "./stl/sort.nas",
|
||||||
"./stl/module.nas ",
|
"./stl/stack.nas", "./test/ascii-art.nas",
|
||||||
"./stl/process_bar.nas ",
|
"./test/auto_crash.nas", "./test/bf.nas",
|
||||||
"./stl/queue.nas ",
|
"./test/bfcolored.nas", "./test/bfconvertor.nas",
|
||||||
"./stl/result.nas ",
|
"./test/bfs.nas", "./test/bigloop.nas",
|
||||||
"./stl/sort.nas ",
|
"./test/bp.nas", "./test/calc.nas",
|
||||||
"./stl/stack.nas ",
|
"./test/choice.nas", "./test/class.nas",
|
||||||
"./test/ascii-art.nas ",
|
"./test/coroutine.nas", "./test/diff.nas",
|
||||||
"./test/auto_crash.nas ",
|
"./test/exception.nas", "./test/fib.nas",
|
||||||
"./test/bf.nas ",
|
"./test/filesystem.nas", "./test/hexdump.nas",
|
||||||
"./test/bfcolored.nas ",
|
"./test/httptest.nas", "./test/json.nas",
|
||||||
"./test/bfconvertor.nas ",
|
"./test/leetcode1319.nas", "./test/lexer.nas",
|
||||||
"./test/bfs.nas ",
|
"./test/life.nas", "./test/loop.nas",
|
||||||
"./test/bigloop.nas ",
|
"./test/mandel.nas", "./test/mandelbrot.nas",
|
||||||
"./test/bp.nas ",
|
"./test/md5.nas", "./test/md5compare.nas",
|
||||||
"./test/calc.nas ",
|
"./test/module_test.nas", "./test/nasal_test.nas",
|
||||||
"./test/choice.nas ",
|
"./test/occupation.nas", "./test/pi.nas",
|
||||||
"./test/class.nas ",
|
"./test/prime.nas", "./test/qrcode.nas",
|
||||||
"./test/coroutine.nas ",
|
"./test/quick_sort.nas", "./test/scalar.nas",
|
||||||
"./test/diff.nas ",
|
"./test/snake.nas", "./test/tetris.nas",
|
||||||
"./test/exception.nas ",
|
"./test/trait.nas", "./test/turingmachine.nas",
|
||||||
"./test/fib.nas ",
|
"./test/utf8chk.nas", "./test/wavecollapse.nas",
|
||||||
"./test/filesystem.nas ",
|
"./test/ycombinator.nas", "LICENSE",
|
||||||
"./test/hexdump.nas ",
|
"main.cpp", "makefile",
|
||||||
"./test/httptest.nas ",
|
"nasal_ast.h", "nasal_builtin.h",
|
||||||
"./test/json.nas ",
|
"nasal_codegen.h", "nasal_dbg.h",
|
||||||
"./test/leetcode1319.nas ",
|
"nasal_err.h", "nasal_gc.h",
|
||||||
"./test/lexer.nas ",
|
"nasal_import.h", "nasal_lexer.h",
|
||||||
"./test/life.nas ",
|
"nasal_opt.h", "nasal_parse.h",
|
||||||
"./test/loop.nas ",
|
"nasal_vm.h", "nasal.ebnf",
|
||||||
"./test/mandel.nas ",
|
"nasal.h", "README.md"
|
||||||
"./test/mandelbrot.nas ",
|
|
||||||
"./test/md5.nas ",
|
|
||||||
"./test/md5compare.nas ",
|
|
||||||
"./test/module_test.nas ",
|
|
||||||
"./test/nasal_test.nas ",
|
|
||||||
"./test/occupation.nas ",
|
|
||||||
"./test/pi.nas ",
|
|
||||||
"./test/prime.nas ",
|
|
||||||
"./test/qrcode.nas ",
|
|
||||||
"./test/quick_sort.nas ",
|
|
||||||
"./test/scalar.nas ",
|
|
||||||
"./test/snake.nas ",
|
|
||||||
"./test/tetris.nas ",
|
|
||||||
"./test/trait.nas ",
|
|
||||||
"./test/turingmachine.nas",
|
|
||||||
"./test/utf8chk.nas ",
|
|
||||||
"./test/wavecollapse.nas ",
|
|
||||||
"./test/ycombinator.nas ",
|
|
||||||
"LICENSE ",
|
|
||||||
"main.cpp ",
|
|
||||||
"makefile ",
|
|
||||||
"nasal_ast.h ",
|
|
||||||
"nasal_builtin.h ",
|
|
||||||
"nasal_codegen.h ",
|
|
||||||
"nasal_dbg.h ",
|
|
||||||
"nasal_err.h ",
|
|
||||||
"nasal_gc.h ",
|
|
||||||
"nasal_import.h ",
|
|
||||||
"nasal_lexer.h ",
|
|
||||||
"nasal_opt.h ",
|
|
||||||
"nasal_parse.h ",
|
|
||||||
"nasal_vm.h ",
|
|
||||||
"nasal.ebnf ",
|
|
||||||
"nasal.h ",
|
|
||||||
"README.md "
|
|
||||||
];
|
];
|
||||||
var byte=0;
|
var byte=0;
|
||||||
var total=size(files);
|
var total=size(files);
|
||||||
|
var timestamp=maketimestamp();
|
||||||
|
timestamp.stamp();
|
||||||
var bar=process_bar.bar(front:os.platform()=="windows"?"sharp":"block",back:"point",sep:"line",length:50);
|
var bar=process_bar.bar(front:os.platform()=="windows"?"sharp":"block",back:"point",sep:"line",length:50);
|
||||||
forindex(var i;files){
|
forindex(var i;files){
|
||||||
var f=io.fin(getname(files[i]));
|
var f=io.fin(files[i]);
|
||||||
var res=md5(f);
|
var res=md5(f);
|
||||||
byte+=size(f);
|
byte+=size(f);
|
||||||
if(cmp(res,_md5(f))){
|
if(cmp(res,_md5(f))){
|
||||||
die("error: "~files[i]);
|
die("error: "~files[i]);
|
||||||
}
|
}
|
||||||
print(" ",bar.bar((i+1)/total)," (",i+1,"/",total,")\t",res," byte: ",byte," \r");
|
print(" ",bar.bar((i+1)/total)," (",i+1,"/",total,")\t",res," byte: ",byte," elapsed time: ",timestamp.elapsedMSec()," \r");
|
||||||
}
|
}
|
||||||
print("\n");
|
print("\n");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue