Someone has requested me to build this book, since they didn't have Nix.
So when looking at the Nix expressions I found that there was only a
shell.nix and the default.nix was essentially just aliasing the
shell.nix but without the pinning.
However, with Nix flakes we no longer need to do pinning like this and
we instead have a flake.lock file, which essentially pins the
corresponding revisions.
I also added a default.nix, which uses flake-compat to make sure that
nix-shell and nix-build work as before.
Since so far the way to build the PDF(s) was to get into a Nix shell and
run make accordingly. For me however it's unacceptable to build random
code without the Nix sandbox, so while writing a proper default.nix I
decided it would be better to turn it into a Nix flake.
Apart from the previous ways to build this project we now have:
$ nix develop # To get a Nix shell (similar to nix-shell but cached)
$ nix build # The default edition
$ nix build .\#ctfp-scala # The Scala edition
$ nix build .\#ctfp-ocaml # The OCaml edition
Signed-off-by: aszlig <aszlig@nix.build>
* Add missing fonts and make necessary changes in the .tex file.
* Add Github action workflow file.
* Cut building time by at least 4.
* Add more information.
* OCaml version of the book upto chapter 24
* Checking in Chapter 25
* Adding Ch 26
* Add final two chapters
* Add Marcello Seri's comments
* Ch 25 changes
* Ch 26
* Run formatter
* Adding OCaml tweaks in the half-title + colophon
* Adding links in the colophon
Co-authored-by: Igal Tabachnik <hmemcpy@gmail.com>
* Adding a "display language" option + separating some pages to import language-specific text
* Removing grffile, not needed after the latest fix in LaTeX2e 2019-10-01 Patch Level 2
* Trying a new version fetch strategy
* Sharing caches between runs. This should reduce build times significantly!