X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;ds=sidebyside;f=README.html;h=09672cf9c2a342a0b6d12736fcb8dd76ea5cd0e3;hb=HEAD;hp=218a7f9f03ee743992014478c6bf33997296d399;hpb=73861022e114fe3b2d6625301f4ac5fc973a8a6e;p=advent-of-code-19.git diff --git a/README.html b/README.html index 218a7f9..09672cf 100644 --- a/README.html +++ b/README.html @@ -4,15 +4,15 @@ -
Code to solve the Advent of Code puzzles. This year, I'm using the puzzles to develop my skills in Haskell.
+Code to solve the Advent of Code puzzles. This year, I'm using the puzzles to develop my skills in Haskell. I'm writing up a commentary on these puzzles and my solutions on my blog.
Learn you a Haskell, Introduction to Haskell 98, and Hackage are good resources.
The Stack documentation and How I Start: Haskell are good sources of using the tools.
$ 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.
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.
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
@@ -38,11 +38,14 @@If you want to pass in additional RTS parameters, do it like this:
stack exec -- advent01 +RTS -K0 -RTS
Run interactively with
-stack ghci advent-of-code:exe:advent01
+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"
+stack build --executable-profiling --library-profiling --ghc-options="-fprof-auto -rtsopts" advent01
then run with
-stack exec -- advent01 +RTS -p -hy
+stack exec --profile -- advent01 +RTS -p -hy
Generate the profile graph with
stack exec hp2ps advent01.hp
to see how the stack.yaml
file needs to change, and
stack solver --update-yaml
to implement the changes.
-Install following the IHaskell instructions.
-Run it with
-stack exec jupyter -- notebook
Build this readme file wth
pandoc -s README.md > README.html