From 5b210a9f3f12cf0309fbfb1b89398b731d798cd8 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 3 Jan 2021 09:52:05 -0600 Subject: [PATCH] '#include_file' -> '#load'; '#include_folder' -> '#load_path' --- bin/onyx | Bin 287272 -> 287216 bytes core/alloc.onyx | 8 ++++---- core/alloc/heap.onyx | 4 ++-- core/std/js.onyx | 26 +++++++++++------------ core/std/wasi.onyx | 30 +++++++++++++-------------- core/sys/wasi.onyx | 2 +- examples/01_hello_world.onyx | 2 +- examples/02_variables.onyx | 2 +- examples/03_basics.onyx | 2 +- examples/04_fixed_arrays.onyx | 2 +- examples/05_slices.onyx | 2 +- examples/06_dynamic_arrays.onyx | 2 +- examples/07_structs.onyx | 2 +- examples/08_enums.onyx | 2 +- examples/09_for_loops.onyx | 2 +- examples/10_switch_statements.onyx | 2 +- examples/11_map.onyx | 2 +- examples/12_varargs.onyx | 2 +- examples/13_use_keyword.onyx | 2 +- examples/14_overloaded_procs.onyx | 2 +- examples/15_polymorphic_procs.onyx | 2 +- examples/16_pipe_operator.onyx | 2 +- include/onyxastnodes.h | 8 ++++---- misc/onyx.sublime-syntax | 9 +++++--- progs/odin_example.onyx | 4 ++-- progs/particle_sym.onyx | 4 ++-- progs/poly_solidify.onyx | 2 +- progs/simd_test.onyx | 4 ++-- progs/vararg_test.onyx | 2 +- progs/wasi_test.onyx | 2 +- src/onyx.c | 32 ++++++++++++++--------------- src/onyxclone.c | 4 ++-- src/onyxparser.c | 12 +++++------ src/onyxutils.c | 4 ++-- tests/aoc-2020/day1.onyx | 2 +- tests/aoc-2020/day10.onyx | 2 +- tests/aoc-2020/day11.onyx | 2 +- tests/aoc-2020/day12.onyx | 2 +- tests/aoc-2020/day13.onyx | 2 +- tests/aoc-2020/day14.onyx | 2 +- tests/aoc-2020/day15.onyx | 2 +- tests/aoc-2020/day16.onyx | 2 +- tests/aoc-2020/day17.onyx | 2 +- tests/aoc-2020/day18.onyx | 2 +- tests/aoc-2020/day19.onyx | 2 +- tests/aoc-2020/day2.onyx | 2 +- tests/aoc-2020/day20.onyx | 2 +- tests/aoc-2020/day21.onyx | 2 +- tests/aoc-2020/day22.onyx | 2 +- tests/aoc-2020/day23.onyx | 2 +- tests/aoc-2020/day24.onyx | 2 +- tests/aoc-2020/day25.onyx | 2 +- tests/aoc-2020/day3.onyx | 2 +- tests/aoc-2020/day4.onyx | 2 +- tests/aoc-2020/day5.onyx | 2 +- tests/aoc-2020/day6.onyx | 2 +- tests/aoc-2020/day7.onyx | 2 +- tests/aoc-2020/day8.onyx | 2 +- tests/aoc-2020/day9.onyx | 2 +- tests/array_struct_robustness.onyx | 2 +- tests/compile_time_procedures.onyx | 2 +- tests/general1.onyx | 2 +- tests/hello_world.onyx | 2 +- tests/i32map.onyx | 2 +- tests/overload_with_autocast.onyx | 2 +- tests/struct_robustness.onyx | 2 +- tests/vararg_test.onyx | 2 +- 67 files changed, 129 insertions(+), 126 deletions(-) diff --git a/bin/onyx b/bin/onyx index 27ee833f4b9a6119cefa6523676a68ceec73d127..a49b7e574240b4e23a7eb14382048b80bf57533c 100755 GIT binary patch delta 63062 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 YY8v1cHG+DSA4xS0H>7aGY*WAg0o9Px7=-ROyK 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 C=IhP? diff --git a/core/alloc.onyx b/core/alloc.onyx index a121e6f4..d6c47662 100644 --- a/core/alloc.onyx +++ b/core/alloc.onyx @@ -1,9 +1,9 @@ package core.alloc -#include_file "core/alloc/arena" -#include_file "core/alloc/fixed" -#include_file "core/alloc/heap" -#include_file "core/alloc/ring" +#load "core/alloc/arena" +#load "core/alloc/fixed" +#load "core/alloc/heap" +#load "core/alloc/ring" TEMPORARY_ALLOCATOR_SIZE :: 1 << 12; // 4Kb diff --git a/core/alloc/heap.onyx b/core/alloc/heap.onyx index 538e4507..1989f59e 100644 --- a/core/alloc/heap.onyx +++ b/core/alloc/heap.onyx @@ -6,8 +6,8 @@ package core.alloc.heap // of the language. You will not make your own instance of the heap // allocator, since it controls WASM intrinsics such as memory_grow. -#include_file "core/memory" -#include_file "core/intrinsics/wasm" +#load "core/memory" +#load "core/intrinsics/wasm" use package core.intrinsics.wasm { memory_size, memory_grow } use package core.memory as memory diff --git a/core/std/js.onyx b/core/std/js.onyx index dfde7615..2e9c9941 100644 --- a/core/std/js.onyx +++ b/core/std/js.onyx @@ -2,19 +2,19 @@ package core -#include_file "core/alloc" -#include_file "core/array" -#include_file "core/conv" -#include_file "core/intrinsics/wasm" -#include_file "core/map" -#include_file "core/math" -#include_file "core/memory" -#include_file "core/random" -#include_file "core/stdio" -#include_file "core/string" -#include_file "core/string/builder" -#include_file "core/string/reader" +#load "core/alloc" +#load "core/array" +#load "core/conv" +#load "core/intrinsics/wasm" +#load "core/map" +#load "core/math" +#load "core/memory" +#load "core/random" +#load "core/stdio" +#load "core/string" +#load "core/string/builder" +#load "core/string/reader" -#include_file "core/sys/js" +#load "core/sys/js" diff --git a/core/std/wasi.onyx b/core/std/wasi.onyx index 7d8e73a9..75fde689 100644 --- a/core/std/wasi.onyx +++ b/core/std/wasi.onyx @@ -2,21 +2,21 @@ package core -#include_file "core/alloc" -#include_file "core/array" -#include_file "core/conv" -#include_file "core/file" -#include_file "core/intrinsics/wasm" -#include_file "core/map" -#include_file "core/math" -#include_file "core/memory" -#include_file "core/random" -#include_file "core/stdio" -#include_file "core/string" -#include_file "core/string/builder" -#include_file "core/string/reader" -#include_file "core/wasi" +#load "core/alloc" +#load "core/array" +#load "core/conv" +#load "core/file" +#load "core/intrinsics/wasm" +#load "core/map" +#load "core/math" +#load "core/memory" +#load "core/random" +#load "core/stdio" +#load "core/string" +#load "core/string/builder" +#load "core/string/reader" +#load "core/wasi" -#include_file "core/sys/wasi" +#load "core/sys/wasi" diff --git a/core/sys/wasi.onyx b/core/sys/wasi.onyx index 95c2893d..e2de1f69 100644 --- a/core/sys/wasi.onyx +++ b/core/sys/wasi.onyx @@ -1,6 +1,6 @@ package system -#include_file "core/wasi" +#load "core/wasi" use package wasi use package core diff --git a/examples/01_hello_world.onyx b/examples/01_hello_world.onyx index c1217e87..571b3ad5 100644 --- a/examples/01_hello_world.onyx +++ b/examples/01_hello_world.onyx @@ -15,7 +15,7 @@ package main // added to the queue of files to load. When all files in the queue have been parsed, // the compiler can continue with the compilation process. You can also include the // same file as many times as you want. The redudant copies will be discarded. -#include_file "core/std/wasi" +#load "core/std/wasi" // All of the functionality we need is in the 'core' package. Unlike other package systems, // there is no way to reference symbols in a package without specifically 'using' it. This diff --git a/examples/02_variables.onyx b/examples/02_variables.onyx index 98df7d32..f2f20ab5 100644 --- a/examples/02_variables.onyx +++ b/examples/02_variables.onyx @@ -1,7 +1,7 @@ // This time, we are not adding, 'package main' to the top of the file, since // every file is automatically part of the main package unless specified otherwise. -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/03_basics.onyx b/examples/03_basics.onyx index de893453..0f5e5b49 100644 --- a/examples/03_basics.onyx +++ b/examples/03_basics.onyx @@ -1,6 +1,6 @@ // Now, lets go over the basic types and control flow mechanisms in Onyx. -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/04_fixed_arrays.onyx b/examples/04_fixed_arrays.onyx index 63b0b62f..aa516a16 100644 --- a/examples/04_fixed_arrays.onyx +++ b/examples/04_fixed_arrays.onyx @@ -15,7 +15,7 @@ // This file will give examples of all of these things, as well as some of the gotchas // you need to be aware of. -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/05_slices.onyx b/examples/05_slices.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/05_slices.onyx +++ b/examples/05_slices.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/06_dynamic_arrays.onyx b/examples/06_dynamic_arrays.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/06_dynamic_arrays.onyx +++ b/examples/06_dynamic_arrays.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/07_structs.onyx b/examples/07_structs.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/07_structs.onyx +++ b/examples/07_structs.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/08_enums.onyx b/examples/08_enums.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/08_enums.onyx +++ b/examples/08_enums.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/09_for_loops.onyx b/examples/09_for_loops.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/09_for_loops.onyx +++ b/examples/09_for_loops.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/10_switch_statements.onyx b/examples/10_switch_statements.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/10_switch_statements.onyx +++ b/examples/10_switch_statements.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/11_map.onyx b/examples/11_map.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/11_map.onyx +++ b/examples/11_map.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/12_varargs.onyx b/examples/12_varargs.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/12_varargs.onyx +++ b/examples/12_varargs.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/13_use_keyword.onyx b/examples/13_use_keyword.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/13_use_keyword.onyx +++ b/examples/13_use_keyword.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/14_overloaded_procs.onyx b/examples/14_overloaded_procs.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/14_overloaded_procs.onyx +++ b/examples/14_overloaded_procs.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/15_polymorphic_procs.onyx b/examples/15_polymorphic_procs.onyx index b0bf3ca2..b8d94c49 100644 --- a/examples/15_polymorphic_procs.onyx +++ b/examples/15_polymorphic_procs.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/examples/16_pipe_operator.onyx b/examples/16_pipe_operator.onyx index fd634832..db30ce5f 100644 --- a/examples/16_pipe_operator.onyx +++ b/examples/16_pipe_operator.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core { println } diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index d94d8e5e..5c319b36 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -86,8 +86,8 @@ typedef enum AstKind { Ast_Kind_Error, Ast_Kind_Program, Ast_Kind_Package, - Ast_Kind_Include_File, - Ast_Kind_Include_Folder, + Ast_Kind_Load_File, + Ast_Kind_Load_Path, Ast_Kind_Use_Package, Ast_Kind_Alias, Ast_Kind_Memres, @@ -793,8 +793,8 @@ extern const char* entity_state_strings[Entity_State_Count]; typedef enum EntityType { Entity_Type_Unknown, - Entity_Type_Include_Folder, - Entity_Type_Include_File, + Entity_Type_Load_Path, + Entity_Type_Load_File, Entity_Type_Use_Package, Entity_Type_String_Literal, Entity_Type_File_Contents, diff --git a/misc/onyx.sublime-syntax b/misc/onyx.sublime-syntax index bb27b144..70ab1624 100644 --- a/misc/onyx.sublime-syntax +++ b/misc/onyx.sublime-syntax @@ -48,17 +48,20 @@ contexts: - match: '#[a-zA-Z_]+' scope: keyword.other.onyx - - match: '([a-zA-Z_][a-zA-Z0-9_]*)\s*::\s*proc' + - match: '([a-zA-Z_][a-zA-Z0-9_]*)\s*::\s*(proc)' captures: 1: entity.name.function + 2: keyword.control.onyx - - match: '([a-zA-Z_][a-zA-Z0-9_]*)\s*::\s*struct' + - match: '([a-zA-Z_][a-zA-Z0-9_]*)\s*::\s*(struct)' captures: 1: entity.name.struct + 2: keyword.control.onyx - - match: '([a-zA-Z_][a-zA-Z0-9_]*)\s*::\s*enum' + - match: '([a-zA-Z_][a-zA-Z0-9_]*)\s*::\s*(enum)' captures: 1: entity.name.enum + 2: keyword.control.onyx - match: '([a-zA-Z_][a-zA-Z0-9_\.]+)\s*\(' captures: diff --git a/progs/odin_example.onyx b/progs/odin_example.onyx index 2642bbc2..7dd0778f 100644 --- a/progs/odin_example.onyx +++ b/progs/odin_example.onyx @@ -1,5 +1,5 @@ -#include_file "core/std/wasi" -#include_file "progs/foo_test" +#load "core/std/wasi" +#load "progs/foo_test" use package core diff --git a/progs/particle_sym.onyx b/progs/particle_sym.onyx index 83531743..9c1dbef0 100644 --- a/progs/particle_sym.onyx +++ b/progs/particle_sym.onyx @@ -1,7 +1,7 @@ package main -#include_file "core/std/wasi" -#include_file "core/simd_intrinsics" +#load "core/std/wasi" +#load "core/simd_intrinsics" use package core use package simd diff --git a/progs/poly_solidify.onyx b/progs/poly_solidify.onyx index ae59bc0c..ca4db5c6 100644 --- a/progs/poly_solidify.onyx +++ b/progs/poly_solidify.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/wasi" +#load "core/std/wasi" use package core diff --git a/progs/simd_test.onyx b/progs/simd_test.onyx index e4d31604..7ec1563f 100644 --- a/progs/simd_test.onyx +++ b/progs/simd_test.onyx @@ -1,7 +1,7 @@ package main -#include_file "core/std/wasi" -#include_file "core/intrinsics/simd" +#load "core/std/wasi" +#load "core/intrinsics/simd" use package core use package core.intrinsics.simd diff --git a/progs/vararg_test.onyx b/progs/vararg_test.onyx index 1c425ec6..0aeefed2 100644 --- a/progs/vararg_test.onyx +++ b/progs/vararg_test.onyx @@ -1,6 +1,6 @@ package main -#include_file "core/std/wasi" +#load "core/std/wasi" use package core; diff --git a/progs/wasi_test.onyx b/progs/wasi_test.onyx index 9d8bf682..70f6380f 100644 --- a/progs/wasi_test.onyx +++ b/progs/wasi_test.onyx @@ -1,6 +1,6 @@ package main -#include_file "core/std/wasi" +#load "core/std/wasi" // NOTE: Didn't realize this would work so easily use package core { string_builder_append as sba } diff --git a/src/onyx.c b/src/onyx.c index 1f743b27..1b015aa1 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -141,8 +141,8 @@ typedef struct CompilerState { static char* lookup_included_file(CompilerState* cs, char* filename); -static AstInclude* create_include_file(bh_allocator alloc, char* filename) { - AstInclude* include_node = onyx_ast_node_new(alloc, sizeof(AstInclude), Ast_Kind_Include_File); +static AstInclude* create_load(bh_allocator alloc, char* filename) { + AstInclude* include_node = onyx_ast_node_new(alloc, sizeof(AstInclude), Ast_Kind_Load_File); include_node->name = filename; return include_node; @@ -174,9 +174,9 @@ static void compiler_state_init(CompilerState* compiler_state, OnyxCompileOption // NOTE: Add builtin entities to pipeline. entity_heap_insert(&compiler_state->prog_info.entities, ((Entity) { .state = Entity_State_Parse_Builtin, - .type = Entity_Type_Include_File, + .type = Entity_Type_Load_File, .package = NULL, - .include = create_include_file(compiler_state->sp_alloc, "core/builtin"), + .include = create_load(compiler_state->sp_alloc, "core/builtin"), })); entity_heap_insert(&compiler_state->prog_info.entities, ((Entity) { @@ -195,9 +195,9 @@ static void compiler_state_init(CompilerState* compiler_state, OnyxCompileOption bh_arr_each(const char *, filename, opts->files) { entity_heap_insert(&compiler_state->prog_info.entities, ((Entity) { .state = Entity_State_Parse, - .type = Entity_Type_Include_File, + .type = Entity_Type_Load_File, .package = NULL, - .include = create_include_file(compiler_state->sp_alloc, (char *) *filename), + .include = create_load(compiler_state->sp_alloc, (char *) *filename), })); } } @@ -255,17 +255,17 @@ static void merge_parse_results(CompilerState* compiler_state, ParseResults* res ent.scope = n->scope; switch (nkind) { - case Ast_Kind_Include_File: { + case Ast_Kind_Load_File: { ent.state = Entity_State_Parse; - ent.type = Entity_Type_Include_File; + ent.type = Entity_Type_Load_File; ent.include = (AstInclude *) node; entity_heap_insert(&compiler_state->prog_info.entities, ent); break; } - case Ast_Kind_Include_Folder: { + case Ast_Kind_Load_Path: { ent.state = Entity_State_Parse; - ent.type = Entity_Type_Include_Folder; + ent.type = Entity_Type_Load_Path; ent.include = (AstInclude *) node; entity_heap_insert(&compiler_state->prog_info.entities, ent); break; @@ -428,17 +428,17 @@ static CompilerProgress process_source_file(CompilerState* compiler_state, char* } } -static b32 process_include_entity(CompilerState* compiler_state, Entity* ent) { - assert(ent->type == Entity_Type_Include_File || ent->type == Entity_Type_Include_Folder); +static b32 process_load_entity(CompilerState* compiler_state, Entity* ent) { + assert(ent->type == Entity_Type_Load_File || ent->type == Entity_Type_Load_Path); AstInclude* include = ent->include; - if (include->kind == Ast_Kind_Include_File) { + if (include->kind == Ast_Kind_Load_File) { char* filename = lookup_included_file(compiler_state, include->name); char* formatted_name = bh_strdup(global_heap_allocator, filename); process_source_file(compiler_state, formatted_name); - } else if (include->kind == Ast_Kind_Include_Folder) { + } else if (include->kind == Ast_Kind_Load_Path) { bh_arr_push(compiler_state->options->included_folders, include->name); } @@ -459,7 +459,7 @@ static b32 process_entity(CompilerState* compiler_state, Entity* ent) { switch (ent->state) { case Entity_State_Parse_Builtin: - process_include_entity(compiler_state, ent); + process_load_entity(compiler_state, ent); ent->state = Entity_State_Finalized; if (onyx_has_errors()) return 0; @@ -469,7 +469,7 @@ static b32 process_entity(CompilerState* compiler_state, Entity* ent) { break; case Entity_State_Parse: - process_include_entity(compiler_state, ent); + process_load_entity(compiler_state, ent); ent->state = Entity_State_Finalized; break; diff --git a/src/onyxclone.c b/src/onyxclone.c index b731efe3..cc983dbd 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -27,8 +27,8 @@ static inline i32 ast_kind_to_size(AstNode* node) { case Ast_Kind_Error: return sizeof(AstNode); case Ast_Kind_Program: return sizeof(AstNode); case Ast_Kind_Package: return sizeof(AstPackage); - case Ast_Kind_Include_File: return sizeof(AstInclude); - case Ast_Kind_Include_Folder: return sizeof(AstInclude); + case Ast_Kind_Load_File: return sizeof(AstInclude); + case Ast_Kind_Load_Path: return sizeof(AstInclude); case Ast_Kind_Use_Package: return sizeof(AstUsePackage); case Ast_Kind_Alias: return sizeof(AstAlias); case Ast_Kind_Memres: return sizeof(AstMemRes); diff --git a/src/onyxparser.c b/src/onyxparser.c index 2c11b7c9..407b05f6 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -2121,8 +2121,8 @@ static AstNode* parse_top_level_statement(OnyxParser* parser) { while (parser->curr->type == '#') { OnyxToken* dir_token = parser->curr; - if (parse_possible_directive(parser, "include_file")) { - AstInclude* include = make_node(AstInclude, Ast_Kind_Include_File); + if (parse_possible_directive(parser, "load")) { + AstInclude* include = make_node(AstInclude, Ast_Kind_Load_File); include->token = dir_token; OnyxToken* str_token = expect_token(parser, Token_Type_Literal_String); @@ -2134,8 +2134,8 @@ static AstNode* parse_top_level_statement(OnyxParser* parser) { return (AstNode *) include; } - else if (parse_possible_directive(parser, "include_folder")) { - AstInclude* include = make_node(AstInclude, Ast_Kind_Include_Folder); + else if (parse_possible_directive(parser, "load_path")) { + AstInclude* include = make_node(AstInclude, Ast_Kind_Load_Path); include->token = dir_token; OnyxToken* str_token = expect_token(parser, Token_Type_Literal_String); @@ -2291,8 +2291,8 @@ ParseResults onyx_parse(OnyxParser *parser) { if (parser->hit_unexpected_token) return parser->results; switch (curr_stmt->kind) { - case Ast_Kind_Include_File: - case Ast_Kind_Include_Folder: + case Ast_Kind_Load_File: + case Ast_Kind_Load_Path: add_node_to_process(parser, curr_stmt); break; diff --git a/src/onyxutils.c b/src/onyxutils.c index ace28bbe..3647fbd4 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -108,8 +108,8 @@ const char* entity_state_strings[Entity_State_Count] = { const char* entity_type_strings[Entity_Type_Count] = { "Unknown", - "Include Folder", - "Include File", + "Add to Load Path", + "Load File", "Use Package", "String Literal", "File Contents", diff --git a/tests/aoc-2020/day1.onyx b/tests/aoc-2020/day1.onyx index a228699e..b8a0b1a0 100644 --- a/tests/aoc-2020/day1.onyx +++ b/tests/aoc-2020/day1.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/aoc-2020/day10.onyx b/tests/aoc-2020/day10.onyx index f1d9b5b4..4477bf84 100644 --- a/tests/aoc-2020/day10.onyx +++ b/tests/aoc-2020/day10.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day11.onyx b/tests/aoc-2020/day11.onyx index 0eed2fe7..e038e0f7 100644 --- a/tests/aoc-2020/day11.onyx +++ b/tests/aoc-2020/day11.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day12.onyx b/tests/aoc-2020/day12.onyx index 012a3492..0b7c70d3 100644 --- a/tests/aoc-2020/day12.onyx +++ b/tests/aoc-2020/day12.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day13.onyx b/tests/aoc-2020/day13.onyx index 4cba8910..adbf691b 100644 --- a/tests/aoc-2020/day13.onyx +++ b/tests/aoc-2020/day13.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day14.onyx b/tests/aoc-2020/day14.onyx index e5e583a2..4e1651c1 100644 --- a/tests/aoc-2020/day14.onyx +++ b/tests/aoc-2020/day14.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day15.onyx b/tests/aoc-2020/day15.onyx index aeb5332f..2cc74023 100644 --- a/tests/aoc-2020/day15.onyx +++ b/tests/aoc-2020/day15.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day16.onyx b/tests/aoc-2020/day16.onyx index d5a8e9f2..578847f9 100644 --- a/tests/aoc-2020/day16.onyx +++ b/tests/aoc-2020/day16.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day17.onyx b/tests/aoc-2020/day17.onyx index 867ab572..61cee9b4 100644 --- a/tests/aoc-2020/day17.onyx +++ b/tests/aoc-2020/day17.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day18.onyx b/tests/aoc-2020/day18.onyx index e9d9d149..93ec4a27 100644 --- a/tests/aoc-2020/day18.onyx +++ b/tests/aoc-2020/day18.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day19.onyx b/tests/aoc-2020/day19.onyx index 76ebe0f8..d503098b 100644 --- a/tests/aoc-2020/day19.onyx +++ b/tests/aoc-2020/day19.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day2.onyx b/tests/aoc-2020/day2.onyx index 64f54bc1..2685e065 100644 --- a/tests/aoc-2020/day2.onyx +++ b/tests/aoc-2020/day2.onyx @@ -1,6 +1,6 @@ package main -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/aoc-2020/day20.onyx b/tests/aoc-2020/day20.onyx index 118cc373..988e5a81 100644 --- a/tests/aoc-2020/day20.onyx +++ b/tests/aoc-2020/day20.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day21.onyx b/tests/aoc-2020/day21.onyx index 2b1b47f2..d092ab98 100644 --- a/tests/aoc-2020/day21.onyx +++ b/tests/aoc-2020/day21.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day22.onyx b/tests/aoc-2020/day22.onyx index d7e8c308..c4c1622b 100644 --- a/tests/aoc-2020/day22.onyx +++ b/tests/aoc-2020/day22.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day23.onyx b/tests/aoc-2020/day23.onyx index 4741d07a..886d9161 100644 --- a/tests/aoc-2020/day23.onyx +++ b/tests/aoc-2020/day23.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/aoc-2020/day24.onyx b/tests/aoc-2020/day24.onyx index 8d82cbae..61b6320f 100644 --- a/tests/aoc-2020/day24.onyx +++ b/tests/aoc-2020/day24.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day25.onyx b/tests/aoc-2020/day25.onyx index 210e5039..09d89941 100644 --- a/tests/aoc-2020/day25.onyx +++ b/tests/aoc-2020/day25.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day3.onyx b/tests/aoc-2020/day3.onyx index 9ae9c697..95eb223d 100644 --- a/tests/aoc-2020/day3.onyx +++ b/tests/aoc-2020/day3.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/aoc-2020/day4.onyx b/tests/aoc-2020/day4.onyx index f53eef82..51387b42 100644 --- a/tests/aoc-2020/day4.onyx +++ b/tests/aoc-2020/day4.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/aoc-2020/day5.onyx b/tests/aoc-2020/day5.onyx index 4698e85a..c2ac2358 100644 --- a/tests/aoc-2020/day5.onyx +++ b/tests/aoc-2020/day5.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/aoc-2020/day6.onyx b/tests/aoc-2020/day6.onyx index 0a6c0347..adf23213 100644 --- a/tests/aoc-2020/day6.onyx +++ b/tests/aoc-2020/day6.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/aoc-2020/day7.onyx b/tests/aoc-2020/day7.onyx index 4e35231f..08dceae3 100644 --- a/tests/aoc-2020/day7.onyx +++ b/tests/aoc-2020/day7.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day8.onyx b/tests/aoc-2020/day8.onyx index 59b404f3..e197fa7c 100644 --- a/tests/aoc-2020/day8.onyx +++ b/tests/aoc-2020/day8.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/aoc-2020/day9.onyx b/tests/aoc-2020/day9.onyx index fe162d2d..15d6b292 100644 --- a/tests/aoc-2020/day9.onyx +++ b/tests/aoc-2020/day9.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core use package core.string.reader as reader diff --git a/tests/array_struct_robustness.onyx b/tests/array_struct_robustness.onyx index 1c12ce4e..8517edf1 100644 --- a/tests/array_struct_robustness.onyx +++ b/tests/array_struct_robustness.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/compile_time_procedures.onyx b/tests/compile_time_procedures.onyx index 4ecdb219..518fe9ca 100644 --- a/tests/compile_time_procedures.onyx +++ b/tests/compile_time_procedures.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/general1.onyx b/tests/general1.onyx index 1dc092e2..d5d870e1 100644 --- a/tests/general1.onyx +++ b/tests/general1.onyx @@ -1,6 +1,6 @@ package main -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/hello_world.onyx b/tests/hello_world.onyx index 7d031f3f..3a309801 100644 --- a/tests/hello_world.onyx +++ b/tests/hello_world.onyx @@ -1,6 +1,6 @@ package main -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/i32map.onyx b/tests/i32map.onyx index 4bf31cd7..d8cf721f 100644 --- a/tests/i32map.onyx +++ b/tests/i32map.onyx @@ -1,6 +1,6 @@ package main -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/overload_with_autocast.onyx b/tests/overload_with_autocast.onyx index 7788c70f..9c427e59 100644 --- a/tests/overload_with_autocast.onyx +++ b/tests/overload_with_autocast.onyx @@ -1,4 +1,4 @@ -#include_file "core/std/js" +#load "core/std/js" use package core diff --git a/tests/struct_robustness.onyx b/tests/struct_robustness.onyx index 7e7586f7..fb526c4a 100644 --- a/tests/struct_robustness.onyx +++ b/tests/struct_robustness.onyx @@ -192,4 +192,4 @@ main :: proc (args: [] cstr) { } } -#include_file "core/std/js" \ No newline at end of file +#load "core/std/js" \ No newline at end of file diff --git a/tests/vararg_test.onyx b/tests/vararg_test.onyx index bea6b5c7..988f355e 100644 --- a/tests/vararg_test.onyx +++ b/tests/vararg_test.onyx @@ -1,6 +1,6 @@ package main -#include_file "core/std/js" +#load "core/std/js" use package core; -- 2.25.1