From 8ad094bf055638487179afbdb01e679b171fde45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Teo=20Samar=C5=BEija?= <46264381+FlatAssembler@users.noreply.github.com> Date: Wed, 21 Jul 2021 11:39:25 +0200 Subject: [PATCH] Mentioned the issue with CLANG on Windows and VS in ReadMe. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 95fc1d4..b1231b3 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ WASM files can be run in NodeJS, as you can see in [this example](https://github 1. While the code builds cleanly with `-Wall`, it doesn't build without warnings when using `-Wall -O3`, complaining about [something](https://github.com/FlatAssembler/AECforWebAssembly/blob/c9212990ec6655d14331fae71f1d782a697a518c/bitManipulations.cpp#L71) in `bitManipulations.cpp`. While I indeed deviated from standard C++, there doesn't appear to be a simple solution. Writing a decimal-to-IEEE754-converter myself would be tedious and error prone. (UPDATE: Solved that using unions.). (UPDATE: I solved that problem using `memcpy`. Apparently using unions for that is not valid in standard C++, as [the friends I met on Discord warned me](https://discord.com/channels/172018499005317120/172018499005317120/807361535193776138), even though every compiler I tried accepts that without a warning.) 1. The compiler crashes when you write `AddressOf(name_of_some_pointer)` and pointers to pointers are therefore not currently supported. There is simple [workaround](https://github.com/FlatAssembler/AECforWebAssembly/blob/c9212990ec6655d14331fae71f1d782a697a518c/analogClock/analogClock.aec#L12) for that, declare pointers you need pointers to as `Integer32`. However, in order to support data structures and custom data types, we will need to solve this problem. We will need to significantly modify the compiler (keep in mind it shouldn't crash even when somebody writes `AddressOf(pointer_to_pointer)`) and slightly modify the parser (to recognize `CharacterPointerPointer` as a legitimate token in variable declarations) to make that possible. (UPDATE: The compiler now supports pointers to pointers, but not in a way that would make it any easier to implement the structures.) (UPDATE: Structures are now supported to some extent, as the tests in `structureDeclarationTest.aec` pass.) 1. The tokenizer is slow. I have opened a [discussion on forum.hr about how to speed the tokenizer up](https://www.forum.hr/showthread.php?t=1243509). +1. There is a [weird bug causing Stack Overflow](https://github.com/FlatAssembler/AECforWebAssembly/issues/5) error if the program is compiled using Visual Studio or CLANG on Windows. It does not seem to occur in other compilers. ## Notes for Contributors