On Your Own Machine

This page will help you get started setting up an environment on your personal computer to let you do most of the labs and MPs without remote connecting to the EWS machines. We highly recommend you attempt programming locally (on your own machine) as the EWS servers have a history of going down, being slow, and/or being overloaded in general. This will also enable you to work on assignments offline.

DISCLAIMER

Our grading runs are done on EWS machines, and we expect you to test your code
thoroughly on EWS to ensure compatibility. You will be responsible for any
issues arising from insufficient testing; no regrades will be given.

Please come to office hours or post on Piazza if these instructions do not
make sense, or do not work.

Once you download PuTTY you will be prompted to enter the address to the server. Use NETID@linux.ews.illinois.edu, substituting in your NetID.

You can save this by clicking the save button to the right of the highlighted default session. Optionally you could name this connection EWS.

Now click connect and click “Yes” if it prompts you to accept the public key of the host machine.

You will be asked to enter your AD password; note you will not see any characters as they are typed.

If your password was successfully accepted you should have a fully functioning EWS shell.

We recommend connecting to a console session since an excessive amount of
FastX sessions tends to become unstable on the EWS cluster or ends up refusing
connections.

Working Natively

Linux

You should make sure you have the following packages installed:

Clang and libc++ and the
libc++abi: The Clang compiler and the libc++ C++ standard library
implementation. This provides all of the compiler Utilities. On most distros
you will need to make sure you have clang, libc++ and libc++abi (or similar)
packages installed.

Valgrind: A tool for finding memory leaks and general
programming errors.

Graphviz: Graph plotting tools used for
assignments which display graphs and trees as images.

GNUPlot: Plotting tools used for assignments
which display graphs and charts as images.

GDB: The GNU Debugger. We do not
officially offer a tutorial for this tool as Valgrind usually suffices, but
GDB allows you to step through your code and test specific execution paths.

Subversion: The revision control system used
for turning in assignments. On systems which have a separate package
(something like libsvn-dev or subversion-dev) for the header files,
you’ll need those too.

After installing the required packages, you should now be able to check out,
build, and run assignments as described in their documentation.

If you have a different version of clang installed, you might need to remove it
first. Alternatively, if you don’t mind using a different version of clang, you
can use the other version instead—just make sure to test your code on EWS.
(You should do that anyway.)

Ubuntu 12.04

Unfortunately, there aren’t any widely-available packages for clang and libc++.
Here
is a guide on building them from source. It will probably take a long while to
do so, so it may be beneficial to upgrade to a newer version of Ubuntu. This
should get you the other requirements:

Arch

The default clang package should work as well (it’s currently at 3.7), but
make sure to test your code on EWS. (You should do that anyway.)

Mac OS X

If you experience difficulties installing the software listed below, then
please come speak with a TA during office hours, a lab section, or by posting
on Piazza.

Compiler, Subversion

Run

xcode-select --install

to install the Xcode commandline tools. You should run that command even if you
already have the commandline tools installed—running it sets up Apple’s
version of clang to look for headers in the “regular” *nix places.

Windows

While it is certainly possible to develop under the Cygwin environment (you can
Google this if you’re feeling really motivated), remotely accessing EWS is
probably easier.

Using Bash on Ubuntu on Windows

Microsoft recently released Bash on Ubuntu on Windows in the Windows 10
Anniversary Update. Course staff has not yet tested the software used by the
course, but it looks like several of the debugging tools do not currently
work on Windows. See
Microsoft/BashOnWindows#120
and #555 for related
bug reports.