From: Brendan Hansen Date: Tue, 15 Dec 2020 18:25:32 +0000 (-0600) Subject: updated CHANGELOG X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=9abaee198b04f5aac94878f45cbc8b4bd4b20d39;p=onyx.git updated CHANGELOG --- 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;