aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2017-12-17 14:53:40 +0000
committergingerBill <bill@gingerbill.org>2017-12-17 14:53:40 +0000
commit30530d058ca22eea3dcb0401a6bd6d288deb3ce0 (patch)
tree47193c49795d4b42cf096938df6fc08f75bd0ea8 /core
parent436928d06a8bf38b5ee4b188169e02a609d8d955 (diff)
Remove `struct #ordered`
Diffstat (limited to 'core')
-rw-r--r--core/_preload.odin56
-rw-r--r--core/fmt.odin1
-rw-r--r--core/os_essence.odin2
-rw-r--r--core/os_linux.odin4
-rw-r--r--core/os_x.odin4
-rw-r--r--core/raw.odin10
-rw-r--r--core/sys/windows.odin54
-rw-r--r--core/types.odin1
8 files changed, 65 insertions, 67 deletions
diff --git a/core/_preload.odin b/core/_preload.odin
index 1e7c75ab1..a63cfd3b5 100644
--- a/core/_preload.odin
+++ b/core/_preload.odin
@@ -23,12 +23,12 @@ import "core:raw.odin"
// NOTE(bill): This must match the compiler's
Calling_Convention :: enum {
- Invalid = 0,
- Odin = 1,
- Contextless = 2,
- C = 3,
- Std = 4,
- Fast = 5,
+ Invalid = 0,
+ Odin = 1,
+ Contextless = 2,
+ C = 3,
+ Std = 4,
+ Fast = 5,
}
// IMPORTANT NOTE(bill): Do not change the order of any of this data
// The compiler relies upon this _exact_ order
@@ -42,67 +42,66 @@ Type_Info_Enum_Value :: union {
};
// Variant Types
-Type_Info_Named :: struct #ordered {name: string, base: ^Type_Info};
-Type_Info_Integer :: struct #ordered {signed: bool};
+Type_Info_Named :: struct {name: string, base: ^Type_Info};
+Type_Info_Integer :: struct {signed: bool};
Type_Info_Rune :: struct{};
Type_Info_Float :: struct{};
Type_Info_Complex :: struct{};
Type_Info_String :: struct{};
Type_Info_Boolean :: struct{};
Type_Info_Any :: struct{};
-Type_Info_Pointer :: struct #ordered {
+Type_Info_Pointer :: struct {
elem: ^Type_Info // nil -> rawptr
};
-Type_Info_Procedure :: struct #ordered {
+Type_Info_Procedure :: struct {
params: ^Type_Info, // Type_Info_Tuple
results: ^Type_Info, // Type_Info_Tuple
variadic: bool,
convention: Calling_Convention,
};
-Type_Info_Array :: struct #ordered {
+Type_Info_Array :: struct {
elem: ^Type_Info,
elem_size: int,
count: int,
};
-Type_Info_Dynamic_Array :: struct #ordered {elem: ^Type_Info, elem_size: int};
-Type_Info_Slice :: struct #ordered {elem: ^Type_Info, elem_size: int};
-Type_Info_Tuple :: struct #ordered { // Only really used for procedures
+Type_Info_Dynamic_Array :: struct {elem: ^Type_Info, elem_size: int};
+Type_Info_Slice :: struct {elem: ^Type_Info, elem_size: int};
+Type_Info_Tuple :: struct { // Only really used for procedures
types: []^Type_Info,
names: []string,
};
-Type_Info_Struct :: struct #ordered {
+Type_Info_Struct :: struct {
types: []^Type_Info,
names: []string,
offsets: []uintptr, // offsets may not be used in tuples
usings: []bool, // usings may not be used in tuples
is_packed: bool,
- is_ordered: bool,
is_raw_union: bool,
custom_align: bool,
};
-Type_Info_Union :: struct #ordered {
+Type_Info_Union :: struct {
variants: []^Type_Info,
tag_offset: uintptr,
tag_type: ^Type_Info,
};
-Type_Info_Enum :: struct #ordered {
+Type_Info_Enum :: struct {
base: ^Type_Info,
names: []string,
values: []Type_Info_Enum_Value,
};
-Type_Info_Map :: struct #ordered {
+Type_Info_Map :: struct {
key: ^Type_Info,
value: ^Type_Info,
generated_struct: ^Type_Info,
};
-Type_Info_Bit_Field :: struct #ordered {
+Type_Info_Bit_Field :: struct {
names: []string,
bits: []i32,
offsets: []i32,
};
-Type_Info :: struct #ordered {
+Type_Info :: struct {
size: int,
align: int,
@@ -139,7 +138,7 @@ __argv__: ^^byte;
// IMPORTANT NOTE(bill): Must be in this order (as the compiler relies upon it)
-Source_Code_Location :: struct #ordered {
+Source_Code_Location :: struct {
file_path: string,
line, column: int,
procedure: string,
@@ -160,19 +159,20 @@ Allocator_Proc :: #type proc(allocator_data: rawptr, mode: Allocator_Mode,
old_memory: rawptr, old_size: int, flags: u64 = 0, location := #caller_location) -> rawptr;
-Allocator :: struct #ordered {
+Allocator :: struct {
procedure: Allocator_Proc,
data: rawptr,
}
-Context :: struct #ordered {
+Context :: struct {
allocator: Allocator,
thread_id: int,
user_data: any,
user_index: int,
+ parent: ^Context,
derived: any, // May be used for derived data types
}
@@ -180,18 +180,18 @@ DEFAULT_ALIGNMENT :: 2*align_of(rawptr);
__INITIAL_MAP_CAP :: 16;
-__Map_Key :: struct #ordered {
+__Map_Key :: struct {
hash: u128,
str: string,
}
-__Map_Find_Result :: struct #ordered {
+__Map_Find_Result :: struct {
hash_index: int,
entry_prev: int,
entry_index: int,
}
-__Map_Entry_Header :: struct #ordered {
+__Map_Entry_Header :: struct {
key: __Map_Key,
next: int,
/*
@@ -199,7 +199,7 @@ __Map_Entry_Header :: struct #ordered {
*/
}
-__Map_Header :: struct #ordered {
+__Map_Header :: struct {
m: ^raw.Map,
is_key_string: bool,
entry_size: int,
diff --git a/core/fmt.odin b/core/fmt.odin
index 3da0c55eb..93ada4809 100644
--- a/core/fmt.odin
+++ b/core/fmt.odin
@@ -253,7 +253,6 @@ write_type :: proc(buf: ^String_Buffer, ti: ^Type_Info) {
case Type_Info_Struct:
write_string(buf, "struct ");
if info.is_packed do write_string(buf, "#packed ");
- if info.is_ordered do write_string(buf, "#ordered ");
if info.is_raw_union do write_string(buf, "#raw_union ");
if info.custom_align {
write_string(buf, "#align ");
diff --git a/core/os_essence.odin b/core/os_essence.odin
index d35e313e8..f713c7e20 100644
--- a/core/os_essence.odin
+++ b/core/os_essence.odin
@@ -13,7 +13,7 @@ OS_Node_Type :: enum i32 {
Directory = 1,
}
-OS_Node_Information :: struct #ordered {
+OS_Node_Information :: struct {
handle: Handle,
id: [16]byte,
ntype: OS_Node_Type,
diff --git a/core/os_linux.odin b/core/os_linux.odin
index cf457c58f..935a9b5d4 100644
--- a/core/os_linux.odin
+++ b/core/os_linux.odin
@@ -40,7 +40,7 @@ RTLD_GLOBAL :: 0x100;
// "Argv" arguments converted to Odin strings
args := _alloc_command_line_arguments();
-_File_Time :: struct #ordered {
+_File_Time :: struct {
seconds: i64,
nanoseconds: i32,
reserved: i32,
@@ -50,7 +50,7 @@ _File_Time :: struct #ordered {
// https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/+/jb-dev/sysroot/usr/include/bits/stat.h
// Validity is not guaranteed.
-Stat :: struct #ordered {
+Stat :: struct {
device_id: u64, // ID of device containing file
serial: u64, // File serial number
nlink: u32, // Number of hard links
diff --git a/core/os_x.odin b/core/os_x.odin
index 4bdb2cd9a..7a831d6ec 100644
--- a/core/os_x.odin
+++ b/core/os_x.odin
@@ -46,12 +46,12 @@ RTLD_FIRST :: 0x100;
// "Argv" arguments converted to Odin strings
args := _alloc_command_line_arguments();
-_File_Time :: struct #ordered {
+_File_Time :: struct {
seconds: i64,
nanoseconds: i64,
}
-Stat :: struct #ordered {
+Stat :: struct {
device_id: i32, // ID of device containing file
mode: u16, // Mode of the file
nlink: u16, // Number of hard links
diff --git a/core/raw.odin b/core/raw.odin
index ac5482233..361b053e5 100644
--- a/core/raw.odin
+++ b/core/raw.odin
@@ -1,26 +1,26 @@
-Any :: struct #ordered {
+Any :: struct {
data: rawptr,
type_info: ^Type_Info,
}
-String :: struct #ordered {
+String :: struct {
data: ^byte,
len: int,
}
-Slice :: struct #ordered {
+Slice :: struct {
data: rawptr,
len: int,
}
-Dynamic_Array :: struct #ordered {
+Dynamic_Array :: struct {
data: rawptr,
len: int,
cap: int,
allocator: Allocator,
}
-Map :: struct #ordered {
+Map :: struct {
hashes: [dynamic]int,
entries: Dynamic_Array,
}
diff --git a/core/sys/windows.odin b/core/sys/windows.odin
index 8fdf66734..6bff7c2a6 100644
--- a/core/sys/windows.odin
+++ b/core/sys/windows.odin
@@ -30,11 +30,11 @@ Bool :: i32;
FALSE: Bool : 0;
TRUE: Bool : 1;
-Point :: struct #ordered {
+Point :: struct {
x, y: i32,
}
-Wnd_Class_Ex_A :: struct #ordered {
+Wnd_Class_Ex_A :: struct {
size, style: u32,
wnd_proc: Wnd_Proc,
cls_extra, wnd_extra: i32,
@@ -46,7 +46,7 @@ Wnd_Class_Ex_A :: struct #ordered {
sm: Hicon,
}
-Wnd_Class_Ex_W :: struct #ordered {
+Wnd_Class_Ex_W :: struct {
size, style: u32,
wnd_proc: Wnd_Proc,
cls_extra, wnd_extra: i32,
@@ -59,7 +59,7 @@ Wnd_Class_Ex_W :: struct #ordered {
}
-Msg :: struct #ordered {
+Msg :: struct {
hwnd: Hwnd,
message: u32,
wparam: Wparam,
@@ -68,24 +68,24 @@ Msg :: struct #ordered {
pt: Point,
}
-Rect :: struct #ordered {
+Rect :: struct {
left: i32,
top: i32,
right: i32,
bottom: i32,
}
-Filetime :: struct #ordered {
+Filetime :: struct {
lo, hi: u32,
}
-Systemtime :: struct #ordered {
+Systemtime :: struct {
year, month: u16,
day_of_week, day: u16,
hour, minute, second, millisecond: u16,
}
-By_Handle_File_Information :: struct #ordered {
+By_Handle_File_Information :: struct {
file_attributes: u32,
creation_time,
last_access_time,
@@ -98,7 +98,7 @@ By_Handle_File_Information :: struct #ordered {
file_index_low: u32,
}
-File_Attribute_Data :: struct #ordered {
+File_Attribute_Data :: struct {
file_attributes: u32,
creation_time,
last_access_time,
@@ -107,7 +107,7 @@ File_Attribute_Data :: struct #ordered {
file_size_low: u32,
}
-Find_Data :: struct #ordered{
+Find_Data :: struct{
file_attributes: u32,
creation_time: Filetime,
last_access_time: Filetime,
@@ -120,7 +120,7 @@ Find_Data :: struct #ordered{
alternate_file_name: [14]byte,
}
-Security_Attributes :: struct #ordered {
+Security_Attributes :: struct {
length: u32,
security_descriptor: rawptr,
inherit_handle: Bool,
@@ -128,7 +128,7 @@ Security_Attributes :: struct #ordered {
-Pixel_Format_Descriptor :: struct #ordered {
+Pixel_Format_Descriptor :: struct {
size,
version,
flags: u32,
@@ -159,7 +159,7 @@ Pixel_Format_Descriptor :: struct #ordered {
damage_mask: u32,
}
-Critical_Section :: struct #ordered {
+Critical_Section :: struct {
debug_info: ^Critical_Section_Debug,
lock_count: i32,
@@ -169,7 +169,7 @@ Critical_Section :: struct #ordered {
spin_count: ^u32,
}
-Critical_Section_Debug :: struct #ordered {
+Critical_Section_Debug :: struct {
typ: u16,
creator_back_trace_index: u16,
critical_section: ^Critical_Section,
@@ -181,30 +181,30 @@ Critical_Section_Debug :: struct #ordered {
spare_word: u16,
}
-List_Entry :: struct #ordered {flink, blink: ^List_Entry};
+List_Entry :: struct {flink, blink: ^List_Entry};
-Raw_Input_Device :: struct #ordered {
+Raw_Input_Device :: struct {
usage_page: u16,
usage: u16,
flags: u32,
wnd_target: Hwnd,
}
-Raw_Input_Header :: struct #ordered {
+Raw_Input_Header :: struct {
kind: u32,
size: u32,
device: Handle,
wparam: Wparam,
}
-Raw_HID :: struct #ordered {
+Raw_HID :: struct {
size_hid: u32,
count: u32,
raw_data: [1]byte,
}
-Raw_Keyboard :: struct #ordered {
+Raw_Keyboard :: struct {
make_code: u16,
flags: u16,
reserved: u16,
@@ -213,11 +213,11 @@ Raw_Keyboard :: struct #ordered {
extra_information: u32,
}
-Raw_Mouse :: struct #ordered {
+Raw_Mouse :: struct {
flags: u16,
using data: struct #raw_union {
buttons: u32,
- using _: struct #ordered {
+ using _: struct {
button_flags: u16,
button_data: u16,
},
@@ -228,7 +228,7 @@ Raw_Mouse :: struct #ordered {
extra_information: u32,
}
-Raw_Input :: struct #ordered {
+Raw_Input :: struct {
using header: Raw_Input_Header,
data: struct #raw_union {
mouse: Raw_Mouse,
@@ -724,14 +724,14 @@ FILE_TYPE_CHAR :: 0x0002;
FILE_TYPE_PIPE :: 0x0003;
-Monitor_Info :: struct #ordered {
+Monitor_Info :: struct {
size: u32,
monitor: Rect,
work: Rect,
flags: u32,
}
-Window_Placement :: struct #ordered {
+Window_Placement :: struct {
length: u32,
flags: u32,
show_cmd: u32,
@@ -740,7 +740,7 @@ Window_Placement :: struct #ordered {
normal_pos: Rect,
}
-Bitmap_Info_Header :: struct #ordered {
+Bitmap_Info_Header :: struct {
size: u32,
width, height: i32,
planes, bit_count: i16,
@@ -751,13 +751,13 @@ Bitmap_Info_Header :: struct #ordered {
clr_used: u32,
clr_important: u32,
}
-Bitmap_Info :: struct #ordered {
+Bitmap_Info :: struct {
using header: Bitmap_Info_Header,
colors: [1]Rgb_Quad,
}
-Rgb_Quad :: struct #ordered {blue, green, red, reserved: byte}
+Rgb_Quad :: struct {blue, green, red, reserved: byte}
Key_Code :: enum i32 {
diff --git a/core/types.odin b/core/types.odin
index fefcf00ae..0ba87f14d 100644
--- a/core/types.odin
+++ b/core/types.odin
@@ -97,7 +97,6 @@ are_types_identical :: proc(a, b: ^Type_Info) -> bool {
switch {
case len(x.types) != len(y.types),
x.is_packed != y.is_packed,
- x.is_ordered != y.is_ordered,
x.is_raw_union != y.is_raw_union,
x.custom_align != y.custom_align:
return false;