This week, I have added support to user interrupt at patch index creation,
cleaned up timing and correctness scripts, run timing and correctness scripts
on xmonad repository, extended and cleaned up tests and documentation.
User Interrupt
The user can interrupt darcs get with Ctrl-C. The rest of the patches are downloaded on when needed. However, the entire set of patches are required to build patch index. Now, when the user interrupts get with Ctrl-C, patch index will be disabled, and get will stop immediately.
Patch index will be created automatically when patch index darcs is run on an existing repo. Now, the user can interrupt this with Ctrl-C. patch index will be disabled, and the command will continue.
Timing and Correctness Scripts
I have written bash timing and correctness scripts. The files are in then contrib folder of my darcs patch index repository.
patch-index-correctness.sh REPO_URL, gets the darcs repo at REPO_URL, and compares the patch index/existing changes and annotate output for every file in the directory.
patch-index-timing.sh REPO_URL DEV_FILE MOUNT_POINT, mounts the partition of DEV_FILE at MOUNT_POINT, gets the repo at REPO_URL there, and measures the time taken by patch index/existing changes and annotate, with and without clearing the disk cache. This file needs to be run as root.
I have run these scripts on xmonad repository. The correctness test passed, and the result for the timing tests are here: changes, and annotate. Annotate is 63(cold cache)-74(hot cache)% faster, and changes is 45(cold cache)-78(hot cache)% faster on average. This is comparatively slower than on darcs repository(changes 78-92% faster, and annotate 86-94% faster). This is mostly because the number of patches in darcs is larger. A larger repository will get larger gains. I am going to run the timing test on ghc and agda repositories this week.
Next week I will finish up documentation and elaborate and add more tests.
My darcs repository is here.
cleaned up timing and correctness scripts, run timing and correctness scripts
on xmonad repository, extended and cleaned up tests and documentation.
User Interrupt
The user can interrupt darcs get with Ctrl-C. The rest of the patches are downloaded on when needed. However, the entire set of patches are required to build patch index. Now, when the user interrupts get with Ctrl-C, patch index will be disabled, and get will stop immediately.
Patch index will be created automatically when patch index darcs is run on an existing repo. Now, the user can interrupt this with Ctrl-C. patch index will be disabled, and the command will continue.
Timing and Correctness Scripts
I have written bash timing and correctness scripts. The files are in then contrib folder of my darcs patch index repository.
patch-index-correctness.sh REPO_URL, gets the darcs repo at REPO_URL, and compares the patch index/existing changes and annotate output for every file in the directory.
patch-index-timing.sh REPO_URL DEV_FILE MOUNT_POINT, mounts the partition of DEV_FILE at MOUNT_POINT, gets the repo at REPO_URL there, and measures the time taken by patch index/existing changes and annotate, with and without clearing the disk cache. This file needs to be run as root.
I have run these scripts on xmonad repository. The correctness test passed, and the result for the timing tests are here: changes, and annotate. Annotate is 63(cold cache)-74(hot cache)% faster, and changes is 45(cold cache)-78(hot cache)% faster on average. This is comparatively slower than on darcs repository(changes 78-92% faster, and annotate 86-94% faster). This is mostly because the number of patches in darcs is larger. A larger repository will get larger gains. I am going to run the timing test on ghc and agda repositories this week.
Next week I will finish up documentation and elaborate and add more tests.
My darcs repository is here.