Cesium icon indicating copy to clipboard operation
Cesium copied to clipboard

C compiler for the CLI platform

Results 100 Cesium issues
Sort by recently updated
recently updated
newest added

Consider this valid C program: ```c #if FOO int a = 1; #endif ``` It is expected to generate an empty C file (an undefined variable evaluates to zero). Currently,...

kind:feature
status:help-wanted
area:preprocessor
good-first-issue

You can quickly reproduce the error by finding TODO[#532] ```csharp #if -20 < 10 ... #endif ```

kind:feature
status:help-wanted
area:preprocessor
good-first-issue

We should allow the source information to be attached to the AST nodes, and require it in all the error reporting code. ## Depends on - [ ] #525

kind:feature
area:compiler
status:blocked

Historically, the idea of Cesium appeared after we were discussing a possibility of porting code from [sha1collisiondetection](https://github.com/cr-marcstevens/sha1collisiondetection/) project to [Fenrir](https://github.com/ForNeVeR/Fenrir), a project to create a Git client in .NET. So,...

kind:milestone

Follow-up from #234: we should support processing of any `IDirectAbstractDeclarator` in `LocalDeclarationInfo::ProcessDirectAbstractDeclarator`. Look for the number `332` in our code when looking how to implement this feature.

kind:feature
status:help-wanted
good-first-issue

In `BinaryOperatorExpression::LowerPointerArithmetics`, we are trying to essentially multiply the pointer operands by pointer size. Note that the expressions still keep the same pointer type. This means that: 1. Initial arithmetics...

kind:bug
status:help-wanted
area:compiler
good-first-issue

For now, we have somewhat messed up pipeline: the IR nodes do all by themselves. Type checking, member resolve, lowering, codegen: we have everything everywhere. Right now, only parsing is...

area:compiler
kind:refactor

Take almost any code that works with arrays, for example, `CodeGenArrayTests.ArrayInitialization`, and you'll notice that Cesium leaves a useless `conv.u` instruction often. And none of those are actually needed, or...

kind:feature
status:help-wanted
area:compiler

See this snippet: https://github.com/ForNeVeR/Cesium/blob/532fbec3dcae1d5084971ab440f0ae865146d199/Cesium.CodeGen/Contexts/TranslationUnitContext.cs#L186-L196 From this, it looks like we use an empty struct (with no members) as a placeholder for a forward declaration, or something similar. Empty structs is...

status:help-wanted
area:compiler
kind:refactor