17
Haskell Tooling Whirlwind Steven Shaw @steshaw

Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

Haskell Tooling Whirlwind

Steven Shaw @steshaw

Page 2: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

• Cabal sandboxes on steroids

• Build cache for Cabal/GHC

• Slow build → Fast Build

• Hopefully will be folded into Cabal’

Page 3: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install
Page 4: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install
Page 5: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

• Builds on Halcyon

• GHC → Heroku

• by Miëtek Bak

• @mietek

Page 6: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

Nix• Purely functional, cross-platform package system

• Source-based with binary substitution.

• Immutable, side-by-side versions of packages.

• Easily construct [development] environments with fixed versions of all your dependencies.

• $ nix-shell -p git -p vim -p gcc

Page 7: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

Nix and Haskell• haskellngPackages

• http://wiki.ocharles.org.uk/Nix

Page 8: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

NixOS

• based entirely on Nix package manager

• develop and deploy on the same system.

• Hydra for CI/CD

• NixOps for cloud deployment

Page 9: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

Atom.io• $ apm install language-haskell

• $ apm install ide-haskell

• Enjoy :)

• syntax highlighting

• goto definition

• linting (with ghc-mod)

Page 10: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install
Page 11: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install
Page 12: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

Tech Radar

Page 13: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install
Page 14: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install
Page 15: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install
Page 16: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install
Page 17: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install

References• halcyon.sh

• nixos.org

• atom.io

• atom.io/packages/ide-haskell

• steshaw.org/techradar

• commercialhaskell.com