Computer history, restoring vintage computers, IC reverse engineering, and whatever
Internals of places and setforms
Arc documentation table of contents
Arc assignment and places documentation
Arc internals part 2: Macros
Git and the Anarki Arc repository: a brief guide
The Anarki repository is stored in a source control system called git. The repository is open for access and updates by Arc users. Accessing the repository is straightforward, and will be described below. Submitting changes to the repository is not much harder, but is beyond the scope of this document; one source of information is on arclanguage.org.
The repository is promptly updated when a new version of Arc is released. Most of the changes in the repository haven't been migrated back to the official Arc releases, so there is considerable divergence between the official Arc version and the Anarki version.
Installing git on Linux
On Linux, git is in the "git-core" package. You can install this with "sudo apt-get git-core" on Ubuntu, or "sudo yum install git-core" on Red Hat.Installing git on Windows
On Windows, one option is Git on MSys, which can be downloaded from the msysgit site, under "Featured Downloads".Using git to fetch Anarki
Once git is installed, fetching the repository is surprisingly easy. Run "git clone git://github.com/nex3/arc.git", which will create a directory "arc-wiki" containing a copy of the repository. To get updates from the repository, run "git pull".Browsing Anarki without git
You can browse the repository directly by going to http://github.com/nex3/arc/tree/master. To view a file, click on the filename.Once you've downloaded Anarki, you can see the cutting edge of Arc modifications. One of the most interesting features of the Anarki version is docstrings: "(help map)" will display documentation on the map function, for instance.
The stable Anarki branch
A "stable" Anarki branch has also been created. This repository is close to the official Arc release, but with bug fixes and minimal new features. The stable repository lacks the experimental features and rapid changes of the regular repository.To use the stable repository, check out Anarki as described above. Then run "git branch stable origin/stable" and "git checkout stable". All the experimental files and directories will disappear, and you will be left with the stable branch. For more information, see the arclanguage forum.
The Arc-to-C compiler
An Arc to C compiler is being developed in a separate repository:git://github.com/sacado/arc2c.git, which can be accessed on the web at
http://github.com/sacado/arc2c/tree/master.
What's new in arc2
News.YC release
The key difference is the release of the News.YC source in news.arc. This 1769-line file apparently provides the full implementation of news.ycombinator.com. One interesting thing is that stories are ranked according to (score-1) / (age-in-hours ^ gravity), where gravity is 1.4 by default.There are also some gifs to support the site. The following is a list of the new files in arc2:
- news.arc: the source for news.ycombinator.com.
- grayarrow.gif: gray uparrow
- graydown.gif: gray downarrow
- s.gif: 1x1 transparent spacer
- y18.gif: 1x1 spacer (same as s.gif)
ac.scm
- arc-list? fix for '()
- write, disp cleanup
app.arc
- Renamed when-usermatch to when-umatch, when-usermatchr to when-umatch/r, matchform to uform.
- Removed pw from good-login record.
arc.arc
- (firstn nil xs) now returns xs
- (nthcdr nil xs) now returns xs
- trav renamed to treewise
- New function union on sequences.
- New function addtem to create a template.
- New functions hours-since and days-since.
- ensure-dir fix.
- Function only is now entirely different. Wraps a function to only call it if given args.
- Function plural moved to strings.arc. Now if w/bars were moved too...
- New function trav: takes an object and functions. Applies the functions to the object.
- New function defhook and hook to register and execute functions?
html.arc
- Added orange as a color.
- para now takes arguments.
- Removed image-url and local-images*
- spacetable renamed to sptab.
- Added single-input and cdata.
libs.arc
- Added news.arc.
srv.arc
- Remove "frug" default account.
- Excludes .arc as a static filetype, to hide source.
strings.arc
- plural function moved here from arc.arc.