A strongly-typed language that compiles to JavaScript
OTHER License
Bot releases are hidden (Show)
Published by paf31 over 8 years ago
A massive thanks to everyone involved in this release!
None, but there are lots of new warnings related to upcoming breaking changes in 0.9:
Partial
constraint in 0.9, so the exhaustivity checker will now attempt to generate warnings by looking for Partial
constraints in scope.qualified
import syntax has been deprecated.class
syntax in 0.9 and the alternative syntax is deprecated.Partial
constraint (@garyb)--json-errors
flag for editor integrations (@paf31)--json-errors
(@nwolverson)forall
and function arrows (@DavidLindbom)class
keyword for class references in imports (@garyb)()
(@garyb)foreign
argument to fix compiling issue (@anttih)Published by paf31 almost 9 years ago
Published by paf31 almost 9 years ago
Fixes a bug in generic deriving.
See the release notes for 0.7.6.
Published by paf31 almost 9 years ago
Thanks once again to everyone involved in this release!
This release includes some updates to generic deriving which require updating to the latest version of purescript-generics
.
Field puns, fix #921 (@balajirrao)
It is now possble to construct objects by using values in scope with the same name as the field labels. For example, the expression { foo, bar }
is equivalent to { foo: foo, bar: bar }
. Patterns desugar in the same way.
Types.Proxy.Proxy
instead of Data.Generic.Proxy
. This fixes #1573 (@tfausak)purescript-generics
changes (@paf31)psc-publish
: only warn on dirty working tree on dry runs (@hdgarrood)base-compat
to reduce the need for CPP
(@phadej)Published by paf31 almost 9 years ago
Published by paf31 almost 9 years ago
Fixes a build issue with GHC versions < 7.10. Functionally equivalent to v0.7.5.1.
Published by paf31 almost 9 years ago
Published by paf31 almost 9 years ago
A big thank you to everyone who was involved in this release, from filing issues, through fixing bugs to testing patches.
The main focus areas for this release, as part of the 0.8 milestone, were error messages and performance.
None!
Pretty printing of types and expressions in errors was improved (@paf31)
Externs files are now saved as JSON (@paf31)
Support for parallel builds has been added (@paf31)
Builds will now use multiple cores by default, but the number of capabilities can be modified by passing the -N
option to the GHC runtime:
psc <input files> +RTS -N8
Binders can now be given type annotations (@5outh)
For example:
example = do
n :: Int <- get
put (n + 1)
This can be useful when disambiguating types.
There is a new warning for missing type signatures on top-level declarations (@paf31)
There are new warnings for shadowed and unused type variables (@garyb)
Contextual information in warnings was improved (@garyb)
The qualified
keyword is now optional when importing modules qualified (@michaelficarra)
@zudov changed the behavior of PSCi on CTRL+C/D to match GHCi and other REPLs.
A bug in row unification was fixed (#1310, @paf31)
Constrained types can now be defined without a forall
keyword. This is useful in some nullary type class and rank-N scenarios. (@paf31)
Published by garyb about 9 years ago
This patch release fixes two bugs related to the new instance resolution algorithm and overlapping instances:
psci
would not work due to overlaps in the PSCI.Support
modulefree
would not build due to its dependency on inject
The solution for now is to make overlapping instances into a warning (instead of an error) at the site of their use.
Later we might revisit this decision and allow the user to express classes like Inject
which are necessarily overlapping.
Published by paf31 about 9 years ago
purescript-transformers
invalid, so users of this release should upgrade to the latest transformers
.RedefinedModule
errors now include position info #1024 (@garyb)Type(..)
when Type
is a synonym or has no constructors. #1391 (@garyb)-ffi
to specify JavaScript FFI files is now optional, files with a .js
extension will be detected as FFI files automatically when encountered. #1268 (@mjgpy3)Void
#1380 (@nicodelpiano)"The impossible happened in desugarDo"
should no longer occur #386 (@paf31)@zudov, @phadej and @erdeszt made more updates and improvements to the CI build.
Published by paf31 about 9 years ago
@gbaz has implemented generic deriving. This allows instances for the Generic
class in the purescript-generics
package to be derived by the compiler.
A Generic
instance can be derived as follows:
data Example = Foo String | Bar Int | Baz Boolean
derive instance genericExample :: Generic Example
purescript-generics
provides examples of usage, such as gShow
, gEq
and gCompare
, for printing, equality tests and comparison respectively.
See #1138.
@garyb has implemented a test for orphan instances which will now cause the build to fail with an error. See #1247
psc: <<loop>>
has been fixed. This was due to a bug in the error pretty printer. (@paf31)psc-publish
(@paf31)Published by paf31 about 9 years ago
Functionally equivalent to v0.7.2. This release fixes a version incompatibility with Stackage.
Published by garyb about 9 years ago
.psci
file after the current working directory #883 (@mjgpy3)psci
#1276 (@paf31)(<<<)
instead of (.)
#1284 (@mjgpy3)psc-bundle
was improved #1307 (@hdgarrood)psc-publish
code is now part of the library module #1304 (@hdgarrood)psc-publish
now has --version
and --help
options #1300 (@garyb)psc-publish
now has a --dry-run
option for checking whether the module can be published #1308 (@hdgarrood)psc-publish
now requires a clean working tree #1306 (@hdgarrood)psc-publish
can now find bower
on Windows machines #1317 (@hdgarrood)psc-publish
now uses OS-specific path delimiters to fix another bug on Windows #1326 (@hdgarrood)Published by paf31 over 9 years ago
Minor fixes after 0.7.0:
psc-publish
to support the new Pursuit website.Enhancements
@nicodelpiano has added exhaustivity checking as a new warning type. Incomplete pattern matches will now generate warnings like this:
Warning in module Data.Either.Unsafe:
Warning in value declaration fromRight:
Warning at src/Data/Either/Unsafe.purs line 14, column 1 - line 15, column 1:
Pattern could not be determined to cover all cases.
The definition has the following uncovered cases:
(Data.Either.Left _)
See https://github.com/purescript/purescript/wiki/Error-Code-NotExhaustivePattern for more information, or to contribute content related to this error.
Published by paf31 over 9 years ago
This release ("MELTDOWN") aims to handle as many planned breaking changes as possible, to ease the upgrade path before 1.0. It is necessary to upgrade almost all PureScript code to compile with this release.
The latest versions of the core libraries have all been updated to compile with this release. Older versions of the core libraries will not work with this release, and the latest versions of libraries will not build with older compiler releases.
Detailed instructions for those who need to migrate their code can be found on the wiki.
As usual, many thanks go to all of the contributors who helped with this release!
psc
executable has been replaced with psc-make
, which has been renamed to psc
(in an effort to standardize on CommonJS module output). Features which were previously only available in old psc
(dead code elimination, bundling code for the browser) are now handled by the new executable psc-bundle
, which works with the output of the new psc
(for faster, incremental builds).Int
and Number
literals. To disambiguate the two, integer Number
values must now be written with a decimal place (3.0
rather than 3
).Prelude
module is no longer imported automatically, and must be imported the same way as any other module.Debug.Trace
has been renamed to Control.Monad.Eff.Console
, and trace
has been renamed to log
.[]
syntax for array types has been removed. It is still possible to use []
array literals however.
[]
should now be written as Array
, and [a]
as Array a
.(<$>) = map
) should make the transition easier in the future..js
file, and passed to the compiler with the -ffi
flag.exports.foo = ...
, similar to a CommonJS module// module X.Y.Z
where X.Y.Z
is the name of the module the JS values are for.purescript module M1 (module M2) where import M2
psc-docs
can now generate multiple output files, allowing documentation to be collected into functional groups.psc-publish
has been added, which generates module documentation in a JSON format required by Pursuit 2 (coming soon)psci
, and generally tidying up and refactoring that code.--require-path
option allows the syntax of module imports in generated CommonJS modules to be customized (@garyb).Eff
monad. (@paf31)<<<
and $
)psc
, psc-docs
and psc-bundle
now support file globs as command-line arguments, fixing a bug related to the command length on Windows machines (@paf31)psc
and psc-bundle
binaries are supportedpulp docs
now generates individual Markdown files for each source modulegulp-purescript
has been updated:
psc
and psc-bundle
binaries are supportedpurescript-lists
- Strict and lazy linked list data structurespurescript-assert
- Low level assertion library for testspurescript-parallel
- An applicative functor for parallel composition of asynchronous computations.purescript-arrows
- Arrow type classes and standard instances.purescript-tailrec
- A type class for stack-safe monadic tail recursion.purescript-contrib
organization have been tightened, to try to ensure that libraries stay maintained.Published by paf31 over 9 years ago
This release should be used with the latest versions of the core libraries, which are also tagged as -rc.1
.
Int
and Number
literals. To disambiguate the two, integer Number
values must now be written with a decimal place (3.0
rather than 3
).Prelude
module is no longer imported automatically, and must be imported the same way as any other module.[]
syntax for array types has been removed. It is still possible to use []
array literals however.
[]
should now be written as Array
, and [a]
as Array a
.(<$>) = map
) should make the transition easier in the future..js
file, and passed to the compiler with the -ffi
flag.exports.foo = ...
, similar to a CommonJS module// module X.Y.Z
where X.Y.Z
is the name of the module the JS values are for.Full release notes coming soon
Published by paf31 over 9 years ago
This release contains two patches:
Published by paf31 over 9 years ago
refEq
and refIneq
are no longer exported from the Prelude
.psci
was fixed. (@paf31)psci
now supports long-form directives (@mrhania)psci
was improved. (@hdgarrood)boxes
library. Errors now link to the wiki. (@paf31)psc-docs
can now generate tags files for Vim and Emacs (@jacereda)psci
now supports a --node-opts
flag for passing options to the Node executable. (@MichaelXavier)Semigroup
instance for Ordering
(@pseudonom)purescript-tailrec
- A type class for monadic tail recursionpurescript-monad-eff
- A type class for monads supporting native effectspurescript-integers
- Integer numeric typepurescript-invariant
- Invariant functorspurescript-parallel
- An applicative functor for parallel composition of asynchronous computationsPublished by paf31 over 9 years ago
Num
type class has been refined to allow more interesting instances. The Semiring
, ModuloSemiring
, Ring
and DivisionRing
classes have been introduced. Most code should continue to compile, since Number
was one of only a handful of instances, but library developers will need to break up their Num
instances.psc-docs
output.ErrorT
have been replaced with ExceptT
and the transformers
and mtl
dependencies bumped accordingly.Published by paf31 over 9 years ago