Skip to content

Commit

Permalink
Update README.md (#1191)
Browse files Browse the repository at this point in the history
  • Loading branch information
dtarditi authored Jan 18, 2022
1 parent a173fef commit 6570ede
Showing 1 changed file with 17 additions and 60 deletions.
77 changes: 17 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# The Checked C clang repo

This repo contains a version of the LLVM/Clang toolchain that is being modified
to support Checked C. Checked C extends C with checking to detect or prevent
common programming errors such as out-of-bounds memory accesses. The Checked
to support the Secure Software Development Project (SSDP) fork of Checked C. Checked C extends
C with checking to detect or prevent common programming errors such as out-of-bounds memory accesses.
The SSDP fork of the Checked
C specification is available at the
[Checked C repo](https://github.com/Microsoft/checkedc).
[SSDP Checked C repo](https://github.com/secure-sw-dev/checkedc).

## Announcements

Expand All @@ -16,48 +17,16 @@ specifically [this](https://github.com/llvm/llvm-project/commit/2e10b7a39b930ef8
On Feb 18, 2020 we updated the checkedc-clang sources to upstream release_90,
specifically [this](https://github.com/llvm/llvm-project/commit/c89a3d78f43d81b9cff7b9248772ddf14d21b749) commit.

### Transition to monorepo

Early in 2019, the LLVM community
[transitioned](https://forums.swift.org/t/llvm-monorepo-transition/25689) to
"monorepo".

We moved Checked C to a monorepo on Oct 30, 2019. This has resulted in the following changes:

1. [checkedc-llvm](https://github.com/Microsoft/checkedc-llvm) and
[checkedc-clang](https://github.com/Microsoft/checkedc-clang) (as well as other
LLVM subprojects) are now tracked via a single git repo.

2. The [checkedc-llvm](https://github.com/Microsoft/checkedc-llvm) repo will
no longer be maintained. The
[checkedc-clang](https://github.com/Microsoft/checkedc-clang) repo will be the
new monorepo.

3. There will be no changes to the
[checkedc](https://github.com/Microsoft/checkedc) repo. It will continue to be
a separate git repo.

4. All future patches should be based off this new monorepo.

5. You can use
[this](https://github.com/microsoft/checkedc-clang/blob/master/clang/automation/UNIX/cherry-pick-to-monorepo.sh)
script to cherry-pick your existing patches to the new monorepo.

6. Make sure to set the following CMake flag to enable clang in your builds:
`-DLLVM_ENABLE_PROJECTS=clang`

## Trying out Checked C

Programmers are welcome to use Checked C as it is being implemented. We have
pre-built compiler installers for Windows available for download on the
[release page](https://github.com/Microsoft/checkedc-clang/releases). For
other platforms, you will have to build your own copy of the compiler. For
Programmers are welcome to use Checked C as it is being implemented. You will
have to build your own copy of the compiler. For
directions on how to do this, see the [Checked C clang
wiki](https://github.com/Microsoft/checkedc-clang/wiki). The compiler user
wiki](https://github.com/secure-sw-dev/checkedc-llvm-project/wiki). The compiler user
manual is
[here](https://github.com/Microsoft/checkedc-clang/wiki/Checked-C-clang-user-manual).
[here](https://github.com/secure-sw-dev/checkedc-llvm-project/wiki/Checked-C-clang-user-manual).
For more information on Checked C and pointers to example code, see our
[Wiki](https://github.com/Microsoft/checkedc/wiki).
[Wiki](https://github.com/secure-sw-dev/checkedc/wiki).

You can use `clangd` built from this repository to get similar IDE support for
editing Checked C code as upstream `clangd` provides for C code. For example,
Expand All @@ -79,37 +48,25 @@ conversion of C code to Checked C. Quick documentation links:

## More information

For more information on the Checked C clang compiler, see the [Checked C clang
wiki](https://github.com/Microsoft/checkedc-clang/wiki).
For more information on the SSDP Checked C clang compiler, see the [SSDP LLVM Project
wiki](https://github.com/secure-sw-dev/checkedc-llvm-project/wiki).

## Build Status

| Configuration | Testing | Status |
| ----------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Debug X86 Windows | Checked C and clang regression tests | ![Debug X86 Windows status](https://msresearch.visualstudio.com/_apis/public/build/definitions/f6454e27-a46c-49d9-8453-29d89d53d2f9/211/badge) |
| Debug X64 Windows | Checked C and clang regression tests | ![Debug X64 Windows status](https://msresearch.visualstudio.com/_apis/public/build/definitions/f6454e27-a46c-49d9-8453-29d89d53d2f9/205/badge) |
| Debug X64 Linux | Checked C and clang regression tests | ![Debug X64 Linux status](https://msresearch.visualstudio.com/_apis/public/build/definitions/f6454e27-a46c-49d9-8453-29d89d53d2f9/217/badge) |
| Debug X64 Linux | 3C (Checked-C-Convert tool) nightly tests | ![Nightly Sanity Tests](https://github.com/correctcomputation/checkedc-clang/workflows/Nightly%20Sanity%20Tests/badge.svg?branch=master) |
| Release X64 Linux | Checked C, clang, and LLVM nightly tests | ![Release X64 Linux status](https://msresearch.visualstudio.com/_apis/public/build/definitions/f6454e27-a46c-49d9-8453-29d89d53d2f9/238/badge) |
Automated builds are not currently available.

## Contributing

We welcome contributions to the Checked C project. To get involved in the
project, see [Contributing to Checked
C](https://github.com/Microsoft/checkedc/blob/master/CONTRIBUTING.md). We
have a wish list of possible projects there.
C](https://github.com/secure-sw-dev/checkedc/blob/main/CONTRIBUTING.md).

For code contributions, we follow the standard [Github
workflow](https://guides.github.com/introduction/flow/). See [Contributing to
Checked C](https://github.com/Microsoft/checkedc/blob/master/CONTRIBUTING.md)
for more detail. You will need to sign a contributor license agreement before
contributing code.
Checked C](https://github.com/secure-sw-dev/checkedc/blob/main/CONTRIBUTING.md)
for more detail.

## Code of conduct

This project has adopted the [Microsoft Open Source Code of
Conduct](https://opensource.microsoft.com/codeofconduct/). For more
information see the [Code of Conduct
FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
[[email protected]](mailto:[email protected]) with any additional
questions or comments.
This project has adopted a
[code of conduct](https://github.com/secure-sw-dev/checkedc/blob/main/CODE_OF_CONDUCT.md).

0 comments on commit 6570ede

Please sign in to comment.