updated CHANGELOG
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 5 Jan 2021 02:04:12 +0000 (20:04 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 5 Jan 2021 02:04:12 +0000 (20:04 -0600)
CHANGELOG
docs/todo
onyx.exe
src/onyx.c

index 20ede32f728be66c5af5cb12035e68ec69a6cefc..c549e76d04ae751d604b0b89262480c0b2338cbd 100644 (file)
--- 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
index 9099a620d4c8697e2683a720265c118580888eb2..8bc2a5e77d5ab8d57eb6e707a16f3bf594c0d809 100644 (file)
--- 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:
index 308548816a01c7b204f9a495b8e7f92ec7f062af..6e8e8351c12d1ecf44dfd6af15b0dc4db231648a 100644 (file)
Binary files a/onyx.exe and b/onyx.exe differ
index 2f081ef2225e05d8cc1f30ac95844fe8d33b67e1..d342d34897a14e6061f84435361e049fb2e8230c 100644 (file)
@@ -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