From 106c4c2b916383c136a06dbb8b9d08e9a3fb6a0a Mon Sep 17 00:00:00 2001 From: Arash Sahebolamri Date: Sat, 5 Aug 2023 16:04:08 -0700 Subject: [PATCH] Prepare for `0.5.0` release --- CHANGELOG.MD | 6 ++++++ README.MD | 7 +++++-- ascent/Cargo.toml | 6 +++--- ascent_base/Cargo.toml | 2 +- ascent_macro/Cargo.toml | 4 ++-- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.MD b/CHANGELOG.MD index 776b6b5..ccac565 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,3 +1,9 @@ +## 0.5.0 + +- Parallel evaluation: with introduction of `ascent_par!` and `ascent_run_par!` macros, Ascent programs can utilize multiple CPU cores to speed up evaluation. + +- Made imporvements to handling of rules that start with `if`, `let`, or `for` (they can be simple joins). + ## 0.4.0 - Reduced the size of generated code for a rule with N dynamic relations from O(N * 2^N) to O(N^2); dramatically improving compile times for some programs. diff --git a/README.MD b/README.MD index 08dc0fc..d2571d2 100644 --- a/README.MD +++ b/README.MD @@ -167,11 +167,14 @@ You can find more about macros in Ascent macros [here](MACROS.MD). - The feature **`wasm-bindgen`** allows Ascent programs to run in WASM environments. - **`struct`** declarations can be added to the top of `ascent!` definitions. This allows changing the - name of the generated type and introduction of type/lifetime parameters and constraints. + name and visibility of the generated type and introduction of type/lifetime parameters and constraints. ```Rust ascent! { struct GenericTC; relation edge(N, N); // ... } - ``` \ No newline at end of file + ``` + + *Hint*: If you get a "private type ... in public interface (error E0446)" warning, you can fix it by + making the generated Ascent type private, as done in the above example. \ No newline at end of file diff --git a/ascent/Cargo.toml b/ascent/Cargo.toml index 438b697..acc0892 100644 --- a/ascent/Cargo.toml +++ b/ascent/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ascent" -version = "0.4.0" +version = "0.5.0" edition = "2021" rust-version = "1.66" # the CI (../.github/workflows/rust.yml) toolchain version must match this authors = ["Arash Sahebolamri"] @@ -16,8 +16,8 @@ readme = "../README.MD" [dependencies] -ascent_macro = { version = "=0.4.0", path = "../ascent_macro" } -ascent_base = { version = "=0.4.0", path = "../ascent_base" } +ascent_macro = { version = "=0.5.0", path = "../ascent_macro" } +ascent_base = { version = "=0.5.0", path = "../ascent_base" } rustc-hash = "1.1" nohash-hasher = "0.2.0" hashbrown = {version = "0.14", features = ["raw", "rayon"]} diff --git a/ascent_base/Cargo.toml b/ascent_base/Cargo.toml index 71c02b9..70f17f6 100644 --- a/ascent_base/Cargo.toml +++ b/ascent_base/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ascent_base" -version = "0.4.0" +version = "0.5.0" edition = "2021" authors = ["Arash Sahebolamri"] repository = "https://github.com/s-arash/ascent" diff --git a/ascent_macro/Cargo.toml b/ascent_macro/Cargo.toml index 06b4c67..5240831 100644 --- a/ascent_macro/Cargo.toml +++ b/ascent_macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ascent_macro" -version = "0.4.0" +version = "0.5.0" edition = "2021" authors = ["Arash Sahebolamri"] repository = "https://github.com/s-arash/ascent" @@ -15,7 +15,7 @@ proc-macro = true [dependencies] syn = { version = "1.0", features = ["derive", "full", "extra-traits", "visit-mut"] } quote = "1.0" -ascent_base = { version = "=0.4.0", path = "../ascent_base" } +ascent_base = { version = "=0.5.0", path = "../ascent_base" } proc-macro2 = "1.0" itertools = "0.10" petgraph = "0.6.0"