mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 07:08:48 +00:00
Rename runtime.os_write to runtime.stderr_write
This commit is contained in:
@@ -2,6 +2,6 @@ package runtime
|
|||||||
|
|
||||||
_OS_Errno :: distinct int
|
_OS_Errno :: distinct int
|
||||||
|
|
||||||
os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
stderr_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
||||||
return _os_write(data)
|
return _stderr_write(data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ foreign libc {
|
|||||||
__error :: proc() -> ^i32 ---
|
__error :: proc() -> ^i32 ---
|
||||||
}
|
}
|
||||||
|
|
||||||
_os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
_stderr_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
||||||
ret := _unix_write(2, raw_data(data), len(data))
|
ret := _unix_write(2, raw_data(data), len(data))
|
||||||
if ret < len(data) {
|
if ret < len(data) {
|
||||||
err := __error()
|
err := __error()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ foreign libc {
|
|||||||
_get_errno :: proc() -> ^i32 ---
|
_get_errno :: proc() -> ^i32 ---
|
||||||
}
|
}
|
||||||
|
|
||||||
_os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
_stderr_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
||||||
ret := _fwrite(raw_data(data), 1, len(data), _stderr)
|
ret := _fwrite(raw_data(data), 1, len(data), _stderr)
|
||||||
if ret < len(data) {
|
if ret < len(data) {
|
||||||
err := _get_errno()
|
err := _get_errno()
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
// TODO(bill): reimplement `os.write`
|
// TODO(bill): reimplement `os.write`
|
||||||
_os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
_stderr_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
||||||
return 0, -1
|
return 0, -1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package runtime
|
|||||||
|
|
||||||
foreign import "odin_env"
|
foreign import "odin_env"
|
||||||
|
|
||||||
_os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
_stderr_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
||||||
foreign odin_env {
|
foreign odin_env {
|
||||||
write :: proc "contextless" (fd: u32, p: []byte) ---
|
write :: proc "contextless" (fd: u32, p: []byte) ---
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package runtime
|
|||||||
|
|
||||||
import "base:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
_os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
_stderr_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
||||||
when ODIN_ARCH == .amd64 {
|
when ODIN_ARCH == .amd64 {
|
||||||
SYS_write :: uintptr(1)
|
SYS_write :: uintptr(1)
|
||||||
} else when ODIN_ARCH == .arm64 {
|
} else when ODIN_ARCH == .arm64 {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package runtime
|
|||||||
|
|
||||||
import "core:sys/wasm/wasi"
|
import "core:sys/wasm/wasi"
|
||||||
|
|
||||||
_os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
_stderr_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
||||||
data := (wasi.ciovec_t)(data)
|
data := (wasi.ciovec_t)(data)
|
||||||
n, err := wasi.fd_write(1, {data})
|
n, err := wasi.fd_write(1, {data})
|
||||||
return int(n), _OS_Errno(err)
|
return int(n), _OS_Errno(err)
|
||||||
|
|||||||
@@ -9,14 +9,14 @@ foreign import kernel32 "system:Kernel32.lib"
|
|||||||
foreign kernel32 {
|
foreign kernel32 {
|
||||||
// NOTE(bill): The types are not using the standard names (e.g. DWORD and LPVOID) to just minimizing the dependency
|
// NOTE(bill): The types are not using the standard names (e.g. DWORD and LPVOID) to just minimizing the dependency
|
||||||
|
|
||||||
// os_write
|
// stderr_write
|
||||||
GetStdHandle :: proc(which: u32) -> rawptr ---
|
GetStdHandle :: proc(which: u32) -> rawptr ---
|
||||||
SetHandleInformation :: proc(hObject: rawptr, dwMask: u32, dwFlags: u32) -> b32 ---
|
SetHandleInformation :: proc(hObject: rawptr, dwMask: u32, dwFlags: u32) -> b32 ---
|
||||||
WriteFile :: proc(hFile: rawptr, lpBuffer: rawptr, nNumberOfBytesToWrite: u32, lpNumberOfBytesWritten: ^u32, lpOverlapped: rawptr) -> b32 ---
|
WriteFile :: proc(hFile: rawptr, lpBuffer: rawptr, nNumberOfBytesToWrite: u32, lpNumberOfBytesWritten: ^u32, lpOverlapped: rawptr) -> b32 ---
|
||||||
GetLastError :: proc() -> u32 ---
|
GetLastError :: proc() -> u32 ---
|
||||||
}
|
}
|
||||||
|
|
||||||
_os_write :: proc "contextless" (data: []byte) -> (n: int, err: _OS_Errno) #no_bounds_check {
|
_stderr_write :: proc "contextless" (data: []byte) -> (n: int, err: _OS_Errno) #no_bounds_check {
|
||||||
if len(data) == 0 {
|
if len(data) == 0 {
|
||||||
return 0, 0
|
return 0, 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,13 +123,13 @@ encode_rune :: proc "contextless" (c: rune) -> ([4]u8, int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print_string :: proc "contextless" (str: string) -> (n: int) {
|
print_string :: proc "contextless" (str: string) -> (n: int) {
|
||||||
n, _ = os_write(transmute([]byte)str)
|
n, _ = stderr_write(transmute([]byte)str)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
print_strings :: proc "contextless" (args: ..string) -> (n: int) {
|
print_strings :: proc "contextless" (args: ..string) -> (n: int) {
|
||||||
for str in args {
|
for str in args {
|
||||||
m, err := os_write(transmute([]byte)str)
|
m, err := stderr_write(transmute([]byte)str)
|
||||||
n += m
|
n += m
|
||||||
if err != 0 {
|
if err != 0 {
|
||||||
break
|
break
|
||||||
@@ -139,7 +139,7 @@ print_strings :: proc "contextless" (args: ..string) -> (n: int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print_byte :: proc "contextless" (b: byte) -> (n: int) {
|
print_byte :: proc "contextless" (b: byte) -> (n: int) {
|
||||||
n, _ = os_write([]byte{b})
|
n, _ = stderr_write([]byte{b})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ print_rune :: proc "contextless" (r: rune) -> int #no_bounds_check {
|
|||||||
}
|
}
|
||||||
|
|
||||||
b, n := encode_rune(r)
|
b, n := encode_rune(r)
|
||||||
m, _ := os_write(b[:n])
|
m, _ := stderr_write(b[:n])
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -194,7 +194,7 @@ print_u64 :: proc "contextless" (x: u64) #no_bounds_check {
|
|||||||
}
|
}
|
||||||
i -= 1; a[i] = _INTEGER_DIGITS_VAR[u % b]
|
i -= 1; a[i] = _INTEGER_DIGITS_VAR[u % b]
|
||||||
|
|
||||||
os_write(a[i:])
|
stderr_write(a[i:])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ print_i64 :: proc "contextless" (x: i64) #no_bounds_check {
|
|||||||
i -= 1; a[i] = '-'
|
i -= 1; a[i] = '-'
|
||||||
}
|
}
|
||||||
|
|
||||||
os_write(a[i:])
|
stderr_write(a[i:])
|
||||||
}
|
}
|
||||||
|
|
||||||
print_uint :: proc "contextless" (x: uint) { print_u64(u64(x)) }
|
print_uint :: proc "contextless" (x: uint) { print_u64(u64(x)) }
|
||||||
|
|||||||
Reference in New Issue
Block a user