Releases: carbon-language/carbon-lang
Releases · carbon-language/carbon-lang
Nightly build 2025.07.03
What's Changed
Toolchain and implementation changes 🛠️
- Refactor ValueStoreChunk and ValueStoreRange into ValueStore by @jonmeow in #5756
- Make ValueStore require a ValueT parameter by @jonmeow in #5757
- Change BlockValueStore to take ElementT as a parameter by @jonmeow in #5758
- Consistently return runtime phase if the operands contain a runtime by @danakj in #5729
- Import vtable_ptr lazily by @dwblaikie in #5762
- Change CanonicalValueStore to take ValueT and KeyT as parameters by @jonmeow in #5759
- Remove IdT from ValueStoreTypes by @jonmeow in #5761
- Ask Clang to mangle names, don't try to do it ourselves. by @zygoloid in #5764
Full Changelog: v0.0.0-0.nightly.2025.07.02...v0.0.0-0.nightly.2025.07.03
Nightly build 2025.07.02
What's Changed
Proposals accepted and merged 📜
- Carbon/C++ Interop: Primitive Types proposal by @ivanaivanovska in #5448
Toolchain and implementation changes 🛠️
- Move dumping into the phase factory functions by @jonmeow in #5747
- Split value store related types to separate files by @jonmeow in #5754
- Add a ValueT to RelationalValueStore by @jonmeow in #5755
Full Changelog: v0.0.0-0.nightly.2025.07.01...v0.0.0-0.nightly.2025.07.02
Nightly build 2025.07.01
What's Changed
Proposals accepted and merged 📜
- Progressive disclosure principle by @geoffromer in #5661
Toolchain and implementation changes 🛠️
- Diagnose
partial
applied to final types. by @dwblaikie in #5744
Documentation changes 📝
- Fix repeated newlines in expression mermaid by @jonmeow in #5751
- A few more mermaid newline fixes by @jonmeow in #5752
- Add
partial
to the precedence diagram. by @zygoloid in #5749
Full Changelog: v0.0.0-0.nightly.2025.06.28...v0.0.0-0.nightly.2025.07.01
Nightly build 2025.06.30
What's Changed
Toolchain and implementation changes 🛠️
- Represent vtables as a top level SemIR construct by @dwblaikie in #5472
- Key-type customization in
CanonicalValueStore
andClangDecl
cleanups by @chandlerc in #5743 - Reimplement destroy as an interface by @jonmeow in #5678
- Use
Core.Range
fromfor
lowering tests. by @zygoloid in #5746 - Add hashtable benchmark coverage for integers with low zero bits by @chandlerc in #5735
- Switch Destroy to addr self by @jonmeow in #5748
Other changes
- Bump webrick from 1.8.1 to 1.8.2 in /website in the bundler group across 1 directory by @dependabot in #5745
Full Changelog: v0.0.0-0.nightly.2025.06.27...v0.0.0-0.nightly.2025.06.30
Nightly build 2025.06.29
What's Changed
Toolchain and implementation changes 🛠️
- Represent vtables as a top level SemIR construct by @dwblaikie in #5472
- Key-type customization in
CanonicalValueStore
andClangDecl
cleanups by @chandlerc in #5743 - Reimplement destroy as an interface by @jonmeow in #5678
- Use
Core.Range
fromfor
lowering tests. by @zygoloid in #5746 - Add hashtable benchmark coverage for integers with low zero bits by @chandlerc in #5735
- Switch Destroy to addr self by @jonmeow in #5748
Other changes
- Bump webrick from 1.8.1 to 1.8.2 in /website in the bundler group across 1 directory by @dependabot in #5745
Full Changelog: v0.0.0-0.nightly.2025.06.27...v0.0.0-0.nightly.2025.06.29
Nightly build 2025.06.28
What's Changed
Toolchain and implementation changes 🛠️
- Represent vtables as a top level SemIR construct by @dwblaikie in #5472
- Key-type customization in
CanonicalValueStore
andClangDecl
cleanups by @chandlerc in #5743 - Reimplement destroy as an interface by @jonmeow in #5678
- Use
Core.Range
fromfor
lowering tests. by @zygoloid in #5746 - Add hashtable benchmark coverage for integers with low zero bits by @chandlerc in #5735
- Switch Destroy to addr self by @jonmeow in #5748
Other changes
- Bump webrick from 1.8.1 to 1.8.2 in /website in the bundler group across 1 directory by @dependabot in #5745
Full Changelog: v0.0.0-0.nightly.2025.06.27...v0.0.0-0.nightly.2025.06.28
Nightly build 2025.06.27
What's Changed
Toolchain and implementation changes 🛠️
- Adding additional test for specific coalescing. by @alinas in #5732
- Tolerate incomplete interface when stringifying ImplWitnessAccess by @geoffromer in #5730
- Add a test where
impls
requires things of another generic type by @danakj in #5713 - Use
Decl::getAsFunction()
to castclang_decl
toFunctionDecl
by @bricknerb in #5737 - Move PrettyStackTraceFunction to common by @jonmeow in #5739
- Add
Core.Range(N)
facility to construct an integer range. by @zygoloid in #5699 - Print captured stdout/stderr on test crashes by @jonmeow in #5740
- Use LLVM verifier in lowering by @jonmeow in #5733
- Allow repeated includes, particularly for min_prelude by @jonmeow in #5741
- Basic SemIR
partial
support by @dwblaikie in #5736
Full Changelog: v0.0.0-0.nightly.2025.06.26...v0.0.0-0.nightly.2025.06.27
Nightly build 2025.06.26
What's Changed
Toolchain and implementation changes 🛠️
- Remove the IsPeriodSelf function, use constant value comparison instead by @danakj in #5731
- Propagate errors in import by @danakj in #5728
- Clean up --no-prelude-import uses by @jonmeow in #5722
- Refactor coalescing logic out of the file context. by @alinas in #5723
- Handle insts that resolve to
type
on the RHS ofimpls
by @danakj in #5712 - Use static allocas for temporaries. by @zygoloid in #5734
- Check and lowering support for
for
loops. by @zygoloid in #5698
Full Changelog: v0.0.0-0.nightly.2025.06.25...v0.0.0-0.nightly.2025.06.26
Nightly build 2025.06.25
What's Changed
Toolchain and implementation changes 🛠️
- Replace
isStruct() || isClass()
with!isUnion()
by @bricknerb in #5715 - Apply min-preludes to more tests (part 7) by @danakj in #5704
- Move
function_
test files to be infunction
dir and remove thefunction_
prefix by @bricknerb in #5716 - Clean up and extend support for cross-file lowering of specific functions. by @zygoloid in #5688
- Add tests for accessing an aggregate member constant through an ImplWitnessAccess by @danakj in #5702
- Add a
full.carbon
min-prelude that pulls in the full production prelude by @danakj in #5703 - Optimize specific function coalescing in lowering. by @alinas in #5684
- Helper to flag unexpected instructions on branches by @jonmeow in #5721
Documentation changes 📝
- Introduce a benchmark running script by @chandlerc in #5706
Full Changelog: v0.0.0-0.nightly.2025.06.24...v0.0.0-0.nightly.2025.06.25
Nightly build 2025.06.24
What's Changed
Toolchain and implementation changes 🛠️
- Apply min-preludes to more tests (part 8) by @danakj in #5705
- Replace
EXTRA-ARGS: --no-prelude-import
withINCLUDE-FILE: toolchain/testing/testdata/min_prelude/none.carbon
by @bricknerb in #5707 - Remove TODOs from the test of a declared but not defined struct as a by value parameter/return value by @bricknerb in #5708
- Support a C++
class
as a parameter or return by value, similar to a C++struct
by @bricknerb in #5709 - Apply min-preludes to more tests (part 6) by @danakj in #5691
- Fix tuple patterns matching expressions with atomic tuple form. by @zygoloid in #5697
- Avoid deducing errors as argument instructions after subst by @danakj in #5710
Full Changelog: v0.0.0-0.nightly.2025.06.21...v0.0.0-0.nightly.2025.06.24