Cesium icon indicating copy to clipboard operation
Cesium copied to clipboard

C compiler for the CLI platform

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

We should fully implement the following section of the C standard: - [ ] 6.7 Declarations - [ ] 6.7.1 Storage-class specifiers - [ ] 6.7.2 Type specifiers - [x]...

kind:feature
status:help-wanted
area:standard-support
area:parser

At this point, Cesium aims to be fully C23-compliant. There's a long way ahead, though. Here, I'll enumerate the standard sections and show their current status. The current version of...

kind:feature
area:standard-support

Section **6 Language** of the C standard includes a number of EBNF-like definitions Cesium should support. - [ ] 6 Language - [ ] 6.4 Lexical elements: #76 - [...

status:help-wanted
area:standard-support
area:parser

Currently, we're using a C lexer from [Yoakke](https://github.com/LanguageDev/Yoakke), a wonderful language toolkit. Though, it's not currently known how good the lexer is regarding the actual standard. We should write tests...

kind:feature
status:help-wanted
area:parser

Wide architecture set in Cesium supports same type sizes and layouts for any hardware platforms. The only problem remaining is that it's not the same for `nint` / `nuint`: these...

kind:feature
status:help-wanted
area:cil-interop
good-first-issue

In #354, interop with `CPtr` / `VoidPtr` / `FuncPtr` has been added. C programs may pass pointer parameters to the places where these types are excepted. Reverse interop (when external...

kind:feature
status:help-wanted
area:cil-interop

#356 introduced mapping of function pointer types to `FuncPtr`. Currently, there's no mapping for functions with empty parens or functions with vararg parameters. We should support that. While implementing, see...

kind:feature
status:help-wanted
area:cil-interop

In tests, we have a class `CSharpCompilationUtil` that is used to compile C# code. Currently, it is a static class with a bunch of functions. The tests are expected to...

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

After implementing #354, we now have a feature that calls C# functions with `CPtr`, `VoidPtr`, and `FuncPtr` in their signatures. To call them, it will always emit a `conv.i` instruction....

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

The current form of `Cesium.CodeGen.Contexts.Meta.FunctionInfo` is confusing: it is an immutable record struct, but with several mutable fields. Let's make it fully immutable. While we are at it, remove `TODO[#489]`...

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