From 478f35620dd4427fa254fd1e4716f242f3cc1b7f Mon Sep 17 00:00:00 2001 From: Stella Laurenzo Date: Fri, 31 Jul 2020 20:53:09 -0700 Subject: [PATCH] License and readme changes to align with inclusion in LLVM. (#1) * Updates the LICENSE to the same verbiage as used in the circt project. * Adds the incubator disclaimer to the README. * Reworks the introduction of the README to more accurately reflect the eventual scope. * There is a fair amount of further rework of the repo that needs to take place. This is just the minimal cosmetic changes now that it is part of LLVM. --- LICENSE | 18 +++++++++++++++++- README.md | 43 +++++++++++++++---------------------------- contributing.md | 28 ---------------------------- 3 files changed, 32 insertions(+), 57 deletions(-) delete mode 100644 contributing.md diff --git a/LICENSE b/LICENSE index f9dc50615..d7e77e267 100644 --- a/LICENSE +++ b/LICENSE @@ -1,3 +1,8 @@ +============================================================================== +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: +As an incubator project with ambition to become part of the LLVM Project, +CIRCT is under the same license. +============================================================================== Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -201,7 +206,7 @@ limitations under the License. ---- LLVM Exceptions to the Apache 2.0 License ---- +---- LLVM Exceptions to the Apache 2.0 License ---- As an exception, if, as a result of your compiling your source code, portions of this Software are embedded into an Object form of such source code, you @@ -217,3 +222,14 @@ prospectively choose to deem waived or otherwise exclude such Section(s) of the License, but only in their entirety and only with respect to the Combined Software. +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. diff --git a/README.md b/README.md index 2ef6b15c2..bd6b3ad21 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,25 @@ -# NPComp - An aspirational MLIR based numpy compiler +# NPComp - MLIR based compiler toolkit for numerical python programs -NPComp aims to be an idiomatic subset of the Python language, suitable for -extracting isolated, statically typed programs from a running Python session. -It is inspired by many projects that have come before it, including: +> This project is participating in the LLVM Incubator process: as such, it is +not part of any official LLVM release. While incubation status is not +necessarily a reflection of the completeness or stability of the code, it +does indicate that the project is not yet endorsed as a component of LLVM. -* PyPy/RPython -* Numba -* Pythran -* TorchScript -* Autograph +The NPComp project aims to provide tooling for compiling numerical python programs of various forms to take advantage of MLIR+LLVM code generation and backend runtime systems. -As the name implies, NPComp also seeks to provide compiler-backed support -for Numpy APIs. +In addition to providing a bridge to a variety of Python based numerical programming frameworks, NPComp also directly develops components for tracing and compilation of generic Python program fragments. -The project spawned out of both [LLVM's MLIR project](https://mlir.llvm.org/) -and [The IREE Project](https://github.com/google/iree) and seeks to use the -MLIR and IREE tooling to enable progressive lowering of high level compute -dominant sub-programs in a way that preserves high level semantic information -that is expected to be useful for exploiting parallelism, generating high -performance code, and enabling portability and deployment to a range of -devices. Some of these goals overlap with existing projects, and to a first -approximation, the experiment with NPComp is to determine whether rebasing -on the MLIR tooling and ML backends like IREE produce a lift. +## Framework integrations -Before getting too excited, keep in mind that this project *barely* exists: it -is very new and doesn't do anything useful yet :) We are using it as a testing -ground for some new ideas and infrastructure improvement, and depending on -how things turn out, may end up carrying it forward or breaking it up for -parts. +* Coming soon -See the [features doc](docs/features.md) for a semi-curated status of what is -implemented. +## Python language compiler tookit -## Architecture +At the core of NPComp are a set of dialects and python support code for tracing (define by run) numerical programs and compiling idiomatic subsets of the Python language. As another interpretation of the name, NPComp also seeks to provide compiler-backed support for Numpy APIs. + +See the [features doc](docs/features.md) for a semi-curated status of what is implemented in this area. + +### Architecture The compiler is separated into: diff --git a/contributing.md b/contributing.md deleted file mode 100644 index 654a07164..000000000 --- a/contributing.md +++ /dev/null @@ -1,28 +0,0 @@ -# How to Contribute - -We'd love to accept your patches and contributions to this project. There are -just a few small guidelines you need to follow. - -## Contributor License Agreement - -Contributions to this project must be accompanied by a Contributor License -Agreement. You (or your employer) retain the copyright to your contribution; -this simply gives us permission to use and redistribute your contributions as -part of the project. Head over to to see -your current agreements on file or to sign a new one. - -You generally only need to submit a CLA once, so if you've already submitted one -(even if it was for a different project), you probably don't need to do it -again. - -## Code reviews - -All submissions, including submissions by project members, require review. We -use GitHub pull requests for this purpose. Consult -[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more -information on using pull requests. - -## Community Guidelines - -This project follows [Google's Open Source Community -Guidelines](https://opensource.google/conduct/).