Remove core:os dependency from base:runtime; change to base:intrinsics

This commit is contained in:
gingerBill
2024-01-28 21:59:43 +00:00
parent 2743bf7e44
commit 9e7cc8cf93
16 changed files with 32 additions and 15 deletions

View File

@@ -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 {

View File

@@ -1,6 +1,6 @@
package runtime
import "core:intrinsics"
import "base:intrinsics"
@builtin
Maybe :: union($T: typeid) {T}

View File

@@ -1,6 +1,6 @@
package runtime
import "core:intrinsics"
import "base:intrinsics"
_ :: intrinsics
/*

View File

@@ -1,6 +1,6 @@
package runtime
import "core:intrinsics"
import "base:intrinsics"
DEFAULT_ARENA_GROWING_MINIMUM_BLOCK_SIZE :: uint(DEFAULT_TEMP_ALLOCATOR_BACKING_SIZE)

View File

@@ -1,6 +1,6 @@
package runtime
import "core:intrinsics"
import "base:intrinsics"
_ :: intrinsics
// High performance, cache-friendly, open-addressed Robin Hood hashing hash map

View File

@@ -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"*/)

View File

@@ -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)

View File

@@ -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)

View File

@@ -1,6 +1,6 @@
package runtime
import "core:intrinsics"
import "base:intrinsics"
@(private="file")
IS_WASM :: ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32

View File

@@ -3,6 +3,7 @@
//+build !js
//+build !wasi
//+build !windows
//+private
package runtime
import "core:os"

View File

@@ -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
}

View File

@@ -1,4 +1,5 @@
//+build freestanding
//+private
package runtime
// TODO(bill): reimplement `os.write`

View File

@@ -1,4 +1,5 @@
//+build js
//+private
package runtime
foreign import "odin_env"

View File

@@ -1,4 +1,5 @@
//+build wasi
//+private
package runtime
import "core:sys/wasm/wasi"

View File

@@ -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

View File

@@ -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