From af978b6b200e1b4532091bd5ab1890860dff8ff1 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 28 Aug 2022 12:59:41 -0500 Subject: [PATCH] 'package builtin' is now just the global scope; cleanup --- core/builtin.onyx | 1 - core/container/array.onyx | 2 +- core/container/map.onyx | 6 +++--- core/container/set.onyx | 2 +- misc/onyx.sublime-syntax | 2 +- misc/onyx.vim | 2 +- misc/vscode/onyx-0.0.3.vsix | Bin 702348 -> 702346 bytes misc/vscode/out/ovmDebug.js | 2 +- misc/vscode/ovmDebug.ts | 2 +- src/parser.c | 6 ------ src/utils.c | 10 ++++++++-- 11 files changed, 17 insertions(+), 18 deletions(-) diff --git a/core/builtin.onyx b/core/builtin.onyx index 0b6fe9c2..1e523816 100644 --- a/core/builtin.onyx +++ b/core/builtin.onyx @@ -3,7 +3,6 @@ package builtin // CLEANUP: Should builtin.onyx really be including other files in the compilation? // Does that complicate things too much? #load "core/runtime/build_opts" -#local runtime :: package runtime str :: #type []u8; cstr :: #type ^u8; diff --git a/core/container/array.onyx b/core/container/array.onyx index ca36054c..e747fb5d 100644 --- a/core/container/array.onyx +++ b/core/container/array.onyx @@ -70,7 +70,7 @@ copy :: #match #locked { }, (arr: [] $T, allocator := context.allocator) -> [] T { - new_arr := make([] T, arr.count); + new_arr := builtin.make([] T, arr.count); for i: 0 .. arr.count do new_arr.data[i] = arr.data[i]; return new_arr; } diff --git a/core/container/map.onyx b/core/container/map.onyx index e12ebace..7ef7bb73 100644 --- a/core/container/map.onyx +++ b/core/container/map.onyx @@ -61,7 +61,7 @@ make :: ($Key: type_expr, $Value: type_expr, default := Value.{}) -> Map(Key, Va return map; } -#match (package builtin).__make_overload macro (x: ^Map($K, $V), allocator := context.allocator) => (package core.map).make(K, V); +#match __make_overload macro (x: ^Map($K, $V), allocator := context.allocator) => core.map.make(K, V); init :: (use map: ^Map($K, $V), default := V.{}) { __initialize(map); @@ -69,7 +69,7 @@ init :: (use map: ^Map($K, $V), default := V.{}) { allocator = context.allocator; default_value = default; - hashes = make([] u32, 8, allocator=allocator); + hashes = builtin.make([] u32, 8, allocator=allocator); array.fill(hashes, -1); array.init(^entries, allocator=allocator); @@ -208,7 +208,7 @@ format_map :: (output: ^conv.Format_Output, format: ^conv.Format, x: ^Map($K, $V rehash :: (use map: ^Map, new_size: i32) { memory.free_slice(^hashes, allocator); - hashes = make([] u32, new_size, allocator=allocator); + hashes = builtin.make([] u32, new_size, allocator=allocator); array.fill(hashes, -1); for ^entry: entries do entry.next = -1; diff --git a/core/container/set.onyx b/core/container/set.onyx index c758f0ad..6ec63f4d 100644 --- a/core/container/set.onyx +++ b/core/container/set.onyx @@ -189,7 +189,7 @@ iterator :: (set: ^Set($T)) -> Iterator(T) { rehash :: (use set: ^Set, new_size: i32) { memory.free_slice(^hashes, allocator); - hashes = make([] u32, new_size, allocator=allocator); + hashes = builtin.make([] u32, new_size, allocator=allocator); array.fill(hashes, -1); for ^entry: entries do entry.next = -1; diff --git a/misc/onyx.sublime-syntax b/misc/onyx.sublime-syntax index 54a08a3e..a2365ed7 100644 --- a/misc/onyx.sublime-syntax +++ b/misc/onyx.sublime-syntax @@ -29,7 +29,7 @@ contexts: # strings in YAML. When using single quoted strings, only single quotes # need to be escaped: this is done by using two single quotes next to each # other. - - match: '\b(package|struct|interface|use|where|global|enum|if|elseif|else|for|while|do|break|continue|fallthrough|return|as|cast|sizeof|alignof|typeof|defer|switch|case|macro)\b' + - match: '\b(package|struct|interface|use|where|global|enum|if|elseif|else|for|while|do|break|continue|fallthrough|return|cast|sizeof|alignof|typeof|defer|switch|case|macro)\b' scope: keyword.control.onyx - match: '\b(bool|void|i8|u8|i16|u16|i32|u32|i64|u64|f32|f64|rawptr|str|cstr|range|type_expr|any)\b' diff --git a/misc/onyx.vim b/misc/onyx.vim index 67e93fbf..631208ee 100644 --- a/misc/onyx.vim +++ b/misc/onyx.vim @@ -15,7 +15,7 @@ syn keyword onyxKeyword if elseif else where interface syn keyword onyxKeyword for while do syn keyword onyxKeyword switch case syn keyword onyxKeyword break continue return defer fallthrough -syn keyword onyxKeyword as cast sizeof alignof typeof +syn keyword onyxKeyword cast sizeof alignof typeof syn keyword onyxType bool void syn keyword onyxType i8 u8 syn keyword onyxType i16 u16 diff --git a/misc/vscode/onyx-0.0.3.vsix b/misc/vscode/onyx-0.0.3.vsix index bb16dd8f166e31aac7f5146906ba632e79d7e98f..ba5d515741443ee98170ced23e95ad19a20ca45e 100644 GIT binary patch delta 15394 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 KT@r9`&i;SjQ>I7& delta 14753 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 GyZ;CIzr42q diff --git a/misc/vscode/out/ovmDebug.js b/misc/vscode/out/ovmDebug.js index 38de655a..5c66268d 100644 --- a/misc/vscode/out/ovmDebug.js +++ b/misc/vscode/out/ovmDebug.js @@ -195,7 +195,7 @@ class OVMDebugSession extends debugadapter_1.LoggingDebugSession { this.running_process.stdout.on("data", (chunk) => { this.sendEvent(new debugadapter_1.OutputEvent(chunk, "console")); }); - this.attachRequest(response, { "socketPath": "/tmp/ovm-debug.0000", "stopOnEntry": true }); + this.attachRequest(response, { "socketPath": "/tmp/ovm-debug.0000", "stopOnEntry": args.stopOnEntry }); } attachRequest(response, args, request) { return __awaiter(this, void 0, void 0, function* () { diff --git a/misc/vscode/ovmDebug.ts b/misc/vscode/ovmDebug.ts index c24237c3..08d85494 100644 --- a/misc/vscode/ovmDebug.ts +++ b/misc/vscode/ovmDebug.ts @@ -267,7 +267,7 @@ export class OVMDebugSession extends LoggingDebugSession { this.sendEvent(new OutputEvent(chunk, "console")); }); - this.attachRequest(response, {"socketPath": "/tmp/ovm-debug.0000", "stopOnEntry": true}); + this.attachRequest(response, {"socketPath": "/tmp/ovm-debug.0000", "stopOnEntry": args.stopOnEntry}); } protected async attachRequest(response: DebugProtocol.AttachResponse, args: IOVMAttachRequestArguments, request?: DebugProtocol.Request): Promise { diff --git a/src/parser.c b/src/parser.c index e98ffd16..82ca91b9 100644 --- a/src/parser.c +++ b/src/parser.c @@ -3464,12 +3464,6 @@ void onyx_parse(OnyxParser *parser) { parser->file_scope = scope_create(parser->allocator, parser->package->private_scope, parser->tokenizer->tokens[0].pos); parser->current_scope = parser->file_scope; - AstUse* implicit_use_builtin = make_node(AstUse, Ast_Kind_Use); - AstPackage* implicit_builtin_package = make_node(AstPackage, Ast_Kind_Package); - implicit_builtin_package->package_name = "builtin"; - implicit_use_builtin->expr = (AstTyped *) implicit_builtin_package; - ENTITY_SUBMIT(implicit_use_builtin); - parse_top_level_statements_until(parser, Token_Type_End_Stream); parser->current_scope = parser->current_scope->parent; diff --git a/src/utils.c b/src/utils.c index 3036aab9..8c6c259b 100644 --- a/src/utils.c +++ b/src/utils.c @@ -39,10 +39,16 @@ Package* package_lookup_or_create(char* package_name, Scope* parent_scope, bh_al pac_name[strlen(package_name)] = '\0'; package->name = pac_name; - package->scope = scope_create(alloc, parent_scope, (OnyxFilePos) { 0 }); - package->private_scope = scope_create(alloc, package->scope, (OnyxFilePos) { 0 }); package->use_package_entities = NULL; + if (!strcmp(pac_name, "builtin")) { + package->private_scope = scope_create(alloc, context.global_scope, pos); + package->scope = context.global_scope; + } else { + package->scope = scope_create(alloc, parent_scope, pos); + package->private_scope = scope_create(alloc, package->scope, pos); + } + shput(context.packages, pac_name, package); if (!charset_contains(pac_name, '.')) { -- 2.25.1