From a956a4d2a042dc8bf6365817c1c8418bbb26140e Mon Sep 17 00:00:00 2001 From: "A. R. Shajii" Date: Tue, 2 Aug 2022 15:04:30 -0400 Subject: [PATCH] Fix release notes [ci skip] --- docs/intro/releases.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/docs/intro/releases.md b/docs/intro/releases.md index 3e24de9b..d1712137 100644 --- a/docs/intro/releases.md +++ b/docs/intro/releases.md @@ -1,8 +1,12 @@ -## v0.13 +Below you can find release notes for each major Codon release, +listing improvements, updates, optimizations and more for each +new version. -### Language +# v0.13 -#### Scoping +## Language + +### Scoping Scoping was changed to match Python scoping. For example: @@ -30,7 +34,7 @@ print(x) # hello The same applies in Jupyter or JIT environments. -#### Static methods +### Static methods Added support for `@staticmethod` method decorator. Class variables are also supported: @@ -47,19 +51,19 @@ c = Cls() Cls.a, Cls.method(), c.a, c.method() # supported ``` -#### Tuple handling +### Tuple handling Arbitrary classes can now be converted to tuples via the `tuple()` function. -#### Void type +### Void type The `void` type has been completely removed in favor of the new and Pythonic `NoneType`, which compiles to an empty LLVM struct. This does not affect C interoperability as the empty struct type is replaced by `void` by LLVM. -#### Standard library +### Standard library The `re` module is now fully supported, and uses [Google's `re2`](https://github.com/google/re2) as a backend. Future @@ -67,7 +71,7 @@ versions of Codon will also include an additional regex optimization pass to compile constant ("known at compile time") regular expressions to native code. -### C variables +## C variables Global variables with C linkage can now be imported via `from C import`: @@ -77,7 +81,7 @@ from C import foo: int print(foo) ``` -### Parallelism +## Parallelism Numerous improvements to the OpenMP backend, including the addition of task-based reductions: @@ -88,20 +92,20 @@ for a in some_arbitrary_generator(): total += do_work(a) # now converted to atomic reduction ``` -### Python interoperability +## Python interoperability Included revamped `codon` module for Python, with `@codon.jit` decorator for compiling Python code in existing codebases. Further improved and optimized the Python bridge. -### Codon IR +## Codon IR New capture analysis pass for Codon IR for improving tasks such as dead code elimination and side effect analysis. This allows Codon IR to deduce whether arbitrary, compilable Python expressions have side effects, capture variables, and more. -### Code generation and optimizations +## Code generation and optimizations A new dynamic allocation optimization pass is included, which 1) removes unused allocations (e.g. instantiating a class but never @@ -109,12 +113,12 @@ using it) and 2) demotes small heap allocations to stack (`alloca`) allocations when possible. The latter optimization can frequently remove any overhead associated with instantiating most classes. -### Command-line tool +## Command-line tool The `codon` binary can now compile to shared libraries using the `-lib` option to `codon build` (or it can be deduced from a `.so` or `.dylib` extension on the output file name). -### Errors +## Errors Added support for multiple error reporting.