From 25d789691714415f334deab5ccca7009613a09b4 Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Fri, 2 Jul 2021 18:41:48 +0200 Subject: [PATCH 01/17] Convert foreign modules to try bundling with esbuild --- src/Control/Apply.js | 2 +- src/Control/Bind.js | 2 +- src/Data/Bounded.js | 12 ++++++------ src/Data/Eq.js | 12 ++++++------ src/Data/EuclideanRing.js | 8 ++++---- src/Data/Functor.js | 2 +- src/Data/HeytingAlgebra.js | 6 +++--- src/Data/Ord.js | 12 ++++++------ src/Data/Ring.js | 4 ++-- src/Data/Semigroup.js | 4 ++-- src/Data/Semiring.js | 8 ++++---- src/Data/Show.js | 14 +++++++------- src/Data/Show/Generic.js | 2 +- src/Data/Symbol.js | 2 +- src/Data/Unit.js | 2 +- src/Record/Unsafe.js | 8 ++++---- 16 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/Control/Apply.js b/src/Control/Apply.js index 0b4720ca..4438ef13 100644 --- a/src/Control/Apply.js +++ b/src/Control/Apply.js @@ -1,6 +1,6 @@ "use strict"; -exports.arrayApply = function (fs) { +export var arrayApply = function (fs) { return function (xs) { var l = fs.length; var k = xs.length; diff --git a/src/Control/Bind.js b/src/Control/Bind.js index f21afc29..d43dd474 100644 --- a/src/Control/Bind.js +++ b/src/Control/Bind.js @@ -1,6 +1,6 @@ "use strict"; -exports.arrayBind = function (arr) { +export var arrayBind = function (arr) { return function (f) { var result = []; for (var i = 0, l = arr.length; i < l; i++) { diff --git a/src/Data/Bounded.js b/src/Data/Bounded.js index 246f8ac8..6803eb89 100644 --- a/src/Data/Bounded.js +++ b/src/Data/Bounded.js @@ -1,10 +1,10 @@ "use strict"; -exports.topInt = 2147483647; -exports.bottomInt = -2147483648; +export var topInt = 2147483647; +export var bottomInt = -2147483648; -exports.topChar = String.fromCharCode(65535); -exports.bottomChar = String.fromCharCode(0); +export var topChar = String.fromCharCode(65535); +export var bottomChar = String.fromCharCode(0); -exports.topNumber = Number.POSITIVE_INFINITY; -exports.bottomNumber = Number.NEGATIVE_INFINITY; +export var topNumber = Number.POSITIVE_INFINITY; +export var bottomNumber = Number.NEGATIVE_INFINITY; diff --git a/src/Data/Eq.js b/src/Data/Eq.js index 2a2ae3ea..9bd61b1d 100644 --- a/src/Data/Eq.js +++ b/src/Data/Eq.js @@ -6,13 +6,13 @@ var refEq = function (r1) { }; }; -exports.eqBooleanImpl = refEq; -exports.eqIntImpl = refEq; -exports.eqNumberImpl = refEq; -exports.eqCharImpl = refEq; -exports.eqStringImpl = refEq; +export var eqBooleanImpl = refEq; +export var eqIntImpl = refEq; +export var eqNumberImpl = refEq; +export var eqCharImpl = refEq; +export var eqStringImpl = refEq; -exports.eqArrayImpl = function (f) { +export var eqArrayImpl = function (f) { return function (xs) { return function (ys) { if (xs.length !== ys.length) return false; diff --git a/src/Data/EuclideanRing.js b/src/Data/EuclideanRing.js index a19fe503..2e1c281a 100644 --- a/src/Data/EuclideanRing.js +++ b/src/Data/EuclideanRing.js @@ -1,19 +1,19 @@ "use strict"; -exports.intDegree = function (x) { +export var intDegree = function (x) { return Math.min(Math.abs(x), 2147483647); }; // See the Euclidean definition in // https://en.m.wikipedia.org/wiki/Modulo_operation. -exports.intDiv = function (x) { +export var intDiv = function (x) { return function (y) { if (y === 0) return 0; return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y); }; }; -exports.intMod = function (x) { +export var intMod = function (x) { return function (y) { if (y === 0) return 0; var yy = Math.abs(y); @@ -21,7 +21,7 @@ exports.intMod = function (x) { }; }; -exports.numDiv = function (n1) { +export var numDiv = function (n1) { return function (n2) { return n1 / n2; }; diff --git a/src/Data/Functor.js b/src/Data/Functor.js index 73ecc1f5..35c1ba15 100644 --- a/src/Data/Functor.js +++ b/src/Data/Functor.js @@ -1,6 +1,6 @@ "use strict"; -exports.arrayMap = function (f) { +export var arrayMap = function (f) { return function (arr) { var l = arr.length; var result = new Array(l); diff --git a/src/Data/HeytingAlgebra.js b/src/Data/HeytingAlgebra.js index a076fd3f..90ada711 100644 --- a/src/Data/HeytingAlgebra.js +++ b/src/Data/HeytingAlgebra.js @@ -1,17 +1,17 @@ "use strict"; -exports.boolConj = function (b1) { +export var boolConj = function (b1) { return function (b2) { return b1 && b2; }; }; -exports.boolDisj = function (b1) { +export var boolDisj = function (b1) { return function (b2) { return b1 || b2; }; }; -exports.boolNot = function (b) { +export var boolNot = function (b) { return !b; }; diff --git a/src/Data/Ord.js b/src/Data/Ord.js index 67c1a058..6214578b 100644 --- a/src/Data/Ord.js +++ b/src/Data/Ord.js @@ -12,13 +12,13 @@ var unsafeCompareImpl = function (lt) { }; }; -exports.ordBooleanImpl = unsafeCompareImpl; -exports.ordIntImpl = unsafeCompareImpl; -exports.ordNumberImpl = unsafeCompareImpl; -exports.ordStringImpl = unsafeCompareImpl; -exports.ordCharImpl = unsafeCompareImpl; +export var ordBooleanImpl = unsafeCompareImpl; +export var ordIntImpl = unsafeCompareImpl; +export var ordNumberImpl = unsafeCompareImpl; +export var ordStringImpl = unsafeCompareImpl; +export var ordCharImpl = unsafeCompareImpl; -exports.ordArrayImpl = function (f) { +export var ordArrayImpl = function (f) { return function (xs) { return function (ys) { var i = 0; diff --git a/src/Data/Ring.js b/src/Data/Ring.js index c6b4a329..005051d8 100644 --- a/src/Data/Ring.js +++ b/src/Data/Ring.js @@ -1,13 +1,13 @@ "use strict"; -exports.intSub = function (x) { +export var intSub = function (x) { return function (y) { /* jshint bitwise: false */ return x - y | 0; }; }; -exports.numSub = function (n1) { +export var numSub = function (n1) { return function (n2) { return n1 - n2; }; diff --git a/src/Data/Semigroup.js b/src/Data/Semigroup.js index f1f1abad..6fcc35f9 100644 --- a/src/Data/Semigroup.js +++ b/src/Data/Semigroup.js @@ -1,12 +1,12 @@ "use strict"; -exports.concatString = function (s1) { +export var concatString = function (s1) { return function (s2) { return s1 + s2; }; }; -exports.concatArray = function (xs) { +export var concatArray = function (xs) { return function (ys) { if (xs.length === 0) return ys; if (ys.length === 0) return xs; diff --git a/src/Data/Semiring.js b/src/Data/Semiring.js index 7f38e42e..bfc400bd 100644 --- a/src/Data/Semiring.js +++ b/src/Data/Semiring.js @@ -1,26 +1,26 @@ "use strict"; -exports.intAdd = function (x) { +export var intAdd = function (x) { return function (y) { /* jshint bitwise: false */ return x + y | 0; }; }; -exports.intMul = function (x) { +export var intMul = function (x) { return function (y) { /* jshint bitwise: false */ return x * y | 0; }; }; -exports.numAdd = function (n1) { +export var numAdd = function (n1) { return function (n2) { return n1 + n2; }; }; -exports.numMul = function (n1) { +export var numMul = function (n1) { return function (n2) { return n1 * n2; }; diff --git a/src/Data/Show.js b/src/Data/Show.js index 4a85cd66..ee4221b4 100644 --- a/src/Data/Show.js +++ b/src/Data/Show.js @@ -1,15 +1,15 @@ "use strict"; -exports.showIntImpl = function (n) { +export var showIntImpl = function (n) { return n.toString(); }; -exports.showNumberImpl = function (n) { +export var showNumberImpl = function (n) { var str = n.toString(); return isNaN(str + ".0") ? str : str + ".0"; }; -exports.showCharImpl = function (c) { +export var showCharImpl = function (c) { var code = c.charCodeAt(0); if (code < 0x20 || code === 0x7F) { switch (c) { @@ -26,7 +26,7 @@ exports.showCharImpl = function (c) { return c === "'" || c === "\\" ? "'\\" + c + "'" : "'" + c + "'"; }; -exports.showStringImpl = function (s) { +export var showStringImpl = function (s) { var l = s.length; return "\"" + s.replace( /[\0-\x1F\x7F"\\]/g, // eslint-disable-line no-control-regex @@ -50,7 +50,7 @@ exports.showStringImpl = function (s) { ) + "\""; }; -exports.showArrayImpl = function (f) { +export var showArrayImpl = function (f) { return function (xs) { var ss = []; for (var i = 0, l = xs.length; i < l; i++) { @@ -60,13 +60,13 @@ exports.showArrayImpl = function (f) { }; }; -exports.cons = function (head) { +export var cons = function (head) { return function (tail) { return [head].concat(tail); }; }; -exports.join = function (separator) { +export var join = function (separator) { return function (xs) { return xs.join(separator); }; diff --git a/src/Data/Show/Generic.js b/src/Data/Show/Generic.js index 53338044..3a7ab10e 100644 --- a/src/Data/Show/Generic.js +++ b/src/Data/Show/Generic.js @@ -1,6 +1,6 @@ "use strict"; -exports.intercalate = function (separator) { +export var intercalate = function (separator) { return function (xs) { var len = xs.length; if (len === 0) return ""; diff --git a/src/Data/Symbol.js b/src/Data/Symbol.js index b4b6e28f..5f21b4c1 100644 --- a/src/Data/Symbol.js +++ b/src/Data/Symbol.js @@ -2,7 +2,7 @@ // module Data.Symbol -exports.unsafeCoerce = function (arg) { +export var unsafeCoerce = function (arg) { return arg; }; diff --git a/src/Data/Unit.js b/src/Data/Unit.js index 6f45ea79..36355680 100644 --- a/src/Data/Unit.js +++ b/src/Data/Unit.js @@ -1,3 +1,3 @@ "use strict"; -exports.unit = {}; +export var unit = {}; diff --git a/src/Record/Unsafe.js b/src/Record/Unsafe.js index c47acf8d..59c5d6b4 100644 --- a/src/Record/Unsafe.js +++ b/src/Record/Unsafe.js @@ -1,18 +1,18 @@ "use strict"; -exports.unsafeHas = function (label) { +export var unsafeHas = function (label) { return function (rec) { return {}.hasOwnProperty.call(rec, label); }; }; -exports.unsafeGet = function (label) { +export var unsafeGet = function (label) { return function (rec) { return rec[label]; }; }; -exports.unsafeSet = function (label) { +export var unsafeSet = function (label) { return function (value) { return function (rec) { var copy = {}; @@ -27,7 +27,7 @@ exports.unsafeSet = function (label) { }; }; -exports.unsafeDelete = function (label) { +export var unsafeDelete = function (label) { return function (rec) { var copy = {}; for (var key in rec) { From b823c45be2015334343c323d617ec03f77e3f059 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 2 Mar 2022 15:21:44 -0600 Subject: [PATCH 02/17] Update .eslintrc.json to ES6 --- .eslintrc.json | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 39963d32..6c08a872 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,16 +1,23 @@ { "parserOptions": { - "ecmaVersion": 5 + "ecmaVersion": 6, + "sourceType": "module" }, "extends": "eslint:recommended", "env": { - "commonjs": true + "es6": true }, "rules": { - "strict": [2, "global"], + "strict": [ + 2, + "global" + ], "block-scoped-var": 2, "consistent-return": 2, - "eqeqeq": [2, "smart"], + "eqeqeq": [ + 2, + "smart" + ], "guard-for-in": 2, "no-caller": 2, "no-extend-native": 2, @@ -20,9 +27,24 @@ "no-return-assign": 2, "no-unused-expressions": 2, "no-use-before-define": 2, - "radix": [2, "always"], - "indent": [2, 2, { "SwitchCase": 1 }], - "quotes": [2, "double"], - "semi": [2, "always"] + "radix": [ + 2, + "always" + ], + "indent": [ + 2, + 2, + { + "SwitchCase": 1 + } + ], + "quotes": [ + 2, + "double" + ], + "semi": [ + 2, + "always" + ] } } From a66ee77f01ed0b448c2f90abcb352306d6faaa6a Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 2 Mar 2022 15:21:45 -0600 Subject: [PATCH 03/17] Migrated FFI to ES modules via 'lebab' --- src/Control/Apply.js | 4 ++-- src/Control/Bind.js | 4 ++-- src/Data/Bounded.js | 14 +++++++------- src/Data/Eq.js | 14 +++++++------- src/Data/EuclideanRing.js | 10 +++++----- src/Data/Functor.js | 4 ++-- src/Data/HeytingAlgebra.js | 8 ++++---- src/Data/Ord.js | 14 +++++++------- src/Data/Ring.js | 6 +++--- src/Data/Semigroup.js | 6 +++--- src/Data/Semiring.js | 10 +++++----- src/Data/Show.js | 16 ++++++++-------- src/Data/Show/Generic.js | 4 ++-- src/Data/Symbol.js | 4 ++-- src/Data/Unit.js | 4 ++-- src/Record/Unsafe.js | 10 +++++----- test/Test/Main.js | 6 +++--- test/Test/Utils.js | 6 +++--- 18 files changed, 72 insertions(+), 72 deletions(-) diff --git a/src/Control/Apply.js b/src/Control/Apply.js index 4438ef13..df9843fb 100644 --- a/src/Control/Apply.js +++ b/src/Control/Apply.js @@ -1,6 +1,6 @@ -"use strict"; -export var arrayApply = function (fs) { + +export const arrayApply = function (fs) { return function (xs) { var l = fs.length; var k = xs.length; diff --git a/src/Control/Bind.js b/src/Control/Bind.js index d43dd474..2bf52672 100644 --- a/src/Control/Bind.js +++ b/src/Control/Bind.js @@ -1,6 +1,6 @@ -"use strict"; -export var arrayBind = function (arr) { + +export const arrayBind = function (arr) { return function (f) { var result = []; for (var i = 0, l = arr.length; i < l; i++) { diff --git a/src/Data/Bounded.js b/src/Data/Bounded.js index 6803eb89..7a8170c3 100644 --- a/src/Data/Bounded.js +++ b/src/Data/Bounded.js @@ -1,10 +1,10 @@ -"use strict"; -export var topInt = 2147483647; -export var bottomInt = -2147483648; -export var topChar = String.fromCharCode(65535); -export var bottomChar = String.fromCharCode(0); +export const topInt = 2147483647; +export const bottomInt = -2147483648; -export var topNumber = Number.POSITIVE_INFINITY; -export var bottomNumber = Number.NEGATIVE_INFINITY; +export const topChar = String.fromCharCode(65535); +export const bottomChar = String.fromCharCode(0); + +export const topNumber = Number.POSITIVE_INFINITY; +export const bottomNumber = Number.NEGATIVE_INFINITY; diff --git a/src/Data/Eq.js b/src/Data/Eq.js index 9bd61b1d..0f60aeb8 100644 --- a/src/Data/Eq.js +++ b/src/Data/Eq.js @@ -1,4 +1,4 @@ -"use strict"; + var refEq = function (r1) { return function (r2) { @@ -6,13 +6,13 @@ var refEq = function (r1) { }; }; -export var eqBooleanImpl = refEq; -export var eqIntImpl = refEq; -export var eqNumberImpl = refEq; -export var eqCharImpl = refEq; -export var eqStringImpl = refEq; +export const eqBooleanImpl = refEq; +export const eqIntImpl = refEq; +export const eqNumberImpl = refEq; +export const eqCharImpl = refEq; +export const eqStringImpl = refEq; -export var eqArrayImpl = function (f) { +export const eqArrayImpl = function (f) { return function (xs) { return function (ys) { if (xs.length !== ys.length) return false; diff --git a/src/Data/EuclideanRing.js b/src/Data/EuclideanRing.js index 2e1c281a..1e4a2919 100644 --- a/src/Data/EuclideanRing.js +++ b/src/Data/EuclideanRing.js @@ -1,19 +1,19 @@ -"use strict"; -export var intDegree = function (x) { + +export const intDegree = function (x) { return Math.min(Math.abs(x), 2147483647); }; // See the Euclidean definition in // https://en.m.wikipedia.org/wiki/Modulo_operation. -export var intDiv = function (x) { +export const intDiv = function (x) { return function (y) { if (y === 0) return 0; return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y); }; }; -export var intMod = function (x) { +export const intMod = function (x) { return function (y) { if (y === 0) return 0; var yy = Math.abs(y); @@ -21,7 +21,7 @@ export var intMod = function (x) { }; }; -export var numDiv = function (n1) { +export const numDiv = function (n1) { return function (n2) { return n1 / n2; }; diff --git a/src/Data/Functor.js b/src/Data/Functor.js index 35c1ba15..5df6053e 100644 --- a/src/Data/Functor.js +++ b/src/Data/Functor.js @@ -1,6 +1,6 @@ -"use strict"; -export var arrayMap = function (f) { + +export const arrayMap = function (f) { return function (arr) { var l = arr.length; var result = new Array(l); diff --git a/src/Data/HeytingAlgebra.js b/src/Data/HeytingAlgebra.js index 90ada711..f2f15169 100644 --- a/src/Data/HeytingAlgebra.js +++ b/src/Data/HeytingAlgebra.js @@ -1,17 +1,17 @@ -"use strict"; -export var boolConj = function (b1) { + +export const boolConj = function (b1) { return function (b2) { return b1 && b2; }; }; -export var boolDisj = function (b1) { +export const boolDisj = function (b1) { return function (b2) { return b1 || b2; }; }; -export var boolNot = function (b) { +export const boolNot = function (b) { return !b; }; diff --git a/src/Data/Ord.js b/src/Data/Ord.js index 6214578b..8714c3dc 100644 --- a/src/Data/Ord.js +++ b/src/Data/Ord.js @@ -1,4 +1,4 @@ -"use strict"; + var unsafeCompareImpl = function (lt) { return function (eq) { @@ -12,13 +12,13 @@ var unsafeCompareImpl = function (lt) { }; }; -export var ordBooleanImpl = unsafeCompareImpl; -export var ordIntImpl = unsafeCompareImpl; -export var ordNumberImpl = unsafeCompareImpl; -export var ordStringImpl = unsafeCompareImpl; -export var ordCharImpl = unsafeCompareImpl; +export const ordBooleanImpl = unsafeCompareImpl; +export const ordIntImpl = unsafeCompareImpl; +export const ordNumberImpl = unsafeCompareImpl; +export const ordStringImpl = unsafeCompareImpl; +export const ordCharImpl = unsafeCompareImpl; -export var ordArrayImpl = function (f) { +export const ordArrayImpl = function (f) { return function (xs) { return function (ys) { var i = 0; diff --git a/src/Data/Ring.js b/src/Data/Ring.js index 005051d8..26d35512 100644 --- a/src/Data/Ring.js +++ b/src/Data/Ring.js @@ -1,13 +1,13 @@ -"use strict"; -export var intSub = function (x) { + +export const intSub = function (x) { return function (y) { /* jshint bitwise: false */ return x - y | 0; }; }; -export var numSub = function (n1) { +export const numSub = function (n1) { return function (n2) { return n1 - n2; }; diff --git a/src/Data/Semigroup.js b/src/Data/Semigroup.js index 6fcc35f9..147b56aa 100644 --- a/src/Data/Semigroup.js +++ b/src/Data/Semigroup.js @@ -1,12 +1,12 @@ -"use strict"; -export var concatString = function (s1) { + +export const concatString = function (s1) { return function (s2) { return s1 + s2; }; }; -export var concatArray = function (xs) { +export const concatArray = function (xs) { return function (ys) { if (xs.length === 0) return ys; if (ys.length === 0) return xs; diff --git a/src/Data/Semiring.js b/src/Data/Semiring.js index bfc400bd..722a4fe9 100644 --- a/src/Data/Semiring.js +++ b/src/Data/Semiring.js @@ -1,26 +1,26 @@ -"use strict"; -export var intAdd = function (x) { + +export const intAdd = function (x) { return function (y) { /* jshint bitwise: false */ return x + y | 0; }; }; -export var intMul = function (x) { +export const intMul = function (x) { return function (y) { /* jshint bitwise: false */ return x * y | 0; }; }; -export var numAdd = function (n1) { +export const numAdd = function (n1) { return function (n2) { return n1 + n2; }; }; -export var numMul = function (n1) { +export const numMul = function (n1) { return function (n2) { return n1 * n2; }; diff --git a/src/Data/Show.js b/src/Data/Show.js index ee4221b4..686effd2 100644 --- a/src/Data/Show.js +++ b/src/Data/Show.js @@ -1,15 +1,15 @@ -"use strict"; -export var showIntImpl = function (n) { + +export const showIntImpl = function (n) { return n.toString(); }; -export var showNumberImpl = function (n) { +export const showNumberImpl = function (n) { var str = n.toString(); return isNaN(str + ".0") ? str : str + ".0"; }; -export var showCharImpl = function (c) { +export const showCharImpl = function (c) { var code = c.charCodeAt(0); if (code < 0x20 || code === 0x7F) { switch (c) { @@ -26,7 +26,7 @@ export var showCharImpl = function (c) { return c === "'" || c === "\\" ? "'\\" + c + "'" : "'" + c + "'"; }; -export var showStringImpl = function (s) { +export const showStringImpl = function (s) { var l = s.length; return "\"" + s.replace( /[\0-\x1F\x7F"\\]/g, // eslint-disable-line no-control-regex @@ -50,7 +50,7 @@ export var showStringImpl = function (s) { ) + "\""; }; -export var showArrayImpl = function (f) { +export const showArrayImpl = function (f) { return function (xs) { var ss = []; for (var i = 0, l = xs.length; i < l; i++) { @@ -60,13 +60,13 @@ export var showArrayImpl = function (f) { }; }; -export var cons = function (head) { +export const cons = function (head) { return function (tail) { return [head].concat(tail); }; }; -export var join = function (separator) { +export const join = function (separator) { return function (xs) { return xs.join(separator); }; diff --git a/src/Data/Show/Generic.js b/src/Data/Show/Generic.js index 3a7ab10e..aa70951a 100644 --- a/src/Data/Show/Generic.js +++ b/src/Data/Show/Generic.js @@ -1,6 +1,6 @@ -"use strict"; -export var intercalate = function (separator) { + +export const intercalate = function (separator) { return function (xs) { var len = xs.length; if (len === 0) return ""; diff --git a/src/Data/Symbol.js b/src/Data/Symbol.js index 5f21b4c1..f9575105 100644 --- a/src/Data/Symbol.js +++ b/src/Data/Symbol.js @@ -1,8 +1,8 @@ -"use strict"; + // module Data.Symbol -export var unsafeCoerce = function (arg) { +export const unsafeCoerce = function (arg) { return arg; }; diff --git a/src/Data/Unit.js b/src/Data/Unit.js index 36355680..a1aea31f 100644 --- a/src/Data/Unit.js +++ b/src/Data/Unit.js @@ -1,3 +1,3 @@ -"use strict"; -export var unit = {}; + +export const unit = {}; diff --git a/src/Record/Unsafe.js b/src/Record/Unsafe.js index 59c5d6b4..f18bda26 100644 --- a/src/Record/Unsafe.js +++ b/src/Record/Unsafe.js @@ -1,18 +1,18 @@ -"use strict"; -export var unsafeHas = function (label) { + +export const unsafeHas = function (label) { return function (rec) { return {}.hasOwnProperty.call(rec, label); }; }; -export var unsafeGet = function (label) { +export const unsafeGet = function (label) { return function (rec) { return rec[label]; }; }; -export var unsafeSet = function (label) { +export const unsafeSet = function (label) { return function (value) { return function (rec) { var copy = {}; @@ -27,7 +27,7 @@ export var unsafeSet = function (label) { }; }; -export var unsafeDelete = function (label) { +export const unsafeDelete = function (label) { return function (rec) { var copy = {}; for (var key in rec) { diff --git a/test/Test/Main.js b/test/Test/Main.js index f3989122..462b5784 100644 --- a/test/Test/Main.js +++ b/test/Test/Main.js @@ -1,6 +1,6 @@ -"use strict"; -exports.testNumberShow = function(showNumber) { + +export function testNumberShow(showNumber) { return function() { function testAll(cases) { cases.forEach(function(c) { @@ -41,4 +41,4 @@ exports.testNumberShow = function(showNumber) { [-Infinity, "-Infinity"], ]); }; -}; +} diff --git a/test/Test/Utils.js b/test/Test/Utils.js index bea69b25..6d3cd317 100644 --- a/test/Test/Utils.js +++ b/test/Test/Utils.js @@ -1,7 +1,7 @@ -"use strict"; -exports.throwErr = function(msg) { + +export function throwErr(msg) { return function() { throw new Error(msg); }; -}; +} From 31b243ed1bd57a49f4c94cc9d08abfa235733ef1 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 2 Mar 2022 15:21:45 -0600 Subject: [PATCH 04/17] Update to CI to use v0.15.0-alpha-01 purescript --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70427e62..4812b414 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,6 +12,8 @@ jobs: - uses: actions/checkout@v2 - uses: purescript-contrib/setup-purescript@main + with: + purescript: "0.15.0-alpha-01" - uses: actions/setup-node@v1 with: From 2994f6de50f77f3868267bfee2b1f773e2c7c530 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 2 Mar 2022 15:23:31 -0600 Subject: [PATCH 05/17] Fix eslint issues --- test/Test/Main.js | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/test/Test/Main.js b/test/Test/Main.js index 462b5784..7d999038 100644 --- a/test/Test/Main.js +++ b/test/Test/Main.js @@ -16,29 +16,29 @@ export function testNumberShow(showNumber) { } testAll([ - // Within Int range - [0.0, "0.0"], - [1.0, "1.0"], - [-1.0, "-1.0"], - [500.0, "500.0"], + // Within Int range + [0.0, "0.0"], + [1.0, "1.0"], + [-1.0, "-1.0"], + [500.0, "500.0"], - // Outside Int range - [1e10, "10000000000.0"], - [1e10 + 0.5, "10000000000.5"], - [-1e10, "-10000000000.0"], - [-1e10 - 0.5, "-10000000000.5"], + // Outside Int range + [1e10, "10000000000.0"], + [1e10 + 0.5, "10000000000.5"], + [-1e10, "-10000000000.0"], + [-1e10 - 0.5, "-10000000000.5"], - // With exponent - [1e21, "1e+21"], - [1e-21, "1e-21"], + // With exponent + [1e21, "1e+21"], + [1e-21, "1e-21"], - // With decimal and exponent - [1.5e21, "1.5e+21"], - [1.5e-10, "1.5e-10"], + // With decimal and exponent + [1.5e21, "1.5e+21"], + [1.5e-10, "1.5e-10"], - [NaN, "NaN"], - [Infinity, "Infinity"], - [-Infinity, "-Infinity"], - ]); + [NaN, "NaN"], + [Infinity, "Infinity"], + [-Infinity, "-Infinity"], + ]); }; } From 193a1d06b46274f846df96df73f1754ff95bd60b Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 2 Mar 2022 15:33:33 -0600 Subject: [PATCH 06/17] Migrate 'unit' --- src/Data/Unit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Data/Unit.js b/src/Data/Unit.js index 203fe222..3eff8c28 100644 --- a/src/Data/Unit.js +++ b/src/Data/Unit.js @@ -1 +1 @@ -exports.unit = undefined; +export const unit = undefined; From a04e04978b943584ded420b193e68a088e0d0b4e Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 2 Mar 2022 15:34:01 -0600 Subject: [PATCH 07/17] Update CI purs to unstable --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4812b414..aa57eb55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: - uses: purescript-contrib/setup-purescript@main with: - purescript: "0.15.0-alpha-01" + purescript: "unstable" - uses: actions/setup-node@v1 with: From ec59b04d5d99f196d055c3238557063f5cb11de5 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 2 Mar 2022 17:16:08 -0600 Subject: [PATCH 08/17] Get rid of extra space from 'use strict' line --- src/Control/Apply.js | 2 -- src/Control/Bind.js | 2 -- src/Data/Bounded.js | 2 -- src/Data/Eq.js | 2 -- src/Data/EuclideanRing.js | 2 -- src/Data/Functor.js | 2 -- src/Data/HeytingAlgebra.js | 2 -- src/Data/Ord.js | 2 -- src/Data/Ring.js | 2 -- src/Data/Semigroup.js | 2 -- src/Data/Semiring.js | 2 -- src/Data/Show.js | 2 -- src/Data/Show/Generic.js | 2 -- src/Data/Symbol.js | 2 -- src/Record/Unsafe.js | 2 -- test/Test/Main.js | 2 -- test/Test/Utils.js | 2 -- 17 files changed, 34 deletions(-) diff --git a/src/Control/Apply.js b/src/Control/Apply.js index df9843fb..149f4385 100644 --- a/src/Control/Apply.js +++ b/src/Control/Apply.js @@ -1,5 +1,3 @@ - - export const arrayApply = function (fs) { return function (xs) { var l = fs.length; diff --git a/src/Control/Bind.js b/src/Control/Bind.js index 2bf52672..fa0dbaeb 100644 --- a/src/Control/Bind.js +++ b/src/Control/Bind.js @@ -1,5 +1,3 @@ - - export const arrayBind = function (arr) { return function (f) { var result = []; diff --git a/src/Data/Bounded.js b/src/Data/Bounded.js index 7a8170c3..094350bd 100644 --- a/src/Data/Bounded.js +++ b/src/Data/Bounded.js @@ -1,5 +1,3 @@ - - export const topInt = 2147483647; export const bottomInt = -2147483648; diff --git a/src/Data/Eq.js b/src/Data/Eq.js index 0f60aeb8..6e8303cb 100644 --- a/src/Data/Eq.js +++ b/src/Data/Eq.js @@ -1,5 +1,3 @@ - - var refEq = function (r1) { return function (r2) { return r1 === r2; diff --git a/src/Data/EuclideanRing.js b/src/Data/EuclideanRing.js index 1e4a2919..057e6c3e 100644 --- a/src/Data/EuclideanRing.js +++ b/src/Data/EuclideanRing.js @@ -1,5 +1,3 @@ - - export const intDegree = function (x) { return Math.min(Math.abs(x), 2147483647); }; diff --git a/src/Data/Functor.js b/src/Data/Functor.js index 5df6053e..095e5332 100644 --- a/src/Data/Functor.js +++ b/src/Data/Functor.js @@ -1,5 +1,3 @@ - - export const arrayMap = function (f) { return function (arr) { var l = arr.length; diff --git a/src/Data/HeytingAlgebra.js b/src/Data/HeytingAlgebra.js index f2f15169..80990b40 100644 --- a/src/Data/HeytingAlgebra.js +++ b/src/Data/HeytingAlgebra.js @@ -1,5 +1,3 @@ - - export const boolConj = function (b1) { return function (b2) { return b1 && b2; diff --git a/src/Data/Ord.js b/src/Data/Ord.js index 8714c3dc..548760e5 100644 --- a/src/Data/Ord.js +++ b/src/Data/Ord.js @@ -1,5 +1,3 @@ - - var unsafeCompareImpl = function (lt) { return function (eq) { return function (gt) { diff --git a/src/Data/Ring.js b/src/Data/Ring.js index 26d35512..cceb66c8 100644 --- a/src/Data/Ring.js +++ b/src/Data/Ring.js @@ -1,5 +1,3 @@ - - export const intSub = function (x) { return function (y) { /* jshint bitwise: false */ diff --git a/src/Data/Semigroup.js b/src/Data/Semigroup.js index 147b56aa..1909f557 100644 --- a/src/Data/Semigroup.js +++ b/src/Data/Semigroup.js @@ -1,5 +1,3 @@ - - export const concatString = function (s1) { return function (s2) { return s1 + s2; diff --git a/src/Data/Semiring.js b/src/Data/Semiring.js index 722a4fe9..2d537c18 100644 --- a/src/Data/Semiring.js +++ b/src/Data/Semiring.js @@ -1,5 +1,3 @@ - - export const intAdd = function (x) { return function (y) { /* jshint bitwise: false */ diff --git a/src/Data/Show.js b/src/Data/Show.js index 686effd2..1f7b4038 100644 --- a/src/Data/Show.js +++ b/src/Data/Show.js @@ -1,5 +1,3 @@ - - export const showIntImpl = function (n) { return n.toString(); }; diff --git a/src/Data/Show/Generic.js b/src/Data/Show/Generic.js index aa70951a..59ff681e 100644 --- a/src/Data/Show/Generic.js +++ b/src/Data/Show/Generic.js @@ -1,5 +1,3 @@ - - export const intercalate = function (separator) { return function (xs) { var len = xs.length; diff --git a/src/Data/Symbol.js b/src/Data/Symbol.js index f9575105..b2941408 100644 --- a/src/Data/Symbol.js +++ b/src/Data/Symbol.js @@ -1,5 +1,3 @@ - - // module Data.Symbol export const unsafeCoerce = function (arg) { diff --git a/src/Record/Unsafe.js b/src/Record/Unsafe.js index f18bda26..af2d506f 100644 --- a/src/Record/Unsafe.js +++ b/src/Record/Unsafe.js @@ -1,5 +1,3 @@ - - export const unsafeHas = function (label) { return function (rec) { return {}.hasOwnProperty.call(rec, label); diff --git a/test/Test/Main.js b/test/Test/Main.js index 7d999038..b25cdaca 100644 --- a/test/Test/Main.js +++ b/test/Test/Main.js @@ -1,5 +1,3 @@ - - export function testNumberShow(showNumber) { return function() { function testAll(cases) { diff --git a/test/Test/Utils.js b/test/Test/Utils.js index 6d3cd317..ae5b410a 100644 --- a/test/Test/Utils.js +++ b/test/Test/Utils.js @@ -1,5 +1,3 @@ - - export function throwErr(msg) { return function() { throw new Error(msg); From f942db6e295caf84a3eefe12908bd96171d4df9c Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Wed, 2 Mar 2022 17:30:38 -0600 Subject: [PATCH 09/17] Remove unneeded diff on eslint config file --- .eslintrc.json | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 6c08a872..5f84d20f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -8,16 +8,10 @@ "es6": true }, "rules": { - "strict": [ - 2, - "global" - ], + "strict": [2, "global"], "block-scoped-var": 2, "consistent-return": 2, - "eqeqeq": [ - 2, - "smart" - ], + "eqeqeq": [2, "smart"], "guard-for-in": 2, "no-caller": 2, "no-extend-native": 2, @@ -27,24 +21,9 @@ "no-return-assign": 2, "no-unused-expressions": 2, "no-use-before-define": 2, - "radix": [ - 2, - "always" - ], - "indent": [ - 2, - 2, - { - "SwitchCase": 1 - } - ], - "quotes": [ - 2, - "double" - ], - "semi": [ - 2, - "always" - ] + "radix": [2, "always"], + "indent": [2, 2, { "SwitchCase": 1 }], + "quotes": [2, "double"], + "semi": [2, "always"] } } From 37795d7bb128e207e9f713ee1a1b747a807d69b3 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 11:20:38 -0600 Subject: [PATCH 10/17] Revert eslint change --- .eslintrc.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 5f84d20f..39963d32 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,11 +1,10 @@ { "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module" + "ecmaVersion": 5 }, "extends": "eslint:recommended", "env": { - "es6": true + "commonjs": true }, "rules": { "strict": [2, "global"], From 717f5ed9b57d58420876326d003ace3a051d13d6 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 12:14:44 -0600 Subject: [PATCH 11/17] Revert "Revert eslint change" This reverts commit 37795d7bb128e207e9f713ee1a1b747a807d69b3. --- .eslintrc.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 39963d32..5f84d20f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,10 +1,11 @@ { "parserOptions": { - "ecmaVersion": 5 + "ecmaVersion": 6, + "sourceType": "module" }, "extends": "eslint:recommended", "env": { - "commonjs": true + "es6": true }, "rules": { "strict": [2, "global"], From 9402f16640b028dbf5ede4eca1344367b38de0d7 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Thu, 3 Mar 2022 12:24:52 -0600 Subject: [PATCH 12/17] Change all functions back to 'export var' --- src/Control/Apply.js | 2 +- src/Control/Bind.js | 2 +- src/Data/EuclideanRing.js | 8 ++++---- src/Data/Functor.js | 2 +- src/Data/HeytingAlgebra.js | 6 +++--- src/Data/Ring.js | 4 ++-- src/Data/Semigroup.js | 4 ++-- src/Data/Semiring.js | 8 ++++---- src/Data/Show.js | 14 +++++++------- src/Data/Show/Generic.js | 2 +- src/Record/Unsafe.js | 8 ++++---- 11 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/Control/Apply.js b/src/Control/Apply.js index 149f4385..522af327 100644 --- a/src/Control/Apply.js +++ b/src/Control/Apply.js @@ -1,4 +1,4 @@ -export const arrayApply = function (fs) { +export var arrayApply = function (fs) { return function (xs) { var l = fs.length; var k = xs.length; diff --git a/src/Control/Bind.js b/src/Control/Bind.js index fa0dbaeb..18f5386b 100644 --- a/src/Control/Bind.js +++ b/src/Control/Bind.js @@ -1,4 +1,4 @@ -export const arrayBind = function (arr) { +export var arrayBind = function (arr) { return function (f) { var result = []; for (var i = 0, l = arr.length; i < l; i++) { diff --git a/src/Data/EuclideanRing.js b/src/Data/EuclideanRing.js index 057e6c3e..52a6b105 100644 --- a/src/Data/EuclideanRing.js +++ b/src/Data/EuclideanRing.js @@ -1,17 +1,17 @@ -export const intDegree = function (x) { +export var intDegree = function (x) { return Math.min(Math.abs(x), 2147483647); }; // See the Euclidean definition in // https://en.m.wikipedia.org/wiki/Modulo_operation. -export const intDiv = function (x) { +export var intDiv = function (x) { return function (y) { if (y === 0) return 0; return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y); }; }; -export const intMod = function (x) { +export var intMod = function (x) { return function (y) { if (y === 0) return 0; var yy = Math.abs(y); @@ -19,7 +19,7 @@ export const intMod = function (x) { }; }; -export const numDiv = function (n1) { +export var numDiv = function (n1) { return function (n2) { return n1 / n2; }; diff --git a/src/Data/Functor.js b/src/Data/Functor.js index 095e5332..6a80a76f 100644 --- a/src/Data/Functor.js +++ b/src/Data/Functor.js @@ -1,4 +1,4 @@ -export const arrayMap = function (f) { +export var arrayMap = function (f) { return function (arr) { var l = arr.length; var result = new Array(l); diff --git a/src/Data/HeytingAlgebra.js b/src/Data/HeytingAlgebra.js index 80990b40..e55a0f3f 100644 --- a/src/Data/HeytingAlgebra.js +++ b/src/Data/HeytingAlgebra.js @@ -1,15 +1,15 @@ -export const boolConj = function (b1) { +export var boolConj = function (b1) { return function (b2) { return b1 && b2; }; }; -export const boolDisj = function (b1) { +export var boolDisj = function (b1) { return function (b2) { return b1 || b2; }; }; -export const boolNot = function (b) { +export var boolNot = function (b) { return !b; }; diff --git a/src/Data/Ring.js b/src/Data/Ring.js index cceb66c8..3590346e 100644 --- a/src/Data/Ring.js +++ b/src/Data/Ring.js @@ -1,11 +1,11 @@ -export const intSub = function (x) { +export var intSub = function (x) { return function (y) { /* jshint bitwise: false */ return x - y | 0; }; }; -export const numSub = function (n1) { +export var numSub = function (n1) { return function (n2) { return n1 - n2; }; diff --git a/src/Data/Semigroup.js b/src/Data/Semigroup.js index 1909f557..3b6b5507 100644 --- a/src/Data/Semigroup.js +++ b/src/Data/Semigroup.js @@ -1,10 +1,10 @@ -export const concatString = function (s1) { +export var concatString = function (s1) { return function (s2) { return s1 + s2; }; }; -export const concatArray = function (xs) { +export var concatArray = function (xs) { return function (ys) { if (xs.length === 0) return ys; if (ys.length === 0) return xs; diff --git a/src/Data/Semiring.js b/src/Data/Semiring.js index 2d537c18..c9d10736 100644 --- a/src/Data/Semiring.js +++ b/src/Data/Semiring.js @@ -1,24 +1,24 @@ -export const intAdd = function (x) { +export var intAdd = function (x) { return function (y) { /* jshint bitwise: false */ return x + y | 0; }; }; -export const intMul = function (x) { +export var intMul = function (x) { return function (y) { /* jshint bitwise: false */ return x * y | 0; }; }; -export const numAdd = function (n1) { +export var numAdd = function (n1) { return function (n2) { return n1 + n2; }; }; -export const numMul = function (n1) { +export var numMul = function (n1) { return function (n2) { return n1 * n2; }; diff --git a/src/Data/Show.js b/src/Data/Show.js index 1f7b4038..023744dd 100644 --- a/src/Data/Show.js +++ b/src/Data/Show.js @@ -1,13 +1,13 @@ -export const showIntImpl = function (n) { +export var showIntImpl = function (n) { return n.toString(); }; -export const showNumberImpl = function (n) { +export var showNumberImpl = function (n) { var str = n.toString(); return isNaN(str + ".0") ? str : str + ".0"; }; -export const showCharImpl = function (c) { +export var showCharImpl = function (c) { var code = c.charCodeAt(0); if (code < 0x20 || code === 0x7F) { switch (c) { @@ -24,7 +24,7 @@ export const showCharImpl = function (c) { return c === "'" || c === "\\" ? "'\\" + c + "'" : "'" + c + "'"; }; -export const showStringImpl = function (s) { +export var showStringImpl = function (s) { var l = s.length; return "\"" + s.replace( /[\0-\x1F\x7F"\\]/g, // eslint-disable-line no-control-regex @@ -48,7 +48,7 @@ export const showStringImpl = function (s) { ) + "\""; }; -export const showArrayImpl = function (f) { +export var showArrayImpl = function (f) { return function (xs) { var ss = []; for (var i = 0, l = xs.length; i < l; i++) { @@ -58,13 +58,13 @@ export const showArrayImpl = function (f) { }; }; -export const cons = function (head) { +export var cons = function (head) { return function (tail) { return [head].concat(tail); }; }; -export const join = function (separator) { +export var join = function (separator) { return function (xs) { return xs.join(separator); }; diff --git a/src/Data/Show/Generic.js b/src/Data/Show/Generic.js index 59ff681e..22c47deb 100644 --- a/src/Data/Show/Generic.js +++ b/src/Data/Show/Generic.js @@ -1,4 +1,4 @@ -export const intercalate = function (separator) { +export var intercalate = function (separator) { return function (xs) { var len = xs.length; if (len === 0) return ""; diff --git a/src/Record/Unsafe.js b/src/Record/Unsafe.js index af2d506f..d82ee17b 100644 --- a/src/Record/Unsafe.js +++ b/src/Record/Unsafe.js @@ -1,16 +1,16 @@ -export const unsafeHas = function (label) { +export var unsafeHas = function (label) { return function (rec) { return {}.hasOwnProperty.call(rec, label); }; }; -export const unsafeGet = function (label) { +export var unsafeGet = function (label) { return function (rec) { return rec[label]; }; }; -export const unsafeSet = function (label) { +export var unsafeSet = function (label) { return function (value) { return function (rec) { var copy = {}; @@ -25,7 +25,7 @@ export const unsafeSet = function (label) { }; }; -export const unsafeDelete = function (label) { +export var unsafeDelete = function (label) { return function (rec) { var copy = {}; for (var key in rec) { From eb443404ab604e204ff73a0286a97e171105fb0f Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 09:26:45 -0600 Subject: [PATCH 13/17] Revert "Change all functions back to 'export var'" This reverts commit 9402f16640b028dbf5ede4eca1344367b38de0d7. --- src/Control/Apply.js | 2 +- src/Control/Bind.js | 2 +- src/Data/EuclideanRing.js | 8 ++++---- src/Data/Functor.js | 2 +- src/Data/HeytingAlgebra.js | 6 +++--- src/Data/Ring.js | 4 ++-- src/Data/Semigroup.js | 4 ++-- src/Data/Semiring.js | 8 ++++---- src/Data/Show.js | 14 +++++++------- src/Data/Show/Generic.js | 2 +- src/Record/Unsafe.js | 8 ++++---- 11 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/Control/Apply.js b/src/Control/Apply.js index 522af327..149f4385 100644 --- a/src/Control/Apply.js +++ b/src/Control/Apply.js @@ -1,4 +1,4 @@ -export var arrayApply = function (fs) { +export const arrayApply = function (fs) { return function (xs) { var l = fs.length; var k = xs.length; diff --git a/src/Control/Bind.js b/src/Control/Bind.js index 18f5386b..fa0dbaeb 100644 --- a/src/Control/Bind.js +++ b/src/Control/Bind.js @@ -1,4 +1,4 @@ -export var arrayBind = function (arr) { +export const arrayBind = function (arr) { return function (f) { var result = []; for (var i = 0, l = arr.length; i < l; i++) { diff --git a/src/Data/EuclideanRing.js b/src/Data/EuclideanRing.js index 52a6b105..057e6c3e 100644 --- a/src/Data/EuclideanRing.js +++ b/src/Data/EuclideanRing.js @@ -1,17 +1,17 @@ -export var intDegree = function (x) { +export const intDegree = function (x) { return Math.min(Math.abs(x), 2147483647); }; // See the Euclidean definition in // https://en.m.wikipedia.org/wiki/Modulo_operation. -export var intDiv = function (x) { +export const intDiv = function (x) { return function (y) { if (y === 0) return 0; return y > 0 ? Math.floor(x / y) : -Math.floor(x / -y); }; }; -export var intMod = function (x) { +export const intMod = function (x) { return function (y) { if (y === 0) return 0; var yy = Math.abs(y); @@ -19,7 +19,7 @@ export var intMod = function (x) { }; }; -export var numDiv = function (n1) { +export const numDiv = function (n1) { return function (n2) { return n1 / n2; }; diff --git a/src/Data/Functor.js b/src/Data/Functor.js index 6a80a76f..095e5332 100644 --- a/src/Data/Functor.js +++ b/src/Data/Functor.js @@ -1,4 +1,4 @@ -export var arrayMap = function (f) { +export const arrayMap = function (f) { return function (arr) { var l = arr.length; var result = new Array(l); diff --git a/src/Data/HeytingAlgebra.js b/src/Data/HeytingAlgebra.js index e55a0f3f..80990b40 100644 --- a/src/Data/HeytingAlgebra.js +++ b/src/Data/HeytingAlgebra.js @@ -1,15 +1,15 @@ -export var boolConj = function (b1) { +export const boolConj = function (b1) { return function (b2) { return b1 && b2; }; }; -export var boolDisj = function (b1) { +export const boolDisj = function (b1) { return function (b2) { return b1 || b2; }; }; -export var boolNot = function (b) { +export const boolNot = function (b) { return !b; }; diff --git a/src/Data/Ring.js b/src/Data/Ring.js index 3590346e..cceb66c8 100644 --- a/src/Data/Ring.js +++ b/src/Data/Ring.js @@ -1,11 +1,11 @@ -export var intSub = function (x) { +export const intSub = function (x) { return function (y) { /* jshint bitwise: false */ return x - y | 0; }; }; -export var numSub = function (n1) { +export const numSub = function (n1) { return function (n2) { return n1 - n2; }; diff --git a/src/Data/Semigroup.js b/src/Data/Semigroup.js index 3b6b5507..1909f557 100644 --- a/src/Data/Semigroup.js +++ b/src/Data/Semigroup.js @@ -1,10 +1,10 @@ -export var concatString = function (s1) { +export const concatString = function (s1) { return function (s2) { return s1 + s2; }; }; -export var concatArray = function (xs) { +export const concatArray = function (xs) { return function (ys) { if (xs.length === 0) return ys; if (ys.length === 0) return xs; diff --git a/src/Data/Semiring.js b/src/Data/Semiring.js index c9d10736..2d537c18 100644 --- a/src/Data/Semiring.js +++ b/src/Data/Semiring.js @@ -1,24 +1,24 @@ -export var intAdd = function (x) { +export const intAdd = function (x) { return function (y) { /* jshint bitwise: false */ return x + y | 0; }; }; -export var intMul = function (x) { +export const intMul = function (x) { return function (y) { /* jshint bitwise: false */ return x * y | 0; }; }; -export var numAdd = function (n1) { +export const numAdd = function (n1) { return function (n2) { return n1 + n2; }; }; -export var numMul = function (n1) { +export const numMul = function (n1) { return function (n2) { return n1 * n2; }; diff --git a/src/Data/Show.js b/src/Data/Show.js index 023744dd..1f7b4038 100644 --- a/src/Data/Show.js +++ b/src/Data/Show.js @@ -1,13 +1,13 @@ -export var showIntImpl = function (n) { +export const showIntImpl = function (n) { return n.toString(); }; -export var showNumberImpl = function (n) { +export const showNumberImpl = function (n) { var str = n.toString(); return isNaN(str + ".0") ? str : str + ".0"; }; -export var showCharImpl = function (c) { +export const showCharImpl = function (c) { var code = c.charCodeAt(0); if (code < 0x20 || code === 0x7F) { switch (c) { @@ -24,7 +24,7 @@ export var showCharImpl = function (c) { return c === "'" || c === "\\" ? "'\\" + c + "'" : "'" + c + "'"; }; -export var showStringImpl = function (s) { +export const showStringImpl = function (s) { var l = s.length; return "\"" + s.replace( /[\0-\x1F\x7F"\\]/g, // eslint-disable-line no-control-regex @@ -48,7 +48,7 @@ export var showStringImpl = function (s) { ) + "\""; }; -export var showArrayImpl = function (f) { +export const showArrayImpl = function (f) { return function (xs) { var ss = []; for (var i = 0, l = xs.length; i < l; i++) { @@ -58,13 +58,13 @@ export var showArrayImpl = function (f) { }; }; -export var cons = function (head) { +export const cons = function (head) { return function (tail) { return [head].concat(tail); }; }; -export var join = function (separator) { +export const join = function (separator) { return function (xs) { return xs.join(separator); }; diff --git a/src/Data/Show/Generic.js b/src/Data/Show/Generic.js index 22c47deb..59ff681e 100644 --- a/src/Data/Show/Generic.js +++ b/src/Data/Show/Generic.js @@ -1,4 +1,4 @@ -export var intercalate = function (separator) { +export const intercalate = function (separator) { return function (xs) { var len = xs.length; if (len === 0) return ""; diff --git a/src/Record/Unsafe.js b/src/Record/Unsafe.js index d82ee17b..af2d506f 100644 --- a/src/Record/Unsafe.js +++ b/src/Record/Unsafe.js @@ -1,16 +1,16 @@ -export var unsafeHas = function (label) { +export const unsafeHas = function (label) { return function (rec) { return {}.hasOwnProperty.call(rec, label); }; }; -export var unsafeGet = function (label) { +export const unsafeGet = function (label) { return function (rec) { return rec[label]; }; }; -export var unsafeSet = function (label) { +export const unsafeSet = function (label) { return function (value) { return function (rec) { var copy = {}; @@ -25,7 +25,7 @@ export var unsafeSet = function (label) { }; }; -export var unsafeDelete = function (label) { +export const unsafeDelete = function (label) { return function (rec) { var copy = {}; for (var key in rec) { From bac4ae1a4a7a8bf42e8fcd981cdf99f9f3099c8a Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 4 Mar 2022 09:33:47 -0600 Subject: [PATCH 14/17] Add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5e19e60..42e937eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] Breaking changes: +- Migrated FFI to ES Modules (#287 by @kl0tl and @JordanMartinez) New features: From 09966059e3bdeb721904c6d569937a6670fe6363 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 06:48:43 -0800 Subject: [PATCH 15/17] Update pulp to 16.0.0-0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3ed6897b..1646c4b0 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "devDependencies": { "eslint": "^7.15.0", "purescript-psa": "^0.8.0", - "pulp": "^15.0.0", + "pulp": "16.0.0-0", "rimraf": "^3.0.2" } } From 6eaf4d6526521464c44cacafa82378453e17373b Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 06:49:26 -0800 Subject: [PATCH 16/17] Update psa to 0.8.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1646c4b0..8382d607 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "eslint": "^7.15.0", - "purescript-psa": "^0.8.0", + "purescript-psa": "^0.8.2", "pulp": "16.0.0-0", "rimraf": "^3.0.2" } From 3c405bee6c36c03558631277f774b9b88f0ba825 Mon Sep 17 00:00:00 2001 From: Jordan Martinez Date: Fri, 11 Mar 2022 09:45:50 -0800 Subject: [PATCH 17/17] Drop es6: true in eslint config file --- .eslintrc.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 5f84d20f..81104c48 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,9 +4,6 @@ "sourceType": "module" }, "extends": "eslint:recommended", - "env": { - "es6": true - }, "rules": { "strict": [2, "global"], "block-scoped-var": 2,