diff --git a/newsfragments/1401.feature.md b/newsfragments/1401.feature.md new file mode 100644 index 0000000000..a2ccedcfac --- /dev/null +++ b/newsfragments/1401.feature.md @@ -0,0 +1 @@ +Improve `fe doc` and generated documentation bundles: message declarations and message variants now render with dedicated item kinds and complete signatures, `fe doc --builtins --stdlib-path ` can document a stdlib loaded from disk, docs JSON includes pre-rendered Markdown HTML, and the web viewer can load gzipped docs JSON bundles. diff --git a/newsfragments/1404-abi.feature.md b/newsfragments/1404-abi.feature.md new file mode 100644 index 0000000000..93feace8ef --- /dev/null +++ b/newsfragments/1404-abi.feature.md @@ -0,0 +1 @@ +Update the core ABI helper traits and APIs. Custom ABI implementations now use `AbiSize::HEAD_SIZE`, `payload_size`, `Decode::decode_payload`, and `AbiSpan::payload_end`; encoders are created with a fixed output size, and root versus field encoding is split into explicit helpers such as `encode_alloc` and `encode_single_root_alloc`. diff --git a/newsfragments/1404-array-codegen.bugfix.md b/newsfragments/1404-array-codegen.bugfix.md new file mode 100644 index 0000000000..eb344cd78b --- /dev/null +++ b/newsfragments/1404-array-codegen.bugfix.md @@ -0,0 +1 @@ +Fix several array and aggregate codegen bugs. Readonly array locals, call results, constructor arguments, and view parameters now preserve their code-backed or borrowed representation until materialization is required. Code-backed arrays copied to storage are staged through memory before word loads and use storage slot offsets instead of byte offsets. Runtime array literals now populate each element before loading the aggregate value. diff --git a/newsfragments/1404.bugfix.md b/newsfragments/1404.bugfix.md new file mode 100644 index 0000000000..91391515ac --- /dev/null +++ b/newsfragments/1404.bugfix.md @@ -0,0 +1 @@ +Fix several MIR correctness issues: `fe build --contract` now filters Sonatina IR output correctly, ingot builds work when contracts are re-exported from the root module, generic calls can forward concrete EVM effects, and escaping storage borrows are rejected. diff --git a/newsfragments/1404.feature.md b/newsfragments/1404.feature.md new file mode 100644 index 0000000000..1493f96ab9 --- /dev/null +++ b/newsfragments/1404.feature.md @@ -0,0 +1 @@ +Replace backend lowering with the staged SMIR/NSMIR/MIR pipeline. This expands compile-time function evaluation, including const calls that produce aggregate values and symbolic array repeat expressions such as `[value; N]` where `N` is a const generic. diff --git a/newsfragments/1408.bugfix.md b/newsfragments/1408.bugfix.md new file mode 100644 index 0000000000..3ca3a884aa --- /dev/null +++ b/newsfragments/1408.bugfix.md @@ -0,0 +1 @@ +Report invalid dependency paths in `fe.toml` as configuration diagnostics instead of panicking. diff --git a/newsfragments/1409.bugfix.md b/newsfragments/1409.bugfix.md new file mode 100644 index 0000000000..197ed165a7 --- /dev/null +++ b/newsfragments/1409.bugfix.md @@ -0,0 +1 @@ +Fix `StorageBytes.encode_return` so multi-word `bytes` values are ABI-encoded from allocated return memory instead of clobbering scratch memory. diff --git a/newsfragments/1410-never-type.bugfix.md b/newsfragments/1410-never-type.bugfix.md new file mode 100644 index 0000000000..2bd895c6c6 --- /dev/null +++ b/newsfragments/1410-never-type.bugfix.md @@ -0,0 +1 @@ +Fix never type (`!`) handling in trait checking and lowering. The compiler now avoids probing trait implementations for bare `!`, producing the intended diagnostic for invalid uses, and treats extern functions declared `-> !` as intrinsically non-returning even when they appear in functions with generic or associated return types. diff --git a/newsfragments/1412.feature.md b/newsfragments/1412.feature.md new file mode 100644 index 0000000000..0414bcde97 --- /dev/null +++ b/newsfragments/1412.feature.md @@ -0,0 +1 @@ +Add `static_assert(bool_expr)` for compile-time assertions, with diagnostics that show evaluated comparison operands and operators when an assertion fails.