Compilers

OCaml Remote Setup with Development Environment

This guide will detail the steps to set up a development environment in which your computer acts as a front end but all the meaningful work is done by computers on the CS network. This setup requires you to maintain a network connection with the Swarthmore CS network while you are working. You will require two tools: an SSH client and Microsoft’s Visual Studio Code, a lightweight, open-source development environment.

Setting Up OCaml

Since the CS network will be doing the computational work for us (compiling your code, running your programs, etc.), we need your CS account to be properly configured to compile and run OCaml programs. Use an SSH client to connect to the CS network. For most computers, this involves opening a command prompt or terminal and running the following command:

ssh username@cs.swarthmore.edu

Of course, you’ll need to replace username with your own Swarthmore CS username. Once you’ve logged in, you’ll need to edit your ~/.bashrc file to make use of the OCaml installation we’re using for this course. Using the command-line editor of your choice, open ~/.bashrc. (If you’re not familiar with command-line editors, nano is a simple one: run nano ~/.bashrc.) Scroll to the bottom of the file and add these lines:

source /home/zpalmer/public/cs75/s23/environment.sh

Do not replace zpalmer with your username. Save the file and exit. (In Nano, you can save by pressing Ctrl+O followed by enter; you can exit by pressing Ctrl+X.) If you’d like to see what this script is doing, you can cat it.

Type exit to close your connection to the CS network. Then, run ssh again to reconnect. (This step is important as it allows us to test how your environment works with a fresh SSH connection.) Run the command which ocaml. If it prints the message /home/zpalmer/public/cs75/s23/opam-root/4.14.1+flambda/bin/ocaml, then you’re in good shape. Otherwise, please contact your instructor.

Configuring Visual Studio Code

Once we have OCaml set up on the CS network, we can configure your editor. Due to a bug in one of the plugins, it’s important that the above steps are completed before you proceed. As always, please contact your instructor if you have any trouble!

Installing and Configuring the SSH Extension

Once you’ve installed Visual Studio Code, you’ll need to install the SSH extension. This will allow Visual Studio Code to perform operations on the CS network over an SSH connection. First, click on the extensions button on the left side of the window.

The Visual Studio Code extensions panel

The Visual Studio Code extensions panel

The extension we need is Microsoft’s “Remote - SSH” extension. You can find it by searching for “SSH”, but make sure to install the plugin of this name provided by Microsoft. The other extensions do not provide the functionality we need.

Pressing the Install button for the Remote SSH extension

Installing the Remote SSH extension

Next, we need to tell Visual Studio Code how to connect to the CS network. Click on the Remote Explorer button on the left panel. Then, click on the small plus button at the top of the remote explorer to add a new remote configuration.

Pressing the Add Remote button in the Remote Explorer

Adding a remote configuration

You will be asked to provide an SSH connection command. For this step, you should specify a CS network computer; do not just use cs.swarthmore.edu. The SSH extension expects to be able to connect to the same computer each time; meanwhile, Swarthmore’s CS network will route you to a different computer each time you connect as a load-balancing measure. You should pick one of the following hosts:

Try to pick randomly – a six-sided die might be helpful – but remember to include your username. For instance, one might use the command ssh username@oregano.cs.swarthmore.edu.

Entering a connection command into the Remote Explorer

Setting the SSH connection command

Press enter. You will be asked to choose an SSH configuration file. The first, default option is probably fine, so press enter again. Now you can press the small (often hidden) “Connect to Host in New Window” button to open an editor session using the SSH extension.

Connecting to the CS network using the Remote Explorer

Connecting to the CS network

A new window will appear and you will be prompted for your CS network password. Provide it. You’ll observe a status report in the lower right of the new window as the editor performs a first-time setup. This might take a little while the first time, but it should be fast the next time you make this connection.

Installing OCaml Extensions

In this new window, open the Extensions tab again. It will look a little different this time, with extensions separated into “Local” and “SSH”. You probably won’t have any SSH extensions installed.

Search for and install three extensions. They are named exactly the following:

As you install plugins, they will appear in the SSH category; this is because they are being installed on the CS network and not on your local machine. This ensures, for instance, that the parts of the OCaml Platform extension that identify bugs are running on the same computer that the OCaml compiler is installed on. By the time you are finished, you should see all three extensions in your SSH category.

The Extensions panel with three remote extensions installed

Installed extensions

That’s It!

This development environment should be sufficient for your work in Compilers. It is helpful to note that terminals opened in the remote window (which can be opened in the edtior’s Terminal menu) will be opened on the remote machine, so you won’t need to keep a separate window open just to run commands. You will need to keep your connection to the Internet whle you work, though.

As always, please reach out if you have any difficulty configuring your development environment. A comfortable development environment is an important investment! Once you have a good environment, you’ll be able to focus much more productively on the interesting work.