Started Installation/Windows.md.
This commit is contained in:
parent
3e77252ee7
commit
74d3c18c9f
193
Installation/Windows.md
Normal file
193
Installation/Windows.md
Normal 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.
|
@ -1,4 +1,4 @@
|
|||||||
name: HoTTGameLib
|
name: TheHoTTGame
|
||||||
include: .
|
include: .
|
||||||
depend: cubical-0.3
|
depend: cubical-0.3
|
||||||
flags: --cubical --no-import-sorts
|
flags: --cubical --no-import-sorts
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user