Started Installation/Windows.md.

This commit is contained in:
kl-i 2021-07-31 20:22:02 +01:00
parent 3e77252ee7
commit 74d3c18c9f
3 changed files with 194 additions and 1 deletions

193
Installation/Windows.md Normal file
View File

@ -0,0 +1,193 @@
How to Install the HoTT Game on Windows
=======================================
## Prerequisites
MUST USE POWERSHELL AS ADMIN
- chocolatey (this shld be easy)
- Via chocolatey
- `choco install ghc`
- `choco install cabal`
- via cabal
- `cabal install happy`
- `cabal install alex`
## The Damned Paths
Something something need to add new system environment variables,
need to ask Samuel again.
## Doom Emacs
IN POWERSHELL LOCAL TO USER
- Prerequisites
```
choco install git emacs ripgrep
choco install fd llvm
```
- Doom Emacs itself
```
git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install
```
**Icons will be missing for windows sadly**
## Development Version of Agda
POWERSHALL IN LOCAL
- Directly clone the repo for development version.
_You can choose where to put this_.
```
git clone https://github.com/agda/agda.git
```
- We need to install `make` for windows. Easiest via cabal.
```
cabal install make
```
- Go into folder of agda repo then do
```
cabal update
make install
```
- Agda should be finished. Use `agda` in powershell to check version.
Now agda-mode in Doom Emacs.
- to install agda2-mode.
```
M-x package-install
```
- In `init.el`, uncomment `agda` in `lang`.
- `doom sync` to update. Then `SPC-q-R` to restart.
To test things, make a `test.agda` file anywhere you'd like.
- Using Doom Emacs, open `test.agda`.
- Type in
```agda
open import Agda.Builtin.Nat
```
- Use `C-c C-d` then enter `Nat`.
The output in the agda info window should be `Set`.
Congratulations, you now have Agda and
can use emacs bindings for Agda.
However, you have nothing more than the
builtin types.
## The Cubical Library
The HoTT Game currently requires the `cubical-0.3` library.
We walk through _a_ installation of the `cubical-0.3` library.
See the [Agda documentation](https://agda.readthedocs.io/en/latest/tools/package-system.html)
for more about libraries.
- Go to [here](https://github.com/agda/cubical/releases).
Under 'version 0.3',
download the 'Source Code' file in either formats `zip` or `tar.gz`.
- Open the 'Source Code' file.
It should turn into a folder which contains a folder called
'cubical'.
- Rename 'cubical' to 'cubical-0.3'.
Inside it, there should be a `cubical.agda-lib` file
with contents
```
name: cubical-0.3
include: .
depend:
flags: --cubical --no-import-sorts
```
This is the file that tells Agda "this is a library" when
Agda looks into this folder.
You can place 'cubical' anywhere you like.
For the sake of this guide,
let's say you put it in a place so that
the path is `LOCATION/cubical-0.3`.
Now we need to tell Agda this 'cubical-0.3' library exists,
so that it will look for it when an Agda file uses code from it.
- Open Powershell locally and do
```
agda -l fjdsk Dummy.agda
```
- Assuming you don't already have an Agda library called `fjdsk`,
you should see an error message of the form
```
Library 'fjdsk' not found.
Add the path to its .agda-lib file to
'BLAHBLAHBLAH/libraries'
to install.
Installed libraries:
none
```
The `BLAHBLAHBLAH/libraries` is where we tell Agda of
the location of libraries.
For Windows, it should look like
```
C:\Users\USERNAME\AppData\Roaming\agda\libraries
```
where `USERNAME` is your username on your computer.
- Navigate to the folder
`C:\Users\USERNAME\AppData\Roaming\agda`.
_If there is no `agda` folder in
`C:\Users\USERNAME\AppData\Roaming`,
simply create one_.
- In `C:\Users\USERNAME\AppData\Roaming\agda`,
create a file `libraries` if there isn't one already.
Inside it, put
```
LOCATION/cubical-0.3/cubical.agda-lib
```
- Now do `agda -l fjdsk Dummy.agda` in powershell locally again.
This time the error message should be
```
Library 'fjdsk' not found.
Add the path to its .agda-lib file to
'BLAHBLAHBLAH/libraries'
to install.
Installed libraries:
cubical-0.3
(LOCATION/cubical-0.3/cubical.agda-lib)
```
Congratulations, Agda is now aware of
the existence of the `cubical-0.3` library.
## The HoTT Game
The HoTT Game is also an Agda library
so we need to repeat the above process for it.
- In Powershell, navigate to
where you would like to put the HoTT Game.
- Use `git clone https://github.com/Jlh18/TheHoTTGame.git`.
This should copy the HoTT Game repository as
a folder called `TheHoTTGame`.
For the purposes of this guide,
let's say you have put the HoTT Game in your computer
at the path
```
LOCATION1/TheHoTTGame
```
Inside it, you should see many files,
one of which should be `TheHoTTGame.agda-lib`.
- Go back to `BLAHBLAHBLAH/libraries`
and add the following line
```
LOCATION1/TheHoTTGame/TheHoTTGame.agda-lib
```
- In Powershell, use `agda -l fjdsk Dummy.agda` again.
The error message should now look something like
```
Library 'fjdsk' not found.
Add the path to its .agda-lib file to
'BLAHBLAHBLAH/libraries'
to install.
Installed libraries:
cubical-0.3
(LOCATION/cubical-0.3/cubical-0.3.agda-lib)
TheHoTTGame
(LOCATION1/TheHoTTGame/TheHoTTGame.agda-lib)
```
- Using Doom Emacs,
open `Trinitarianism/Quest0.agda` and do `C-c C-l`.
Congratulations, you can now play the HoTT Game.

View File

@ -1,4 +1,4 @@
name: HoTTGameLib
name: TheHoTTGame
include: .
depend: cubical-0.3
flags: --cubical --no-import-sorts