Getting Started – Repository

The assignments for the ACC course will be managed by the git versioning system. You will find this enables you to easily save progress, go back in time, collaborate (with your group colleague!) and try out different versions of the assignment with ease. It will also allow you to mark commits as final deliverables for the assignment and run the test suite on them remotely.

Getting Access to the Repository

Click the Repository link on the right. This will take you to the git server’s web interface:

git interface welcome

Click on the “Advanced Compiler Construction” course. After logging in, you should get to the page for creating your group. Please create groups of exactly one person, since the first assignments are individual:

git interface group

Setting up the SSH Keys

Before you could gain access to the source code (of the assignments), you need to register the SSH public key of your local system with the repository. The procedure for doing that is explained below. Check if you already have a SSH public key file “~/.ssh/id_rsa.pub” in you home directory, otherwise you can generate one using the command: ssh-keygen. Copy the contents of the “~/.ssh/id_rsa.pub” file into the SSH key tab of the web interface shown in the following snapshot.

git interface ssh key button

git interface ssh keys

Cloning the Source Code

The url of your git repository will be displayed in the Repositories tab. Create a clone of the repository on your local system: “git clone <git-repo-url>“.  For details on using git see this tutorial: www-cs-students.stanford.edu/~blynn/gitmagic/. The commits you make to your repository will be displayed in the web interface like in the example shown below:

git interface repo address

 

Testing your commit

The interface allows you to test your code using some tests created by us. However, the frequency with which you can test your code is restricted.  To run a test, go to the Tests tab of the interface. It will show the commits you have made and for each commit you will have an option to run tests. The results of the tests will be displayed to you. Each time a test is run, it will use up one token. You can only run as many tests as the number of tokens you have, at any given time. Initially, you will be awarded 3 tokens. Each day you will be given one token if you have less than 3 tokens. You are encouraged to write your own tests for the problems as the tests provided by us would seldom be adequate to correctly cover all the cases of the assignment problems.

git interface test

Submitting your Code for Evaluation

You can submit your commits for evaluation. To do so, go to the deliverables tab where each commit will have a deliver option. The interface also allows you to run tests if you have some tokens left. You can deliver as many commits as you want before the deadline. However, only the latest version delivered will be considered for evaluation. 

git interface deliver

 

Questions regarding the Interface, Repository and Assignements

For questions regarding the assignements or for more help on using the interface and repository, please post them to the discussions forum. You may also contact the TAs during the specified office hours. However, we encourange using the forum as it may benefit other students as well.