Compare commits

..

10 Commits

Author SHA1 Message Date
2eb5304977 WIP ghcjs 2018-12-19 00:24:11 +02:00
6455d51d0e stylish-haskell changes 2018-12-15 23:31:30 +02:00
f50311e126 Overrides for ghcjs 2018-11-14 00:20:00 +02:00
1b678e5758 wip 2018-11-13 00:21:20 +02:00
2a53bbfdbb wip 2018-11-12 23:56:30 +02:00
5490065604 wip 2018-11-12 23:40:04 +02:00
f9dbbf8321 ghc 2018-11-12 23:33:12 +02:00
44bc4d8832 Dummy front 2018-11-12 23:27:34 +02:00
2748efb0e8 Build both back and front 2018-11-12 22:59:29 +02:00
f3004eb020 Start building the frontend libs 2018-11-12 22:58:50 +02:00
10 changed files with 38 additions and 91 deletions

View File

@ -8,5 +8,5 @@ before_script:
- mkdir -p ~/.config/nixpkgs - mkdir -p ~/.config/nixpkgs
script: script:
- nix-build ./release.nix --option trusted-public-keys "masser-ebook-manager.cachix.org-1:mtFSkQ2MO5MvjUpulZoFKjKUIa8g8CTcdPVuJaPKS1w= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" --option binary-caches "https://masser-ebook-manager.cachix.org https://cache.nixos.org" -A ghc.backend -A ghc.frontend - nix-build ./release.nix --option trusted-public-keys "masser-ebook-manager.cachix.org-1:mtFSkQ2MO5MvjUpulZoFKjKUIa8g8CTcdPVuJaPKS1w= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" --option binary-caches "https://cache.nixos.org https://masser-ebook-manager.cachix.org" -A ghc.backend -A ghc.frontend
- nix-build ./release.nix --option trusted-public-keys "masser-ebook-manager.cachix.org-1:mtFSkQ2MO5MvjUpulZoFKjKUIa8g8CTcdPVuJaPKS1w= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" --option binary-caches "https://masser-ebook-manager.cachix.org https://cache.nixos.org" -A ghcjs.frontend - nix-build ./release.nix --option trusted-public-keys "masser-ebook-manager.cachix.org-1:mtFSkQ2MO5MvjUpulZoFKjKUIa8g8CTcdPVuJaPKS1w= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" --option binary-caches "https://cache.nixos.org https://masser-ebook-manager.cachix.org" -A ghcjs.frontend

View File

@ -23,7 +23,6 @@ executable backend
, API.Catalogue , API.Catalogue
, API.Channels , API.Channels
, API.Users , API.Users
, Configuration
, Database , Database
, Database.Book , Database.Book
, Database.Channel , Database.Channel
@ -146,4 +145,4 @@ test-suite spec
default-extensions: DeriveGeneric default-extensions: DeriveGeneric
, NoImplicitPrelude , NoImplicitPrelude
, OverloadedStrings , OverloadedStrings
, RecordWildCards , RecordWildCards

View File

@ -13,10 +13,13 @@ extra-source-files: ChangeLog.md
cabal-version: >=1.10 cabal-version: >=1.10
library library
exposed-modules: Data.Versioned exposed-modules: Configuration
, Data.Versioned
-- other-extensions: -- other-extensions:
build-depends: base >=4.10 build-depends: base >=4.10
, classy-prelude , classy-prelude
, dhall
, foreign-store
, generic-lens , generic-lens
, lens , lens
, mtl , mtl
@ -29,19 +32,20 @@ library
, RecordWildCards , RecordWildCards
default-language: Haskell2010 default-language: Haskell2010
-- test-suite spec test-suite spec
-- type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
-- main-is: Spec.hs main-is: Spec.hs
-- hs-source-dirs: src hs-source-dirs: src
-- build-depends: base >=4.10 build-depends: base >=4.10
-- , classy-prelude , classy-prelude
-- , foreign-store , dhall
-- , generic-lens , foreign-store
-- , lens , generic-lens
-- , mtl , lens
-- , text , mtl
-- , transformers , text
-- , validity , transformers
-- , genvalidity-hspec , validity
-- , genvalidity-property , genvalidity-hspec
-- , hspec , genvalidity-property
, hspec

View File

@ -23,4 +23,3 @@ data Config = Config { database :: Pg
instance Interpret Pg instance Interpret Pg
instance Interpret Store instance Interpret Store
instance Interpret Config instance Interpret Config

View File

@ -1,6 +1,12 @@
{ nixpkgs, haskellPackages }: { nixpkgs, haskellPackages }:
let let
jsaddle = nixpkgs.fetchFromGitHub {
owner = "ghcjs";
repo = "jsaddle";
rev = "34fe7d61b3f387b81aa748294ac8d993243f53b4";
sha256 = "0qdh5qdk23vcp1yp910zgw2hs4zpbx9ig25xgaax0iwj2m1ifh5x";
};
miso = nixpkgs.fetchFromGitHub { miso = nixpkgs.fetchFromGitHub {
owner = "dmjio"; owner = "dmjio";
repo = "miso"; repo = "miso";
@ -22,6 +28,8 @@ in
}; };
overrides = self: super: { overrides = self: super: {
generic-lens = nixpkgs.haskell.lib.dontCheck super.generic-lens; generic-lens = nixpkgs.haskell.lib.dontCheck super.generic-lens;
jsaddle-warp = nixpkgs.haskell.lib.dontCheck (super.callPackage (jsaddle + "/jsaddle-warp") {});
jsaddle = super.callPackage (jsaddle + "/jsaddle") {};
miso = miso-jsaddle super; miso = miso-jsaddle super;
# doctest = null; # Not compilable with ghcjs # doctest = null; # Not compilable with ghcjs
# comonad = dontCheck super.comonad; # comonad = dontCheck super.comonad;

View File

@ -23,6 +23,5 @@ executable frontend
, miso , miso
, jsaddle-warp , jsaddle-warp
, mtl , mtl
, common
hs-source-dirs: src hs-source-dirs: src
default-language: Haskell2010 default-language: Haskell2010

View File

@ -1,16 +0,0 @@
diff --git a/lib/boot/shims/src/string.js b/lib/boot/shims/src/string.js
index d82f75a..f16e55a 100644
--- a/lib/boot/shims/src/string.js
+++ b/lib/boot/shims/src/string.js
@@ -780,11 +780,7 @@ function h$throwJSException(e) {
// adding the Exception dictionary
var strVal = e.toString() + '\n' + Array.prototype.join.call(e.stack, '\n');
var someE = MK_SOMEEXCEPTION(HS_JSEXCEPTION_EXCEPTION,
-#ifdef GHCJS_PROF
- MK_JSEXCEPTION(MK_JSVAL(e), h$toHsString(strVal), h$CCS_SYSTEM))
-#else
MK_JSEXCEPTION(MK_JSVAL(e), h$toHsString(strVal))
-#endif
);
return h$throw(someE, true);
}

View File

@ -1,14 +0,0 @@
{ mkDerivation, base, fetchgit, stdenv }:
mkDerivation {
pname = "jsaddle-warp";
version = "0.9.5.0";
src = fetchgit {
url = "https://github.com/ghcjs/jsaddle.git";
rev = "34fe7d61b3f387b81aa748294ac8d993243f53b4";
sha256 = "0qdh5qdk23vcp1yp910zgw2hs4zpbx9ig25xgaax0iwj2m1ifh5x";
};
postUnpack = "sourceRoot+=/jsaddle-warp; echo source root reset to $sourceRoot";
libraryHaskellDepends = [ base ];
description = "Interface for JavaScript that works with GHCJS and GHC";
license = stdenv.lib.licenses.mit;
}

View File

@ -18,17 +18,12 @@ let
(self: super: mapAttrs (name: path: self.callCabal2nix name path {}) packages) (self: super: mapAttrs (name: path: self.callCabal2nix name path {}) packages)
overrides overrides
]; ];
haskellPackages' = haskellPackages.extend overrides'; haskellPackages' = haskellPackages.override { overrides = overrides'; };
packages' = mapAttrs (name: _: haskellPackages'."${name}") packages; packages' = mapAttrs (name: _: haskellPackages'."${name}") packages;
mkShell = name: pkg: mkShell = name: pkg:
let let
n = "${name}-shell"; n = "${name}-shell";
deps = with haskellPackages'; [ deps = haskellPackages'.ghcWithHoogle (pkgs: pkg.buildInputs ++ pkg.propagatedBuildInputs);
ghcid
cabal-install
hasktags
(haskellPackages'.ghcWithHoogle (pkgs: pkg.buildInputs ++ pkg.propagatedBuildInputs))
];
in in
{ {
name = "${n}"; name = "${n}";

View File

@ -2,31 +2,13 @@
let let
jsaddle = nixpkgs.fetchFromGitHub {
owner = "ghcjs";
repo = "jsaddle";
rev = "34fe7d61b3f387b81aa748294ac8d993243f53b4";
sha256 = "0qdh5qdk23vcp1yp910zgw2hs4zpbx9ig25xgaax0iwj2m1ifh5x";
};
config = { config = {
packageOverrides = pkgs: with pkgs.haskell.lib; with pkgs.lib; { packageOverrides = pkgs: with pkgs.haskell.lib; with pkgs.lib; {
haskell = pkgs.haskell // { haskell = pkgs.haskell // {
packages = pkgs.haskell.packages // { packages = pkgs.haskell.packages // {
ghccustom = pkgs.haskell.packages.ghc843.override { ghcjs84 = pkgs.haskell.packages.ghcjs84.override {
overrides = self: super: {
jsaddle-warp = dontCheck (super.callPackage (jsaddle + "/jsaddle-warp") {});
# jsaddle-warp = super.callPackage ./jsaddle-warp-ghcjs.nix {};
jsaddle = dontCheck (super.callPackage (jsaddle + "/jsaddle") {});
};
};
ghcjscustom = pkgs.haskell.packages.ghcjs84.override {
overrides = self: super: { overrides = self: super: {
doctest = null; doctest = null;
comonad = dontCheck (super.comonad);
classy-prelude = dontCheck (super.classy-prelude);
unliftio = dontCheck (super.unliftio);
semigroupoids = dontCheck (super.semigroupoids);
lens = dontCheck (super.lens);
directory-tree = dontCheck (super.directory-tree); directory-tree = dontCheck (super.directory-tree);
http-types = dontCheck (super.http-types); http-types = dontCheck (super.http-types);
tasty-quickcheck = dontCheck (super.tasty-quickcheck); tasty-quickcheck = dontCheck (super.tasty-quickcheck);
@ -37,7 +19,7 @@ let
ghcjsSrc = pkgs.fetchgit { ghcjsSrc = pkgs.fetchgit {
url = "https://github.com/ghcjs/ghcjs.git"; url = "https://github.com/ghcjs/ghcjs.git";
rev = "dc190b1bb2453cfa484124e9f335ee3cad1492f7"; rev = "dc190b1bb2453cfa484124e9f335ee3cad1492f7";
sha256 = "0dh52gj0f3700zfyrhisy44b6y9p1bsawwrmd5pllpdyw21zd9lw"; sha256 = "0dh52aj0f3700zfyrhisy44b6y9p1bsawwrmd5pllpdyw21zd9lw";
fetchSubmodules = true; fetchSubmodules = true;
}; };
}) (drv: { patches = (drv.patches or []) ++ [ ./ghcjs.patch ]; }); }) (drv: { patches = (drv.patches or []) ++ [ ./ghcjs.patch ]; });
@ -53,20 +35,11 @@ let
repo = "nixpkgs"; repo = "nixpkgs";
inherit (pinnedVersion) rev sha256; inherit (pinnedVersion) rev sha256;
}) { inherit config; }; }) { inherit config; };
ghc = import ./default.nix { nixpkgs = pinnedPkgs; haskellPackages = pinnedPkgs.haskell.packages.ghccustom; };
ghcjs = import ./default.nix { nixpkgs = pinnedPkgs; haskellPackages = pinnedPkgs.haskell.packages.ghcjscustom; };
inherit (pinnedPkgs) pkgs; inherit (pinnedPkgs) pkgs;
in in
{ {
inherit ghc ghcjs; ghc = import ./default.nix { nixpkgs = pinnedPkgs; haskellPackages = pinnedPkgs.haskell.packages.ghc843; };
deps = pkgs.buildEnv { ghcjs = import ./default.nix { nixpkgs = pinnedPkgs; haskellPackages = pinnedPkgs.haskell.packages.ghcjs84; };
name = "deps";
paths = [
(pkgs.haskell.packages.ghccustom.ghcWithPackages (_: ghc.backend.buildInputs ++ ghc.backend.propagatedBuildInputs))
(pkgs.haskell.packages.ghcjscustom.ghcWithPackages (_: ghcjs.frontend.buildInputs ++ ghcjs.frontend.propagatedBuildInputs))
];
buildInputs = [ ];
};
} }