2019-06-01 14:30:15 -07:00
|
|
|
# CacheSim
|
|
|
|
CacheSim is an Elm-based website to simulate various cache hierarchy configurations. It supports
|
|
|
|
fully associative, direct mapped, and n-way set associative caches.
|
|
|
|
|
|
|
|
## Building and Hosting
|
|
|
|
CacheSim is entirely a front-end project. As long as the HTML, CSS, and generated JavaScript
|
|
|
|
are hosted somewhere, it will work.
|
|
|
|
|
|
|
|
CacheSim is built using Elm and Sass. As such, you will need the compilers for the two
|
|
|
|
languages. On Arch Linux, this means `sassc` for Sass, and `elm-platform-bin` (from AUR).
|
|
|
|
On other platforms, you can use npm:
|
|
|
|
|
|
|
|
```
|
|
|
|
npm install -g elm sass
|
|
|
|
```
|
|
|
|
|
|
|
|
Now, to build the project, you can use the following commands:
|
|
|
|
```
|
|
|
|
mkdir -p static/js
|
|
|
|
mkdir -p static/css
|
|
|
|
sassc static/scss/style.scss static/css/style.css
|
|
|
|
elm make src/Main.elm --output=static/js/elm.js --optimize
|
|
|
|
```
|
|
|
|
Replace `sassc` with `sass` in the third command if you installed Sass from npm.
|
|
|
|
|
|
|
|
Now, the `index.html` file and everything in the `static` folder can be safely copied
|
2019-06-01 14:31:45 -07:00
|
|
|
into any directory exposed by a web server. I use my university `public_html` folder.
|
2019-06-01 14:37:59 -07:00
|
|
|
Below are the _SFTP commands_ I use to upload a fresh copy of the project:
|
2019-06-01 14:30:15 -07:00
|
|
|
```
|
|
|
|
put index.html public_html/ECE472/index.html
|
|
|
|
put -r static public_html/ECE472/static
|
|
|
|
```
|