From 10cf01eac28ae09ce852d79b2bc4a5de3eb84db3 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 8 Oct 2020 08:36:52 -0500 Subject: [PATCH] bugfixes and improvements to random --- core/random.onyx | 9 ++++--- onyx | Bin 497644 -> 497788 bytes src/onyxchecker.c | 65 +++++++++++++++++++++++++++++++++++++++++----- src/onyxparser.c | 1 + src/onyxsymres.c | 1 + src/onyxwasm.c | 10 +++++++ 6 files changed, 76 insertions(+), 10 deletions(-) diff --git a/core/random.onyx b/core/random.onyx index 3ff7aae2..8b27089e 100644 --- a/core/random.onyx +++ b/core/random.onyx @@ -1,11 +1,14 @@ package core -#private -seed := 8675309 +#private_file seed := 8675309 + +#private_file RANDOM_MULTIPLIER :: 1664525 +#private_file RANDOM_INCREMENT :: 1013904223 +// #private_file RANDOM_MODULUS :: 1 << 32 random_seed :: proc (s: u32) do seed = s; random :: proc (s := ^seed) -> u32 { - *s = *s * 5831 + 102847; + *s = *s * RANDOM_MULTIPLIER + RANDOM_INCREMENT; return *s; } diff --git a/onyx b/onyx index 59f54e4cacfdfa6df99198957a863f6a1a4ef24c..77f2b16c3d606c74b7f55fa8039287fb7ad6ceb3 100755 GIT binary patch delta 67114 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 z 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 z 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 = type_build_from_ast(semstate.allocator, node->type_node); } +/* +// NOTE: Returns 1 if the conversion was successful. +static b32 convert_numlit_to_type(AstNumLit* num, Type* type) { + fill_in_type((AstTyped *) num); + assert(num->type); + + if (types_are_compatible(num->type, type)) return 1; + + if (!type_is_numeric(type)) return 0; + + if (num->type->Basic.flags & Basic_Flag_Integer) { + + // + // Integer literal auto cast rules: + // - Up in size always works + // - Down in size only works if value is in range of smaller type. + // - Cast to float only works if value is less than the maximum precise value for float size. + // + + if (type->Basic.flags & Basic_Flag_Integer) { + if (num->type->Basic.size < type->Basic.size) { + num->value.l = (i64) num->value.i; + num->type = type; + return 1; + } + } + + if (type->Basic.flags & Basic_Flag_Float) { + + } + + } + else if (num->type->Basic.flags & Basic_Flag_Float) { + // NOTE: Floats don't cast to integers implicitly. + if ((type->Basic.flags & Basic_Flag_Float) == 0) return 0; + + if (num->type->Basic.kind == Basic_Kind_F32 && type->Basic.kind == Basic_Kind_F64) num->value.d = (f64) num->value.f; + else return 0; + + num->type = type; + + return 1; + } + + return 0; +} */ + // NOTE: Returns 0 if it was not possible to make the types compatible. static b32 type_check_or_auto_cast(AstTyped* node, Type* type) { assert(type != NULL); assert(node != NULL); if (types_are_compatible(node->type, type)) return 1; - if (!node_is_auto_cast((AstNode *) node)) return 0; - - // If the node is an auto cast, we convert it to a cast node which will reports errors if - // the cast is illegal in the code generation. - ((AstUnaryOp *) node)->type = type; - ((AstUnaryOp *) node)->operation = Unary_Op_Cast; + if (node_is_auto_cast((AstNode *) node)) { + // If the node is an auto cast, we convert it to a cast node which will reports errors if + // the cast is illegal in the code generation. + ((AstUnaryOp *) node)->type = type; + ((AstUnaryOp *) node)->operation = Unary_Op_Cast; + return 1; + } + else if (node->kind == Ast_Kind_NumLit) { + // if (convert_numlit_to_type((AstNumLit *) node, type)) return 1; + } - return 1; + return 0; } b32 check_return(AstReturn* retnode) { diff --git a/src/onyxparser.c b/src/onyxparser.c index a8180c3e..cc389240 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -408,6 +408,7 @@ static AstTyped* parse_factor(OnyxParser* parser) { AstStrLit* str_node = make_node(AstStrLit, Ast_Kind_StrLit); str_node->token = expect_token(parser, Token_Type_Literal_String); str_node->addr = 0; + str_node->flags |= Ast_Flag_Comptime; add_node_to_process(parser, (AstNode *) str_node); diff --git a/src/onyxsymres.c b/src/onyxsymres.c index af88d6f9..34aa440b 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -796,6 +796,7 @@ void onyx_resolve_symbols() { case Entity_Type_Enum: symres_enum(entity->enum_type); break; case Entity_Type_Memory_Reservation: symres_memres(&entity->mem_res); break; case Entity_Type_Polymorphic_Proc: symres_polyproc(entity->poly_proc); break; + case Entity_Type_String_Literal: symres_expression(&entity->expr); break; default: break; } diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 23ff7745..3d5acfc1 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -2879,6 +2879,16 @@ static void emit_string_literal(OnyxWasmModule* mod, AstStrLit* strlit) { static void emit_raw_data(OnyxWasmModule* mod, ptr data, AstTyped* node) { switch (node->kind) { + case Ast_Kind_StrLit: { + AstStrLit* sl = (AstStrLit *) node; + + // NOTE: This assumes the address and the length fields have been filled out + // by emit_string_literal. + u32* sdata = (u32 *) data; + sdata[0] = sl->addr; + sdata[1] = sl->length; + break; + } case Ast_Kind_NumLit: { switch (node->type->Basic.kind) { case Basic_Kind_Bool: -- 2.25.1