Skip to content

Commit

Permalink
Mentioned the issue with CLANG on Windows and VS in ReadMe.
Browse files Browse the repository at this point in the history
  • Loading branch information
FlatAssembler committed Jul 21, 2021
1 parent 6532551 commit 8ad094b
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ WASM files can be run in NodeJS, as you can see in [this example](https://github
1. <del>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.).</del> (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. <del>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.)</del> (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

Expand Down

0 comments on commit 8ad094b

Please sign in to comment.