optimize test files

httptest.nas: when clicking mandel.nas link, this may cause memory overflow in new gc
This commit is contained in:
ValKmjolnir
2023-01-23 23:14:34 +08:00
parent d03273b4e1
commit aef7936292
9 changed files with 4243 additions and 4909 deletions
+34 -32
View File
@@ -155,9 +155,10 @@ var color=[
"\e[31m","\e[32m","\e[33m","\e[34m","\e[35m","\e[36m",
"\e[90m","\e[91m","\e[92m","\e[93m","\e[94m","\e[95m","\e[96m"
];
func(){
func() {
var cnt=0;
forindex(var i;char){
forindex(var i;char) {
char[i]=color[cnt]~chr(i)~"\e[0m";
cnt+=1;
if(cnt>12)
@@ -166,80 +167,81 @@ func(){
}();
var funcs=[
func{paper[ptr]+=inum[pc];},
func{ptr+=inum[pc];},
func{if(paper[ptr])pc=inum[pc];},
func{if(!paper[ptr])pc=inum[pc];},
func{paper[ptr]=input()[0];},
func{print(char[paper[ptr]]);}
func {paper[ptr]+=inum[pc];},
func {ptr+=inum[pc];},
func {if(paper[ptr])pc=inum[pc];},
func {if(!paper[ptr])pc=inum[pc];},
func {paper[ptr]=input()[0];},
func {print(char[paper[ptr]]);}
];
var bf=func(program){
var bf=func(program) {
setsize(paper,131072);
var len=size(program);
for(var i=0;i<len;i+=1){
for(var i=0;i<len;i+=1) {
var c=chr(program[i]);
if(c=='+' or c=='-'){
if(c=='+' or c=='-') {
append(code,add);
append(inum,0);
for(;i<len;i+=1){
if(chr(program[i])=='+')
for(;i<len;i+=1) {
if(chr(program[i])=='+') {
inum[-1]+=1;
elsif(chr(program[i])=='-')
} elsif(chr(program[i])=='-') {
inum[-1]-=1;
elsif(chr(program[i])!='\n'){
} elsif(chr(program[i])!='\n') {
i-=1;
break;
}
}
}
elsif(c=='<' or c=='>'){
} elsif(c=='<' or c=='>') {
append(code,mov);
append(inum,0);
for(;i<len;i+=1){
if(chr(program[i])=='>')
if(chr(program[i])=='>') {
inum[-1]+=1;
elsif(chr(program[i])=='<')
} elsif(chr(program[i])=='<') {
inum[-1]-=1;
elsif(chr(program[i])!='\n'){
} elsif(chr(program[i])!='\n') {
i-=1;
break;
}
}
}
elsif(c==','){
} elsif(c==',') {
append(code,in);
append(inum,0);
}
elsif(c=='.'){
} elsif(c=='.') {
append(code,out);
append(inum,0);
}
elsif(c=='['){
} elsif(c=='[') {
append(code,jf);
append(inum,0);
append(stack,size(code)-1);
}
elsif(c==']'){
if(!size(stack))
} elsif(c==']') {
if(!size(stack)) {
die("lack [");
}
var label=pop(stack);
append(code,jt);
append(inum,label-1);
inum[label]=size(code)-2;
}
}
if(size(stack)){
if(size(stack)) {
die("lack ]");
return;
}
# enable ANSI escape sequence
if(os.platform()=="windows")
if(os.platform()=="windows") {
system("color");
}
# execute
len=size(code);
for(pc=0;pc<len;pc+=1)
for(pc=0;pc<len;pc+=1) {
funcs[code[pc]]();
}
return;
}