From: Brendan Hansen Date: Tue, 5 Jan 2021 02:04:12 +0000 (-0600) Subject: updated CHANGELOG X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=6cc487c6d606a62fd040b71174257c8d839314a1;p=onyx.git updated CHANGELOG --- diff --git a/CHANGELOG b/CHANGELOG index 20ede32f..c549e76d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,8 +1,15 @@ Release v0.0.6 -------------- Additions: +* Compilation on Windows. All you should need is `cl.exe` in the current environment, + and then simply run `build.bat`. I haven't thoroughly tested this, but I believe + it will work on many systems. ARM / PowerPC may not work correctly. * #solidify directive for explicitly specifying type variables in polymorphic procs. * properly different kinds of allocators in core/alloc/. +* `null_proc` in builtin.onyx type matches against all procedure types, allowing for a + 'null' procedure. +* '-VV' for very verbose printing. Easier to nail down compiler issues because it stops + printing in the entity where the problem is. * `map.empty` * `string.compare` * `array.copy` @@ -19,15 +26,23 @@ Changes: declare top level expressions in the procedure scope. This means that things like structs and enums can be declared at any block scope. The top-level expressions currently do not have access to polymoprhic variables in the procedure. +* `#include_file` is now `#load` and `#include_folder` is now `#load_path`. I like the shorter names. * enum values are compile time known. * struct literals are compile time known can be used at top level scope. * range literals are proper things in the compiler code now. * polymorphic procedure generation code is much cleaner now, making new polymorphic features easier. +* procedures can be part of top-level struct literals. +* `raw_alloc` and `raw_resize` take alignment arguments, with defaults provided. Bug fixes: * polymorphic procedures would get 'confused' when two structs in the program had the same name. * function argument type mismatch would give wrong function name. * `structs` with `use`d members caused all sorts of problems. +* bug fix with field access of unknown type causing infinite loop. +* auto-cast in overloaded function call resulted in no match found, even though there was one. +* struct member defaults were processed too early in the pipeline, causing errors. +* assignment of array type with array literal optimization. +* probably many more since everything is compiled with warnings now. Release v0.0.5 diff --git a/docs/todo b/docs/todo index 9099a620..8bc2a5e7 100644 --- a/docs/todo +++ b/docs/todo @@ -155,8 +155,8 @@ Usability: restriction due completely to my laziness and lack of access to a Windows / MacOS computer. - [ ] Make README on GitHub better, and actually describe what to do - [ ] Make compiler work on Windows + [X] Make README on GitHub better, and actually describe what to do + [X] Make compiler work on Windows [ ] Make compiler work on MacOS [ ] Make Onyx easier to use from JS [ ] Add examples for the following language features: diff --git a/onyx.exe b/onyx.exe index 30854881..6e8e8351 100644 Binary files a/onyx.exe and b/onyx.exe differ diff --git a/src/onyx.c b/src/onyx.c index 2f081ef2..d342d348 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -228,9 +228,9 @@ static char* lookup_included_file(CompilerState* cs, char* filename) { bh_snprintf(fn, 128, "%s", filename); } -#ifdef __unix__ +#if defined(_BH_LINUX) #define DIR_SEPARATOR '/' -#elif _WIN32 +#elif defined(_BH_WINDOWS) #define DIR_SEPARATOR '\\' #endif