diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d321a825d..797678d42b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,37 @@ + +## v0.17.0 (2020-08-10) + + +#### Bug Fixes + +* Keep type field arguments on the same line as the name ([b1e40d37](https://github.com/gluon-lang/gluon/commit/b1e40d37f33d9d9815206d6a52cde49f47d99e16)) +* **std:** + * fix formatting for std.monad ([df87ac30](https://github.com/gluon-lang/gluon/commit/df87ac300caa0c5d61d91d34c03b481f5ca70466)) + * fix imports for aforementioned utility functions ([da7d3f98](https://github.com/gluon-lang/gluon/commit/da7d3f98ce1ba47b5159f2a4a7119e6d7550dee9)) + +#### Performance + +* **vm:** + * Remove unnecessary check when calling closures ([9b8075e3](https://github.com/gluon-lang/gluon/commit/9b8075e36af04cf6cc0ba4241f82ff90d3eb437c)) + * Only check for stack overflow when entering a function ([a5a22968](https://github.com/gluon-lang/gluon/commit/a5a22968104d715254ad1be5b922f8f2c2addb92)) + +#### Features + +* Update salsa ([a60a444f](https://github.com/gluon-lang/gluon/commit/a60a444fcf912d9ac1b3b65630c4387fceaa7a9e)) +* Report multiple kindcheck errors in the same type ([00eb1167](https://github.com/gluon-lang/gluon/commit/00eb1167b2211467ca8dddde0ffd240017f5b708)) +* Record record fields as symbols ([b3b65c75](https://github.com/gluon-lang/gluon/commit/b3b65c757d09deb683429eaa5b20357c9e87e7f2)) +* Add function arguments to all symbol queries ([1f063f9e](https://github.com/gluon-lang/gluon/commit/1f063f9e29f2fe38af0f67e5db9ccc2ffbb025e5)) +* Recover on most tokenization errors ([18692100](https://github.com/gluon-lang/gluon/commit/186921004a01b398bec2ec7330a5e7475ff8a579)) +* **completion:** + * Provide symbol information for enum definitions ([04a5b20c](https://github.com/gluon-lang/gluon/commit/04a5b20c0bf2ac182105180da0bf017d1c409f75)) + * Return the kind of type fields ([5f8d9d6f](https://github.com/gluon-lang/gluon/commit/5f8d9d6f2dcc74ff6c38aef0f3946fe9b220063a)) +* **parser:** Recover on unterminated string literals ([b0422366](https://github.com/gluon-lang/gluon/commit/b0422366b81e4e56bd90e40a64b22e490f911735)) +* **std:** + * add Kleisli composition operators ([a384e046](https://github.com/gluon-lang/gluon/commit/a384e04606c145be58a0d9cd79a899f5911e264d)) + * add utility functions to Option and Result ([bed70513](https://github.com/gluon-lang/gluon/commit/bed705135d389927c1e961f0f9248b040d22810f)) + + + ### v0.16.1 (2020-07-05) diff --git a/Cargo.lock b/Cargo.lock index 2207e8bab9..c4a4da5391 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1103,7 +1103,7 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "gluon" -version = "0.16.1" +version = "0.17.0" dependencies = [ "anyhow", "async-trait", @@ -1186,7 +1186,7 @@ dependencies = [ [[package]] name = "gluon_base" -version = "0.16.1" +version = "0.17.0" dependencies = [ "anymap", "bitflags 1.2.1", @@ -1216,7 +1216,7 @@ dependencies = [ [[package]] name = "gluon_c-api" -version = "0.16.1" +version = "0.17.0" dependencies = [ "futures 0.3.5", "gluon", @@ -1225,7 +1225,7 @@ dependencies = [ [[package]] name = "gluon_check" -version = "0.16.1" +version = "0.17.0" dependencies = [ "codespan", "codespan-reporting", @@ -1250,7 +1250,7 @@ dependencies = [ [[package]] name = "gluon_codegen" -version = "0.16.1" +version = "0.17.0" dependencies = [ "env_logger 0.7.1", "gluon", @@ -1264,7 +1264,7 @@ dependencies = [ [[package]] name = "gluon_completion" -version = "0.16.1" +version = "0.17.0" dependencies = [ "codespan", "collect-mac", @@ -1281,7 +1281,7 @@ dependencies = [ [[package]] name = "gluon_doc" -version = "0.16.1" +version = "0.17.0" dependencies = [ "anyhow", "cargo-deadlinks", @@ -1308,7 +1308,7 @@ dependencies = [ [[package]] name = "gluon_format" -version = "0.16.1" +version = "0.17.0" dependencies = [ "codespan", "difference", @@ -1327,7 +1327,7 @@ dependencies = [ [[package]] name = "gluon_parser" -version = "0.16.1" +version = "0.17.0" dependencies = [ "codespan", "codespan-reporting", @@ -1347,7 +1347,7 @@ dependencies = [ [[package]] name = "gluon_repl" -version = "0.16.1" +version = "0.17.0" dependencies = [ "ansi_term 0.12.1", "anyhow", @@ -1378,7 +1378,7 @@ dependencies = [ [[package]] name = "gluon_vm" -version = "0.16.1" +version = "0.17.0" dependencies = [ "async-trait", "bitflags 1.2.1", diff --git a/Cargo.toml b/Cargo.toml index b54c39e8dc..8cfc47d591 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus "] keywords = ["script", "scripting", "language"] build = "build.rs" @@ -26,12 +26,12 @@ name = "gluon" path = "src/lib.rs" [dependencies] -gluon_base = { path = "base", version = "0.16.1" } # GLUON -gluon_check = { path = "check", version = "0.16.1" } # GLUON -gluon_parser = { path = "parser", version = "0.16.1" } # GLUON -gluon_codegen = { path = "codegen", version = "0.16.1" } # GLUON -gluon_vm = { path = "vm", version = "0.16.1", default-features = false } # GLUON -gluon_format = { path = "format", version = "0.16.1", default-features = false } # GLUON +gluon_base = { path = "base", version = "0.17.0" } # GLUON +gluon_check = { path = "check", version = "0.17.0" } # GLUON +gluon_parser = { path = "parser", version = "0.17.0" } # GLUON +gluon_codegen = { path = "codegen", version = "0.17.0" } # GLUON +gluon_vm = { path = "vm", version = "0.17.0", default-features = false } # GLUON +gluon_format = { path = "format", version = "0.17.0", default-features = false } # GLUON async-trait = "0.1" log = "0.4" @@ -68,7 +68,7 @@ rand = { version = "0.7", optional = true } rand_xorshift = { version = "0.2", optional = true } [build-dependencies] -gluon_base = { path = "base", version = "0.16.1" } # GLUON +gluon_base = { path = "base", version = "0.17.0" } # GLUON itertools = "0.9" little-skeptic = { version = "0.15.0", optional = true } @@ -96,8 +96,8 @@ bincode = "1" pulldown-cmark = "0.7" -gluon_completion = { path = "completion", version = "0.16.1" } # GLUON -gluon_codegen = { path = "codegen", version = "0.16.1" } # GLUON +gluon_completion = { path = "completion", version = "0.17.0" } # GLUON +gluon_codegen = { path = "codegen", version = "0.17.0" } # GLUON [features] default = ["async", "regex", "random"] diff --git a/README.md b/README.md index 7a8041e97b..5ae4fb5ac5 100644 --- a/README.md +++ b/README.md @@ -303,7 +303,7 @@ Gluon requires a recent Rust compiler to build (1.9.0 or later) and is available ```toml [dependencies] -gluon = "0.16.1" +gluon = "0.17.0" ``` ### Other languages diff --git a/base/Cargo.toml b/base/Cargo.toml index 7ccfe01d9e..2497233ffb 100644 --- a/base/Cargo.toml +++ b/base/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_base" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus "] edition = "2018" @@ -33,7 +33,7 @@ either = "1" vec_map = "0.8" typed-arena = "2" -gluon_codegen = { version = "0.16.1", path = "../codegen" } # GLUON +gluon_codegen = { version = "0.17.0", path = "../codegen" } # GLUON serde = { version = "1.0.0", features = ["rc"], optional = true } serde_state = { version = "0.4.0", features = ["rc"], optional = true } diff --git a/base/src/lib.rs b/base/src/lib.rs index e734a59d0d..235b8a950a 100644 --- a/base/src/lib.rs +++ b/base/src/lib.rs @@ -1,4 +1,4 @@ -#![doc(html_root_url = "https://docs.rs/gluon_base/0.16.1")] // # GLUON +#![doc(html_root_url = "https://docs.rs/gluon_base/0.17.0")] // # GLUON #![allow(unknown_lints)] //! The base crate contains pervasive types used in the compiler such as type representations, the //! AST and some basic containers. diff --git a/c-api/Cargo.toml b/c-api/Cargo.toml index 1101d057e3..fa23b9c74b 100644 --- a/c-api/Cargo.toml +++ b/c-api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_c-api" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus Westerlind "] edition = "2018" @@ -19,7 +19,7 @@ travis-ci = { repository = "gluon-lang/gluon" } crate-type = ["cdylib"] [dependencies] -gluon = { version = "0.16.1", path = ".." } # GLUON +gluon = { version = "0.17.0", path = ".." } # GLUON futures = "0.3" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] diff --git a/c-api/src/lib.rs b/c-api/src/lib.rs index dea245b36a..aabbf8774c 100644 --- a/c-api/src/lib.rs +++ b/c-api/src/lib.rs @@ -1,5 +1,5 @@ //! A (WIP) C API allowing use of gluon in other langauges than Rust. -#![doc(html_root_url = "https://docs.rs/gluon_c-api/0.16.1")] // # GLUON +#![doc(html_root_url = "https://docs.rs/gluon_c-api/0.17.0")] // # GLUON use std::{slice, str}; diff --git a/check/Cargo.toml b/check/Cargo.toml index d8cfb78a83..ece6073d1c 100644 --- a/check/Cargo.toml +++ b/check/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_check" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus "] edition = "2018" @@ -30,14 +30,14 @@ codespan-reporting = "0.9" strsim = "0.10" -gluon_base = { path = "../base", version = "0.16.1" } # GLUON -gluon_codegen = { path = "../codegen", version = "0.16.1" } # GLUON +gluon_base = { path = "../base", version = "0.17.0" } # GLUON +gluon_codegen = { path = "../codegen", version = "0.17.0" } # GLUON [dev-dependencies] env_logger = "0.7" insta = "0.16" -gluon_parser = { path = "../parser", version = "0.16.1" } # GLUON +gluon_parser = { path = "../parser", version = "0.17.0" } # GLUON gluon_format = { path = "../format", version = ">=0.9" } collect-mac = "0.1.0" diff --git a/check/src/lib.rs b/check/src/lib.rs index a1eff60d2c..1c99bcba80 100644 --- a/check/src/lib.rs +++ b/check/src/lib.rs @@ -3,7 +3,7 @@ //! If an AST passes the checks in `Typecheck::typecheck_expr` (which runs all of theses checks //! the expression is expected to compile succesfully (if it does not it should be considered an //! internal compiler error. -#![doc(html_root_url = "https://docs.rs/gluon_check/0.16.1")] // # GLUON +#![doc(html_root_url = "https://docs.rs/gluon_check/0.17.0")] // # GLUON #[macro_use] extern crate collect_mac; diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml index 4a45bce792..809fd2a553 100644 --- a/codegen/Cargo.toml +++ b/codegen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_codegen" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus "] edition = "2018" diff --git a/completion/Cargo.toml b/completion/Cargo.toml index 8f870605c5..ad2836eb09 100644 --- a/completion/Cargo.toml +++ b/completion/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_completion" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus "] edition = "2018" @@ -17,7 +17,7 @@ itertools = "0.9" walkdir = "2" codespan = "0.9" -gluon_base = { path = "../base", version = "0.16.1" } # GLUON +gluon_base = { path = "../base", version = "0.17.0" } # GLUON [dev-dependencies] collect-mac = "0.1.0" @@ -25,5 +25,5 @@ env_logger = "0.7" pretty_assertions = "0.6" quick-error = "1" -gluon_check = { path = "../check", version = "0.16.1" } # GLUON -gluon_parser = { path = "../parser", version = "0.16.1" } # GLUON +gluon_check = { path = "../check", version = "0.17.0" } # GLUON +gluon_parser = { path = "../parser", version = "0.17.0" } # GLUON diff --git a/completion/src/lib.rs b/completion/src/lib.rs index e709a631a8..aec83a43e5 100644 --- a/completion/src/lib.rs +++ b/completion/src/lib.rs @@ -1,5 +1,5 @@ //! Primitive auto completion and type quering on ASTs -#![doc(html_root_url = "https://docs.rs/gluon_completion/0.16.1")] // # GLUON +#![doc(html_root_url = "https://docs.rs/gluon_completion/0.17.0")] // # GLUON extern crate gluon_base as base; diff --git a/doc/Cargo.toml b/doc/Cargo.toml index 533a22bea9..d776161d18 100644 --- a/doc/Cargo.toml +++ b/doc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_doc" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus Westerlind "] edition = "2018" @@ -32,8 +32,8 @@ serde = "1.0.0" serde_derive = "1.0.0" serde_json = "1.0.0" -gluon = { version = "0.16.1", default-features = false, path = ".." } # GLUON -completion = { package = "gluon_completion", version = "0.16.1", path = "../completion" } # GLUON +gluon = { version = "0.17.0", default-features = false, path = ".." } # GLUON +completion = { package = "gluon_completion", version = "0.17.0", path = "../completion" } # GLUON [dev-dependencies] diff --git a/format/Cargo.toml b/format/Cargo.toml index c7e2149dd9..606f078ba8 100644 --- a/format/Cargo.toml +++ b/format/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_format" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus "] edition = "2018" @@ -17,7 +17,7 @@ pretty = "0.10" itertools = "0.9" codespan = "0.9" -gluon_base = { path = "../base", version = "0.16.1" } # GLUON +gluon_base = { path = "../base", version = "0.17.0" } # GLUON [dev-dependencies] difference = "2" @@ -27,7 +27,7 @@ pretty_assertions = "0.6" tokio = { version = "0.2", features = ["macros", "rt-core"] } walkdir = "2" -gluon_base = { path = "../base", version = "0.16.1" } # GLUON +gluon_base = { path = "../base", version = "0.17.0" } # GLUON gluon = { path = "..", version = ">=0.9" } tensile = { version = "0.6", features = ["tokio"] } diff --git a/format/src/lib.rs b/format/src/lib.rs index ddb05af8f7..955c13d4de 100644 --- a/format/src/lib.rs +++ b/format/src/lib.rs @@ -1,5 +1,5 @@ //! Code formatter. -#![doc(html_root_url = "https://docs.rs/gluon_formatter/0.16.1")] // # GLUON +#![doc(html_root_url = "https://docs.rs/gluon_formatter/0.17.0")] // # GLUON extern crate codespan; #[macro_use] diff --git a/parser/Cargo.toml b/parser/Cargo.toml index cf49b8c7a2..057f6c4860 100644 --- a/parser/Cargo.toml +++ b/parser/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_parser" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus "] edition = "2018" @@ -23,7 +23,7 @@ itertools = "0.9" quick-error = "1.0.0" lalrpop-util = "0.19" log = "0.4" -gluon_base = { path = "../base", version = "0.16.1" } # GLUON +gluon_base = { path = "../base", version = "0.17.0" } # GLUON ordered-float = "2" codespan = "0.9" codespan-reporting = "0.9" diff --git a/parser/src/lib.rs b/parser/src/lib.rs index 1ffe3d6e1e..65ef387893 100644 --- a/parser/src/lib.rs +++ b/parser/src/lib.rs @@ -1,7 +1,7 @@ //! The parser is a bit more complex than it needs to be as it needs to be fully specialized to //! avoid a recompilation every time a later part of the compiler is changed. Due to this the //! string interner and therefore also garbage collector needs to compiled before the parser. -#![doc(html_root_url = "https://docs.rs/gluon_parser/0.16.1")] // # GLUON +#![doc(html_root_url = "https://docs.rs/gluon_parser/0.17.0")] // # GLUON extern crate gluon_base as base; #[macro_use] diff --git a/repl/Cargo.toml b/repl/Cargo.toml index 09dd45066b..9e2f099eb4 100644 --- a/repl/Cargo.toml +++ b/repl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_repl" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus Westerlind "] edition = "2018" @@ -20,12 +20,12 @@ path = "src/main.rs" doc = false [dependencies] -gluon = { version = "0.16.1", path = "..", features = ["serialization"] } # GLUON -gluon_vm = { version = "0.16.1", path = "../vm", features = ["serialization"] } # GLUON -gluon_completion = { path = "../completion", version = "0.16.1" } # GLUON -gluon_codegen = { path = "../codegen", version = "0.16.1" } # GLUON -gluon_format = { version = "0.16.1", path = "../format" } # GLUON -gluon_doc = { version = "0.16.1", path = "../doc" } # GLUON +gluon = { version = "0.17.0", path = "..", features = ["serialization"] } # GLUON +gluon_vm = { version = "0.17.0", path = "../vm", features = ["serialization"] } # GLUON +gluon_completion = { path = "../completion", version = "0.17.0" } # GLUON +gluon_codegen = { path = "../codegen", version = "0.17.0" } # GLUON +gluon_format = { version = "0.17.0", path = "../format" } # GLUON +gluon_doc = { version = "0.17.0", path = "../doc" } # GLUON app_dirs = "1.0.0" anyhow = "1" diff --git a/src/lib.rs b/src/lib.rs index dd347af477..86941ec578 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,7 +4,7 @@ //! behaviour. For information about how to use this library the best resource currently is the //! [tutorial](http://gluon-lang.org/book/index.html) which contains examples //! on how to write gluon programs as well as how to run them using this library. -#![doc(html_root_url = "https://docs.rs/gluon/0.16.1")] // # GLUON +#![doc(html_root_url = "https://docs.rs/gluon/0.17.0")] // # GLUON #![recursion_limit = "128"] #[cfg(test)] extern crate env_logger; diff --git a/vm/Cargo.toml b/vm/Cargo.toml index 21a9f6ec30..f818757055 100644 --- a/vm/Cargo.toml +++ b/vm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gluon_vm" -version = "0.16.1" # GLUON +version = "0.17.0" # GLUON authors = ["Markus "] edition = "2018" build = "build.rs" @@ -46,10 +46,10 @@ serde_state = { version = "0.4.0", optional = true } serde_derive = { version = "1.0.0", optional = true } serde_derive_state = { version = "0.4.8", optional = true } -gluon_base = { path = "../base", version = "0.16.1" } # GLUON -gluon_check = { path = "../check", version = "0.16.1" } # GLUON -gluon_codegen = { path = "../codegen", version = "0.16.1" } # GLUON -gluon_parser = { path = "../parser", version = "0.16.1", optional = true } # GLUON +gluon_base = { path = "../base", version = "0.17.0" } # GLUON +gluon_check = { path = "../check", version = "0.17.0" } # GLUON +gluon_codegen = { path = "../codegen", version = "0.17.0" } # GLUON +gluon_parser = { path = "../parser", version = "0.17.0", optional = true } # GLUON [build-dependencies] lalrpop = { version = "0.19", features = ["lexer"], optional = true } @@ -68,7 +68,7 @@ regex = "1" serde_json = "1.0.0" tokio = { version = "0.2", features = ["macros"] } -gluon_parser = { path = "../parser", version = "0.16.1" } # GLUON +gluon_parser = { path = "../parser", version = "0.17.0" } # GLUON [features] serialization = ["serde", "serde_state", "serde_derive", "serde_derive_state", "serde_json", "gluon_base/serialization", "codespan/serialization"] diff --git a/vm/src/lib.rs b/vm/src/lib.rs index e8318de10c..3026e7739b 100644 --- a/vm/src/lib.rs +++ b/vm/src/lib.rs @@ -1,5 +1,5 @@ //! Crate which contain the virtual machine which executes gluon programs -#![doc(html_root_url = "https://docs.rs/gluon_vm/0.16.1")] // # GLUON +#![doc(html_root_url = "https://docs.rs/gluon_vm/0.17.0")] // # GLUON #![recursion_limit = "1024"] #[macro_use]