I've been speaking with the Terracotta engineers, so here is an update on a
couple of the issues:

1) array.clone(). It turns out this is a bug in Terracotta. They have
acknowledged it, and will be working to resolve it. However, they mentioned
(as I have found else where on the interweb[1][2]) that arraycopy is
slightly faster than array.clone(), though nothing to write home about, so
it may be worth rolling that change back into Clojure, or at least it won't

2) AtomicReference. They seem to think that adding support for AR in
Terracotta is low hanging fruit for someone who wants to write a patch, and
somehow they roped me into doing it. ;)

3) Boolean.TRUE != Boolean.TRUE across VMs. This also is a bug that they are
working to resolve.

So it looks like three of the biggest issues I had to work around in getting
Clojure to work with Terracotta, will be resolved on the Terracotta side.
This means that the Terracotta Integration Module that I wrote[3] will
pretty much boil down to a configuration file.

I think the only other *serious* issue is the problem with *in*, *out*, and
*err*. Either they need to be made into "special" vars, or derefed
specially, because their root values cannot be put into the TC cluster.

That's all folks!


[2] http://www.javapractices.com/topic/TopicAction.do?Id=3
[3] http://github.com/pjstadig/tim-clojure-1.0-snapshot/tree/master

On Mon, Mar 30, 2009 at 7:38 PM, Rich Hickey <richhic...@gmail.com> wrote:

> On Mar 30, 5:12 pm, Paul Stadig <p...@stadig.name> wrote:
> > I have gotten to the point in my Clojure + Terracotta experiment, where I
> > believe all of the features of Clojure are functional (Refs, Atoms,
> > transactions, etc.). I do not have a way to extensively test the Clojure
> > functionality, but I have run the clojure.contrib.test-clojure test
> suites
> > successfully, as well as some simple tests on my machine.
> >
> > There are still some open issues (though not necessarily deal killers),
> and
> > given the limited extent to which I have tested this, I would not
> consider
> > this production quality in the least. I would welcome help from the
> Clojure
> > community in testing this integration module. I'm sure there are
> unexplored
> > corners.
> >
> > Being that several of the changes are relatively trivial, they could be
> > easily integrated back into the Clojure core. I have detailed as best as
> > possible the changes I had to make to Clojure in this report: Clojure +
> > Terracotta Integration Report
> > (http://docs.google.com/Doc?id=dg7c7v49_241g5t8tqsv)<
> http://docs.google.com/Doc?id=dg7c7v49_241g5t8tqsv>It
> > is very possible that I have misunderstood things, so if there is a
> > better way to accomplish any of the solutions, then let me know.
> >
> > I would welcome any comments, feedback, etc.
> >
> Thanks for the detailed report! I'll look through it soon.
> Rich
> >

You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to