Skip to content

Tags: purescript/purescript-prelude

Tags

v6.0.2

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Avoid `RangeError` in `arrayBind` foreign implementation (#314)

* test(#309): Failing test

Demonstrating that the current implementation of `Array`'s `Bind` instance
causes `RangeError: Maximum call stack size exceeded` when the output of `f` in
`ma >>= f` is sufficiently large.

This is due to usage of `Function.prototype.apply`. From
[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#using_apply_and_built-in_functions):

> But beware: by using apply() (or the spread syntax) with an arbitrarily long
arguments list, you run the risk of exceeding the JavaScript engine's argument
length limit.

> The consequences of calling a function with too many arguments (that is, more
than tens of thousands of arguments) is unspecified and varies across engines.
(The JavaScriptCore engine has a hard-coded [argument limit of
65536](https://webkit.org/b/80797).)

Node v20.18.1 seems to have a higher limit around 106,000.

* fix(#309): Use `flatMap` if supported by runtime

* fix(#309): Use simple stack-safe fallback

* chore(#309): Add to CHANGELOG.md

* feat(#309): Address feedback from code review

Using static check to determine if `Array.prototype.flatMap` is available, and
use `var` instead of `let` in for loop to match existing code style.

---------

Co-authored-by: Peter Murphy <26548438+ptrfrncsmrph@users.noreply.github.com>

v6.0.0

Partially verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
v6.0.0 (#292)

Co-authored-by: Thomas Honeyman <admin@thomashoneyman.com>

v5.0.1

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Update CHANGELOG.md

v5.0.0

Partially verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
Prepare v5.0.0 release (#259)

Update CI to build with the latest version of the compiler, update the bower repository URL to match the URL in the registry, and update the changelog.

Co-authored-by: Thomas Honeyman <admin@thomashoneyman.com>

v4.1.0

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request #180 from LiamGoodacre/feature/ord-record

Add/finish Ord instance for Records

v4.0.1

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request #177 from jazmit/patch-3

Optimization for Eq Array

v4.0.0

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request #175 from purescript/compiler/0.12

Update for PureScript 0.12

v3.3.0

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request #156 from matthewleon/Function.applyN

Function.applyN