Skip to content

Commit

Permalink
License and readme changes to align with inclusion in LLVM. (llvm#1)
Browse files Browse the repository at this point in the history
* 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.
  • Loading branch information
stellaraccident authored Aug 1, 2020
1 parent a9d7610 commit 478f356
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 64 deletions.
18 changes: 17 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -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/
Expand Down Expand Up @@ -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
Expand All @@ -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.
57 changes: 22 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,25 @@
# NPComp - An aspirational MLIR based numpy compiler

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:

* PyPy/RPython
* Numba
* Pythran
* TorchScript
* Autograph

As the name implies, NPComp also seeks to provide compiler-backed support
for Numpy APIs.

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.

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.

See the [features doc](docs/features.md) for a semi-curated status of what is
implemented.

## Architecture
# NPComp - MLIR based compiler toolkit for numerical python programs

> 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.

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.

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.

## Framework integrations

* Coming soon

## Python language compiler tookit

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:

Expand Down
28 changes: 0 additions & 28 deletions contributing.md

This file was deleted.

0 comments on commit 478f356

Please sign in to comment.