Meta tags:
description= A program for developing Haskell projects.
;
author= Stack contributors;
Headings (most frequently used words):
stack, and, visual, studio, code, ghcup, hls, cradle, tips,
Text of the page (most frequently used words):
the (65), stack (53), ghc (44), ghcup (34), that (30), and (24), hls (23), version (21), code (19), for (15), extension (14), install (13), versions (13), can (12), haskell (12), with (11), used (11), has (10), project (10), use (10), built (7), needs (7), configuration (7), path (6), default (6), are (6), from (6), supplied (6), visual (6), studio (6), been (5), must (5), cradle (5), set (5), installed (5), see (5), documentation (5), cabal (5), script (5), windows (5), more (5), configure (5), manages (5), work (4), tool (4), not (4), tools (4), snapshot (4), some (4), building (4), system (4), which (4), manage (4), alternative (4), using (4), than (4), installation (4), msys2 (4), build (4), package (4), commands (4), contributors (3), have (3), tips (3), its (3), user (3), each (3), example (3), necessary (3), further (3), options (3), configured (3), option (3), was (3), also (3), download (3), possible (3), non (3), specific (3), setup (3), there (3), null (3), false (3), messages (3), setting (3), environment (3), run (3), how (3), developing (3), projects (3), get (3), involved (3), files (3), integration (3), topics (3), getting (3), started (3), made (2), before (2), first (2), hie (2), may (2), need (2), root (2), directory (2), file (2), yaml (2), uses (2), different (2), already (2), command (2), one (2), over (2), other (2), available (2), information (2), about (2), disabled (2), being (2), this (2), will (2), when (2), should (2), what (2), while (2), published (2), web (2), page (2), binary (2), most (2), same (2), info (2), start (2), those (2), following (2), process (2), net (2), servicepointmanager (2), securityprotocol (2), invoke (2), scriptblock (2), org (2), empty (2), allow (2), only (2), number (2), ways (2), installing (2), configures (2), customisation (2), upgrade (2), below (2), include (2), popular (2), source (2), editor (2), table (2), contents (2), glossary (2), faq (2), works (2), upgrading (2), maintainers (2), docker (2), location (2), flags (2), welcome (2), github (2), material, mkdocs, copyright, 2015, 2025, back, top, suggested, successfully, activated, reliably, help, generate, such, gen, order, well, ensure, time, references, then, minor, inconvenience, people, primary, benefits, automatically, ensures, lts, these, make, making, enabled, resolved, changed, refer, where, delete, cause, reinstall, distinguish, builds, cached, original, programs, occurred, release, linux, users, debian, fedora, linked, broken, developers, referred, were, incompatibility, led, problems, ghcs, differed, however, cases, selected, distribution, part, provided, downloads, dictionary, mirror, official, distributions, differences, between, toolchain, possibility, ignored, executionpolicy, bypass, scope, force, bor, 3072, create, webrequest, https, www, bootstrap, ps1, usebasicparsing, argumentlist, true, second, argument, powershell, namely, variable, bootstrap_haskell_minimal, unix, like, little, complicated, except, current, requirements, disable, they, identified, above, directly, managed, settings, under, specify, makes, language, server, support, required, recent, supported, capability, rather, duplicate, copy, takes, obtaining, once, way, itself, downgrade, separate, provides, various, useful, but, things, aware, out, coders, history, resources, overview, signing, key, self, hosted, runners, haskellstack, zip, add, maintainer, team, releases, scheme, dev, containers, contributor, guide, lock, azure, travis, shell, auto, completion, debugging, standard, initialization, nix, interpreter, specification, directories, scripts, global, directive, variables, upload, update, unpack, uninstall, test, templates, sdist, runhaskell, runghc, repl, query, purge, new, list, init, ide, hpc, hoogle, haddock, ghci, exec, eval, dot, config, clean, bench, conclusion, interactively, executing, locations, multi, targets, synonyms, databases, existing, your, description, hello, world, initializing, search, skip, content,
Text of the page (random words):
stack and visual studio code stack skip to content stack stack and visual studio code initializing search github welcome setting up getting started commands configure topics get involved faq glossary more stack github welcome setting up getting started getting started 1 a hello world example 2 package description 3 project configuration 4 building your project 5 building existing projects 6 installed package databases 7 stack build synonyms 8 stack build targets 9 multi package projects 10 cabal flags and ghc options 11 locations used by stack 12 executing commands 13 using ghc interactively 14 stack configuration 15 in conclusion commands commands bench build clean config dot docker eval exec ghc ghci haddock hoogle hpc ide init install list ls new path purge query repl run runghc runhaskell script sdist setup templates test uninstall unpack update upgrade upload configure configure environment variables configuration files configuration files project specific configuration non project specific configuration the include directive global flags and options customisation scripts topics topics stack root stack work directories stack environment snapshot location package location snapshot specification stack yaml vs a cabal file script interpreter docker integration nix integration non standard project initialization building ghc from source debugging editor integration stack and visual studio code stack and visual studio code table of contents ghcup hls cradle tips developing on windows shell auto completion ci travis ci azure ci lock files haskell and c code get involved get involved contributors contributors contributor s guide dev containers maintainers maintainers version scheme releases maintainer team process add ghc version upgrading msys2 upgrading 7 zip haskellstack org self hosted runners signing key how stack works how stack works build overview faq glossary more more other resources version history table of contents ghcup hls cradle tips stack and visual studio code visual studio code vs code is a popular source code editor and haskell is an extension for vs code that is popular with haskell coders the haskell extension can be used with stack but there are some things to be aware of set out below ghcup the separate ghcup project provides a tool that can be used to install various tools useful for developing haskell projects those tools include ghc hls see further below msys2 on windows see the developing on windows documentation stack and cabal the tool stack itself can be used to install ghc and msys2 stack can also be used to upgrade or downgrade stack ghcup can configure stack so that if stack needs a version of ghc ghcup takes over obtaining and installing that version by default the script to install ghcup which can be run more than once configures stack in that way for further information about how ghcup configures stack see the ghc installation customisation documentation on windows ghcup has the capability of using the stack supplied msys2 rather than installing a duplicate copy hls the vs code extension makes use of hls the haskell language server to work hls has to be built with the same version of ghc that it will support that is a version of hls is required for each version of ghc in use it is possible that the most recent versions of ghc are not supported by hls vs code with the haskell extension can be configured in a number of ways ghcup manages hls user manages hls the vs code extension s settings under haskell manage hls allow a user to specify that the extension should use ghcup to download and install the versions of hls that it needs if ghcup manages versions of hls versions of ghc can be managed in a number of ways stack manages ghc using ghcup stack manages ghc directly stack uses a ghcup supplied ghc as identified above ghcup can configure stack to use ghcup to manage versions of ghc it is possible to install ghcup so that it is empty except for the current version of hls allow the vs code extension to use ghcup to manage hls requirements only and to disable messages from the extension on start up that installation of ghc cabal the tool and or stack are also necessary they are not if only stack is being used to install a version of ghcup that is empty is a little more complicated than a default installation of ghcup unix like windows the following environment variable must be set before ghcup s installation sh script is run bootstrap_haskell_minimal the second argument to the powershell script must be set to false namely set executionpolicy bypass scope process force system net servicepointmanager securityprotocol system net servicepointmanager securityprotocol bor 3072 invoke command scriptblock scriptblock create invoke webrequest https www haskell org ghcup sh bootstrap haskell ps1 usebasicparsing argumentlist true false there is the possibility of false messages from the extension on start up that need to be ignored those messages can be disabled by setting the following for the vs code extension haskell toolchain ghc null cabal null stack null there can be no differences between the version of ghc that the ghcup supplied hls was built with and the version that stack has installed for the most part the versions of hls provided by ghcup are built with the same versions of ghc that stack downloads from its default setup info dictionary see the setup info non project specific configuration option documentation stack s default is to mirror the official binary distributions published by ghc however in some cases it is possible that a ghcup supplied and ghcup selected hls has been built with a different binary distribution of ghc than the one which stack has installed when have the ghcup and stack supplied ghcs differed an example occurred with the release of ghc 9 0 2 for some linux users debian 9 and fedora 27 the version of ghc 9 0 2 linked on ghc s download web page was broken the ghc developers made alternative 9 0 2a versions available for a while stack referred to the versions published by ghc on its download web page while the ghcup supplied versions of hls were built using alternative versions this incompatibility led to problems it was resolved by stack s default also being changed to refer to the 9 0 2a versions where stack has already installed ghc 9 0 2 it is necessary to delete ghc 9 0 2 from the stack path programs directory this will cause stack to reinstall the alternative version when it first needs ghc 9 0 2 stack should distinguish what it builds with the alternative from what it has built and cached with the original ghc 9 0 2 ghcup is used to manage versions of ghc and stack is configured to use the version of ghc on the path that is ghcup is used to install a version of ghc on the path stack is configured to make use of that version by making use of stack s install ghc option which needs to be disabled and stack s system ghc option which needs to be enabled for further information about these options see the install ghc documentation and the system ghc documentation each time that a snapshot is used that references a different version of ghc then ghcup must be used to install it if ghcup has not already installed that version for example to use snapshot lts 24 43 ghc 9 10 3 the command ghcup install ghc 9 10 3 must have been used to install ghc 9 10 3 that may be a minor inconvenience for some people as one the primary benefits of stack over other tools for building haskell code has been that stack automatically ensures that the necessary version of ghc is available by default the vs code extension uses tools that are in the path if the vs code extension is set not to use ghcup its user needs to ensure that each version of hls that the extension needs is on the path cradle hls may need a cradle an hie yaml file in the project s root directory in order to work well the gen hie tool can help generate such a cradle tips it has been suggested that a project must have been successfully built before the vs code extension and hls is first activated on the project for hls to work reliably back to top copyright c 2015 2025 stack contributors made with material for mkdocs
|