From 9abaee198b04f5aac94878f45cbc8b4bd4b20d39 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 15 Dec 2020 12:25:32 -0600 Subject: [PATCH] updated CHANGELOG --- CHANGELOG | 12 ++++++++++++ core/alloc.onyx | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 35ee25b3..a2a8e0bc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,10 +2,19 @@ Release v0.0.5 -------------- Additions: * 'abs' function in core/math.onyx. +* --verbose prints statistics about the compilation including time taken, lines + processed and token processed. +* 'read_word' in core.string.reader. +* 'use' statements work on pointers to structures. +* Better error reporting for invaild binary operators. +* '--fun' flag displays a bar graph of where each of the entities in the compilation + pipeline are. Compiles the program slower purely to make it look better. +* polymorphic procedures can be instantiated in many more places now due to clean up. Removals: * field accesses on things that are not lvals. This was a bug anyway, so it should not require any code changes, but the feature is gone. +* i32map, strmap, ptrmap modules. Use generic map in map.onyx instead. Changes: * BREAKING: The type name 'string', and the package name 'str', have been swapped. @@ -18,6 +27,9 @@ Changes: Bug fixes: * globals that were #foreign caused several bugs, which have been squashed. * field accesses can only happen on lvals. +* Bitwise NOT on unsigned integers did not work. +* 'use' statements now work in polymorphic procedures +* resizing heap allocated memory at the end of memory would not grow underlying memory. Release v0.0.4 diff --git a/core/alloc.onyx b/core/alloc.onyx index 8c46aa5f..c8574c23 100644 --- a/core/alloc.onyx +++ b/core/alloc.onyx @@ -103,8 +103,8 @@ heap_resize :: proc (ptr: rawptr, new_size: u32, align: u32) -> rawptr { // If we are at the end of the allocation space, just extend it if hb_ptr.size + cast(u32) ptr >= cast(u32) heap_state.next_alloc { - if new_size >= heap_state.remaining_space { - new_pages :: ((new_size - heap_state.remaining_space) >> 16) + 1; + if new_size - old_size >= heap_state.remaining_space { + new_pages :: ((new_size - old_size - heap_state.remaining_space) >> 16) + 1; if memory_grow(new_pages) == -1 { // out of memory return null; -- 2.25.1