X-Git-Url: https://git.njae.me.uk/?p=advent-of-code-20.git;a=blobdiff_plain;f=README.html;fp=README.html;h=37f2b09f7d6b1284f0ffb08b027d669ca4b77f09;hp=0000000000000000000000000000000000000000;hb=2af7195424d54877bbcbb7768f4ecbea80146428;hpb=5fca4f5eb64fc9c568346ef657e2daba9039b208 diff --git a/README.html b/README.html new file mode 100644 index 0000000..37f2b09 --- /dev/null +++ b/README.html @@ -0,0 +1,66 @@ + + +
+ + + +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.
+Iâm using the basic Haskell Platform installation, together with stack
to manage the packages and dependencies (install with
$ 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.
+Create the repository as normal: create the project in Gitolite, clone it, and insert the .gitignore
and README.md
files.
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, 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
+stack build advent01
+Run with
+stack exec advent01
+If you want to pass in additional RTS parameters, do it like this:
+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" advent01
+then run with
+stack exec --profile -- advent01 +RTS -p -hy
+Generate the profile graph with
+stack exec hp2ps advent01.hp
+Stack is using the 14.16-lts resolver for packages, so make sure you read the correct documentation for the packages included in it.
+Build this readme file wth
+pandoc -s README.md > README.html
+(Using the Modest style.)
+ +