|
| 1 | +== CS 4120 VM ================================================================== |
| 2 | + |
| 3 | +We provide this virtual machine to avoid cross-platform issues. It comes |
| 4 | +with Java 11, Scala, (Ant, Maven, Gradle, sbt), JFlex, OCaml (Opam, Oasis), Haskell (ghcup, |
| 5 | +cabal-install, stack), and Python 2/3 preinstalled. |
| 6 | + |
| 7 | +It also comes with the test harness (xth) preinstalled. To execute it, simple |
| 8 | +execute `xth` inside the VM. |
| 9 | + |
| 10 | +Note that the folder 'shared' is mounted at the path '~/shared' in the VM to |
| 11 | +facilitate easy sharing of project files. You can do all editing etc. on your |
| 12 | +physical machine and use the virtual machine only to build and run your |
| 13 | +application. |
| 14 | + |
| 15 | +To get started, refer to the INSTALL file. |
| 16 | + |
| 17 | +Note: do NOT use the files inside the "base" folder, unless you would like to customize the VM |
| 18 | +and/or troubleshoot environment issues with the course staff. |
| 19 | + |
| 20 | +Note that the Scala, OCaml, and Haskell installs have not been extensively verified. |
| 21 | +If you run into issues, please let us know. |
| 22 | + |
| 23 | + |
| 24 | +-- FAQ ------------------------------------------------------------------------- |
| 25 | + |
| 26 | +How can I mount my xic folder on the physical machine to the virtual machine? |
| 27 | + |
| 28 | + Modify the file "Vagrantfile.local" in the vagrant directory and add the |
| 29 | + following command to it: |
| 30 | + config.vm.synced_folder "<path on physical machine>", "/home/vagrant/xic" |
| 31 | + Then run `vagrant reload`. |
| 32 | + |
| 33 | + |
| 34 | +The course VM has been updated. How do I update my machine? |
| 35 | + |
| 36 | + First, make sure that any files on the VM are backed up. Then, just |
| 37 | + run `vagrant box update`, `vagrant destroy`, then `vagrant up` to bring |
| 38 | + it back up. |
| 39 | + |
| 40 | + |
| 41 | +How can I make my compiler executable by typing just `xic` instead of |
| 42 | +`<path>/xic`? |
| 43 | + |
| 44 | + Your xic executable must be on the PATH. The easiest way to achieve this is to |
| 45 | + execute |
| 46 | + ln -s <absolute path to xic> ~/bin |
| 47 | + which creates a symbolic link to xic in the folder ~/bin; ~/bin is on the PATH |
| 48 | + by default. |
| 49 | + |
| 50 | + |
| 51 | +I want to use a custom Vagrant file! |
| 52 | + |
| 53 | + Sure. Add any commands you want to "Vagrantfile.local" in the vagrant folder. |
| 54 | + add any vagrant commands you want. Execute `vagrant reload` to restart the VM |
| 55 | + and reload the Vagrantfiles. |
| 56 | + |
| 57 | + |
| 58 | +-------------------------------------------------------------------------------- |
| 59 | + - Jan 2019 |
0 commit comments