X-Git-Url: https://git.njae.me.uk/?p=advent-of-code-19.git;a=blobdiff_plain;f=README.html;h=dd8744b070a5ed6d51a9133c11a0a9e8dc581d16;hp=4680985b3e88c2857a65071527aa1009c9f59821;hb=d5e7b65eb2a47c9142530adfae52f30930cbf6ae;hpb=6d3d9662f4481a1dae36c7ab9705b376bc7c7025 diff --git a/README.html b/README.html index 4680985..dd8744b 100644 --- a/README.html +++ b/README.html @@ -20,15 +20,15 @@
$ sudo aptitude install haskell-platform haskell-stack

), then updgrade with

 stack upgrade --binary-only
-

as the version in the Ubuntu repos is too old to work with current Haskell Stack package sets. ##

+

as the version in the Ubuntu repos is too old to work with current Haskell Stack package sets.

Creating the repository and project

Create the repository as normal: create the project in Gitolite, clone it, and insert the .gitignore and README.md files.

-

There's just one package, with the code in sub-directories of the src directory. Each day will generate one (or more) entries in the adventofcode17.cabal file.

+

There's one package per day, with the code for each package in sub-directories of the root directory.

Create the basic stack project. This will create a new directory. Note that this new directory name can't have a hyphen-delimited word that's just digits, so the project will have to be advent-of-code

stack new advent-of-code --bare simple

Modify the stack.yaml file as needed, such as adding the ghc-options stanza.

Creating subsequent days

-

Each day lives in a separate directory within the src directory. It will also need it's own stanza in advent-of-code.cabal.

+

Each day lives in a separate directory, with its own package.yaml file and code in the src directory. (I based this configuration from mstksg's setup.)

Compile with

stack build

or

@@ -39,6 +39,9 @@
stack exec -- advent01 +RTS -K0 -RTS

Run interactively with

stack ghci advent01
+

or

+
stack ghci advent01:exe:advent01
+

if the first form is ambiguous.

To profile, use

stack build --executable-profiling --library-profiling --ghc-options="-fprof-auto -rtsopts"

then run with

@@ -52,10 +55,6 @@

to see how the stack.yaml file needs to change, and

stack solver --update-yaml

to implement the changes.

-

IHaskell

-

Install following the IHaskell instructions.

-

Run it with

-
stack exec jupyter -- notebook

Readme

Build this readme file wth

pandoc -s README.md > README.html