You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description="Provides functions available in later versions of @base@ to\na wider range of compilers, without requiring you to use CPP\npragmas in your code. See the\n<https://github.com/haskell-compat/base-compat/blob/master/base-compat/README.markdown README>\nfor what is covered. Also see the\n<https://github.com/haskell-compat/base-compat/blob/master/base-compat/CHANGES.markdown changelog>\nfor recent changes.\n\nNote that @base-compat@ does not add any orphan instances.\nThere is a separate package,\n@<http://hackage.haskell.org/package/base-orphans base-orphans>@,\nfor that.\n\nIn addition, @base-compat@ does not backport any data types\nor type classes. See\n@<https://github.com/haskell-compat/base-compat/blob/master/base-compat/README.markdown#data-types-and-type-classes this section of the README>@\nfor more info.\n\n@base-compat@ is designed to have zero dependencies. For a\nversion of @base-compat@ that depends on compatibility\nlibraries for a wider support window, see the\n@<http://hackage.haskell.org/package/base-compat-batteries base-compat-batteries>@\npackage. Most of the modules in this library have the same\nnames as in @base-compat-batteries@ to make it easier to\nswitch between the two. There also exist versions of each\nmodule with the suffix @.Repl@, which are distinct from\nanything in @base-compat-batteries@, to allow for easier\nuse in GHCi.";
description="Provides functions available in later versions of @base@ to\na wider range of compilers, without requiring you to use CPP\npragmas in your code.\n\nThis package provides the same API as the\n@<http://hackage.haskell.org/package/base-compat base-compat>@\nlibrary, but depends on compatibility packages\n(such as @semigroups@) to offer a wider support window than\n@base-compat@, which has no dependencies. Most of the modules\nin this library have the same names as in @base-compat@\nto make it easier to switch between the two. There also exist\nversions of each module with the suffix @.Repl.Batteries@,\nwhich are distinct from anything in @base-compat@, to allow\nfor easier use in GHCi.\n\nSee\n@<https://github.com/haskell-compat/base-compat/blob/master/base-compat/README.markdown#dependencies here>@\nfor a more comprehensive list of differences between\n@base-compat@ and @base-compat-batteries@.";
synopsis="Backwards-compatible orphan instances for base";
22
+
description="@base-orphans@ defines orphan instances that mimic instances available in\nlater versions of @base@ to a wider (older) range of compilers.\n@base-orphans@ does not export anything except the orphan instances\nthemselves and complements @<http://hackage.haskell.org/package/base-compat\nbase-compat>@.\n\nSee the README for what instances are covered:\n<https://github.com/haskell-compat/base-orphans#readme>.\nSee also the\n<https://github.com/haskell-compat/base-orphans#what-is-not-covered what is not covered>\nsection.";
description="@blank-canvas@ is a Haskell binding to the complete\n<https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API HTML5 Canvas API>.\n@blank-canvas@ allows Haskell users to write, in Haskell,\ninteractive images onto their web browsers. @blank-canvas@\ngives the user a single full-window canvas, and provides\nmany well-documented functions for rendering\nimages.\n\n@\n{-# LANGUAGE OverloadedStrings #-}\nmodule Main where\nimport Graphics.Blank -- import the blank canvas\n\nmain = blankCanvas 3000 $ \\\\ context -> do -- start blank canvas on port 3000\n  send context $ do -- send commands to this specific context\n    moveTo(50,50)\n    lineTo(200,100)\n    lineWidth 10\n    strokeStyle \\\"red\\\"\n    stroke() -- this draws the ink into the canvas\n@\n\n<<https://github.com/ku-fpg/blank-canvas/wiki/images/Red_Line.png>>\n\nFor more details, read the <https://github.com/ku-fpg/blank-canvas/wiki blank-canvas wiki>.\n";
description="If you have a bunch of packages you may want to compile or recompile,\nthen you need an order of compilation that meets the dependencies.\nGiven a number of cabal package files,\nthis program reads all those files\nand emits them topologically sorted according to their dependencies.\nThis way you can compile many packages at once,\nsay if a very low-level package has changed.\n\nFor compiling a couple of packages from their local darcs repositories\nin the right order, you may run something like\n\n> for dir in `find . -name \"*.cabal\" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir && cabal install); done\n\nNote that cabal-install does this automatically since version 0.10\nwhen you call it will multiple directory names as arguments.\nHowever, when the constraint solver in cabal-install fails\nyou may still use cabal-sort for an automated build.\n\nFor uploading a set of packages to Hackage in the right order\nyou may run\n\n> for dir in `find . -name \"*.cabal\" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir && rm dist/*.tar.gz && cabal sdist && cabal upload dist/*.tar.gz); done\n\nSometimes you have to inspect a number of packages manually,\ne.g. in order to adapt your packages to a new GHC version.\nIn this case I found it useful to run\n\n> for dir in `find . -name \"*.cabal\" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir; bash); done\n\nThis way you start a local shell for every package.\nThen you can easily access commands in the shell history\nthat you already run for previous packages,\ne.g. @editor *.cabal@.\nAfter you finished a package,\nyou switch to the next package\nsimply by leaving the shell by calling @exit@.\n\nProblem 1: Given packages A, B, C,\nwhere C depends on B and B depends on A,\nand you call\n\n> cabal-sort C.cabal A.cabal\n\nthen the emitted order of packages may be wrong,\nbecause cabal-sort does not get to know the dependency of C on B.\nEven if the order is correct,\nB.cabal is missing in the output\nand thus the list of cabal files cannot immediately be used\nfor a sequence of cabal-install runs.\n\nProblem 2: We ignore flags and merge all dependencies.\nThis may lead to dependency cycles that cannot occur for any flag assignment.\n\nYou also have options @--parallel@ and @--makefile@\nthat support parallel compilation.\nThe first option is for manual parallelization\nand the second one allows you to compile parallelly using\n@make@'s @-j@/@--jobs@ option.\n\nThere is a second program called @ghc-pkg-dep@\nthat finds recursively all packages that a set of packages depends on.\nDuplicates are eliminated and the packages are given topologically sorted,\nsuch that you can use this for recompilation of the packages.\nThe packages must already be registered with @ghc-pkg@.\n\n> ghc-pkg-dep pkgA-0.1 pkgB-2.3 pkgC-0.1.2\n\nOn GHC versions before 7.0 ghc-pkg runs quite slowly.\nIn order to not get bored you may run the program with @--verbose=2@ option.\n\nRelated packages: @rpmbuild-order@";
0 commit comments