Welcome to Carbon Copy, a periodic update on the Carbon language!
We know that there are folks excited about the Carbon language who may lack time to follow the day-to-day work on Discord or Github. Carbon Copy is designed for those people who want a high-level view of what's happening on the project. This issue is a little longer than future ones as we're starting from scratch.
If you'd like to subscribe, you can join anno...@carbon-lang.dev. Carbon Copy should arrive roughly every other month.
As this is our first ever edition, and the first Carbon Copy of 2024, let's look back at 2023.
To borrow from the 2023 retrospective, our roadmap for 2023 focused on getting both the language and tools ready for evaluation.
We made fantastic progress on getting the language (design) ready by closing the most critical design gaps identified at the beginning of the year. While the tooling side made remarkable progress, it also started at a much earlier stage and so has a lot further to go.
We accepted many key proposals on topics such as values, variables, pointers, references, and inheritance. Here is some sample code illustrating some of these features[1]:
base class Base {
var b: i32;
}
class Derived {
extend base: Base;
var d: i32;
}
fn Make() -> Derived {
return {.base = {.b = 4}, .d = 7};
}
We also engaged more deeply with the C++ community, but it's clear we need a working compiler to further the conversation. This need for tooling is driving our 2024 priorities, with a potential v0.1 release in 2025. Get more details on our deliverables in the announcements below.
To see what v0.1 might include, check out "Defining the 0.1 language" and expected milestones.
Announcement: 2024 roadmap from #3564
Objective for 2024: a working toolchain that supports C++ interop
Building realistic Carbon code for interesting interop with C++
Building realistic C++ code for interesting interop with Carbon
The interop itself allows a single program mixing the two languages
Key results for 2024
Carbon's toolchain implements enough of the language to build realistic code
Carbon's toolchain can build C++ code
Carbon's toolchain works with existing, simple C++ build systems
Carbon has a design and toolchain implementation of basic C++ interop
Give talks at 2-3 conferences covering 3-4 different Carbon topics
Announcement: Focus implementation effort on the toolchain #3532
Talks:
Recent Carbon blog posts
<In progress> Variadics #2240
Ranged-based for for user-defined types #1885
Character literals #1964
Values, variables, pointers, and references #2006
Simplified package declaration for the `Main` package #2550
Termination algorithm for impl selection #2687
Consistent `class` and `interface` syntax #2760
Functions, function types, and function calls #2875
If you like this set of links, you'll love the weekly meeting notes, from the Carbon Weekly Sync.
Don't forget to subscribe; you can join anno...@carbon-lang.dev. If you have comments or would like to contribute to future editions of Carbon Copy, please reach out. And, always, join us any way you can!
Carboniferously yours,
Wolff, Josh, and the Carbon team
Elemental facts: People are made up of around 18.5% carbon! The only element more common in humans is oxygen.