Commit Graph
130 Commits
Author SHA1 Message Date
Jon Ross-Perkins eac7aecd86 Remove 'no room' idiom (#1852)
Per discussion, this is confusing some people who read it as "don't allow" rather than "no need". I think "no need" is the original intent.
2022-08-01 11:23:10 -07:00
Jon Ross-Perkins 92748e6b35 Update pre-commit version for underscores in symlinks (#1845) 2022-08-01 11:08:05 -07:00
Matt Armstrong fce3618cc2 Try to make some FAQ questions more inviting (#1848)
Replace the "why we don't want to discuss things" question with three
questions covering substantially the same topic. Try to strike a balance
between inviting participation and feedback while still making it clear
that the evolution process produces "firm" decisions.

Address issue #1833.
2022-07-30 19:03:27 -07:00
MarchMore a3dc3cac74 Documentation: Minor corrections of several md files (#1806) 2022-07-30 11:16:11 -07:00
Vitalii 4872f49ce7 Rework of .devcontainer (#1816) (#1817)
> The only issue that I currently have with this one is that the `clangd` extension is having some hiccups, not being able to find includes like `<gmock/gmock.h>` and `<benchmark/benchmark.h>` and thus showing extra errors. However, this only affects the VSCode extension and bazel seems to work fine.

This might be an issue with the compilation database: you might try ./scripts/create_compdb.py to help.
2022-07-30 10:54:45 -07:00
Vaishnavi JoshiandJon Ross-Perkins a60e78485a fixed broken link in faq section (#1825)
The link now redirects to main readme of the project as expected.

Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
2022-07-30 08:30:45 -07:00
Matt Armstrong 2fa74f1d71 Add a new "How can I contribute?" top level heading to the FAQ (#1827)
This provides a natural place for questions about the specifics of how to
contribute effectively, which, near term, is probably where the FAQ will
grow the most near term. This allows the other headings to remain more
focused on their original questions.

Move two existing questions to the new place without changing their
content: "What are the prerequisites for contributing [...]?"  and "Why
aren't people willing to discuss certain topics [...]?".
2022-07-29 17:21:31 -07:00
1b2047d075 Added the ZLib development package as a Linux requirement to the Main Tools section (#1558)
Fixes #1527

On Debian, the zlib1g-dev package is required to build and should be given as a requirement.

Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
2022-07-28 23:05:30 -07:00
yale 85cb70c0a3 Add DevContainer (#1608)
With DevContainer, developers can join the project without deploy the build env.

Signed-off-by: cyw3 <2927096163@qq.com>
2022-07-28 16:03:48 -07:00
SADIK KUZU 0b75f8590c Update brew install command for gh cli (#1775)
Reference: https://github.com/cli/cli#macos
2022-07-27 11:31:40 -07:00
Dan Sarginson 3de94947c0 Update print example in FAQ (#1772)
The named file does not exist
2022-07-27 11:04:12 -07:00
2430c31ea2 [docs] adds new FAQ entries (#1752)
We've observed the following things cropping up regularly enough to
address as 'frequently asked':

* Why isn't there a Carbon logo?
* Where should I ask questions?
* What are the prerequisites for building Carbon?
* Why aren't people willing to discuss certain topics?

Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
2022-07-26 19:07:40 -07:00
Joshua Peterson 39d6c4139f Add a link the the stacked pull request docs (#1657)
The stacked pull request documentation exists now, so remove the TODO
and add a link to it.
2022-07-24 10:43:27 -07:00
CharlieS1103andJon Ross-Perkins 68740764f3 Sentence structure and Grammar in Evolution.md (#1543)
Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
2022-07-23 18:03:12 -07:00
Joshua Peterson 9287c825eb Add debugging troubleshooting for GDB (#1613)
Older versions of GDB (before version 10.1) don't work with the
DWARF v5 debugging format the LLVM uses. The error message
which GDB shows when this happens is a bit misleading though.

Provide documentation about how to deal with that error message.
2022-07-23 08:53:03 -07:00
Parisa KhaleghiandJon Ross-Perkins 0bcc6d4ae6 Update contribution_tools.md (#1517)
VS Code is a Code editor, not an IDE!

Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
2022-07-23 08:47:16 -07:00
Josh Soref 066b103881 Spelling (#1580)
This PR corrects misspellings identified by the [check-spelling action](https://github.com/marketplace/actions/check-spelling).

The misspellings have been reported at https://github.com/jsoref/carbon-lang/commit/38a1c1640151899fd6da0442a92557f9543b6280#commitcomment-79197316

The action reports that the changes in this PR would make it happy: https://github.com/jsoref/carbon-lang/commit/173c8f9083a68aa61f7cfe94f720f1e5dc7f1ea3

Note: this PR does not include the action. If you're interested in running a spell check on every PR and push, that can be offered separately.

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-07-22 16:14:21 -07:00
Wolfgang E SanyerandChandler Carruth d134990157 Update contribution_tools.md (#1513)
The repository can be forked and cloned using the `gh` cli

Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
2022-07-22 15:04:15 -07:00
Arno Gourdol 4815a09a79 Grammar (#1535) 2022-07-22 12:43:14 -04:00
Jon Ross-Perkins adad33944d Add some build troubleshooting, stop doing version detection. (#1541)
@chandlerc brew is installing clang-14, so I'm not sure the clang-13 is doing much other than risking picking up the wrong version.
2022-07-21 19:40:22 -07:00
mconst 80b7863fdf Fix typo from previous incomplete edit (#1488)
This sentence was replaced in #569, but the words "See the" from the old version didn't get deleted.  Thanks to Kira on Discord for pointing it out!
2022-07-20 21:50:54 -07:00
Thomas Lively c65284b1a0 Fix memory safety link in faq.md (#1434) 2022-07-19 15:07:18 -07:00
Jon Ross-Perkins 59f91aa0d5 Replace README folders with proper public version (#1430) 2022-07-19 14:50:35 -07:00
Matt Godbolt eeb91cb044 Update FAQ to point at compiler explorer instance. (#1429) 2022-07-19 16:14:11 -04:00
Laurent Le Brun 9a370994b5 FAQ: Update link to the Discord server (#1419) 2022-07-19 13:30:01 -04:00
c867b38334 Create a FAQ for Carbon (#1385)
Trying to collect together answers for various project questions we've received in previews.

@gribozavr @danakj and @hlopko contributed most of the Rust FAQ entry.

Co-authored-by: Dmitri Gribenko <dmitrig@google.com>
Co-authored-by: Dana Jansens <danakj@google.com>
Co-authored-by: Marcel Hlopko <hlopko@google.com>
Co-authored-by: josh11b <josh11b@users.noreply.github.com>
Co-authored-by: Geoff Romer <gromer@google.com>
Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
2022-07-18 11:08:17 -04:00
8dd878b314 Remove CODEOWNERS (#1367)
Remove CODEOWNERS and rely on repository commit access

Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
Co-authored-by: Richard Smith <richard@metafoo.co.uk>
Co-authored-by: Geoff Romer <gromer@google.com>
2022-07-15 15:31:56 -07:00
4aa462c2ac Make the Carbon experiment public. (#1363)
This is a proposal to make the Carbon experiment public.

We have not yet hit many of the originally suggested criteria for going
public. However, this proposal suggests that increasingly there is more
value to moving public sooner rather than waiting to hit these criteria.
We are increasingly unable to substantially learn more about the broader
interest in Carbon without it being public and we increasingly see value
in working with the industry to build and shape the language.

Given this, the proposal removes the old plan-of-record and suggests
a concrete set of steps to make the experiment public in the immediate
future.

This is not a change that we can make lightly to the project, and so we
worked to check with as many folks as we could first and all three
leads were unanimous to move forward here.

Note that this proposal was originally discussed in PR #1315.

Co-authored-by: josh11b <josh11b@users.noreply.github.com>
Co-authored-by: Richard Smith <richard@metafoo.co.uk>
2022-07-01 18:11:40 -07:00
df345b5ec7 Remove LLVM from the repo, and clean up history. (#1344)
This proposal establishes a plan for moving away from the embedded copy
of LLVM and instead downloading it with Bazel.

The goal is that after this lands, we will do a history-rewrite to
cleanup the repository. There are instructions on how folks can move any
in-flight work over to the newly tidied repo.

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
Co-authored-by: josh11b <josh11b@users.noreply.github.com>
2022-06-28 13:49:38 -07:00
bc40bdc279 Principle: All APIs are library APIs (#1280)
Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
Co-authored-by: Richard Smith <richard@metafoo.co.uk>
2022-06-13 13:10:43 -07:00
Geoff Romer 6ab9c487be Restructure goals doc to reduce nesting. (#1319)
Prior to this change, the section headings for the 7 main goals are visually indistinguishable (in GitHub's rendering) from the boldfaced paragraph headings in those sections. This makes the doc hard to navigate because the structure is hidden.
2022-06-10 21:17:43 -07:00
b62b7464a4 Update and expand README content and motivation for Carbon (#1270)
Some review feedback from outside the team directly working on Carbon suggested
two pretty significant updates here. First, we didn't do a good job of
motivating Carbon. This takes two parts, first explaining what we'd like to
accomplish with this approach generally, and second explaining why alternative
approaches don't work. A particularly difficult case here is articulating
effectively the difficulties that motivate an approach other than improving C++
incrementally.

Co-authored-by: Jon Meow <jperkins@google.com>
Co-authored-by: josh11b <josh11b@users.noreply.github.com>
2022-06-06 17:16:27 -07:00
Jon MeowandGeoff Romer cc9bebb1d0 Minor carbon-explorer edit to roadmap (#1225)
A rephrasing was suggested on https://github.com/carbon-language/carbon-lang/pull/1188#discussion_r851416370 because "explorer" alone could be hard to parse; I'm suggesting just replacing with "Carbon explorer" to get precision without changing phrasing, as well as rephrasing "Executable semantic" as "Carbon explorer" (which... the former *may* have meant "executable semantics", but the difference in pluralization made it vague, so I'm not sure this is right -- but it also didn't explain _where_, so "executable semantics" seems the right reading)

Co-authored-by: Geoff Romer <gromer@google.com>
2022-05-04 16:12:26 -07:00
e18675608b Reviewer-merged PRs (#1190)
Encourage reviewers to merge when they feel okay doing so. Let reviewers make
that choice. Let authors say they'll merge themselves.

Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
Co-authored-by: Richard Smith <richard@metafoo.co.uk>
2022-05-04 13:12:18 -07:00
Jon MeowandChandler Carruth f42ca044cb Rephrase arguments around data versus emotional. (#1212)
Right now, the text is disallowing appeals to logic (which are persuasive methods, per the linked wikipedia article). Consensus seems to be that this is unintentional.

Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
2022-05-02 08:25:26 -07:00
Jon Meow 309ec35f95 Rename executable_semantics to explorer (#1188)
Change generated with:

```
#!/usr/bin/bash -eux

# Helper script for renaming pending work.
# Run from the repo root.

# Rename executable_semantics in code.
sed -i 's/executable_semantics/explorer/g' \
  $(git grep -l 'executable_semantics' . | grep -v proposals)
sed -i 's/executable semantics/explorer/g' \
  $(git grep -l 'executable semantics' . | grep -v proposals)
sed -i 's/Executable semantics/Explorer/g' \
  $(git grep -l 'Executable semantics' . |  grep -v proposals)
sed -i 's/Executable Semantics/Explorer/g' \
  $(git grep -l 'Executable Semantics' . |  grep -v proposals)
sed -i 's/EXECUTABLE_SEMANTICS/EXPLORER/g' \
  $(git grep -l 'EXECUTABLE_SEMANTICS' . | grep -v proposals)
sed -i 's/ExecutableSemantics/Explorer/g' \
  $(git grep -l 'ExecutableSemantics' . | grep -v proposals)
sed -i 's/executable-semantics/explorer/g' \
  $(git grep -l 'executable-semantics' . | grep -v proposals)

# This is only needed for the initial move.
mv executable_semantics explorer
mv explorer/fuzzing/executable_semantics_fuzzer.cpp explorer/fuzzing/explorer_fuzzer.cpp
```

Verified with `bazel test ...`
2022-04-29 13:20:25 -07:00
josh11bandRichard Smith d7a90609cc Update docs/ READMEs (#1211)
With a focus on making each README a good representation for its directory, and adding links.

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
2022-04-27 12:07:53 -07:00
Jon MeowandRichard Smith 9c0675d2b4 Work on wording around interop tradeoffs (#1185)
Given repeated concerns about C++ interop priorities: taking a pass at being more direct about priorities and tradeoffs.

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
2022-04-18 14:37:32 -07:00
Richard SmithandJon Meow a0a4146bcf Roadmap updates for 2022 (#1025)
Roadmap updates for 2022. Key goals:

* Reach the point where the first draft of the core language design is complete, with some test programs and an approximate implementation in executable semantics.
* Go public, and improve public participation.

Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com>
2022-03-16 14:43:03 -07:00
Richard Smith 35a0bf1c7e Principle: information accumulation (#875)
This proposal addresses the question of whether we should perform a fully top-down compilation (like in C), a mostly top-down compilation (like in C++), or whether we should allow information from later in the same source file to be used in earlier program constructs (like in Rust, Swift, Java, C#, Haskell, and so on).

The proposed direction is:

-   Entities declared later in the same source file cannot be used earlier; top-down semantics apply everywhere.
    -    As an exception, class member function bodies are parsed as if they appeared after the class.
-   Forward declarations can be used to separate interface from implementation and to allow entities to be used before they are defined.
-   The behavior of the program is nonetheless required to be the same as if we had a globally-consistent rule: it's always a hard error to depend on any information that is not known or that is provided later.
2022-03-16 14:41:57 -07:00
Jon Meow 6fe8411122 Refactor common script functionality and reimplement the buildifier pre-commit (#1080)
Moves common script logic into utils.py (not a great name, but couldn't come up with better). This is in particular to make the buildifier.py script really trivial, allowing that pre-commit to be easily added. However, scripts have also been diverging on how we find bazel, so I'm trying to unify that.

The advantage of reimplementing buildifier's pre-commit is that (a) we can now run buildifier server-side, and (b) we can stop advising installing it manually. Then the only Linux-specific package manager is Cargo, which is only used for watchman, which is optional -- so stop highlighting Linux-specific package managers in the tool instructions.
2022-02-22 10:10:41 -08:00
Jon Meow 80f402e2b6 Warn about watchman (#1052) 2022-01-28 18:20:05 -08:00
Jon Meow 90f538f1b1 Remove submodule mentions in tools (#1054) 2022-01-28 18:12:18 -08:00
Jon Meow eda43faa5a Note namespace and static recommendations in C++ style guide (#1041) 2022-01-27 11:26:47 -08:00
josh11bandRichard Smith 00a178769f Principle: One static open extension mechanism (#998)
This is a proposal to adopt interfaces as the single static open extension mechanism for things like selecting how operators are implemented for types.

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
2022-01-07 15:54:27 -08:00
Jon Meow b7df523dc8 Fix cross-file links in non-proposal files (#1010) 2022-01-07 11:00:21 -08:00
Jon Meowandjosh11b 24b763c7e8 Fix or remove invalid anchor links, adding pre-commit (#997)
Co-authored-by: josh11b <josh11b@users.noreply.github.com>
2022-01-05 15:00:02 -08:00
Jon Meow 9c17b72ddd Clean up titles for a few docs, mainly to remove 'Carbon' prefixes (#894)
Note, most principle docs already have the `Principle:` prefix, context sensitivity and `Safety strategy` are/were outliers.
2021-10-15 15:03:36 -07:00
Geoff RomerandChandler Carruth bf49f2efed Proposal: Property naming in C++ (#720)
This proposed style change allows C++ classes in the Carbon project to provide methods that are named like variables, so long as they behave like _properties_ of the class. It also requires data member names to have a trailing `_`.

Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
2021-09-28 14:36:43 -07:00
Jon Meow 563201a849 Remove proposals/BUILD, moving template.md under scripts (#846)
With #842 there's not as much reason for the BUILD anymore, maybe move the template.md file and get rid of it?
2021-09-23 09:16:19 -07:00