From 7cc9a9f5c908d6fba8b12005622de15da359bd51 Mon Sep 17 00:00:00 2001 From: ValKmjolnir Date: Sat, 15 Jun 2024 00:16:10 +0800 Subject: [PATCH] :fire: delete useless native functions --- src/nasal_codegen.h | 3 +-- src/natives/unix_lib.cpp | 45 ---------------------------------------- src/natives/unix_lib.h | 3 --- std/unix.nas | 20 ------------------ 4 files changed, 1 insertion(+), 70 deletions(-) diff --git a/src/nasal_codegen.h b/src/nasal_codegen.h index 8b4d123..961a105 100644 --- a/src/nasal_codegen.h +++ b/src/nasal_codegen.h @@ -57,8 +57,7 @@ private: // dylib "__dlopen", "__dlclose", "__dlcallv", "__dlcall", // unix - "__pipe", "__fork", "__waitpid", "__chdir", - "__environ", "__getcwd", "__getenv", + "__chdir", "__environ", "__getcwd", "__getenv", // subprocess "__subprocess_create", "__subprocess_terminate" diff --git a/src/natives/unix_lib.cpp b/src/natives/unix_lib.cpp index f394734..a23ddd5 100644 --- a/src/natives/unix_lib.cpp +++ b/src/natives/unix_lib.cpp @@ -12,48 +12,6 @@ void dir_entry_destructor(void* ptr) { #endif } -var builtin_pipe(context* ctx, gc* ngc) { -#ifndef _WIN32 - i32 fd[2]; - var res = ngc->alloc(vm_type::vm_vec); - if (pipe(fd)==-1) { - return nas_err("unix::pipe", "failed to create pipe"); - } - res.vec().elems.push_back(var::num(static_cast(fd[0]))); - res.vec().elems.push_back(var::num(static_cast(fd[1]))); - return res; -#endif - return nas_err("unix::pipe", "not supported on windows"); -} - -var builtin_fork(context* ctx, gc* ngc) { -#ifndef _WIN32 - f64 res = fork(); - if (res<0) { - return nas_err("unix::fork", "failed to fork a process"); - } - return var::num(static_cast(res)); -#endif - return nas_err("unix::fork", "not supported on windows"); -} - -var builtin_waitpid(context* ctx, gc* ngc) { - auto pid = ctx->localr[1]; - auto nohang = ctx->localr[2]; - if (!pid.is_num() || !nohang.is_num()) { - return nas_err("unix::waitpid", "pid and nohang must be number"); - } -#ifndef _WIN32 - i32 ret_pid, status; - ret_pid = waitpid(pid.num(), &status, nohang.num()==0? 0:WNOHANG); - var vec = ngc->alloc(vm_type::vm_vec); - vec.vec().elems.push_back(var::num(static_cast(ret_pid))); - vec.vec().elems.push_back(var::num(static_cast(status))); - return vec; -#endif - return nas_err("unix::waitpid", "not supported on windows"); -} - var builtin_opendir(context* ctx, gc* ngc) { auto path = ctx->localr[1]; if (!path.is_str()) { @@ -139,9 +97,6 @@ var builtin_getenv(context* ctx, gc* ngc) { } nasal_builtin_table unix_lib_native[] = { - {"__pipe", builtin_pipe}, - {"__fork", builtin_fork}, - {"__waitpid", builtin_waitpid}, {"__opendir", builtin_opendir}, {"__readdir", builtin_readdir}, {"__closedir", builtin_closedir}, diff --git a/src/natives/unix_lib.h b/src/natives/unix_lib.h index 93a70aa..6ea292b 100644 --- a/src/natives/unix_lib.h +++ b/src/natives/unix_lib.h @@ -24,9 +24,6 @@ namespace nasal { void dir_entry_destructor(void*); -var builtin_pipe(context*, gc*); -var builtin_fork(context*, gc*); -var builtin_waitpid(context*, gc*); var builtin_opendir(context*, gc*); var builtin_readdir(context*, gc*); var builtin_closedir(context*, gc*); diff --git a/std/unix.nas b/std/unix.nas index a966c09..714f46f 100644 --- a/std/unix.nas +++ b/std/unix.nas @@ -7,26 +7,6 @@ use std.io; var _S_IFDIR = 0x4000; var _S_IFREG = 0x8000; -var pipe = func() { - return __pipe; -} - -var fork = func() { - return __fork; -} - -var dup2 = func(fd0, fd1) { - die("not supported yet"); -} - -var exec = func(filename, argv, envp) { - die("not supported yet"); -} - -var waitpid = func(pid, nohang = 0) { - return __waitpid; -} - var isdir = func(path) { return !!bits.u32_and(io.stat(path)[2], _S_IFDIR); }