€cdocutils.nodes document q)q}q(U nametypesq}qXnix-style local buildsqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUnix-style-local-buildsqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqXJ/home/refold/code/haskell/cabal-2.4/Cabal/doc/nix-local-build-overview.rstqUtagnameqUsectionqU attributesq}q(Udupnamesq]Uclassesq]Ubackrefsq ]Uidsq!]q"haUnamesq#]q$hauUlineq%KUdocumentq&hh]q'(cdocutils.nodes title q()q)}q*(hXNix-style Local Buildsq+hhhhhUtitleq,h}q-(h]h]h ]h!]h#]uh%Kh&hh]q.cdocutils.nodes Text q/XNix-style Local Buildsq0…q1}q2(hh+hNh%Nh&hhh)ubaubcdocutils.nodes paragraph q3)q4}q5(hXlNix-style local builds are a new build system implementation inspired by Nix. The Nix-style local build system is commonly called "new-build" for short after the ``cabal new-*`` family of commands that control it. However, those names are only temporary until Nix-style local builds become the default. This is expected to happen soon. For those who do not wish to use the new functionality, the classic project style will not be removed immediately, but these legacy commands will require the usage of the ``v1-`` prefix as of Cabal 3.0 and will be removed in a future release. For a future-proof way to use these commands in a script or tutorial that anticipates the possibility of another UI paradigm being devised in the future, there are also ``v2-`` prefixed versions that will reference the same functionality until such a point as it is completely removed from Cabal.hhhhhU paragraphq6h}q7(h]h]h ]h!]h#]uh%Kh&hh]q8(h/X¦Nix-style local builds are a new build system implementation inspired by Nix. The Nix-style local build system is commonly called “new-build†for short after the q9…q:}q;(hX¢Nix-style local builds are a new build system implementation inspired by Nix. The Nix-style local build system is commonly called "new-build" for short after the hNh%Nh&hhh4ubcdocutils.nodes literal q<)q=}q>(hX``cabal new-*``h}q?(h]h]h ]h!]h#]uhh4h]q@h/X cabal new-*qA…qB}qC(hUhh=ubahUliteralqDubh/XJ family of commands that control it. However, those names are only temporary until Nix-style local builds become the default. This is expected to happen soon. For those who do not wish to use the new functionality, the classic project style will not be removed immediately, but these legacy commands will require the usage of the qE…qF}qG(hXJ family of commands that control it. However, those names are only temporary until Nix-style local builds become the default. This is expected to happen soon. For those who do not wish to use the new functionality, the classic project style will not be removed immediately, but these legacy commands will require the usage of the hNh%Nh&hhh4ubh<)qH}qI(hX``v1-``h}qJ(h]h]h ]h!]h#]uhh4h]qKh/Xv1-qL…qM}qN(hUhhHubahhDubh/Xë prefix as of Cabal 3.0 and will be removed in a future release. For a future-proof way to use these commands in a script or tutorial that anticipates the possibility of another UI paradigm being devised in the future, there are also qO…qP}qQ(hXë prefix as of Cabal 3.0 and will be removed in a future release. For a future-proof way to use these commands in a script or tutorial that anticipates the possibility of another UI paradigm being devised in the future, there are also hNh%Nh&hhh4ubh<)qR}qS(hX``v2-``h}qT(h]h]h ]h!]h#]uhh4h]qUh/Xv2-qV…qW}qX(hUhhRubahhDubh/Xx prefixed versions that will reference the same functionality until such a point as it is completely removed from Cabal.qY…qZ}q[(hXx prefixed versions that will reference the same functionality until such a point as it is completely removed from Cabal.hNh%Nh&hhh4ubeubh3)q\}q](hXMNix-style local builds combine the best of non-sandboxed and sandboxed Cabal:q^hhhhhh6h}q_(h]h]h ]h!]h#]uh%Kh&hh]q`h/XMNix-style local builds combine the best of non-sandboxed and sandboxed Cabal:qa…qb}qc(hh^hNh%Nh&hhh\ubaubcdocutils.nodes enumerated_list qd)qe}qf(hUhhhhhUenumerated_listqgh}qh(UsuffixqiU.h!]h ]h]UprefixqjUh]h#]UenumtypeqkUarabicqluh%Kh&hh]qm(cdocutils.nodes list_item qn)qo}qp(hXÿLike sandboxed Cabal today, we build sets of independent local packages deterministically and independent of any global state. new-build will never tell you that it can't build your package because it would result in a "dangerous reinstall." Given a particular state of the Hackage index, your build is completely reproducible. For example, you no longer need to compile packages with profiling ahead of time; just request profiling and new-build will rebuild all its dependencies with profiling automatically. hhehhhU list_itemqqh}qr(h]h]h ]h!]h#]uh%Nh&hh]qsh3)qt}qu(hXþLike sandboxed Cabal today, we build sets of independent local packages deterministically and independent of any global state. new-build will never tell you that it can't build your package because it would result in a "dangerous reinstall." Given a particular state of the Hackage index, your build is completely reproducible. For example, you no longer need to compile packages with profiling ahead of time; just request profiling and new-build will rebuild all its dependencies with profiling automatically.qvhhohhhh6h}qw(h]h]h ]h!]h#]uh%Kh]qxh/XLike sandboxed Cabal today, we build sets of independent local packages deterministically and independent of any global state. new-build will never tell you that it can’t build your package because it would result in a “dangerous reinstall.†Given a particular state of the Hackage index, your build is completely reproducible. For example, you no longer need to compile packages with profiling ahead of time; just request profiling and new-build will rebuild all its dependencies with profiling automatically.qy…qz}q{(hhvhhtubaubaubhn)q|}q}(hX-Like non-sandboxed Cabal today, builds of external packages are cached in ``~/.cabal/store``, so that a package can be built once, and then reused anywhere else it is also used. No need to continually rebuild dependencies whenever you make a new sandbox: dependencies which can be shared, are shared. hhehhhhqh}q~(h]h]h ]h!]h#]uh%Nh&hh]qh3)q€}q(hX,Like non-sandboxed Cabal today, builds of external packages are cached in ``~/.cabal/store``, so that a package can be built once, and then reused anywhere else it is also used. No need to continually rebuild dependencies whenever you make a new sandbox: dependencies which can be shared, are shared.hh|hhhh6h}q‚(h]h]h ]h!]h#]uh%Kh]qƒ(h/XJLike non-sandboxed Cabal today, builds of external packages are cached in q„…q…}q†(hXJLike non-sandboxed Cabal today, builds of external packages are cached in hh€ubh<)q‡}qˆ(hX``~/.cabal/store``h}q‰(h]h]h ]h!]h#]uhh€h]qŠh/X~/.cabal/storeq‹…qŒ}q(hUhh‡ubahhDubh/XÐ, so that a package can be built once, and then reused anywhere else it is also used. No need to continually rebuild dependencies whenever you make a new sandbox: dependencies which can be shared, are shared.qŽ…q}q(hXÐ, so that a package can be built once, and then reused anywhere else it is also used. No need to continually rebuild dependencies whenever you make a new sandbox: dependencies which can be shared, are shared.hh€ubeubaubeubh3)q‘}q’(hX¤Nix-style local builds were first released as beta in cabal-install 1.24. They currently work with all versions of GHC supported by that release: GHC 7.0 and later.q“hhhhhh6h}q”(h]h]h ]h!]h#]uh%K"h&hh]q•h/X¤Nix-style local builds were first released as beta in cabal-install 1.24. They currently work with all versions of GHC supported by that release: GHC 7.0 and later.q–…q—}q˜(hh“hNh%Nh&hhh‘ubaubh3)q™}qš(hX†Some features described in this manual are not implemented. If you need them, please give us a shout and we'll prioritize accordingly.q›hhhhhh6h}qœ(h]h]h ]h!]h#]uh%K%h&hh]qh/XˆSome features described in this manual are not implemented. If you need them, please give us a shout and we’ll prioritize accordingly.qž…qŸ}q (hh›hNh%Nh&hhh™ubaubcdocutils.nodes compound q¡)q¢}q£(hUhhhhhUcompoundq¤h}q¥(h]h]q¦Utoctree-wrapperq§ah ]h!]h#]uh%K+h&hh]q¨csphinx.addnodes toctree q©)qª}q«(hUhh¢hhhUtoctreeq¬h}q­(Unumberedq®KU includehiddenq¯‰hXnix-local-build-overviewq°Ucaptionq±NUglobq²‰h!]h ]U titlesonlyq³‰h]h]h#]Uentriesq´]qµNXnix-local-buildq¶†q·aUhiddenq¸‰U includefilesq¹]qºh¶aUmaxdepthq»Jÿÿÿÿuh%K*h]ubaubeubahUU transformerq¼NU footnote_refsq½}q¾Urefnamesq¿}qÀUsymbol_footnotesqÁ]qÂUautofootnote_refsqÃ]qÄUsymbol_footnote_refsqÅ]qÆU citationsqÇ]qÈh&hU current_lineqÉNUtransform_messagesqÊ]qËUreporterqÌNUid_startqÍKU autofootnotesqÎ]qÏU citation_refsqÐ}qÑUindirect_targetsqÒ]qÓUsettingsqÔ(cdocutils.frontend Values qÕoqÖ}q×(Ufootnote_backlinksqØKUrecord_dependenciesqÙNU language_codeqÚUenqÛU tracebackq܈Upep_referencesqÝNUstrip_commentsqÞNU toc_backlinksqßUentryqàU rfc_base_urlqáUhttps://tools.ietf.org/html/qâU datestampqãNU report_levelqäKUsmartquotes_localesqåNU _destinationqæNU halt_levelqçKU strip_classesqèNh,NUerror_encoding_error_handlerqéUbackslashreplaceqêUdebugqëNUembed_stylesheetqì‰Uoutput_encoding_error_handlerqíUstrictqîU sectnum_xformqïKUdump_transformsqðNU docinfo_xformqñKUwarning_streamqòNUpep_file_url_templateqóUpep-%04dqôUexit_status_levelqõKUconfigqöNUstrict_visitorq÷NUcloak_email_addressesqøˆUtrim_footnote_reference_spaceqù‰UenvqúNUdump_pseudo_xmlqûNUexpose_internalsqüNUsectsubtitle_xformqý‰U source_linkqþNUrfc_referencesqÿNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUUcharacter_level_inline_markupr‰U tab_widthrKUerror_encodingr UUTF-8r U_sourcer hUgettext_compactr ˆU generatorr NUdump_internalsrNU smart_quotesrˆU pep_base_urlrU https://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrhîUauto_id_prefixrUidrUdoctitle_xformr‰Ustrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrˆU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}rhhsUsubstitution_namesr }r!hh&h}r"(h]h!]h ]Usourcehh]h#]uU footnotesr#]r$Urefidsr%}r&ub.