mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-24 23:35:19 +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:mem"
|
||||
import "core:unicode/utf8"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
// Extra errors returns by scanning procedures
|
||||
Scanner_Extra_Error :: enum i32 {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package container
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
_ :: intrinsics;
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import "core:strconv"
|
||||
import "core:strings"
|
||||
import "core:time"
|
||||
import "core:unicode/utf8"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
Info :: struct {
|
||||
minus: bool,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package hash
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
@(optimization_mode="speed")
|
||||
crc32 :: proc(data: []byte, seed := u32(0)) -> u32 #no_bounds_check {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package hash
|
||||
|
||||
import "core:mem"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
@(optimization_mode="speed")
|
||||
adler32 :: proc(data: []byte, seed := u32(1)) -> u32 #no_bounds_check {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
import "core:runtime"
|
||||
import "core:unicode/utf8"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package math_bits
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
U8_MIN :: 0;
|
||||
U16_MIN :: 0;
|
||||
|
||||
@@ -3,7 +3,7 @@ package math_fixed
|
||||
import "core:math"
|
||||
import "core:strconv"
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
_ :: intrinsics;
|
||||
|
||||
Fixed :: struct($Backing: typeid, $Fraction_Width: uint)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package linalg
|
||||
|
||||
import "builtin"
|
||||
import "core:builtin"
|
||||
import "core:math"
|
||||
|
||||
radians :: proc(degrees: $T) -> (out: T) where IS_NUMERIC(ELEM_TYPE(T)) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package linalg
|
||||
|
||||
import "core:math"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
// Generic
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package math
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
_ :: intrinsics;
|
||||
|
||||
Float_Class :: enum {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package mem
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
import "core:runtime"
|
||||
|
||||
nil_allocator_proc :: proc(allocator_data: rawptr, mode: Allocator_Mode,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package os
|
||||
|
||||
import win32 "core:sys/windows"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
is_path_separator :: proc(c: byte) -> bool {
|
||||
return c == '/' || c == '\\';
|
||||
|
||||
@@ -2,7 +2,7 @@ package reflect
|
||||
|
||||
import "core:runtime"
|
||||
import "core:mem"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
_ :: intrinsics;
|
||||
|
||||
Type_Info :: runtime.Type_Info;
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
//
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
// NOTE(bill): This must match the compiler's
|
||||
Calling_Convention :: enum u8 {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
@builtin
|
||||
Maybe :: union($T: typeid) #maybe {T};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
_ :: intrinsics;
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
_ :: intrinsics;
|
||||
|
||||
INITIAL_MAP_CAP :: 16;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
bswap_16 :: proc "none" (x: u16) -> u16 {
|
||||
return x>>8 | x<<8;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
@(link_name="__umodti3")
|
||||
umodti3 :: proc "c" (a, b: u128) -> u128 {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
@(link_name="__umodti3")
|
||||
umodti3 :: proc "c" (a, b: u128) -> u128 {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//+build windows
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
foreign import kernel32 "system:Kernel32.lib"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package runtime
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
udivmod128 :: proc "c" (a, b: u128, rem: ^u128) -> u128 {
|
||||
_ctz :: intrinsics.count_trailing_zeros;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package slice
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
import "core:runtime"
|
||||
import "core:mem"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package slice
|
||||
|
||||
import "intrinsics"
|
||||
import "builtin"
|
||||
import "core:intrinsics"
|
||||
import "core:builtin"
|
||||
import "core:math/bits"
|
||||
import "core:mem"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package slice
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
_ :: intrinsics;
|
||||
|
||||
ORD :: intrinsics.type_is_ordered;
|
||||
|
||||
@@ -2,7 +2,7 @@ package sort
|
||||
|
||||
import "core:mem"
|
||||
import _slice "core:slice"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
_ :: intrinsics;
|
||||
ORD :: intrinsics.type_is_ordered;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package sync
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
Ordering :: enum {
|
||||
Relaxed, // Monotonic
|
||||
|
||||
@@ -2,7 +2,7 @@ package sync
|
||||
|
||||
import "core:mem"
|
||||
import "core:time"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
import "core:math/rand"
|
||||
|
||||
_, _ :: time, rand;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package sync
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
import win32 "core:sys/windows"
|
||||
import "core:time"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package sync
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
cpu_relax :: #force_inline proc "contextless" () {
|
||||
intrinsics.cpu_relax();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package sync2
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
cpu_relax :: intrinsics.cpu_relax;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ package sync2
|
||||
|
||||
import "core:time"
|
||||
import "core:c"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
foreign import pthread "System.framework"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package sync
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
Wait_Group :: struct {
|
||||
counter: int,
|
||||
|
||||
@@ -4,7 +4,7 @@ package testing
|
||||
|
||||
import win32 "core:sys/windows"
|
||||
import "core:runtime"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
|
||||
Sema :: struct {
|
||||
|
||||
@@ -2,7 +2,7 @@ package thread
|
||||
|
||||
import "core:runtime"
|
||||
import "core:mem"
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
_ :: intrinsics;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package thread
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
import "core:sync"
|
||||
import "core:mem"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package time
|
||||
|
||||
import "intrinsics"
|
||||
import "core:intrinsics"
|
||||
|
||||
Duration :: distinct i64;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ package utf8string
|
||||
|
||||
import "core:unicode/utf8"
|
||||
import "core:runtime"
|
||||
import "builtin"
|
||||
import "core:builtin"
|
||||
|
||||
String :: struct {
|
||||
contents: string,
|
||||
|
||||
@@ -5184,7 +5184,12 @@ bool determine_path_from_string(BlockingMutex *file_mutex, Ast *node, String bas
|
||||
|
||||
if (is_package_name_reserved(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);
|
||||
|
||||
Reference in New Issue
Block a user