Hi, thanks for your help, Thomas and Philip, but I would have two further questions.
- What should be exported in /nix/store/<current-ghc-hash>/bin/ghc ? My ghc wrapper only looks like: ''' #! /nix/store/...--bash-4.2-p45/bin/bash -e exec /nix/store/...-ghc-7.6.3/bin/ghc $(/nix/store/...-ghc-get-packages.sh 7.6.3 "$(dirname $0)") "${extraFlagsArray[@]}" "$@" ''' - '/nix/store/...ghc-<version>-wrapper/lib/ghc-<version>/package.conf.d' seems to contain only configurations for a few standard modules. Should all packages which are installed on my system show up in there? Again, many thanks! Thomas On 06/18/2014 02:45 PM, Philip Carlsen wrote: > IIRC, issuing: > > $(grep export /nix/store/<your-current-ghc-hash>/bin/ghc) > > (or maybe ~/.nix-profile/bin/ghc will work as well if you have your > haskell tools in your home profile) > > in your working shell sets NIX-specific environment variables that the > ghc api uses to locate the package database by sourcing the wrapper > code around ghc. Actually, hdevtools should probably just be wrapped > similarly itself, though I think there might be some problems with > that (not that I remember right now). > > I'm using hdevtools myself, and if this is insufficient to get it > working I might be forgetting some part of my setup. > > Now, for haskell development in general I can recommend making shell > environments per haskell project you develop using the myEnvFun (see > https://nixos.org/wiki/Howto_develop_software_on_nixos) > I have a file with something along the lines of: > > A general dev-env.nix: > ----------------- > > # This nix environment contains all the tools used in the process of > developing > # Because each package has its own dependencies, this file provides a > function > # for creating environments, rather than a concrete environment. > # envName :: String -- The suffix of the name of the resulting > environment. > # hsEnvDeps :: HsPkgs -> [CabalNix] -- the dependencies of the package > being > # developed in this environment. > { envName, hsEnvDeps } : > let > pkgs = import <nixpkgs> {}; > hsEnv = pkgs.haskellPackages.ghcWithPackagesOld (hsPkgs : ([ > hsPkgs.hlint > hsPkgs.hdevtools > hsPkgs.hasktags > ] ++ (hsEnvDeps hsPkgs))); > in > pkgs.myEnvFun { > name = envName; > buildInputs = with pkgs; [ > binutils > coreutils > ctags > vimHugeX > zsh > hsEnv > ]; > shell = "${pkgs.zsh.outPath}/bin/zsh"; > extraCmds = '' > $(grep export ${hsEnv.outPath}/bin/ghc) > ''; > } > > ...And a project-env.nix file for each project: > ----------------------------------------------------------- > let > envFun = import ./dev-env.nix; > projectCabal = import ./cabal.nix; > in > envFun { > envName = "myproject"; > hsEnvDeps = hsPkgs : > (let > deriv = hsPkgs.callPackage projectCabal (rec { > # satisfy dependencies not in hsPkgs by adding them here. > }); > in deriv.nativeBuildInputs ++ deriv.propagatedNativeBuildInputs); > } > > And 'cabal.nix' being the file output by the cabal2nix tool applied to > your cabal file. > > Then just issuing > > $ nix-build project-env.nix > $ ./result/bin/load-env-myproject > > gives you a completely selfcontained, replicatable development > environment where everything is wired to the same package database. > (Except for the vim plugins for hdevtools, syntastic etc, which I have > yet to figure out how to include in my nix expression. So for the time > being these should be installed separately in ~/.vim) > > > 2014-06-18 11:11 GMT+02:00 Thomas Strobel <ts...@cam.ac.uk > <mailto:ts...@cam.ac.uk>>: > > Hi! > > I've got a question for those using Haskell under NixOS. I'm trying to > use hdevtools to check my Haskell source file, but hdevtools does not > find any modules. ghc-pkg does, as does ghc-mod. From what I have read > it might be necessary to set some environment variables. > Can someone maybe give me an example of how to use hdevtools under > NixOS? > > Many thanks in advance, > Thomas > _______________________________________________ > nix-dev mailing list > nix-dev@lists.science.uu.nl <mailto:nix-dev@lists.science.uu.nl> > http://lists.science.uu.nl/mailman/listinfo/nix-dev > >
_______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev