aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-01-28 21:59:43 +0000
committergingerBill <bill@gingerbill.org>2024-01-28 21:59:43 +0000
commit9e7cc8cf9357750e3ed5410ef61bb9929ffcf011 (patch)
tree0fd3f0fbb57e4951ffc99caf9ab9ddfb7c2485ab
parent2743bf7e44807681422a9c70151cff1c07279189 (diff)
Remove `core:os` dependency from `base:runtime`; change to `base:intrinsics`
-rw-r--r--base/runtime/core.odin2
-rw-r--r--base/runtime/core_builtin.odin2
-rw-r--r--base/runtime/core_builtin_soa.odin2
-rw-r--r--base/runtime/default_allocators_arena.odin2
-rw-r--r--base/runtime/dynamic_map_internal.odin2
-rw-r--r--base/runtime/entry_unix.odin2
-rw-r--r--base/runtime/entry_wasm.odin2
-rw-r--r--base/runtime/entry_windows.odin2
-rw-r--r--base/runtime/internal.odin2
-rw-r--r--base/runtime/os_specific_any.odin1
-rw-r--r--base/runtime/os_specific_darwin.odin21
-rw-r--r--base/runtime/os_specific_freestanding.odin1
-rw-r--r--base/runtime/os_specific_js.odin1
-rw-r--r--base/runtime/os_specific_wasi.odin1
-rw-r--r--base/runtime/procs_darwin.odin2
-rw-r--r--base/runtime/udivmod128.odin2
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