little update

This commit is contained in:
ValKmjolnir 2021-12-16 23:53:13 +08:00
parent 5a80258d20
commit c27c5b70ee
4 changed files with 10 additions and 5 deletions

View File

@ -94,6 +94,7 @@ var math=
atan2: func(x,y){return __builtin_atan2(x,y);},
isnan: func(x) {return __builtin_isnan(x); }
};
var D2R=math.pi/180;
var FPS2KT=0.5925;
var FT2M=0.3048;

View File

@ -1,3 +1,4 @@
#include <iostream>
#include "../nasal.h"
double fibonaci(double x){
@ -6,15 +7,17 @@ double fibonaci(double x){
return fibonaci(x-1)+fibonaci(x-2);
}
extern "C" nasal_ref fib(std::vector<nasal_ref>& args,nasal_gc& gc){
std::cout<<"[mod] this is the first test module of nasal\n";
nasal_ref num=args[0];
if(num.type!=vm_num)
return builtin_err("extern_fib","\"num\" must be number");
return {vm_num,fibonaci(num.to_number())};
}
extern "C" nasal_ref quick_fib(std::vector<nasal_ref>& args,nasal_gc& gc){
std::cout<<"[mod] this is the first test module of nasal\n";
nasal_ref num=args[0];
if(num.type!=vm_num)
return builtin_err("extern_fib","\"num\" must be number");
return builtin_err("extern_quick_fib","\"num\" must be number");
if(num.num()<2)
return num;
double a=1,b=1,res=0;

View File

@ -202,8 +202,8 @@ private:
std::vector<opcode> code;
std::list<std::vector<int>> continue_ptr;
std::list<std::vector<int>> break_ptr;
std::vector<std::string> global;
std::list<std::vector<std::string>> local;
std::vector<std::string> global; // global : max 4095 values
std::list<std::vector<std::string>> local; // local : max 32768 upvalues 65536 values
void die(const std::string,const int);
void regist_number(const double);

View File

@ -134,7 +134,7 @@ void nasal_vm::valinfo(nasal_ref& val)
switch(val.type)
{
case vm_none: printf("\t| null |\n");break;
case vm_ret: printf("\t| addr | 0x%x\n",val.ret());break;
case vm_ret: printf("\t| addr | pc=0x%x\n",val.ret());break;
case vm_cnt: printf("\t| cnt | %ld\n",val.cnt());break;
case vm_nil: printf("\t| nil |\n");break;
case vm_num: printf("\t| num | %lf\n",val.num());break;
@ -142,7 +142,8 @@ void nasal_vm::valinfo(nasal_ref& val)
case vm_func: printf("\t| func | <0x%lx> entry=0x%x\n",(uint64_t)p,val.func()->entry);break;
case vm_vec: printf("\t| vec | <0x%lx> [%lu val]\n",(uint64_t)p,val.vec()->elems.size());break;
case vm_hash: printf("\t| hash | <0x%lx> {%lu member}\n",(uint64_t)p,val.hash()->elems.size());break;
case vm_obj: printf("\t| obj | <0x%lx>\n",(uint64_t)p);break;
case vm_obj: printf("\t| obj | <0x%lx> object=0x%lx\n",(uint64_t)p,(uint64_t)val.obj()->ptr);break;
default: printf("\t| ??? | <0x%lx>\n",(uint64_t)p);break;
}
}
void nasal_vm::bytecodeinfo(const uint32_t p)