halive alternatives and similar packages
Based on the "Development" category.
Alternatively, view halive alternatives based on common mentions on social networks and blogs.
ihaskell10.0 5.7 halive VS ihaskellA Haskell kernel for the Jupyter project.
hadolint10.0 6.8 halive VS hadolintDockerfile linter, validate inline bash, written in Haskell
ShellCheck10.0 8.2 halive VS ShellCheckShellCheck, a static analysis tool for shell scripts
stack10.0 6.0 halive VS stackThe Haskell Tool Stack
niv9.9 2.1 halive VS nivEasy dependency management for Nix projects
ormolu9.9 6.6 halive VS ormoluA formatter for Haskell source code
ghci-ng9.9 0.4 halive VS ghci-ngNext generation GHCi
leksah9.9 2.5 halive VS leksahHaskell IDE
ghcide9.9 9.0 halive VS ghcideA library for building Haskell IDE tooling
hie-core9.9 9.9 halive VS hie-coreThe Daml smart contract language
ghc-mod9.9 0.0 halive VS ghc-modHappy Haskell Programming
ghcid9.9 0.0 halive VS ghcidVery low feature GHCi based IDE
haddock-api9.9 7.4 halive VS haddock-apiHaskell Documentation Tool
intero9.9 0.4 halive VS interoComplete interactive development program for Haskell
haddock9.9 7.4 halive VS haddockHaskell Documentation Tool
hlint9.9 8.6 halive VS hlintHaskell source code suggestions
hoogle9.9 4.0 halive VS hoogleHaskell API search engine
shake9.9 0.0 halive VS shakeShake build system
hpack9.8 5.0 halive VS hpackhpack: A modern format for Haskell packages
retrie9.8 1.6 halive VS retrieRetrie is a powerful, easy-to-use codemodding tool for Haskell.
cabal-install-parsers9.8 5.4 halive VS cabal-install-parsersScripts and instructions for using CI services (e.g. Travis CI or Appveyor) with multiple GHC configurations
stan9.8 4.0 halive VS stan🕵️ Haskell STatic ANalyser
criterion9.8 5.0 halive VS criterionA powerful but simple library for measuring the performance of Haskell code.
structured-haskell-modeStructured editing minor mode for Haskell in Emacs
shelly9.8 2.5 halive VS shellyHaskell shell scripting
haskell-lsp9.8 5.9 halive VS haskell-lspHaskell library for the Microsoft Language Server Protocol
hindent9.8 6.0 halive VS hindentHaskell pretty printer
H9.8 0.0 halive VS HThe full power of R in Haskell.
stgi9.8 0.0 halive VS stgiA user-centric visual STG implementation to help understand GHC/Haskell's execution model.
inline-c9.7 3.5 halive VS inline-cWrite Haskell source files including C code inline. No FFI required.
inline-java9.7 0.0 halive VS inline-javaHaskell/Java interop via inline Java code in Haskell modules.
gi-atk9.7 0.0 halive VS gi-atkGenerate Haskell bindings for GObject-Introspection capable libraries
happy9.7 1.0 halive VS happyThe Happy parser generator for Haskell
alex9.7 2.8 halive VS alexA lexical analyser generator for Haskell
nixfmt9.7 1.0 halive VS nixfmtA formatter for Nix code
elm-make9.7 0.0 halive VS elm-makeA build tool for Elm projects
curryrs9.7 0.0 halive VS curryrsBridge the gap between Haskell and Rust
gtk2hs-buildtools9.7 0.0 halive VS gtk2hs-buildtoolsGUI library for Haskell based on GTK+
fourmolu9.6 8.8 halive VS fourmoluA fourk of ormolu that uses four space indentation and allows arbitrary configuration. Don't like it? PRs welcome!
c2hs9.6 1.6 halive VS c2hsc2hs is a pre-processor for Haskell FFI bindings to C libraries
lit9.6 0.0 halive VS litA modern tool for literate programming
scion9.6 0.0 halive VS scionOLD, DEPRECATED: Use this instead https://github.com/haskell/haskell-ide-engine
hie-bios9.6 5.8 halive VS hie-biosSet up a GHC API session for various Haskell Projects
lambdabot9.6 0.0 halive VS lambdabotA friendly IRC bot and apprentice coder, written in Haskell.
git-gpush9.6 0.0 halive VS git-gpushMore intelligent push-to-GitHub utility.
lambdabot-core9.6 0.0 halive VS lambdabot-coreA friendly IRC bot and apprentice coder, written in Haskell.
graphmod9.5 2.1 halive VS graphmodA utility for displaying the module dependencies of Haskell programs.
codex9.5 0.0 halive VS codexA ctags file generator for cabal/stack project dependencies.
Access the most powerful time series database as a service
Do you think we are missing an alternative of halive or a related project?
██╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗███████╗ ██║ ██║██╔══██╗██║ ██║██║ ██║██╔════╝ ███████║███████║██║ ██║██║ ██║█████╗ ██╔══██║██╔══██║██║ ██║╚██╗ ██╔╝██╔══╝ ██║ ██║██║ ██║███████╗██║ ╚████╔╝ ███████╗ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚══════╝
Live recompiler for Haskell
Halive uses the GHC API to instantly recompile and reload your code any time you change it.
stack install halive
halive <path/to/mymain.hs> <extra-include-dirs>
Any time you change a file in the current directory or its subdirectories,
halive will recompile and rerun the
main function in the file you gave it.
If the program is long-running (e.g. a daemon, GUI or game loop) it will be killed and restarted. Learn how to maintain state in the next section.
Try a live-coding GL demo by running:
# Grab the demo package and install the demo's dependencies - only need to do this once stack unpack halive cd halive-0.1.5 stack build --test --no-run-tests # Now run Halive halive demo/Main.hs
Changing values in
Green.hs and saving should live-update the program.
Keeping values alive
To keep state alive, import
Halive.Utils and wrap
your value in
reacquire along with a unique identifier, like:
win <- reacquire "win" (setupGLFW "HotGLFW" 640 480)
to only create the resource the first time you run the program, and then reuse it on subsequent recompilations.
You can see this in action in
Thanks to Chris Done's
library for enabling this.
Watch custom file types for changes
By default, Halive will reload your code when files with the following extensions change:
If you have any other file type that you'd like to be watched by Halive, use the
halive app/Main.hs -f html -f hamlet
Passing command-line arguments
To use Halive with haskell code that is expecting command-line arguments,
separate the arguments to Halive and the arguments to the app with a
halive <path/to/mymain.hs> <extra-include-dirs> -- <args-to-myapp>
You can pass
-c) to Halive to compile to faster object code.
This will be slower to recompile but faster to run.
Creating, updating, and deleting modules in the include path should work fine during a Halive session.
Halive supports Stack projects and Cabal sandboxes; if run within a directory containing a stack.yaml or cabal.sandbox.config file it will use the appropriate package databases when running the target.
Halive works nicely with either batch-processing or run-loop type programs — if the program finishes, it will be restarted on next save, and if it's still running, it will be killed and restarted on save.
To kill Halive during run-loop type programs, you may need to hold down Ctrl-C to get GHC to recognize the double-Control-C-kill sequence.
Halive works on Windows, Mac, and Linux
As a Library
Halive can also be integrated into your own project as a library in a few lines of code. See
test/TestSubHalive.hs for an example.
IMPORTANT: You must link your binary with
ghc-options: -dynamic for this to work! Otherwise you'll get mysterious linking errors on Mac and Linux.
If Halive with GLFW segfaults on windows, try
git clone -b win-halive-fix http://github.com/lukexi/bindings-GLFW and adding the folder you cloned it to to your project's
stack.yaml in the