This repository has been archived by the owner. It is now read-only.
Use Clojure's immutable data structures and Software Transactional Memory from Ruby. Don't be afraid of concurrency.
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.autotest
.gitignore
COPYING
History.txt
Manifest.txt
README.rdoc
Rakefile
clojure_gem.gemspec

README.rdoc

The Clojure Gem

github.com/technomancy/clojure-gem

Description

Use Clojure's immutable data structures and Software Transactional Memory from Ruby. Don't be afraid of concurrency.

Requires JRuby. Tested with 1.4.0+.

Supports all four persistent collection types (lists, vectors, maps, and sets). Many enumerable methods still return Ruby arrays instead of the original type; this will be fixed. Lazy sequences are not yet supported.

Issues

JRuby's way of nesting exceptions means that the exceptions used for transaction retries in dosync are not caught correctly. This may necessitate shipping a patched version of Clojure to fix. See the test_threaded_refs test in test_ref.rb for details; changing “commute” to “alter” makes it fail.

Examples

TODO: write examples

License

Copyright © Phil Hagelberg 2009

Released under the Eclipse Public License. See file COPYING.