|Anarki's great for a bunch of things: collecting Arc libraries, allowing experimentation with the language, collecting bug fixes, and so forth.|
However, sometimes you don't want all of these, for whatever reason. You don't want all those libs cluttering up your arc/ directory. You want to maintain maximal compatibility with the official release. Whatever.
For those reasons, I've added a stable branch to Anarki. It's just arc2 with as many bug fixes as are available and a very spare set of features added to make those fixes possible. It includes:
* Cross-platform "date" and "ensure-dir"
* Compatibility with MzScheme 372
* Proper handling for Control-D in the REPL
* A more efficient "whiler"
* A fixed "codelines" (http://www.arclanguage.org/item?id=3753)
* A fixed "minutes-since" (http://arclanguage.org/item?id=3726)
There are only two real non-bugfix differences between it and arc2. I added arc.sh because it's so handy, and I added the escape-to-Scheme $ macro, to make it easier to write cross-platform code. The latter could also be accomplished by adding more xdefs to ac.scm.
You can check out the stable branch as follows:
That's it. If you want to commit a bugfix to Anarki that also applies to the official arcn, commit it to this branch and then merge it into master as follows:
$ git clone git://nex-3.com/arc-wiki.git # Check out the repo
$ cd arc-wiki
$ git branch stable origin/stable # Create a local branch to track the remote stable branch
$ git checkout stable # Switch to your shiny new branch
Note that there may be a merge conflict when you run "git merge stable." In this case, just open up the files Git tells you have conflicts, search for "<<<<<<" which denotes a merge conflict, and resolve it. Then "git add" the file, "git commit", and continue on your merry way.
$ git checkout stable # Get the stable branch
$ emacs # Make your edits
$ git commit -a # Commit all changes
Created commit 8668ce2: My informative commit title.
$ git checkout master # Switch to master branch
$ git merge stable # Merge in your change(s) to stable
$ git push # Push your changes to the remote repository
I hope this is helpful for everyone.