c interop type foundation
This commit is contained in:
+14
-15
@@ -12,17 +12,24 @@
|
||||
|
||||
### types and expressions
|
||||
|
||||
- `i8`, `i16`, `i32`, `i64`, `void`, and inferred integer-constrained `int`
|
||||
- exact-width `i8` through `i64`, `u8` through `u64`, `f32`, `f64`, `isize`, `usize`, `void`, and inferred integer-constrained `int`
|
||||
- target-dependent atomic C primitives from `c_char` through `c_longdouble`
|
||||
- C primitives remain semantically distinct from exact-width Brolang primitives until target lowering
|
||||
- contextual integer literals and constant folding of addition and negation trees
|
||||
- checked signed integer addition and unary negation
|
||||
- function calls, assignments, and returns
|
||||
- strict numeric conversions, checked integer addition, and unary negation
|
||||
- arrays `[N]T`, sentinel arrays `[N;S]T`, indexing, pointers, pointer offsets, slices, and explicit slicing
|
||||
- immutable UTF-8 sentinel-slice strings and Unicode code-point character literals
|
||||
- optionals with trapping postfix `?`, `orelse`, and nullable pointer representation
|
||||
- source-order native structs, keyed literals, and defined or opaque pointer-only `c_struct`
|
||||
- postfix pointer dereference, explicit `.ptr`/`.len`, general writable locations, function calls, assignments, and returns
|
||||
|
||||
### functions and packages
|
||||
|
||||
- demand-monomorphized functions
|
||||
- bodyful `c func` definitions using the c calling convention
|
||||
- bodyless `c func` declarations with exact, globally unique external symbol names
|
||||
- bodyful `c_func` definitions using the c calling convention
|
||||
- bodyless `c_func` declarations with exact, globally unique external symbol names
|
||||
- concrete-only foreign signatures
|
||||
- Apple Silicon C ABI scalar and pointer lowering, including narrow integer extension attributes
|
||||
- directory packages with merged declarations
|
||||
- file-local relative imports, aliases, and qualified member access
|
||||
|
||||
@@ -43,20 +50,12 @@
|
||||
|
||||
### scalar and compound types
|
||||
|
||||
- unsigned integers, floats, characters, and target-dependent c scalar types
|
||||
- arrays `[N]T` and sentinel arrays `[N; S]T`
|
||||
- single-item pointers `@T` and many-item pointers `*T`
|
||||
- element and pointee mutability through `mut`, separate from binding mutability
|
||||
- slices `[]T` and sentinel slices `[; S]T`
|
||||
- string literals as immutable sentinel slices backed by static arrays
|
||||
- character literals
|
||||
- optionals with trapping `?` unwrap, `orelse` fallback, and nullable pointers
|
||||
- data-only native structs and target-layout `c struct` types
|
||||
- tuples and native variadic functions
|
||||
- C unions, C enums, and by-value C record ABI lowering
|
||||
|
||||
### c imports
|
||||
|
||||
- c headers imported as synthetic package namespaces
|
||||
- typedefs, enums, opaque records, and external variables
|
||||
- function pointers, callbacks, macros, and static inline functions
|
||||
- target-specific by-value c record and union ABI lowering
|
||||
- target-specific by-value C record and union ABI lowering
|
||||
|
||||
Reference in New Issue
Block a user