Skip to content

Latest commit

 

History

History
114 lines (88 loc) · 4.23 KB

Install.md

File metadata and controls

114 lines (88 loc) · 4.23 KB

Getting Started with pack and Idris2

Here I describe what I find to be the most convenient way to get up and running with Idris2. We are going to install the pack package manager, which will install a recent version of the Idris compiler along the way. However, this means that you need access to a Unix-like operating system such as Linux or macOS. Windows users can make use of WSL to get access to a Linux environment on their system. As a prerequisite, it is assumed that readers know how to start a terminal session on their system, and how to run commands from the terminal's command-line. In addition, readers need to know how to add directories to the $PATH variable on their system.

Installing pack

In order to install the pack package manager together with a recent version of the Idris2 compiler, follow the instructions on pack's GitHub page.

If all goes well, I suggest you take a moment to inspect the default settings available in your global pack.toml file, which can be found at $HOME/.pack/user/pack.toml (unless you explicitly set the $PACK_DIR environment variable to a different directory). If possible, I suggest you install the rlwrap tool and change the following setting in your global pack.toml file to true:

repl.rlwrap = true

This will lead to a nicer experience when running REPL sessions. You might also want to set up your editor to make use of the interactive editing features provided by Idris. Instruction to do this for Neovim can be found here.

Updating pack and Idris

Both projects, pack and the Idris compiler, are still being actively developed. It is therefore a good idea to update them at regular occasions. To update pack itself, just run the following command:

pack update

To build and install the latest commit of the Idris compiler and use the latest package collection, run

pack switch latest

Setting up your Playground

If you are going to solve the exercises in this tutorial (you should!), you'll have to write a lot of code. It is best to setup a small playground project for tinkering with Idris. In a directory of your choice, run the following command:

pack new lib tut

This will setup a minimal Idris package in directory tut together with an .ipkg file called tut.ipkg, a directory to put your Idris sources called src, and a minimal Idris module at src/Tut.idr.

In addition, it sets up a minimal test suite in directory test. All of this is put together and made accessible to pack in a pack.toml file in the project's root directory. Take your time and quickly inspect the content of every file created by pack: The .idr files contain Idris source code. The .ipkg files contain detailed descriptions of packages for the Idris compiler including where the sources are located, the modules a package makes available to other projects, and a list of packages the project itself depends on. Finally, the pack.toml file informs pack about the local packages in the current project.

With this, here is a bunch of things you can do, but first, make sure you are in the project's root directory (called tut if you followed my suggestion) or one of its child folders when running these commands.

To typecheck the library sources, run

pack typecheck tut

To build and execute the test suite, run

pack test tut

To start a REPL session with src/Tut.idr loaded, run

pack repl src/Tut.idr

Conclusion

In this very short tutorial you set up an environment for working on Idris projects and following along with the main part of the tutorial. You are now ready to start with the first chapter, or - if you already wrote some Idris code - to learn about the details of the Idris module system.

Please note that this tutorial itself is setup as a pack project: It contains a pack.toml and tutorial.ipkg file in its root directory (have a look at them to get a feel for how such projects are setup) and a lot of Idris sources in the subfolders of directory src.