Cesium
Cesium copied to clipboard
C compiler for the CLI platform
When storing two literals, `"bar"` and `"foobar"`, the compiler may optimize them to save space in the binary: only store `"foobar"` and point `"bar"` pointer to the middle of the...
From #157: > Current implementation is inefficient for constants. For example, `1 + 'b'` gives the following: > > ``` > IL_0000: ldc.i4 1 > IL_0005: ldc.i4 98 > IL_000a:...
It should be possible to use indirection operator (`*`): - with pointers to structs ```c foo x; foo *y = x; foo z = *y; ``` - with function pointers....
We have a bunch of integration tests marked as `ignored`. We'll need to figure out how to unignore them (obviously, we'll need to fix them beforehand).
I think we should make decision about what unspecified sign means for primitive types. Do we have to distinguish between `int` and `signed int` and 'signed'? https://github.com/ForNeVeR/Cesium/blob/8f22da755f43bd379f0ef665c7ffe9e5d0f98e72/Cesium.CodeGen/Ir/Types/PrimitiveType.cs#L14-L15 https://github.com/ForNeVeR/Cesium/blob/8f22da755f43bd379f0ef665c7ffe9e5d0f98e72/Cesium.CodeGen/Ir/Types/PrimitiveType.cs#L33-L35
Look for the number `223` in the code to find clues to implement this feature.
As of now, Yoakke parses identifiers of any length. Though, there are rumors that identifiers of certain lengths shouldn't be allowed. This should be investigated and a decision should be...
As of now, we don't support something defined as a "non-empty declaration list for a function". It's unclear what this is, but maybe something like this? ```c int foo(int), bar(int);...
Eventually, something like this should be supported: ```c int foo(void) { return 0; } int bar(void) { return 1; } int res = (true ? foo : bar)(); ``` Look...
Look for the number `226` in the code to find clues to implement this feature. Depends on: - [ ] #207