From 6cc487c6d606a62fd040b71174257c8d839314a1 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 4 Jan 2021 20:04:12 -0600 Subject: [PATCH] updated CHANGELOG --- CHANGELOG | 15 +++++++++++++++ docs/todo | 4 ++-- onyx.exe | Bin 390656 -> 390656 bytes src/onyx.c | 4 ++-- 4 files changed, 19 insertions(+), 4 deletions(-) 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 308548816a01c7b204f9a495b8e7f92ec7f062af..6e8e8351c12d1ecf44dfd6af15b0dc4db231648a 100644 GIT binary patch delta 118 zcmZp8Bi`^ve8LMR-jj{5T3<1?zG7;9#oYReW$P=}S?*T6CqKtC009#a>jH5@6e~l6 z7b{4J0Vc--WQzdt2B6#qxZL)A9<0Y01(jH5@6e~l6 z7b{4J0Vc--WQzdt2B6#qxZL)A9<0Y01=_dsy^3j;_g}Jex7OohmEGH?c(LZJ1^{=H BCv*S+ 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 -- 2.25.1