mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Enforce core:builtin and core:intrinsics for imports
This commit is contained in:
@@ -4,7 +4,7 @@ import "core:bytes"
|
|||||||
import "core:io"
|
import "core:io"
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
import "core:unicode/utf8"
|
import "core:unicode/utf8"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
// Extra errors returns by scanning procedures
|
// Extra errors returns by scanning procedures
|
||||||
Scanner_Extra_Error :: enum i32 {
|
Scanner_Extra_Error :: enum i32 {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package container
|
package container
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ import "core:strconv"
|
|||||||
import "core:strings"
|
import "core:strings"
|
||||||
import "core:time"
|
import "core:time"
|
||||||
import "core:unicode/utf8"
|
import "core:unicode/utf8"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
Info :: struct {
|
Info :: struct {
|
||||||
minus: bool,
|
minus: bool,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package hash
|
package hash
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
@(optimization_mode="speed")
|
@(optimization_mode="speed")
|
||||||
crc32 :: proc(data: []byte, seed := u32(0)) -> u32 #no_bounds_check {
|
crc32 :: proc(data: []byte, seed := u32(0)) -> u32 #no_bounds_check {
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package hash
|
package hash
|
||||||
|
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
@(optimization_mode="speed")
|
@(optimization_mode="speed")
|
||||||
adler32 :: proc(data: []byte, seed := u32(1)) -> u32 #no_bounds_check {
|
adler32 :: proc(data: []byte, seed := u32(1)) -> u32 #no_bounds_check {
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package io
|
package io
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
import "core:runtime"
|
import "core:runtime"
|
||||||
import "core:unicode/utf8"
|
import "core:unicode/utf8"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package math_bits
|
package math_bits
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
U8_MIN :: 0;
|
U8_MIN :: 0;
|
||||||
U16_MIN :: 0;
|
U16_MIN :: 0;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package math_fixed
|
|||||||
import "core:math"
|
import "core:math"
|
||||||
import "core:strconv"
|
import "core:strconv"
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
|
|
||||||
Fixed :: struct($Backing: typeid, $Fraction_Width: uint)
|
Fixed :: struct($Backing: typeid, $Fraction_Width: uint)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package linalg
|
package linalg
|
||||||
|
|
||||||
import "builtin"
|
import "core:builtin"
|
||||||
import "core:math"
|
import "core:math"
|
||||||
|
|
||||||
radians :: proc(degrees: $T) -> (out: T) where IS_NUMERIC(ELEM_TYPE(T)) {
|
radians :: proc(degrees: $T) -> (out: T) where IS_NUMERIC(ELEM_TYPE(T)) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package linalg
|
package linalg
|
||||||
|
|
||||||
import "core:math"
|
import "core:math"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
// Generic
|
// Generic
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package math
|
package math
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
|
|
||||||
Float_Class :: enum {
|
Float_Class :: enum {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package mem
|
package mem
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
import "core:runtime"
|
import "core:runtime"
|
||||||
|
|
||||||
nil_allocator_proc :: proc(allocator_data: rawptr, mode: Allocator_Mode,
|
nil_allocator_proc :: proc(allocator_data: rawptr, mode: Allocator_Mode,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package os
|
package os
|
||||||
|
|
||||||
import win32 "core:sys/windows"
|
import win32 "core:sys/windows"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
is_path_separator :: proc(c: byte) -> bool {
|
is_path_separator :: proc(c: byte) -> bool {
|
||||||
return c == '/' || c == '\\';
|
return c == '/' || c == '\\';
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package reflect
|
|||||||
|
|
||||||
import "core:runtime"
|
import "core:runtime"
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
|
|
||||||
Type_Info :: runtime.Type_Info;
|
Type_Info :: runtime.Type_Info;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
//
|
//
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "intrinsics"
|
import "core: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 "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
@builtin
|
@builtin
|
||||||
Maybe :: union($T: typeid) #maybe {T};
|
Maybe :: union($T: typeid) #maybe {T};
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
|
|
||||||
INITIAL_MAP_CAP :: 16;
|
INITIAL_MAP_CAP :: 16;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
bswap_16 :: proc "none" (x: u16) -> u16 {
|
bswap_16 :: proc "none" (x: u16) -> u16 {
|
||||||
return x>>8 | x<<8;
|
return x>>8 | x<<8;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
@(link_name="__umodti3")
|
@(link_name="__umodti3")
|
||||||
umodti3 :: proc "c" (a, b: u128) -> u128 {
|
umodti3 :: proc "c" (a, b: u128) -> u128 {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
@(link_name="__umodti3")
|
@(link_name="__umodti3")
|
||||||
umodti3 :: proc "c" (a, b: u128) -> u128 {
|
umodti3 :: proc "c" (a, b: u128) -> u128 {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//+build windows
|
//+build windows
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
foreign import kernel32 "system:Kernel32.lib"
|
foreign import kernel32 "system:Kernel32.lib"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import "intrinsics"
|
import "core: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;
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package slice
|
package slice
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
import "core:runtime"
|
import "core:runtime"
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package slice
|
package slice
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
import "builtin"
|
import "core:builtin"
|
||||||
import "core:math/bits"
|
import "core:math/bits"
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package slice
|
package slice
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
|
|
||||||
ORD :: intrinsics.type_is_ordered;
|
ORD :: intrinsics.type_is_ordered;
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ package sort
|
|||||||
|
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
import _slice "core:slice"
|
import _slice "core:slice"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
ORD :: intrinsics.type_is_ordered;
|
ORD :: intrinsics.type_is_ordered;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package sync
|
package sync
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
Ordering :: enum {
|
Ordering :: enum {
|
||||||
Relaxed, // Monotonic
|
Relaxed, // Monotonic
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package sync
|
|||||||
|
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
import "core:time"
|
import "core:time"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
import "core:math/rand"
|
import "core:math/rand"
|
||||||
|
|
||||||
_, _ :: time, rand;
|
_, _ :: time, rand;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package sync
|
package sync
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
import win32 "core:sys/windows"
|
import win32 "core:sys/windows"
|
||||||
import "core:time"
|
import "core:time"
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package sync
|
package sync
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
cpu_relax :: #force_inline proc "contextless" () {
|
cpu_relax :: #force_inline proc "contextless" () {
|
||||||
intrinsics.cpu_relax();
|
intrinsics.cpu_relax();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package sync2
|
package sync2
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
cpu_relax :: intrinsics.cpu_relax;
|
cpu_relax :: intrinsics.cpu_relax;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package sync2
|
|||||||
|
|
||||||
import "core:time"
|
import "core:time"
|
||||||
import "core:c"
|
import "core:c"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
foreign import pthread "System.framework"
|
foreign import pthread "System.framework"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package sync
|
package sync
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
Wait_Group :: struct {
|
Wait_Group :: struct {
|
||||||
counter: int,
|
counter: int,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ package testing
|
|||||||
|
|
||||||
import win32 "core:sys/windows"
|
import win32 "core:sys/windows"
|
||||||
import "core:runtime"
|
import "core:runtime"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
|
|
||||||
Sema :: struct {
|
Sema :: struct {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package thread
|
|||||||
|
|
||||||
import "core:runtime"
|
import "core:runtime"
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
_ :: intrinsics;
|
_ :: intrinsics;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package thread
|
package thread
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
import "core:sync"
|
import "core:sync"
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
package time
|
package time
|
||||||
|
|
||||||
import "intrinsics"
|
import "core:intrinsics"
|
||||||
|
|
||||||
Duration :: distinct i64;
|
Duration :: distinct i64;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package utf8string
|
|||||||
|
|
||||||
import "core:unicode/utf8"
|
import "core:unicode/utf8"
|
||||||
import "core:runtime"
|
import "core:runtime"
|
||||||
import "builtin"
|
import "core:builtin"
|
||||||
|
|
||||||
String :: struct {
|
String :: struct {
|
||||||
contents: string,
|
contents: string,
|
||||||
|
|||||||
+6
-1
@@ -5184,7 +5184,12 @@ bool determine_path_from_string(BlockingMutex *file_mutex, Ast *node, String bas
|
|||||||
|
|
||||||
if (is_package_name_reserved(file_str)) {
|
if (is_package_name_reserved(file_str)) {
|
||||||
*path = file_str;
|
*path = file_str;
|
||||||
return true;
|
if (collection_name == "core") {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
syntax_error(node, "The package '%.*s' must be imported with the core library collection: 'core:%.*s'", LIT(file_str), LIT(file_str));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file_mutex) mutex_lock(file_mutex);
|
if (file_mutex) mutex_lock(file_mutex);
|
||||||
|
|||||||
Reference in New Issue
Block a user