Skip to content

Commit 5ebcddf

Browse files
authored
Merge branch 'develop' into je/readme
2 parents ac69f90 + 5399a02 commit 5ebcddf

29 files changed

+1174
-37
lines changed

ChangeLog.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,20 @@ This project's release branch is `master`. This log is written from the perspect
88
* native: linux and macOS
99
* iOS, unprofiled only
1010
* android, unprofiled only
11+
* Add GHCJS 8.10.7
1112

1213
* Bump
14+
* [reflex to 0.8.2.0](https://github.com/reflex-frp/reflex/releases/tag/v0.8.2.0)
1315
* [reflex-vty to 0.2.0.0](https://github.com/reflex-frp/reflex-vty/releases/tag/v0.2.0.0)
1416
* reflex-process to 0.3.1.1
1517
* reflex-ghci to 0.1.5.2
1618
* cabal-macosx to 0.2.4.2
19+
* all-cabal-hashes ("Update from Hackage at 2021-12-22T18:48:06Z")
20+
* beam-automigrate to 0.1.2.0
21+
* beam-core to 0.9.1.0
22+
* beam-migrate to 0.5.1.0
23+
* beam-postgres to 0.5.1.0
24+
* pandoc to 2.16.2
1725

1826
## v0.9.0.0
1927

default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,7 @@ in let this = rec {
379379
ghcAndroidAarch32-8_10
380380
ghcjs
381381
ghcjs8_6
382+
ghcjs8_10
382383
ghcSavedSplices
383384
ghcSavedSplices-8_6
384385
ghcSavedSplices-8_10

docs/project-development.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ Finally, Nix will fail to build ``common`` if it exports no modules.
8585
.. code:: yaml
8686
8787
...
88+
# common/common.cabal
89+
library
90+
build-depends: base
8891
exposed-modules: Common
8992
...
9093

haskell-overlays/android/default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{ haskellLib, nixpkgs, thunkSet }:
2+
23
let
34
# add the "-fPIC" option to both "ghc-options" and "cc-options" for the library component of a package
45
enableFPic = pkg: haskellLib.overrideCabal pkg (old: {

haskell-overlays/default.nix

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ rec {
7777

7878
combined-ghcjs = self: super: foldExtensions [
7979
(optionalExtension (versionWildcard [ 8 6 ] (getGhcVersion super.ghc)) combined-ghcjs-8_6)
80+
(optionalExtension (versionWildcard [ 8 10 ] (getGhcVersion super.ghc)) combined-ghcjs-8_10)
8081
] self super;
8182

8283
combined-ghcjs-8_6 = self: super: foldExtensions [
@@ -86,6 +87,12 @@ rec {
8687
(optionalExtension useFastWeak ghcjs-fast-weak_8_6)
8788
] self super;
8889

90+
combined-ghcjs-8_10 = self: super: foldExtensions [
91+
(optionalExtension useTextJSString textJSString-8_10)
92+
(optionalExtension useTextJSString ghcjs-8_10-textJSString)
93+
(optionalExtension useFastWeak ghcjs-fast-weak_8_10)
94+
] self super;
95+
8996
##
9097
## Constituent
9198
##
@@ -142,15 +149,28 @@ rec {
142149
inherit lib fetchgit;
143150
};
144151

152+
ghcjs-8_10-textJSString = import ./ghcjs-8.10-text-jsstring.nix {
153+
inherit lib fetchgit;
154+
};
155+
145156
textJSString-8_6 = import ./text-jsstring-8.6 {
146157
inherit lib haskellLib fetchFromGitHub versionWildcard;
147158
inherit (nixpkgs) fetchpatch thunkSet;
148159
};
149160

161+
textJSString-8_10 = import ./text-jsstring-8.10 {
162+
inherit lib haskellLib fetchFromGitHub versionWildcard;
163+
inherit (nixpkgs) fetchpatch thunkSet;
164+
};
165+
150166
ghcjs-fast-weak_8_6 = import ./ghcjs-8.6-fast-weak {
151167
inherit lib;
152168
};
153169

170+
ghcjs-fast-weak_8_10 = import ./ghcjs-8.10-fast-weak {
171+
inherit lib;
172+
};
173+
154174
android = import ./android {
155175
inherit haskellLib;
156176
inherit nixpkgs;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{ lib }:
2+
3+
self: super:
4+
5+
{
6+
ghc = super.ghc.overrideAttrs (drv: {
7+
patches = (drv.patches or []) ++ [ ./fast-weak.patch ];
8+
phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
9+
});
10+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
diff --git a/lib/boot/shims/src/gc.js.pp b/lib/boot/shims/src/gc.js.pp
2+
index 76321b2..a2cf416 100644
3+
--- a/lib/boot/shims/src/gc.js.pp
4+
+++ b/lib/boot/shims/src/gc.js.pp
5+
@@ -444,6 +444,50 @@ function h$follow(obj, sp) {
6+
} else if(typeof c.len === 'number' && c.buf instanceof ArrayBuffer) {
7+
TRACE_GC("marking ByteArray");
8+
MARK_OBJ(c);
9+
+ } else if(c instanceof h$FastWeak) {
10+
+ MARK_OBJ(c);
11+
+ if(c.ticket !== null && !IS_MARKED(c.ticket)) {
12+
+ c.ticket = null; // If the ticket isn't reachable, this will let it get cleaned up by the JS gc; if it is reachable, it'll fill this back in
13+
+ }
14+
+ } else if(c instanceof h$FastWeakTicket) {
15+
+ MARK_OBJ(c);
16+
+ if(!IS_MARKED(c.val)) {
17+
+ ADDW(c.val);
18+
+ }
19+
+ if(IS_MARKED(c.weak)) {
20+
+ // In this case, the weak side has been marked first, which means it's been cleared; restore it
21+
+ c.weak.ticket = c;
22+
+ }
23+
+ } else if(c instanceof h$FastWeakBag) {
24+
+ MARK_OBJ(c);
25+
+ var j = 0; // j should always be equal to the number of not-yet-necessarily-dead tickets that have been traversed; this should always be less than or equal to i
26+
+ for(i = 0; i < c.tickets.length; i++) {
27+
+ // Any nulls left in the array prior to checking on the tickets must be tickets that died in the last GC, so we ignore them
28+
+ if(c.tickets[i] !== null) {
29+
+ if(j !== i) {
30+
+ c.tickets[i].pos = j;
31+
+ }
32+
+ if(!IS_MARKED(c.tickets[i])) {
33+
+ // If the ticket isn't reachable, this will let it get cleaned up by the JS gc; if it is reachable, it'll fill this back in
34+
+ c.tickets[j] = null;
35+
+ } else if(j !== i) {
36+
+ // We need to move the item
37+
+ c.tickets[j] = c.tickets[i];
38+
+ } // If it's marked and not moving, don't do anything
39+
+ j++;
40+
+ }
41+
+ }
42+
+ c.tickets.length = j; // Shrink the array if any nulls have been dropped
43+
+ } else if(c instanceof h$FastWeakBagTicket) {
44+
+ MARK_OBJ(c);
45+
+ if(!IS_MARKED(c.val)) {
46+
+ ADDW(c.val);
47+
+ }
48+
+ if(IS_MARKED(c.bag)) {
49+
+ // In this case, the weak side has been marked first, which means it's been cleared; restore it
50+
+ c.bag.tickets[c.pos] = c;
51+
+ }
52+
+
53+
} else if(c instanceof h$Weak) {
54+
MARK_OBJ(c);
55+
} else if(c instanceof h$MVar) {
56+
diff --git a/lib/boot/shims/src/weak.js.pp b/lib/boot/shims/src/weak.js.pp
57+
index 8df313b..d537027 100644
58+
--- a/lib/boot/shims/src/weak.js.pp
59+
+++ b/lib/boot/shims/src/weak.js.pp
60+
@@ -87,3 +87,27 @@ function h$finalizeWeak(w) {
61+
RETURN_UBX_TUP2(r, 1);
62+
}
63+
}
64+
+
65+
+function h$FastWeak(ticket) {
66+
+ this.ticket = ticket;
67+
+ this.m = 0;
68+
+}
69+
+
70+
+function h$FastWeakTicket(val) {
71+
+ this.val = val;
72+
+ this.weak = new h$FastWeak(this);
73+
+ this.m = 0;
74+
+}
75+
+
76+
+function h$FastWeakBag() {
77+
+ this.tickets = [];
78+
+ this.m = 0;
79+
+}
80+
+
81+
+function h$FastWeakBagTicket(bag, val) {
82+
+ this.val = val;
83+
+ this.bag = bag;
84+
+ this.pos = bag.tickets.length;
85+
+ bag.tickets.push(this);
86+
+ this.m = 0;
87+
+};
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{ lib, fetchgit }:
2+
3+
self: super: {
4+
_dep = super._dep or {} // {
5+
textSrc = fetchgit {
6+
url = "https://github.com/dfordivam/text.git";
7+
rev = "126174753ea8e5f45df8fcbba609e3f1c453bf27";
8+
sha256 = "0l7nbln2w77s12fm4ybhi0jsfnxkyiwskfx3b682pfisa6n32rgm";
9+
};
10+
};
11+
12+
ghc = super.ghc.overrideAttrs (drv: {
13+
postUnpack = ''
14+
set -x
15+
(
16+
echo $sourceRoot
17+
cd $sourceRoot
18+
rm -r lib/boot/pkg/text
19+
# unpackFile ${self._dep.textSrc}
20+
# chmod +w text-*
21+
# mv text-* lib/boot/pkg/text
22+
cp --no-preserve=mode -r "${self._dep.textSrc}" lib/boot/pkg/text
23+
unpackFile ${self._dep.ghcjsBaseTextJSStringSrc}
24+
chmod +w ghcjs-base-*
25+
mv ghcjs-base-* lib/boot/pkg/ghcjs-base
26+
unpackFile ${super.dlist.src}
27+
chmod +w dlist-*
28+
mv dlist-* lib/boot/pkg/dlist
29+
unpackFile ${super.vector.src}
30+
chmod +w vector-*
31+
mv vector-* lib/boot/pkg/vector
32+
unpackFile ${super.primitive.src}
33+
chmod +w primitive-*
34+
mv primitive-* lib/boot/pkg/primitive
35+
sed -i 's/ - mtl/ - mtl\n - dlist\n - primitive\n - vector\n - ghcjs-base/' lib/boot/boot.yaml
36+
cat lib/boot/boot.yaml
37+
)
38+
'';
39+
});
40+
41+
dlist = null;
42+
ghcjs-base = null;
43+
primitive = null;
44+
vector = null;
45+
}

haskell-overlays/reflex-packages/dep/cabal-macosx/github.json

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"owner": "reflex-frp",
33
"repo": "reflex",
4-
"branch": "master",
4+
"branch": "release/0.8.2.0",
55
"private": false,
6-
"rev": "86ab4e2b3c41ef521ca1e90e403c0b126ac70f64",
7-
"sha256": "0xpyh7kql3a3yvanm4g7a3jab13llnpmc00ri3zv4w9jafydxm5a"
6+
"rev": "823afd9424234cbe0134051f09a6710e54509cec",
7+
"sha256": "1zh8v28issyh8sww9aw6y4dqd2qql25nrxxzxg9ky0vrwmhw295c"
88
}

0 commit comments

Comments
 (0)