From 840b3b31618d3ee02bfa9f2760e444efdffc0630 Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Fri, 6 Sep 2024 22:55:15 +0200 Subject: [PATCH] "optsize" did not work correctly in project.json. --- lib/std/collections/hashmap.c3 | 8 ++++---- lib/std/collections/map.c3 | 4 ++-- releasenotes.md | 1 + src/build/project.c | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/std/collections/hashmap.c3 b/lib/std/collections/hashmap.c3 index a6dc936be..df4a90db5 100644 --- a/lib/std/collections/hashmap.c3 +++ b/lib/std/collections/hashmap.c3 @@ -63,7 +63,7 @@ fn HashMap* HashMap.temp_init(&self, uint capacity = DEFAULT_INITIAL_CAPACITY, f **/ macro HashMap* HashMap.new_init_with_key_values(&self, ..., uint capacity = DEFAULT_INITIAL_CAPACITY, float load_factor = DEFAULT_LOAD_FACTOR, Allocator allocator = allocator::heap()) { - self.new_init(.capacity = capacity, .load_factor = load_factor, .allocator = allocator); + self.new_init(capacity, load_factor, allocator); $for (var $i = 0; $i < $vacount; $i += 2) self.set($vaarg[$i], $vaarg[$i+1]); $endfor @@ -83,7 +83,7 @@ macro HashMap* HashMap.new_init_with_key_values(&self, ..., uint capacity = DEFA fn HashMap* HashMap.new_init_from_keys_and_values(&self, Key[] keys, Value[] values, uint capacity = DEFAULT_INITIAL_CAPACITY, float load_factor = DEFAULT_LOAD_FACTOR, Allocator allocator = allocator::heap()) { assert(keys.len == values.len); - self.new_init(.capacity = capacity, .load_factor = load_factor, .allocator = allocator); + self.new_init(capacity, load_factor, allocator); for (usz i = 0; i < keys.len; i++) { self.set(keys[i], values[i]); @@ -100,7 +100,7 @@ fn HashMap* HashMap.new_init_from_keys_and_values(&self, Key[] keys, Value[] val **/ macro HashMap* HashMap.temp_init_with_key_values(&self, ..., uint capacity = DEFAULT_INITIAL_CAPACITY, float load_factor = DEFAULT_LOAD_FACTOR) { - self.temp_init(.capacity = capacity, .load_factor = load_factor); + self.temp_init(capacity, load_factor); $for (var $i = 0; $i < $vacount; $i += 2) self.set($vaarg[$i], $vaarg[$i+1]); $endfor @@ -120,7 +120,7 @@ macro HashMap* HashMap.temp_init_with_key_values(&self, ..., uint capacity = DEF fn HashMap* HashMap.temp_init_from_keys_and_values(&self, Key[] keys, Value[] values, uint capacity = DEFAULT_INITIAL_CAPACITY, float load_factor = DEFAULT_LOAD_FACTOR, Allocator allocator = allocator::heap()) { assert(keys.len == values.len); - self.temp_init(.capacity = capacity, .load_factor = load_factor); + self.temp_init(capacity, load_factor); for (usz i = 0; i < keys.len; i++) { self.set(keys[i], values[i]); diff --git a/lib/std/collections/map.c3 b/lib/std/collections/map.c3 index 82cb0c3c8..d8d706351 100644 --- a/lib/std/collections/map.c3 +++ b/lib/std/collections/map.c3 @@ -54,7 +54,7 @@ fn Map temp(uint capacity = DEFAULT_INITIAL_CAPACITY, float load_factor = DEFAUL **/ macro Map new_init_with_key_values(..., uint capacity = DEFAULT_INITIAL_CAPACITY, float load_factor = DEFAULT_LOAD_FACTOR, Allocator allocator = allocator::heap()) { - Map map = new(.capacity = capacity, .load_factor = load_factor, .allocator = allocator); + Map map = new(capacity, load_factor, allocator); $for (var $i = 0; $i < $vacount; $i += 2) map.set($vaarg[$i], $vaarg[$i+1]); $endfor @@ -73,7 +73,7 @@ macro Map new_init_with_key_values(..., uint capacity = DEFAULT_INITIAL_CAPACITY fn Map new_init_from_keys_and_values(Key[] keys, Value[] values, uint capacity = DEFAULT_INITIAL_CAPACITY, float load_factor = DEFAULT_LOAD_FACTOR, Allocator allocator = allocator::heap()) { assert(keys.len == values.len); - Map map = new(.capacity = capacity, .load_factor = load_factor, .allocator = allocator); + Map map = new(capacity, load_factor, allocator); for (usz i = 0; i < keys.len; i++) { map.set(keys[i], values[i]); diff --git a/releasenotes.md b/releasenotes.md index a89839c3f..fa85780b8 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -12,6 +12,7 @@ - Deprecated tuple / triple types. - Converting a slice to a vector/array would copy too little data. - Crash when reading an empty 'manifest.json'. +- "optsize" did not work correctly in project.json. ### Stdlib changes - Additional init functions for hashmap. diff --git a/src/build/project.c b/src/build/project.c index 8f3bfd9b2..22d730227 100644 --- a/src/build/project.c +++ b/src/build/project.c @@ -219,7 +219,7 @@ static void load_into_build_target(const char *filename, JSONObject *json, const target->optlevel = GET_SETTING(OptimizationLevel, "optlevel", optlevels, "`none`, `less`, `more`, `max`."); // Size optimization - target->optsize = GET_SETTING(SizeOptimizationLevel, "optsize", optlevels, "`none`, `small`, `tiny`."); + target->optsize = GET_SETTING(SizeOptimizationLevel, "optsize", optsizes, "`none`, `small`, `tiny`."); static const char *opt_settings[8] = { [OPT_SETTING_O0] = "O0",