From 843c1097bab3fa9fe25e1f661f6af3ab95d3141c Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Fri, 29 Sep 2023 09:05:23 -0500 Subject: [PATCH] Prep 0.15.11 release (#4507) * Update changelog * Update versions to 0.15.11 --- CHANGELOG.d/feature_closed-record-update.md | 7 --- CHANGELOG.d/feature_empty-fail-instances.md | 8 --- CHANGELOG.d/fix_vtas-record-inference.md | 14 ----- CHANGELOG.d/fix_vtas-wildcard-inferred.md | 12 ---- ...stop-building-if-non-significant-change.md | 1 - .../internal_use-gh-for-release-artifacts.md | 1 - CHANGELOG.md | 56 +++++++++++++++++++ npm-package/package.json | 4 +- purescript.cabal | 2 +- 9 files changed, 59 insertions(+), 46 deletions(-) delete mode 100644 CHANGELOG.d/feature_closed-record-update.md delete mode 100644 CHANGELOG.d/feature_empty-fail-instances.md delete mode 100644 CHANGELOG.d/fix_vtas-record-inference.md delete mode 100644 CHANGELOG.d/fix_vtas-wildcard-inferred.md delete mode 100644 CHANGELOG.d/internal_stop-building-if-non-significant-change.md delete mode 100644 CHANGELOG.d/internal_use-gh-for-release-artifacts.md diff --git a/CHANGELOG.d/feature_closed-record-update.md b/CHANGELOG.d/feature_closed-record-update.md deleted file mode 100644 index c3534373c6..0000000000 --- a/CHANGELOG.d/feature_closed-record-update.md +++ /dev/null @@ -1,7 +0,0 @@ -* Move the closed record update optimization - - For consumers of CoreFn like alternate backends, the optimization of - replacing a closed record update with an object literal has now been moved to - the point of desugaring CoreFn into JS. The `ObjectUpdate` expression - constructor now contains a `Maybe` field holding a list of record labels to - be copied as-is, for backends that want to perform this optimization also. diff --git a/CHANGELOG.d/feature_empty-fail-instances.md b/CHANGELOG.d/feature_empty-fail-instances.md deleted file mode 100644 index 56e34d5ce5..0000000000 --- a/CHANGELOG.d/feature_empty-fail-instances.md +++ /dev/null @@ -1,8 +0,0 @@ -* Allow instances that require `Fail` to be empty - - A class instance declaration that has `Prim.TypeError.Fail` as a constraint - will never be used. In light of this, such instances are now allowed to have - empty bodies even if the class has members. - - (Such instances are still allowed to declare all of their members, and it is - still an error to specify some but not all members.) diff --git a/CHANGELOG.d/fix_vtas-record-inference.md b/CHANGELOG.d/fix_vtas-record-inference.md deleted file mode 100644 index 92e0b18285..0000000000 --- a/CHANGELOG.d/fix_vtas-record-inference.md +++ /dev/null @@ -1,14 +0,0 @@ -* Infer types using VTA inside a record - - Previously, `use` would fail to compile - because the `v` type variable would not be inferred - to `String`. Now the below code compiles: - - ```purs - reflect :: forall @t v . Reflectable t v => v - reflect = reflectType (Proxy @t) - - use :: String - use = show { asdf: reflect @"asdf" } - ``` - diff --git a/CHANGELOG.d/fix_vtas-wildcard-inferred.md b/CHANGELOG.d/fix_vtas-wildcard-inferred.md deleted file mode 100644 index 98899b5102..0000000000 --- a/CHANGELOG.d/fix_vtas-wildcard-inferred.md +++ /dev/null @@ -1,12 +0,0 @@ -* Stop emitting warnings for wildcards in Visible Type Applications - - Previously, the below usage of a wildcard (i.e. `_`) would - incorrectly cause the compiler to emit a warning. - - ```purs - f :: forall @a. a -> a - f = identity - - x :: { x :: Int } - x = f @{ x :: _ } { x: 42 } - ``` diff --git a/CHANGELOG.d/internal_stop-building-if-non-significant-change.md b/CHANGELOG.d/internal_stop-building-if-non-significant-change.md deleted file mode 100644 index f635c7e88e..0000000000 --- a/CHANGELOG.d/internal_stop-building-if-non-significant-change.md +++ /dev/null @@ -1 +0,0 @@ -* Stop triggering CI on non-code-related changes (e.g. Readme) diff --git a/CHANGELOG.d/internal_use-gh-for-release-artifacts.md b/CHANGELOG.d/internal_use-gh-for-release-artifacts.md deleted file mode 100644 index cb66d500f0..0000000000 --- a/CHANGELOG.d/internal_use-gh-for-release-artifacts.md +++ /dev/null @@ -1 +0,0 @@ -* Use `gh` for release artifacts diff --git a/CHANGELOG.md b/CHANGELOG.md index 94592161bd..81547a9ff3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,62 @@ Notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.15.11 + +New features: + +* Move the closed record update optimization (#4489 by @rhendric) + + For consumers of CoreFn like alternate backends, the optimization of + replacing a closed record update with an object literal has now been moved to + the point of desugaring CoreFn into JS. The `ObjectUpdate` expression + constructor now contains a `Maybe` field holding a list of record labels to + be copied as-is, for backends that want to perform this optimization also. + +* Allow instances that require `Fail` to be empty (#4490 by @rhendric) + + A class instance declaration that has `Prim.TypeError.Fail` as a constraint + will never be used. In light of this, such instances are now allowed to have + empty bodies even if the class has members. + + (Such instances are still allowed to declare all of their members, and it is + still an error to specify some but not all members.) + +Bugfixes: + +* Stop emitting warnings for wildcards in Visible Type Applications (#4492 by @JordanMartinez) + + Previously, the below usage of a wildcard (i.e. `_`) would + incorrectly cause the compiler to emit a warning. + + ```purs + f :: forall @a. a -> a + f = identity + + x :: { x :: Int } + x = f @{ x :: _ } { x: 42 } + ``` + +* Infer types using VTA inside a record (#4501 by @JordanMartinez) + + Previously, `use` would fail to compile + because the `v` type variable would not be inferred + to `String`. Now the below code compiles: + + ```purs + reflect :: forall @t v . Reflectable t v => v + reflect = reflectType (Proxy @t) + + use :: String + use = show { asdf: reflect @"asdf" } + ``` + +Internal: + +* Use `gh` for release artifacts (#4493 by @rhendric) + +* Stop triggering CI on non-code-related changes (e.g. Readme) (#4502 by @JordanMartinez) + ## 0.15.10 New features: diff --git a/npm-package/package.json b/npm-package/package.json index 8159571081..86e278e6f5 100644 --- a/npm-package/package.json +++ b/npm-package/package.json @@ -1,6 +1,6 @@ { "name": "purescript", - "version": "0.15.10", + "version": "0.15.11", "license": "ISC", "description": "PureScript wrapper that makes it available as a local dependency", "author": { @@ -43,7 +43,7 @@ ], "scripts": { "prepublishOnly": "node -e \"require('fs').copyFileSync('purs.bin.placeholder', 'purs.bin');\"", - "postinstall": "install-purescript --purs-ver=0.15.10", + "postinstall": "install-purescript --purs-ver=0.15.11", "test": "echo 'Error: no test specified' && exit 1" } } diff --git a/purescript.cabal b/purescript.cabal index ec35ef3938..2e4451d88f 100644 --- a/purescript.cabal +++ b/purescript.cabal @@ -2,7 +2,7 @@ cabal-version: 2.4 name: purescript -- Note: don't add prerelease identifiers here! Add them in app/Version.hs and npm-package/package.json instead. -version: 0.15.10 +version: 0.15.11 synopsis: PureScript Programming Language Compiler description: A small strongly, statically typed programming language with expressive types, inspired by Haskell and compiling to JavaScript. category: Language