mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Remove core:os dependency from base:runtime; change to base:intrinsics
This commit is contained in:
@@ -21,7 +21,7 @@
|
|||||||
//+no-instrumentation
|
//+no-instrumentation
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
// NOTE(bill): This must match the compiler's
|
// NOTE(bill): This must match the compiler's
|
||||||
Calling_Convention :: enum u8 {
|
Calling_Convention :: enum u8 {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
@builtin
|
@builtin
|
||||||
Maybe :: union($T: typeid) {T}
|
Maybe :: union($T: typeid) {T}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
_ :: intrinsics
|
_ :: intrinsics
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
DEFAULT_ARENA_GROWING_MINIMUM_BLOCK_SIZE :: uint(DEFAULT_TEMP_ALLOCATOR_BACKING_SIZE)
|
DEFAULT_ARENA_GROWING_MINIMUM_BLOCK_SIZE :: uint(DEFAULT_TEMP_ALLOCATOR_BACKING_SIZE)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
_ :: intrinsics
|
_ :: intrinsics
|
||||||
|
|
||||||
// High performance, cache-friendly, open-addressed Robin Hood hashing hash map
|
// High performance, cache-friendly, open-addressed Robin Hood hashing hash map
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
//+no-instrumentation
|
//+no-instrumentation
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
when ODIN_BUILD_MODE == .Dynamic {
|
when ODIN_BUILD_MODE == .Dynamic {
|
||||||
@(link_name="_odin_entry_point", linkage="strong", require/*, link_section=".init"*/)
|
@(link_name="_odin_entry_point", linkage="strong", require/*, link_section=".init"*/)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
//+no-instrumentation
|
//+no-instrumentation
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
when !ODIN_TEST && !ODIN_NO_ENTRY_POINT {
|
when !ODIN_TEST && !ODIN_NO_ENTRY_POINT {
|
||||||
@(link_name="_start", linkage="strong", require, export)
|
@(link_name="_start", linkage="strong", require, export)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
//+no-instrumentation
|
//+no-instrumentation
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
when ODIN_BUILD_MODE == .Dynamic {
|
when ODIN_BUILD_MODE == .Dynamic {
|
||||||
@(link_name="DllMain", linkage="strong", require)
|
@(link_name="DllMain", linkage="strong", require)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
@(private="file")
|
@(private="file")
|
||||||
IS_WASM :: ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32
|
IS_WASM :: ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
//+build !js
|
//+build !js
|
||||||
//+build !wasi
|
//+build !wasi
|
||||||
//+build !windows
|
//+build !windows
|
||||||
|
//+private
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:os"
|
import "core:os"
|
||||||
|
|||||||
@@ -1,12 +1,25 @@
|
|||||||
//+build darwin
|
//+build darwin
|
||||||
|
//+private
|
||||||
package runtime
|
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) {
|
_os_write :: proc "contextless" (data: []byte) -> (int, _OS_Errno) {
|
||||||
ret := intrinsics.syscall(0x2000004, 1, uintptr(raw_data(data)), uintptr(len(data)))
|
ret := _fwrite(raw_data(data), 1, len(data), _stderr)
|
||||||
if ret < 0 {
|
if ret < len(data) {
|
||||||
return 0, _OS_Errno(-ret)
|
err := _get_errno()
|
||||||
|
return int(ret), _OS_Errno(err^ if err != nil else 0)
|
||||||
}
|
}
|
||||||
return int(ret), 0
|
return int(ret), 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
//+build freestanding
|
//+build freestanding
|
||||||
|
//+private
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
// TODO(bill): reimplement `os.write`
|
// TODO(bill): reimplement `os.write`
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
//+build js
|
//+build js
|
||||||
|
//+private
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
foreign import "odin_env"
|
foreign import "odin_env"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
//+build wasi
|
//+build wasi
|
||||||
|
//+private
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:sys/wasm/wasi"
|
import "core:sys/wasm/wasi"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package runtime
|
|||||||
|
|
||||||
foreign import "system:Foundation.framework"
|
foreign import "system:Foundation.framework"
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
objc_id :: ^intrinsics.objc_object
|
objc_id :: ^intrinsics.objc_object
|
||||||
objc_Class :: ^intrinsics.objc_class
|
objc_Class :: ^intrinsics.objc_class
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "base:intrinsics"
|
||||||
|
|
||||||
udivmod128 :: proc "c" (a, b: u128, rem: ^u128) -> u128 {
|
udivmod128 :: proc "c" (a, b: u128, rem: ^u128) -> u128 {
|
||||||
_ctz :: intrinsics.count_trailing_zeros
|
_ctz :: intrinsics.count_trailing_zeros
|
||||||
|
|||||||
Reference in New Issue
Block a user