diff --git a/module/libfib.nas b/module/libfib.nas index 078630f..d5e92f6 100644 --- a/module/libfib.nas +++ b/module/libfib.nas @@ -1,4 +1,5 @@ use std.dylib; +use std.os; var _dl = dylib.dlopen("libfib."~(os.platform()=="windows"?"dll":"so")); diff --git a/module/libjson.nas b/module/libjson.nas index eefa7fa..e9209a3 100644 --- a/module/libjson.nas +++ b/module/libjson.nas @@ -2,6 +2,7 @@ # 2023/11/27 ValKmjolnir use std.dylib; +use std.os; var _dynamic_lib = dylib.dlopen("libjson."~(os.platform()=="windows"?"dll":"so")); var _stringify = _dynamic_lib.stringify; diff --git a/module/libkey.nas b/module/libkey.nas index 564266b..26f46da 100644 --- a/module/libkey.nas +++ b/module/libkey.nas @@ -1,4 +1,5 @@ use std.dylib; +use std.os; var ( kbhit, diff --git a/module/libmat.nas b/module/libmat.nas index be7ef60..cbf02c9 100644 --- a/module/libmat.nas +++ b/module/libmat.nas @@ -1,4 +1,5 @@ use std.dylib; +use std.os; var _dl = dylib.dlopen("libmat."~(os.platform()=="windows"?"dll":"so")); diff --git a/module/libsock.nas b/module/libsock.nas index d8ace4e..e686cf1 100644 --- a/module/libsock.nas +++ b/module/libsock.nas @@ -1,4 +1,5 @@ use std.dylib; +use std.os; var socket = func() { var lib = dylib.dlopen("libnasock"~(os.platform()=="windows"? ".dll":".so")); diff --git a/src/nasal_gc.cpp b/src/nasal_gc.cpp index ed95a99..e402447 100644 --- a/src/nasal_gc.cpp +++ b/src/nasal_gc.cpp @@ -197,7 +197,7 @@ void gc::extend(const vm_type type) { memory.push_back(tmp); unused[index].push_back(tmp); } - + // if incr[index] = 1, this will always be 1 incr[index] = incr[index]+incr[index]/2; } diff --git a/src/nasal_gc.h b/src/nasal_gc.h index e1c9a39..47d174c 100644 --- a/src/nasal_gc.h +++ b/src/nasal_gc.h @@ -45,11 +45,11 @@ struct gc { 128, // vm_str 128, // vm_vec 64, // vm_hash - 128, // vm_func + 256, // vm_func 256, // vm_upval 16, // vm_obj 16, // vm_co - 2, // vm_map + 1, // vm_map }; /* values for analysis */ diff --git a/std/csv.nas b/std/csv.nas index 7423360..c2d843d 100644 --- a/std/csv.nas +++ b/std/csv.nas @@ -1,5 +1,7 @@ # lib csv.nas # ValKmjolnir 2022/10/15 +use std.io; + var read = func(path, delimeter=",", endline="\n") { var context = io.readfile(path); context = split(endline, context); @@ -13,4 +15,4 @@ var read = func(path, delimeter=",", endline="\n") { property: context[0], data: context[1:] }; -} \ No newline at end of file +} diff --git a/std/dylib.nas b/std/dylib.nas index 92f5bcf..a808653 100644 --- a/std/dylib.nas +++ b/std/dylib.nas @@ -2,6 +2,9 @@ # 2023 by ValKmjolnir # dylib is the core hashmap for developers to load their own library. # for safe using dynamic library, you could use 'module' in stl/module.nas +use std.os; +use std.io; +use std.unix; # open dynamic lib. return a hash including dl pointer and function pointers var dlopen = func(libname) { diff --git a/std/fg_env.nas b/std/fg_env.nas index ffe40f7..46c3878 100644 --- a/std/fg_env.nas +++ b/std/fg_env.nas @@ -2,6 +2,7 @@ # ValKmjolnir 2022 use std.runtime; use std.coroutine; +use std.os; println("-------------------------------------------------------------"); println(" FlightGear simulated-env for developers project, since 2019"); diff --git a/std/file.nas b/std/file.nas index cc033fa..1138a54 100644 --- a/std/file.nas +++ b/std/file.nas @@ -1,5 +1,7 @@ # lib file.nas # ValKmjolnir 2022/3/6 +use std.io; +use std.unix; var SEEK_SET = io.SEEK_SET; diff --git a/std/io.nas b/std/io.nas index d2a950a..bbc9e74 100644 --- a/std/io.nas +++ b/std/io.nas @@ -72,3 +72,21 @@ var stdin = func() { return __stdin; }(); var stdout = func() { return __stdout;}(); var stderr = func() { return __stderr; }(); + +# get file status. using data from stat +var fstat = func(filename) { + var s = stat(filename); + return { + st_dev: s[0], + st_ino: s[1], + st_mode: s[2], + st_nlink: s[3], + st_uid: s[4], + st_gid: s[5], + st_rdev: s[6], + st_size: s[7], + st_atime: s[8], + st_mtime: s[9], + st_ctime: s[10] + }; +} diff --git a/std/lib.nas b/std/lib.nas index bb2a408..60d7eca 100644 --- a/std/lib.nas +++ b/std/lib.nas @@ -1,9 +1,6 @@ # lib.nas # 2019 ValKmjolnir use std.math; -use std.io; -use std.os; -use std.unix; # print is used to print all things in nasal, try and see how it works. # this function uses std::cout to output logs. @@ -349,24 +346,6 @@ var md5 = func(str) { return __md5(str); } -# get file status. using data from io.stat -var fstat = func(filename) { - var s = io.stat(filename); - return { - st_dev: s[0], - st_ino: s[1], - st_mode: s[2], - st_nlink: s[3], - st_uid: s[4], - st_gid: s[5], - st_rdev: s[6], - st_size: s[7], - st_atime: s[8], - st_mtime: s[9], - st_ctime: s[10] - }; -} - # important global constants var D2R = math.pi / 180; # degree to radian var R2D = 180 / math.pi; # radian to degree diff --git a/std/log.nas b/std/log.nas index ce22517..432256c 100644 --- a/std/log.nas +++ b/std/log.nas @@ -1,5 +1,7 @@ # log.nas # ValKmjolnir 2022/6/14 +use std.os; + var log = func() { var (log_date,log_time,prefix)=(1,1,""); var os_time=""; diff --git a/std/phi.nas b/std/phi.nas index a185c6a..2602d39 100644 --- a/std/phi.nas +++ b/std/phi.nas @@ -5,6 +5,8 @@ use module.libsock; use std.json; +use std.os; +use std.unix; var _raw_str = func(s) { var v = split("", s); diff --git a/std/process_bar.nas b/std/process_bar.nas index cac9f07..6bf76aa 100644 --- a/std/process_bar.nas +++ b/std/process_bar.nas @@ -1,6 +1,8 @@ # process_bar.nas # ValKmjolnir 2022/6/14 # this file is inspired by a Python lib: alive_progress +use std.os; +use std.unix; var bar = func() { var bar = { @@ -240,96 +242,96 @@ var default_bar = func(name = "classic", length = 20) { if (typeof(name)!="str") name="classic"; if (name=="classic") - return process_bar.bar("sharp","point","bracket",length); + return bar("sharp","point","bracket",length); elsif (name=="classic2") - return process_bar.bar("equal","point","bracket",length); + return bar("equal","point","bracket",length); elsif (name=="classic3") - return process_bar.bar("sharp","point","line",length); + return bar("sharp","point","line",length); elsif (name=="classic4") - return process_bar.bar("equal","point","line",length); + return bar("equal","point","line",length); elsif (name=="triangle") - return process_bar.bar("solid_triangle_right","hollow_triangle_right","angle_bracket",length); + return bar("solid_triangle_right","hollow_triangle_right","angle_bracket",length); elsif (name=="dots") - return process_bar.bar("solid_circle","hollow_circle","curve",length); + return bar("solid_circle","hollow_circle","curve",length); elsif (name=="ticks") - return process_bar.bar("tick","space","line",length); + return bar("tick","space","line",length); elsif (name=="deep_shadow") - return process_bar.bar("deep_shadow","light_shadow","line",length); + return bar("deep_shadow","light_shadow","line",length); elsif (name=="block") - return process_bar.bar("block","light_shadow","line",length); + return bar("block","light_shadow","line",length); elsif (name=="oneline") - return process_bar.bar("line","space","space",length); + return bar("line","space","space",length); else - return process_bar.bar("sharp","point","bracket",length); + return bar("sharp","point","bracket",length); } var default_spinner = func(name = "classic", repeat = 1) { if (typeof(name)!="str") name="classic"; if (name=="rise") - return process_bar.spinner("rise",repeat); + return spinner("rise",repeat); elsif (name=="vertical") - return process_bar.spinner("vertical",repeat); + return spinner("vertical",repeat); elsif (name=="dot") - return process_bar.spinner("dot",repeat); + return spinner("dot",repeat); elsif (name=="dots") - return process_bar.spinner("dots",repeat); + return spinner("dots",repeat); elsif (name=="arrow") - return process_bar.spinner("arrow",repeat); + return spinner("arrow",repeat); elsif (name=="classic") - return process_bar.spinner("classic",repeat); + return spinner("classic",repeat); elsif (name=="balls") - return process_bar.spinner("balls",repeat); + return spinner("balls",repeat); elsif (name=="dots_wave") - return process_bar.spinner("dots_wave",repeat); + return spinner("dots_wave",repeat); elsif (name=="pulse") - return process_bar.spinner("pulse",repeat); + return spinner("pulse",repeat); elsif (name=="wave") - return process_bar.spinner("wave",repeat); + return spinner("wave",repeat); elsif (name=="short_wave") - return process_bar.spinner("short_wave",repeat); + return spinner("short_wave",repeat); elsif (name=="fish") - return process_bar.spinner("fish",repeat); + return spinner("fish",repeat); elsif (name=="happy") - return process_bar.spinner("happy",repeat); + return spinner("happy",repeat); elsif (name=="wait") - return process_bar.spinner("wait",repeat); + return spinner("wait",repeat); elsif (name=="stars") - return process_bar.spinner("stars",repeat); + return spinner("stars",repeat); else - return process_bar.spinner("classic",repeat); + return spinner("classic",repeat); } var show = func() { print("\ec"); var bars={ - "classic ":process_bar.default_bar("classic",40), - "classic2 ":process_bar.default_bar("classic2",40), - "classic3 ":process_bar.default_bar("classic3",40), - "classic4 ":process_bar.default_bar("classic4",40), - "triangle ":process_bar.default_bar("triangle",40), - "dots ":process_bar.default_bar("dots",40), - "ticks ":process_bar.default_bar("ticks",40), - "deep_shadow":process_bar.default_bar("deep_shadow",40), - "block ":process_bar.default_bar("block",40), - "oneline ":process_bar.default_bar("oneline",40) + "classic ":default_bar("classic",40), + "classic2 ":default_bar("classic2",40), + "classic3 ":default_bar("classic3",40), + "classic4 ":default_bar("classic4",40), + "triangle ":default_bar("triangle",40), + "dots ":default_bar("dots",40), + "ticks ":default_bar("ticks",40), + "deep_shadow":default_bar("deep_shadow",40), + "block ":default_bar("block",40), + "oneline ":default_bar("oneline",40) }; var spinners={ - "rise ":process_bar.default_spinner("rise",16), - "vertical ":process_bar.default_spinner("vertical",16), - "dot ":process_bar.default_spinner("dot",16), - "dots ":process_bar.default_spinner("dots",16), - "arrow ":process_bar.default_spinner("arrow",16), - "classic ":process_bar.default_spinner("classic",16), - "balls ":process_bar.default_spinner("balls",4), - "dots_wave ":process_bar.default_spinner("dots_wave",2), - "pulse ":process_bar.default_spinner("pulse",1), - "wave ":process_bar.default_spinner("wave",2), - "short_wave ":process_bar.default_spinner("short_wave",4), - "fish ":process_bar.default_spinner("fish",1), - "happy ":process_bar.default_spinner("happy",1), - "wait ":process_bar.default_spinner("wait",1), - "stars ":process_bar.default_spinner("stars",1) + "rise ":default_spinner("rise",16), + "vertical ":default_spinner("vertical",16), + "dot ":default_spinner("dot",16), + "dots ":default_spinner("dots",16), + "arrow ":default_spinner("arrow",16), + "classic ":default_spinner("classic",16), + "balls ":default_spinner("balls",4), + "dots_wave ":default_spinner("dots_wave",2), + "pulse ":default_spinner("pulse",1), + "wave ":default_spinner("wave",2), + "short_wave ":default_spinner("short_wave",4), + "fish ":default_spinner("fish",1), + "happy ":default_spinner("happy",1), + "wait ":default_spinner("wait",1), + "stars ":default_spinner("stars",1) }; var bar_key=keys(bars); var spin_key=keys(spinners); diff --git a/std/udp.nas b/std/udp.nas index 6f6210b..0f4efbf 100644 --- a/std/udp.nas +++ b/std/udp.nas @@ -1,4 +1,6 @@ use module.libsock; +use std.os; +use std.unix; var udp_server = func(hostname, port, retry_delay = 5) { var socket = libsock.socket; diff --git a/std/unix.nas b/std/unix.nas index 88f0282..a966c09 100644 --- a/std/unix.nas +++ b/std/unix.nas @@ -1,6 +1,8 @@ # unix.nas # 2023 by ValKmjolnir use std.bits; +use std.os; +use std.io; var _S_IFDIR = 0x4000; var _S_IFREG = 0x8000; @@ -70,5 +72,5 @@ var getenv = func(envvar) { } var getpath = func() { - return split(os.platform()=="windows"? ";":":", unix.getenv("PATH")); + return split(os.platform()=="windows"? ";":":", getenv("PATH")); } diff --git a/test/ascii-art.nas b/test/ascii-art.nas index 95c53ea..1ea8bdf 100644 --- a/test/ascii-art.nas +++ b/test/ascii-art.nas @@ -1,5 +1,7 @@ use std.padding; use std.process_bar; +use std.os; +use std.unix; var char_ttf=[ [" "," "," "," "," "," "], diff --git a/test/bf.nas b/test/bf.nas index 546446c..7c4c4bf 100644 --- a/test/bf.nas +++ b/test/bf.nas @@ -1,3 +1,5 @@ +use std.os; + var mandelbrot= "[A mandelbrot set fractal viewer in brainf*** written by Erik Bosman] +++++++++++++[->++>>>+++++>++>+<<<<<<]>>>>>++++++>--->>>>>>>>>>+++++++++++++++[[ diff --git a/test/bfconvertor.nas b/test/bfconvertor.nas index 074c844..388a4f3 100644 --- a/test/bfconvertor.nas +++ b/test/bfconvertor.nas @@ -1,3 +1,5 @@ +use std.io; + var mandelbrot= "[A mandelbrot set fractal viewer in brainf*** written by Erik Bosman] +++++++++++++[->++>>>+++++>++>+<<<<<<]>>>>>++++++>--->>>>>>>>>>+++++++++++++++[[ diff --git a/test/bfs.nas b/test/bfs.nas index 3775981..294f292 100644 --- a/test/bfs.nas +++ b/test/bfs.nas @@ -1,4 +1,6 @@ use std.queue; +use std.os; +use std.unix; rand(time(0)); var pixel=[' ','#','.','*']; diff --git a/test/burningship.nas b/test/burningship.nas index 076feff..c3a5b68 100644 --- a/test/burningship.nas +++ b/test/burningship.nas @@ -1,4 +1,6 @@ use std.process_bar; +use std.os; +use std.io; var ppm = func(filename, width, height, RGB) { # P3 use ASCII number diff --git a/test/calc.nas b/test/calc.nas index 3088387..caadb7f 100644 --- a/test/calc.nas +++ b/test/calc.nas @@ -1,5 +1,6 @@ use std.padding; use std.file; +use std.io; var source = file.find_all_files_with_extension("./src", "cpp", "h"); sort(source, func(a, b) {return cmp(a, b)<0}); diff --git a/test/coroutine.nas b/test/coroutine.nas index b101049..deb1c1d 100644 --- a/test/coroutine.nas +++ b/test/coroutine.nas @@ -3,6 +3,7 @@ use std.coroutine; use std.process_bar; use std.padding; +use std.os; if (os.platform()=="windows") { system("chcp 65001"); diff --git a/test/diff.nas b/test/diff.nas index 9a7a492..40b2a86 100644 --- a/test/diff.nas +++ b/test/diff.nas @@ -1,3 +1,5 @@ +use std.io; + var myers = func(src,dst,show_table=0) { (src,dst)=(split("\n",src),split("\n",dst)); append(src,""); diff --git a/test/feigenbaum.nas b/test/feigenbaum.nas index 66b4d2a..760bd50 100644 --- a/test/feigenbaum.nas +++ b/test/feigenbaum.nas @@ -1,4 +1,6 @@ use std.process_bar; +use std.os; +use std.io; var ppm = func(filename, width, height, RGB) { # P3 use ASCII number diff --git a/test/filesystem.nas b/test/filesystem.nas index 92d6521..27d67e9 100644 --- a/test/filesystem.nas +++ b/test/filesystem.nas @@ -1,3 +1,7 @@ +use std.os; +use std.io; +use std.unix; + var files = func(path) { if (!io.exists(path)) return []; diff --git a/test/flush_screen.nas b/test/flush_screen.nas index 499797a..e9937f4 100644 --- a/test/flush_screen.nas +++ b/test/flush_screen.nas @@ -1,4 +1,5 @@ use module.libkey; +use std.unix; srand(); diff --git a/test/gc_test.nas b/test/gc_test.nas index fd3f28e..8263c77 100644 --- a/test/gc_test.nas +++ b/test/gc_test.nas @@ -1,4 +1,5 @@ use std.runtime; +use std.os; var test_func = func(test_processes...) { var test_process_total = maketimestamp(); diff --git a/test/hexdump.nas b/test/hexdump.nas index b90606d..cf5c66b 100644 --- a/test/hexdump.nas +++ b/test/hexdump.nas @@ -2,6 +2,8 @@ # 2021/8/13 use std.file; use std.runtime; +use std.os; +use std.io; # init var hex = func() { diff --git a/test/httptest.nas b/test/httptest.nas index 3ec6719..ee919fb 100644 --- a/test/httptest.nas +++ b/test/httptest.nas @@ -1,4 +1,7 @@ use module.libsock; +use std.os; +use std.io; +use std.unix; var socket = libsock.socket; diff --git a/test/jsonrpc.nas b/test/jsonrpc.nas index c5dfaa7..3b7f95b 100644 --- a/test/jsonrpc.nas +++ b/test/jsonrpc.nas @@ -1,6 +1,8 @@ use module.libsock; use std.json; use std.runtime; +use std.os; +use std.unix; var socket = libsock.socket; diff --git a/test/juliaset.nas b/test/juliaset.nas index e6d387a..0bb5e63 100644 --- a/test/juliaset.nas +++ b/test/juliaset.nas @@ -1,4 +1,6 @@ use std.process_bar; +use std.os; +use std.io; var ppm = func(filename, width, height, RGB) { # P3 use ASCII number diff --git a/test/lexer.nas b/test/lexer.nas index 6055a90..211ed04 100644 --- a/test/lexer.nas +++ b/test/lexer.nas @@ -1,3 +1,5 @@ +use std.io; + var lexer = func(file) { var (ptr,token)=(0,[]); var s=io.readfile(file); diff --git a/test/life.nas b/test/life.nas index 8bdcbcb..18e0b25 100644 --- a/test/life.nas +++ b/test/life.nas @@ -1,5 +1,8 @@ use std.process_bar; use std.runtime; +use std.os; +use std.io; +use std.unix; var new_map = func(width,height) { var tmp=[]; diff --git a/test/mandelbrotset.nas b/test/mandelbrotset.nas index 072a37d..c4573bc 100644 --- a/test/mandelbrotset.nas +++ b/test/mandelbrotset.nas @@ -1,4 +1,6 @@ use std.process_bar; +use std.os; +use std.io; var ppm = func(filename, width, height, RGB) { # P3 use ASCII number diff --git a/test/mcpu.nas b/test/mcpu.nas index 7860d2c..d1ade9b 100644 --- a/test/mcpu.nas +++ b/test/mcpu.nas @@ -1,4 +1,5 @@ use std.bits; +use std.os; var inst={ inst_stop:0, diff --git a/test/md5compare.nas b/test/md5compare.nas index 5bf7f47..1fcfda7 100644 --- a/test/md5compare.nas +++ b/test/md5compare.nas @@ -1,6 +1,8 @@ use test.md5_self; use std.process_bar; use std.file; +use std.os; +use std.io; srand(); diff --git a/test/module_test.nas b/test/module_test.nas index de7228f..5eec70c 100644 --- a/test/module_test.nas +++ b/test/module_test.nas @@ -1,3 +1,4 @@ +use std.os; use std.dylib; use module.libfib; diff --git a/test/occupation.nas b/test/occupation.nas index 6cd2f93..577539e 100644 --- a/test/occupation.nas +++ b/test/occupation.nas @@ -2,6 +2,9 @@ use std.coroutine; use std.process_bar; use module.libkey; use std.runtime; +use std.os; +use std.io; +use std.unix; var is_windows_platform=os.platform()=="windows"; var is_macos_platform=os.platform()=="macOS"; diff --git a/test/qrcode.nas b/test/qrcode.nas index 3b4c4c1..04fb12a 100644 --- a/test/qrcode.nas +++ b/test/qrcode.nas @@ -1,3 +1,4 @@ +use std.os; var code=[ [1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,1,1,1,1,1], [1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1], diff --git a/test/snake.nas b/test/snake.nas index dec06ff..3a314b8 100644 --- a/test/snake.nas +++ b/test/snake.nas @@ -2,6 +2,8 @@ use module.libkey; use std.list; use std.runtime; use std.coroutine; +use std.os; +use std.unix; var game = func(x,y) { rand(time(0)); diff --git a/test/tetris.nas b/test/tetris.nas index 50ebe74..3493c2c 100644 --- a/test/tetris.nas +++ b/test/tetris.nas @@ -1,5 +1,7 @@ use module.libkey; use std.runtime; +use std.os; +use std.unix; var color=[ "\e[31m","\e[32m","\e[33m","\e[34m","\e[35m","\e[36m", diff --git a/test/udptest.nas b/test/udptest.nas index 2275f93..94c80f5 100644 --- a/test/udptest.nas +++ b/test/udptest.nas @@ -1,4 +1,5 @@ use std.udp; +use std.unix; var argument = arg[0]; if (argument=="server") { diff --git a/test/watchdog.nas b/test/watchdog.nas index 1cb53a0..2e315fd 100644 --- a/test/watchdog.nas +++ b/test/watchdog.nas @@ -1,4 +1,7 @@ use std.runtime; +use std.os; +use std.io; +use std.unix; var os_time = func() { return "[\e[33;1m"~os.time()~"\e[0m] "; @@ -35,7 +38,7 @@ if (size(argv)==2) { args=split(" ",argv[1]); } -var modified_time=fstat(filename).st_mtime; +var modified_time = io.fstat(filename).st_mtime; println(os_time(),info_hd(),"\e[1mwatching ",filename," ..\e[0m"); while(1) { unix.sleep(1); @@ -43,7 +46,7 @@ while(1) { println(os_time(),err_hd(),"\e[1mfile <",filename,"> does not exist\e[0m"); break; } - var latest_modified_time=fstat(filename).st_mtime; + var latest_modified_time = io.fstat(filename).st_mtime; if (latest_modified_time!=modified_time) { modified_time=latest_modified_time; println(os_time(),modified_hd(),"\e[1m",filename,"\e[0m"); diff --git a/test/wavecollapse.nas b/test/wavecollapse.nas index 1cdbf90..5c34caa 100644 --- a/test/wavecollapse.nas +++ b/test/wavecollapse.nas @@ -1,5 +1,7 @@ # wave collapse function 2022/4/10 # by ValKmjolnir +use std.os; + srand(); var table=[ # c ,w,a,s,d diff --git a/test/word_collector.nas b/test/word_collector.nas index 38e33db..4b2eeca 100644 --- a/test/word_collector.nas +++ b/test/word_collector.nas @@ -1,4 +1,5 @@ use std.runtime; +use std.io; var to_lower = func(s) { var tmp=""; diff --git a/tools/file2ppm.nas b/tools/file2ppm.nas index b2498dc..0459c0a 100644 --- a/tools/file2ppm.nas +++ b/tools/file2ppm.nas @@ -1,3 +1,4 @@ +use std.io; var ppm = func(filename, buffer) { # P3 use ASCII number diff --git a/tools/push.nas b/tools/push.nas index c4c1a60..61aefea 100644 --- a/tools/push.nas +++ b/tools/push.nas @@ -1,3 +1,5 @@ +use std.os; +use std.unix; println("[", os.time(), "] (=.=) auto push, please wait..."); diff --git a/tools/search_file.nas b/tools/search_file.nas index 307f0b0..242f326 100644 --- a/tools/search_file.nas +++ b/tools/search_file.nas @@ -1,6 +1,7 @@ use std.file; use std.padding; use std.process_bar; +use std.io; var tips = func() { println("usage:"); @@ -29,7 +30,7 @@ foreach(var f; all_files) { } var begin = substr(f, 0, pos); var end = pos+size(needle)>=size(f)? "":substr(f, pos+size(needle), size(f)); - var file_size = fstat(f).st_size; + var file_size = io.fstat(f).st_size; var unit = " b"; if (file_size>1024) { file_size/=1024;