⚡ optimize lib.nas
This commit is contained in:
parent
f747d91efe
commit
d56434ae28
|
@ -1,4 +1,5 @@
|
|||
use std.dylib;
|
||||
use std.os;
|
||||
|
||||
var _dl = dylib.dlopen("libfib."~(os.platform()=="windows"?"dll":"so"));
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use std.dylib;
|
||||
use std.os;
|
||||
|
||||
var (
|
||||
kbhit,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use std.dylib;
|
||||
use std.os;
|
||||
|
||||
var _dl = dylib.dlopen("libmat."~(os.platform()=="windows"?"dll":"so"));
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use std.dylib;
|
||||
use std.os;
|
||||
|
||||
var socket = func() {
|
||||
var lib = dylib.dlopen("libnasock"~(os.platform()=="windows"? ".dll":".so"));
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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:]
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# lib file.nas
|
||||
# ValKmjolnir 2022/3/6
|
||||
use std.io;
|
||||
use std.unix;
|
||||
|
||||
var SEEK_SET = io.SEEK_SET;
|
||||
|
||||
|
|
18
std/io.nas
18
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]
|
||||
};
|
||||
}
|
||||
|
|
21
std/lib.nas
21
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
|
||||
|
|
|
@ -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="";
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
use std.padding;
|
||||
use std.process_bar;
|
||||
use std.os;
|
||||
use std.unix;
|
||||
|
||||
var char_ttf=[
|
||||
[" "," "," "," "," "," "],
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
use std.os;
|
||||
|
||||
var mandelbrot=
|
||||
"[A mandelbrot set fractal viewer in brainf*** written by Erik Bosman]
|
||||
+++++++++++++[->++>>>+++++>++>+<<<<<<]>>>>>++++++>--->>>>>>>>>>+++++++++++++++[[
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
use std.io;
|
||||
|
||||
var mandelbrot=
|
||||
"[A mandelbrot set fractal viewer in brainf*** written by Erik Bosman]
|
||||
+++++++++++++[->++>>>+++++>++>+<<<<<<]>>>>>++++++>--->>>>>>>>>>+++++++++++++++[[
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
use std.queue;
|
||||
use std.os;
|
||||
use std.unix;
|
||||
|
||||
rand(time(0));
|
||||
var pixel=[' ','#','.','*'];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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});
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
use std.coroutine;
|
||||
use std.process_bar;
|
||||
use std.padding;
|
||||
use std.os;
|
||||
|
||||
if (os.platform()=="windows") {
|
||||
system("chcp 65001");
|
||||
|
|
|
@ -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,"");
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
use std.os;
|
||||
use std.io;
|
||||
use std.unix;
|
||||
|
||||
var files = func(path) {
|
||||
if (!io.exists(path))
|
||||
return [];
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use module.libkey;
|
||||
use std.unix;
|
||||
|
||||
srand();
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use std.runtime;
|
||||
use std.os;
|
||||
|
||||
var test_func = func(test_processes...) {
|
||||
var test_process_total = maketimestamp();
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# 2021/8/13
|
||||
use std.file;
|
||||
use std.runtime;
|
||||
use std.os;
|
||||
use std.io;
|
||||
|
||||
# init
|
||||
var hex = func() {
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
use module.libsock;
|
||||
use std.os;
|
||||
use std.io;
|
||||
use std.unix;
|
||||
|
||||
var socket = libsock.socket;
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
use module.libsock;
|
||||
use std.json;
|
||||
use std.runtime;
|
||||
use std.os;
|
||||
use std.unix;
|
||||
|
||||
var socket = libsock.socket;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
use std.io;
|
||||
|
||||
var lexer = func(file) {
|
||||
var (ptr,token)=(0,[]);
|
||||
var s=io.readfile(file);
|
||||
|
|
|
@ -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=[];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use std.bits;
|
||||
use std.os;
|
||||
|
||||
var inst={
|
||||
inst_stop:0,
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
use test.md5_self;
|
||||
use std.process_bar;
|
||||
use std.file;
|
||||
use std.os;
|
||||
use std.io;
|
||||
|
||||
srand();
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
use std.os;
|
||||
use std.dylib;
|
||||
use module.libfib;
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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],
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use std.udp;
|
||||
use std.unix;
|
||||
|
||||
var argument = arg[0];
|
||||
if (argument=="server") {
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# wave collapse function 2022/4/10
|
||||
# by ValKmjolnir
|
||||
use std.os;
|
||||
|
||||
srand();
|
||||
var table=[
|
||||
# c ,w,a,s,d
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use std.runtime;
|
||||
use std.io;
|
||||
|
||||
var to_lower = func(s) {
|
||||
var tmp="";
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
use std.io;
|
||||
|
||||
var ppm = func(filename, buffer) {
|
||||
# P3 use ASCII number
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
use std.os;
|
||||
use std.unix;
|
||||
|
||||
println("[", os.time(), "] (=.=) auto push, please wait...");
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue