All Versions
94
Latest Version
Avg Release Cycle
56 days
Latest Release
-

Changelog History
Page 4

  • v0.11.7 Changes

    November 15, 2017

    โœจ Enhancements

    • โž• Add position to type class declaration errors (@b123400)
    • โž• Add valid location list to orphan instance errors (@i-am-tom)
    • Expand error message for UnusableDeclaration (#3088, @i-am-tom)
    • Inline Unsafe.Coerce.unsafeCoerce (@coot)

    ๐Ÿ› Bug Fixes

    • Correctly quote uppercased field labels in errors (@Thimoteus)
    • purs ide inserts conflicting imports for types (#3131, @nwolverson)
    • Instantiate abstraction body during inference to fix a type checking bug (@LiamGoodacre)
    • ๐Ÿ›  Fix a bug related to the desugaring of nested parentheses (@MonoidMusician)
    • ๐Ÿ›  Fix a loop in the kind checker (@paf31)
    • ๐Ÿ›  Fix a bug in type operator precedence parsing (@paf31)
    • Eliminate some redundant whitespace in the generated JS output (@matthewleon)
    • Only add newline before initial group of comment lines during code generation (@brandonhamilton)
    • โš  Treat kinds as used in import warnings (@nwolverson)

    purs ide

    • โž• Add an "editor mode" (@kRITZCREEK)

    When the editor-mode flag is specified at startup the server will not start afile watcher process any more. Instead it only reloads after successful rebuild commands. This is a lot less fragile than relying on the file system APIs, but will mean that a manual load needs to be triggered after builds that didn't go through purs ide.

    • purs ide now groups hiding imports with implicit ones (@kRITZCREEK)
    • ๐Ÿ“š Return documentation comments in purs ide completions (@nwolverson)
    • โž• Add an actualFile parameter to the rebuild command (@kRITZCREEK)
    • โž• Add qualified explicit import (@nwolverson)
    • ๐Ÿ›  Fixed case-splitting on local non-exported datatypes (@LightAndLight)
    • ๐Ÿ‘‰ Make the filters parameter in the type command optional (@b123400)

    ๐Ÿ“„ purs docs

    • ๐Ÿ“„ Embed CSS for HTML docs (@hdgarrood)
    • ๐Ÿ›  Fix source links for re-exports (@felixSchl)
    • ๐Ÿ“„ Use order given in export list in generated docs (@hdgarrood)
    • ๐Ÿ’ป Prevent browser from treating the title and source link as one word (@Rufflewind)
    • ๐Ÿ›  Fix fragment links to type constructors in HTML (@hdgarrood)

    purs repl

    • โž• Add :complete directive to purs repl to support completion in more editors (@actionshrimp)

    Other

    • โž• Add docs for duplicate labels in record types (@paf31)
    • โž• Adds a document for the design of purs ide. (@kRITZCREEK)
    • โšก๏ธ Update PROTOCOL.md docs for purs ide (@BjornMelgaard)
    • โฌ†๏ธ Upgrade to GHC version 8.2 (@kRITZCREEK)
    • ๐Ÿ‘ Allow blaze-html-0.9 (@felixonmars)
    • โฌ†๏ธ Bump Glob dependency (@mjhoy)
    • โœ… Use Hspec in TestDocs (@hdgarrood)
    • ๐Ÿ›  Fix AppVeyor deployment (#2774) (@hdgarrood)
    • Various type safety improvements to the AST (@kRITZCREEK)
    • โœ‚ Remove some references to old executables (@hdgarrood)
    • ๐Ÿ“š Update the installation documentation (@hdgarrood)
    • โšก๏ธ Update test dependencies (@hdgarrood)
    • ๐Ÿ— Only build master and versioned tags in AppVeyor (@hdgarrood)
  • v0.11.6 Changes

    July 10, 2017

    ๐Ÿ†• New Features

    ๐Ÿ‘ RowToList support

    (@LiamGoodacre)

    There is a new type class in typelevel-prelude called RowToList, which turns a row of types into a type-level list. This allows us to work with closed rows in more ways at the type level. The compiler will now solve these constraints automatically for closed rows of types.

    โœจ Enhancements

    • ๐Ÿ‘ Allow things to be hidden from Prim (@garyb)
    • Re-evaluate REPL globs on :reload (@hdgarrood)
    • ๐Ÿ“„ Include comments in child declarations in HTML docs (@hdgarrood)

    IDE Enhancements

    • Collect data constructors (@kRITZCREEK)
    • โž• Adds declarations for Prim (@kRITZCREEK)
    • Repopulates the rebuild cache when populating volatile state (@kRITZCREEK)
    • โž• Add declaration type filter (#2924) (@sectore)
    • ๐Ÿ‘Œ Improve reexport bundling (@kRITZCREEK)
    • Resolve synonyms and kinds (@kRITZCREEK)

    ๐Ÿ› Bug Fixes

    • Replace synonyms in instance constraints (@LiamGoodacre)
    • Encode PSCI's server content as UTF-8 string (@dgendill)
    • ๐Ÿ›  Fix child declaration ordering in docs (@hdgarrood)
    • ๐Ÿ‘Œ Improve instance ordering in HTML docs (@hdgarrood)
    • ๐Ÿ›  Fix links to type operators in HTML docs (@hdgarrood)

    Other

    • โž• Add source span annotations to Declaration (@garyb)
    • โž• Add source span annotations to DeclarationRef (@garyb)
    • โœ‚ Remove purescript.cabal and add to .gitignore (@garyb)
    • ๐Ÿ“ฆ Raise upper bound on aeson in package.yaml (@garyb)
    • ๐Ÿ— Only build master and semver tags in Travis (@hdgarrood)
  • v0.11.5 Changes

    June 05, 2017

    Compiler

    โœจ Enhancements

    Type signatures in instances

    (@cdepillabout)

    ๐Ÿ“š Type class instances can now include type signatures for class members, as documentation:

    data MyType = MyType String
    
    instance showMyType :: Show MyType where
      show :: MyType -> String
      show (MyType s) = "(MyType " <> show s <> ")"
    

    ๐Ÿ› Bug Fixes

    • Encode HTML content as UTF8 when using purs repl with --port (@dgendill)
    • Disallow some invalid newtype-derived instances (@paf31)
    • Disallow forall within constraints (#2874, @sectore)
    • Convert \r\n into \n after reading files (@kRITZCREEK)
    • ๐Ÿ›  Fix PSCi tests (@kRITZCREEK)
    • ๐Ÿ‘ Better variable naming hygiene in TCO. (#2868, @houli)
    • Simplify TCO generated code (@matthewleon)
    • โœ‚ Remove newlines from printed custom type errors (@matthewleon)
    • ๐Ÿ›  Fix some purs command line help message issues (@Cmdv)
    • ๐Ÿ–จ Apply relative paths during pretty printing of errors (@kRITZCREEK)
    • ๐Ÿ“„ Desugar let properly when generating docs (@paf31)
    • ๐Ÿ›  Fix kind signature for RowCons type class in documentation (@tslawler)
    • ๐Ÿ›  Fix an issue with error messages for TypesDoNotUnify involving duplicate labels (#2820, @thoradam)

    Other

    • โšก๏ธ Update package.yaml (@sol)
    • โœ… Parse support modules from actual test support purs (@noraesae)
    • โšก๏ธ Update build command to run tests (@sectore)
    • โฌ†๏ธ Bumps lower bound for directory (@kRITZCREEK)
    • ๐Ÿ“ฆ Switch core-tests to psc-package (#2830, @matthewleon)
    • Small fix for the copyright dates (@seanwestfall)
    • โšก๏ธ Update CONTRIBUTING.md for "new contributor" label (@thoradam)

    purs ide

    ๐Ÿ”‹ Features

    • โž• Add a new namespace filter (#2792, @sectore, @stefanholzmueller)

    A new filter, which restricts query results to the value, type and/or kind namespaces, which allows improvements to the completion and import commands.

    • โž• Adds a command to add qualified imports (@kRITZCREEK)

    ๐Ÿ”Œ This empowers editor plugins to add imports for qualified identifiers, for example in the Emacs plugin.

    • ๐Ÿ†• New import formatting (@kRITZCREEK)
    • Group reexports in completions (@kRITZCREEK)

    Editors can now choose to let purs ide group reexports for the same value, to reduce noise when completing values like Data.Functor.map which are reexported a lot and show up that many times in the completion list.

    โœจ Enhancements

    • ๐Ÿ“œ Parse modules in parallel (@kRITZCREEK)

    This can yield significant speedups in the initial load times. For example a full load of slamdata/slamdata improves from 11 to 6 seconds

    • Introduce completion options (@kRITZCREEK)

    ๐Ÿ› Bug Fixes

    • Resolve synonyms and kinds (@kRITZCREEK)
    • ๐ŸŽ Work around laziness when measuring command performance (@kRITZCREEK)
    • Simplify state type (@kRITZCREEK)
    • Extract namespace ADT (@kRITZCREEK)
    • ๐Ÿ“œ Decodes source files as UTF8 when parsing out the imports (@kRITZCREEK)
    • ๐Ÿ›  Fix the import command for kinds (@kRITZCREEK)
    • Reads files in text mode for adding imports (@kRITZCREEK)
    • โž• Add -h/--help to ide subcommands (@simonyangme)
  • v0.11.4 Changes

    April 17, 2017

    โœจ Enhancements

    • 0๏ธโƒฃ purs executable will now display help text by default (@matthewleon)
    • โž• Adding -h/--help to ide subcommands (@simonyangme)
    • Some simplifications to the tail call optimization (@matthewleon)

    ๐Ÿ› Bug Fixes

    • โœ‚ Remove newline from printed custom type errors (@matthewleon)
    • ๐Ÿ›  Fix pretty printing of rows in error messages (#2820, @thoradam)
    • ๐Ÿ‘ Allow user to propagate Warn constraints (@paf31)
    • ๐Ÿ“„ Match type level strings in docs renderer (#2772, @hdgarrood)
    • ๐Ÿ›  Fix encoding bug in purs ide list import command (@kRITZCREEK)
    • purs ide now reads files in text mode for adding imports (@kRITZCREEK)

    Other

    • โฌ†๏ธ Bump aeson lower bound to 1.0 (@hdgarrood)
    • โž• Add a bunch of NFData instances (@hdgarrood)
    • Turn off coveralls upload for now (@paf31)
    • ๐Ÿ›  purs command line help message fixes (@Cmdv)
    • ๐Ÿ“ฆ Switch core-tests to psc-package (#2830, @matthewleon)
    • โšก๏ธ Update CONTRIBUTING.md notes (@thoradam)
  • v0.11.3 Changes

    April 08, 2017

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fix the exhaustivity check for pattern guards (@alexbiehl)

    Other

    • ๐Ÿ‘ Require directory >=1.2.3.0 for XDG support (@bergmark)
    • ๐Ÿ”จ @noraesae has refactored some PSCi code to improve the test suite.
    • ๐Ÿ‘‰ Use hpack to generate the .cabal file (@kRITZCREEK)
    • ๐Ÿ‘‰ Use XDG Base Directory Specification for psci_history (@legrostdg)
  • v0.11.2 Changes

    April 02, 2017

    ๐Ÿ†• New Features

    Polymorphic Labels

    (@paf31)

    A new RowCons constraint has been added to Prim. RowCons is a 4-way relation between

    1. Symbols
    2. Types
    3. Input rows
    4. Output rows

    which appends a new label (1) with the specified type (2) onto the front of the input row (3), to generate a new output row (4). The constraint can also be run backwards to subtract a label from an output row.

    This allows us to quantify types over labels appearing at the front of a row type, by quantifying over the corresponding symbol/type pair. This gives us a limited form of polymorphic labels which enables things like writing a single lens for any record accessor.

    โœจ Enhancements

    • ๐Ÿ‘‰ Use XDG Base Directory Specification for the location of the psci_history file (@legrostdg)
    • Collect more information for classes and synonyms in purs ide (@kRITZCREEK)

    ๐Ÿ› Bug Fixes

    • Desugar pattern guards after type checking, to avoid an issue with the exhaustivity checker (@alexbiehl)

    Other

    • โœ… A new PSCi evaluation test suite was added (@noraesae)
    • ๐Ÿ‘‰ Use hpack to generate the .cabal file (@kRITZCREEK)
  • v0.11.1 Changes

    March 28, 2017

    ๐Ÿ› Bug Fixes

    Compiler

    • Enable TCO for variable intros and assignments #2779 (@paf31)
    • ๐Ÿ›  Fixed special case in codegen for guards #2787 (@paf31)

    ๐Ÿ“„ Docs generation

    • ๐Ÿ‘ Wrap decl title in span for better double-click selection #2786 (@rightfold)
    • List instance info under correct sections, fix #2780 (@paf31)
  • v0.11.0 Changes

    March 25, 2017

    ๐Ÿš€ This release includes several breaking changes, in preparation for the 1.0 release, as well as many enhancements and bug fixes.

    ๐Ÿš€ Most users will probably want to wait until all aspects of the release have been finalized. Progress on libraries and tools is being tracked here.

    ๐Ÿš€ Many thanks to the contributors who helped with this release!

    ๐Ÿ’ฅ Breaking Changes

    (@garyb, @paf31)

    => now acts like a binary type operator

    It was previously possible to specify many constraints in the same context by separating them with commas inside parentheses on the left of the =>:

    runFreeT :: โˆ€ m f. (Functor f, Monad m) => ...
    

    This is no longer allowed. Instead, => now acts like a binary operator, with a constraint on the left and a type on the right. Multiple constraints must be introduced using currying, as with regular function arguments:

    runFreeT :: โˆ€ m f. Functor f => Monad m => ...
    

    This is in preparation for adding constraint kinds, at which point => will become an actual binary type operator, defined in Prim.

    * and ! kinds have been removed

    The kind symbols * (for the kind of types) and ! (for the kind of effects) have been โœ‚ removed from the parser. Instead of *, use Type, which is defined in Prim. Instead of !, use Effect, which can now be imported from Control.Monad.Eff.

    ๐Ÿšš The # symbol, which is used to construct a row kind, is still supported. We cannot move this kind into Prim (because it is polykinded, and we do not support kind polymorphism).

    One single consolidated executable

    The various psc-* executables have been replaced with a single executable called purs. The various subcommands are documented on the --help page:

    bundle     Bundle compiled PureScript modules for the browser
    compile    Compile PureScript source files
    docs       Generate Markdown documentation from PureScript source files
    hierarchy  Generate a GraphViz directed graph of PureScript type classes
    ide        Start or query an IDE server process
    publish    Generates documentation packages for upload to Pursuit
    repl       Enter the interactive mode (PSCi)
    

    Wrapper scripts will be provided in the binary distribution.

    ๐Ÿ“ฆ psc-package was removed

    ๐Ÿ“ฆ psc-package has been removed from the main compiler distribution. It will still ๐Ÿ“ฆ be maintained along with the package sets repo, but will not be bundled with the compiler.

    ๐Ÿš€ A binary distribution which is compatible with this release is available.

    ๐Ÿšฉ Implicitly discarded values in do blocks now raise errors

    Code which discards the result of a computation in a do block:

    duplicate :: Array a -> Array a
    duplicate xs = do
      x <- xs
      [true, false] -- the result here is discarded
      pure x
    

    will now raise an error. The compiler allows values of certain types to be discarded, based on the Discard class in Control.Bind. The only type which can be discarded is ๐Ÿ‘ Unit, but the feature was implemented using a type class to enable support for alternative preludes.

    No more dependency on the Bower executable

    ๐Ÿ“ฆ In addition to removing psc-package from the compiler distribution, we have also โœ‚ removed any explicit dependency on the Bower executable. The compiler will not assume ๐Ÿ“ฆ use of any particular package manager, but will aim to provide generic support for ๐Ÿ“ฆ package managers generally, via command line options and hooks.

    purs publish will continue to use the Bower JSON formats. The bower.json format is now referred to as the "manifest file", while the output of bower list --json, which is used by purs publish internally, is referred to as the "resolutions file".

    โœจ Enhancements

    Pattern Guards

    (@alexbiehl)

    In addition to regular guards:

    foo x | condition x = ...
    

    the compiler now supports pattern guards, which let the user simultaneously โœ… test a value against a pattern, and bind names to values.

    For example, we can apply a function fn to an argument x, succeeding only if fn returns Just y for some y, binding y at the same time:

    bar x | Just y <- fn x = ... -- x and y are both in scope here
    

    Pattern guards can be very useful for expressing certain types of control flow when using algebraic data types.

    ๐Ÿ“š HTML Documentation

    (@hdgarrood)

    ๐Ÿ“„ The --format html option has been added to purs docs. The HTML format uses ๐Ÿ“š the Pursuit template, and is very useful for rendering documentation for offline ๐Ÿ‘‰ use.

    ๐Ÿ“„ Here is an example of the generated HTML.

    Duplicate Labels

    (@paf31)

    ๐Ÿ‘ Row types now support duplicate labels, which can be useful when using the Eff monad. For example, we could not previously use the catchException function if the resulting action also required the EXCEPTION effect, since otherwise the type of the inner action would contain a duplicate label.

    Rows are now unordered collections (of labels and types) with duplicates. However, the collection of types for a specific label within a row is ordered. Conceptually, a row can be thought of as a type-level Map Label (NonEmptyList Type).

    A type constructor (such as Record) which takes a row of types as an argument should define what its meaning is on each row. The meaning of a value of type Record r is a JavaScript object where the type of the value associated with each label is given by the head element of the non-empty list of types for that label.

    Row Constraints

    (@doolse, @paf31)

    A new constraint called Union has been added to Prim. Union is a three-way relation between rows of types, and the compiler will solve it automatically when it is possible to do so.

    Union is a left-biased union of rows which takes into account duplicate labels. If the same label appears in rows l and r, and Union l r u holds, then the label will appear twice in u.

    ๐Ÿ”€ Union makes it possible to give a type to the function which merges two records:

    merge :: forall r1 r2 r3. Union r1 r2 r3 => Record r1 -> Record r2 -> Record r3
    

    ๐Ÿ”€ Note that this is a left-biased merge - if the two input record contain a common label, the type of the label in the result will be taken from the left input.

    Patterns in let expressions

    (@noraesae)

    Let expressions and where clauses can now use binders on the left hand side of a declaration:

    map f xs =
      let { head, tail } = uncons xs
      in [f head] <> map f tail
    

    Unlike in Haskell, declarations with these patterns cannot appear in dependency cycles, and bound names can only be used in declarations after the one in which they are brought into scope.

    Find record accessors in Type Directed Search

    (@kRITZCREEK)

    Type-directed search will now include results for record accessors. This can be very useful when working with extensible records with a type-driven programming workflow.

    Other Enhancements

    • โž• Add basic usability check and error for ambiguously-typed type class members (@LiamGoodacre)
    • ๐Ÿ‘Œ Improved skolem escape check (@paf31)
    • ๐Ÿ›  Fix links to declarations in Prim (@hdgarrood)
    • Emit _ instead of false case for if then else to improve optimizations (@rightfold)
    • โž• Add InvalidDerivedInstance error to improve errors for derived instances (@paf31)
    • ๐Ÿ‘‰ Make generated code for superclass instances less ugly (@paf31)
    • ๐Ÿ‘Œ Support polymorphic types in typed binders (@paf31)
    • ๐Ÿ‘‰ Make file paths relative in error messages (@paf31)
    • ๐Ÿ‘Œ Improve errors from module sorter (@paf31)
    • ๐Ÿ‘Œ Improve error for unused type variables (@paf31)
    • Include source span in externs file for error reporting purposes (@paf31)
    • ๐Ÿ‘Œ Improve instance arity errors (@mrkgnao)

    purs ide

    ๐Ÿ”‹ Features

    ๐Ÿ‘Œ Improve import parsing

    • ๐Ÿ“œ purs ide now uses a new import parser, which allows purs ide to handle any import section that the compiler would accept correctly. (@kRITZCREEK)
    • ๐Ÿ“œ Parse imports with hanging right paren (@matthewleon)
    • ๐Ÿ“œ Reuses lenient import parsing for the list import command (@kRITZCREEK)

    Don't create the output/ directory if it can't be found

    (@kRITZCREEK)

    purs ide will now no longer leave empty output/ directories behind when it is started in a directory that is not a PureScript project.

    Collect type class instances

    (@kRITZCREEK)

    purs ide collects instances and stores them with their respective type class. There's no way to retrieve these yet, but we will extend the protocol soon.

    ๐Ÿ› Bug Fixes

    • No longer strip trailing dots for Pursuit queries (@kRITZCREEK)
    • ๐Ÿ›  Fix #2537 (psc-ide shouldn't crash when building a non-existent file) (@kRITZCREEK)
    • ๐Ÿ›  Fix #2504 (fix a crash related to prematurely closed handles) (@kRITZCREEK)
    • Speed up rebuilding by x2, by rebuilding with open exports asynchronously (@kRITZCREEK)
    • Return operators in purs ide imports list (@nwolverson)
    • Also detect location information for operators (@kRITZCREEK)

    Cleanup

    • โœ‚ Removes unnecessary clause in import pretty printing (@kRITZCREEK)
    • โœ‚ Removes the deprecated --debug option (@kRITZCREEK)
    • โœ… Restructure testing to avoid running the server (@kRITZCREEK)

    purs repl

    • โž• Add back .purs-repl file support (@paf31)
    • PSCi command changes, add :clear (@noraesae)
    • Declarations no longer require let (@noraesae)
    • ๐Ÿ‘Œ Improve CLI error and startup messages (@noraesae)

    ๐Ÿ› Bug Fixes

    • ๐Ÿ”„ Changes to help the tail call optimization fire more consistently (@paf31)
    • ๐Ÿ›  Fix everythingWithScope traversal bug #2718 (@paf31)
    • Errors for open rows in derived instances (@paf31)
    • Instantiate types in record literals as necessary (@paf31)
    • ๐Ÿ›  Fix Generic deriving with synonyms (@paf31)
    • Rebuild modules if necessary when using --dump-corefn (@paf31)
    • Ensure solved type classes are imported (@LiamGoodacre)
    • ๐Ÿ‘ Allow for older Git versions in purs publish (@mcoffin)
    • ๐Ÿ›  Fix purs publish --dry-run (@hdgarrood)
    • Exported data constructors can now contain quotes (@LiamGoodacre)

    ๐Ÿ“š Documentation

    • Capitalise *script into *Script (@noraesae)

    ๐ŸŽ Performance

    • โšก๏ธ Optimize keepImp (@paf31)
    • Replace nub with ordNub (@matthewleon)
    • Combine inlining optimizations into a single pass (@paf31)

    Other

    • โž• Add HasCallStack to internalError (@alexbiehl)
    • ๐Ÿ‘‰ Use Stackage LTS 8.0 (@noraesae)
    • โž• Address Travis timeout issues (@hdgarrood)
    • ๐Ÿ‘Œ Improve module structure in PSCi test suite (@noraesae)
    • ๐Ÿ›  Fix the PSCi script (@mrkgnao)
    • ๐Ÿš€ Include Git commit information in non-release builds (@hdgarrood)
    • โž• Add test case for #2756 (@int-index)
    • Some code cleanup in the module imports phase (@matthewleon)
  • v0.10.7 Changes

    February 11, 2017

    ๐Ÿš€ This release contains a bug fix for a bug in psc-bundle which was introduced in 0.10.6.

  • v0.10.6 Changes

    February 07, 2017

    โœจ Enhancements

    • โž• Add support for user defined warnings via the Warn type class (@LiamGoodacre, blog post)
    • ๐Ÿ‘Œ Support nested record update (@LiamGoodacre, blog post)
    • Inline unsafePartial (@paf31)
    • Fail early when bind is brought into scope inside do (@paf31)

    ๐Ÿ› Bug Fixes

    • Disallow polymorphic types in binders, preventing a crash (@paf31)
    • Rebuild modules if necessary when using --dump-corefn (@paf31)
    • TypeLevelString/TypeConcat should not be quoted (@michaelficarra)
    • Generate JS static member accesses whenever possible (@michaelficarra)
    • Require dependencies to exist during sorting phase (@paf31)
    • ๐Ÿ›  Fix inlining for negateInt (@paf31)
    • ๐Ÿ›  Fix object key quoting (@hdgarrood)
    • Don't expand synonyms until after kind checking (@paf31)
    • ๐Ÿ›  Fix 'Unknown type index' on mismatch between class and instance argument counts (@LiamGoodacre)
    • ๐Ÿ’… Style comment types differently (@matthewleon)

    psc-ide

    • Return operators in psc-ide imports list (@nwolverson)
    • Collect type class instances (@kRITZCREEK)
    • ๐Ÿ“œ Log failing to accept or parse an incoming command (@kRITZCREEK)
    • ๐Ÿ›  Fix #2537 (@kRITZCREEK)
    • ๐Ÿ›  Fix #2504 (@kRITZCREEK)
    • Also detect location information for operators (@kRITZCREEK)
    • Speeds up rebuilding by x2 (@kRITZCREEK)
    • โœ… Restructure testing to avoid running the server (@kRITZCREEK)

    psc-publish

    • โž• Add modules for rendering HTML documentation (@hdgarrood)
    • ๐Ÿ›  Fix psc-publish --dry-run (@hdgarrood)
    • ๐Ÿ›  Fix failure to parse git tag date in psc-publish (@hdgarrood)
    • โž• Add git tag time to psc-publish JSON (@hdgarrood)
    • โœ‚ Remove Docs.Bookmarks (@hdgarrood)

    ๐ŸŽ Performance

    • Combine inlining optimizations into a single pass (@paf31)
    • ๐Ÿ‘‰ Use Map.foldlWithKey' instead of foldl (@hdgarrood)
    • ๐Ÿ“„ Minor memory usage improvements in Language.PureScript.Docs (@hdgarrood)

    Other

    • Generate data constructors without IIFEs (@hdgarrood)
    • โž• Add stack-ghc-8.0.2.yaml (@noraesae)
    • โž• Add HasCallStack to internalError (@alexbiehl)
    • โšก๏ธ Update psc-package to use turtle 1.3 (@taktoa)
    • โœ‚ Remove JSAccessor; replace with JSIndexer (@michaelficarra)
    • Store more information in RenderedCode (@hdgarrood)