diff options
| author | gingerBill <bill@gingerbill.org> | 2024-01-28 21:59:43 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2024-01-28 21:59:43 +0000 |
| commit | 9e7cc8cf9357750e3ed5410ef61bb9929ffcf011 (patch) | |
| tree | 0fd3f0fbb57e4951ffc99caf9ab9ddfb7c2485ab | |
| parent | 2743bf7e44807681422a9c70151cff1c07279189 (diff) | |
Remove `core:os` dependency from `base:runtime`; change to `base:intrinsics`
| -rw-r--r-- | base/runtime/core.odin | 2 | ||||
| -rw-r--r-- | base/runtime/core_builtin.odin | 2 | ||||
| -rw-r--r-- | base/runtime/core_builtin_soa.odin | 2 | ||||
| -rw-r--r-- | base/runtime/default_allocators_arena.odin | 2 | ||||
| -rw-r--r-- | base/runtime/dynamic_map_internal.odin | 2 | ||||
| -rw-r--r-- | base/runtime/entry_unix.odin | 2 | ||||
| -rw-r--r-- | base/runtime/entry_wasm.odin | 2 | ||||
| -rw-r--r-- | base/runtime/entry_windows.odin | 2 | ||||
| -rw-r--r-- | base/runtime/internal.odin | 2 | ||||
| -rw-r--r-- | base/runtime/os_specific_any.odin | 1 | ||||
| -rw-r--r-- | base/runtime/os_specific_darwin.odin | 21 | ||||
| -rw-r--r-- | base/runtime/os_specific_freestanding.odin | 1 | ||||
| -rw-r--r-- | base/runtime/os_specific_js.odin | 1 | ||||
| -rw-r--r-- | base/runtime/os_specific_wasi.odin | 1 | ||||
| -rw-r--r-- | base/runtime/procs_darwin.odin | 2 | ||||
| -rw-r--r-- | base/runtime/udivmod128.odin | 2 |
16 files changed, 32 insertions, 15 deletions
diff --git a/base/runtime/core.odin b/base/runtime/core.odin index 740482493..fbdf33085 100644 --- a/base/runtime/core.odin +++ b/base/runtime/core.odin @@ -21,7 +21,7 @@ //+no-instrumentation package runtime -import "core:intrinsics" +import "base:intrinsics" // NOTE(bill): This must match the compiler's Calling_Convention :: enum u8 { diff --git a/base/runtime/core_builtin.odin b/base/runtime/core_builtin.odin index 3f4ebbc74..b1f917108 100644 --- a/base/runtime/core_builtin.odin +++ b/base/runtime/core_builtin.odin @@ -1,6 +1,6 @@ package runtime -import "core:intrinsics" +import "base:intrinsics" @builtin Maybe :: union($T: typeid) {T} diff --git a/base/runtime/core_builtin_soa.odin b/base/runtime/core_builtin_soa.odin index 6313a28f5..94f5be1d4 100644 --- a/base/runtime/core_builtin_soa.odin +++ b/base/runtime/core_builtin_soa.odin @@ -1,6 +1,6 @@ package runtime -import "core:intrinsics" +import "base:intrinsics" _ :: intrinsics /* diff --git a/base/runtime/default_allocators_arena.odin b/base/runtime/default_allocators_arena.odin index 1fe3c6cfc..fcc98abfa 100644 --- a/base/runtime/default_allocators_arena.odin +++ b/base/runtime/default_allocators_arena.odin @@ -1,6 +1,6 @@ package runtime -import "core:intrinsics" +import "base:intrinsics" DEFAULT_ARENA_GROWING_MINIMUM_BLOCK_SIZE :: uint(DEFAULT_TEMP_ALLOCATOR_BACKING_SIZE) diff --git a/base/runtime/dynamic_map_internal.odin b/base/runtime/dynamic_map_internal.odin index 491a7974d..64cb02586 100644 --- a/base/runtime/dynamic_map_internal.odin +++ b/base/runtime/dynamic_map_internal.odin @@ -1,6 +1,6 @@ package runtime -import "core:intrinsics" +import "base:intrinsics" _ :: intrinsics // High performance, cache-friendly, open-addressed Robin Hood hashing hash map diff --git a/base/runtime/entry_unix.odin b/base/runtime/entry_unix.odin index f494a509e..233007936 100644 --- a/base/runtime/entry_unix.odin +++ b/base/runtime/entry_unix.odin @@ -3,7 +3,7 @@ //+no-instrumentation package runtime -import "core:intrinsics" +import "base:intrinsics" when ODIN_BUILD_MODE == .Dynamic { @(link_name="_odin_entry_point", linkage="strong", require/*, link_section=".init"*/) diff --git a/base/runtime/entry_wasm.odin b/base/runtime/entry_wasm.odin index e7f3f156f..c608942ba 100644 --- a/base/runtime/entry_wasm.odin +++ b/base/runtime/entry_wasm.odin @@ -3,7 +3,7 @@ //+no-instrumentation package runtime -import "core:intrinsics" +import "base:intrinsics" when !ODIN_TEST && !ODIN_NO_ENTRY_POINT { @(link_name="_start", linkage="strong", require, export) diff --git a/base/runtime/entry_windows.odin b/base/runtime/entry_windows.odin index b6fbe1dcc..7020e9ea8 100644 --- a/base/runtime/entry_windows.odin +++ b/base/runtime/entry_windows.odin @@ -3,7 +3,7 @@ //+no-instrumentation package runtime -import "core:intrinsics" +import "base:intrinsics" when ODIN_BUILD_MODE == .Dynamic { @(link_name="DllMain", linkage="strong", require) diff --git a/base/runtime/internal.odin b/base/runtime/internal.odin index a03c2a701..21342ef17 100644 --- a/base/runtime/internal.odin +++ b/base/runtime/internal.odin @@ -1,6 +1,6 @@ package runtime -import "core:intrinsics" +import "base:intrinsics" @(private="file") IS_WASM :: ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32 diff --git a/base/runtime/os_specific_any.odin b/base/runtime/os_specific_any.odin index 6a96655c4..7dc41c3c9 100644 --- a/base/runtime/os_specific_any.odin +++ b/base/runtime/os_specific_any.odin @@ -3,6 +3,7 @@ //+build !js //+build !wasi //+build !windows +//+private package runtime import "core:os" diff --git a/base/runtime/os_specific_darwin.odin b/base/runtime/os_specific_darwin.odin index 5de9a7d57..5630c733c 100644 --- a/base/runtime/os_specific_darwin.odin +++ b/base/runtime/os_specific_darwin.odin @@ -1,12 +1,25 @@ //+build darwin +//+private package runtime -import "core:intrinsics" +foreign import libc "system:System.framework" + +foreign libc { + @(link_name="__stderrp") + _stderr: rawptr + + @(link_name="fwrite") + _fwrite :: proc(ptr: rawptr, size: uint, nmemb: uint, stream: rawptr) -> uint --- + + @(link_name="__error") + _get_errno :: proc() -> ^i32 --- +} _os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) { - ret := intrinsics.syscall(0x2000004, 1, uintptr(raw_data(data)), uintptr(len(data))) - if ret < 0 { - return 0, _OS_Errno(-ret) + ret := _fwrite(raw_data(data), 1, len(data), _stderr) + if ret < len(data) { + err := _get_errno() + return int(ret), _OS_Errno(err^ if err != nil else 0) } return int(ret), 0 } diff --git a/base/runtime/os_specific_freestanding.odin b/base/runtime/os_specific_freestanding.odin index a6d04cefb..817b22483 100644 --- a/base/runtime/os_specific_freestanding.odin +++ b/base/runtime/os_specific_freestanding.odin @@ -1,4 +1,5 @@ //+build freestanding +//+private package runtime // TODO(bill): reimplement `os.write` diff --git a/base/runtime/os_specific_js.odin b/base/runtime/os_specific_js.odin index 246141d87..541c785ef 100644 --- a/base/runtime/os_specific_js.odin +++ b/base/runtime/os_specific_js.odin @@ -1,4 +1,5 @@ //+build js +//+private package runtime foreign import "odin_env" diff --git a/base/runtime/os_specific_wasi.odin b/base/runtime/os_specific_wasi.odin index 3f69504ee..502f027f0 100644 --- a/base/runtime/os_specific_wasi.odin +++ b/base/runtime/os_specific_wasi.odin @@ -1,4 +1,5 @@ //+build wasi +//+private package runtime import "core:sys/wasm/wasi" diff --git a/base/runtime/procs_darwin.odin b/base/runtime/procs_darwin.odin index 9c53b5b16..497978a76 100644 --- a/base/runtime/procs_darwin.odin +++ b/base/runtime/procs_darwin.odin @@ -3,7 +3,7 @@ package runtime foreign import "system:Foundation.framework" -import "core:intrinsics" +import "base:intrinsics" objc_id :: ^intrinsics.objc_object objc_Class :: ^intrinsics.objc_class diff --git a/base/runtime/udivmod128.odin b/base/runtime/udivmod128.odin index 87ef73c2c..eceb815bf 100644 --- a/base/runtime/udivmod128.odin +++ b/base/runtime/udivmod128.odin @@ -1,6 +1,6 @@ package runtime -import "core:intrinsics" +import "base:intrinsics" udivmod128 :: proc "c" (a, b: u128, rem: ^u128) -> u128 { _ctz :: intrinsics.count_trailing_zeros |