Re: Mechanics of enhancing Java taming database?

David Wagner <[email protected]> Sat, 21 May 2011 00:59:39 -0700 (PDT)
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
Andy Fingerhut  wrote:
> If one wished to help enhance the Joe-E SafeJ database, what would the
> recommended mechanics be?  That is, should I check out the Subversion
> repository for Joe-E, edit one or more .safej files in the safej
> directory, make a diff/patch, and email it to this email list?  Or would
> some other method be preferable?

Yes, that would be wonderful.  I'd certainly be interested to see what
you come up with.

I would request that you make your patches available under the New BSD
license (the same license used for the rest of Joe-E).  Also, it would
be great if you could add comments to the safej files justifying the
taming decisions or explaining them in a way useful to users.  This will
help us review your patches; we'll probably want to try to find someone
to review any patches you come up with, before we commit them to the
Joe_E distribution.

See the Taming wiki page that Adrian pointed to for detailed information
on taming in Joe-E.

> Is this same SafeJ taming database also used for taming the Java library
> for other E variants, such as E-on-Java?  For creating the documentation
> at http://erights.org/javadoc/index.html ?

No, it is not the same taming database.  We use the same conceptual
approach and a very similar file format, but we built a new taming
database from scratch.  (I can't remember the details for sure, but I
think the file format is not exactly identical, for various reasons.)

Why didn't we just copy E's taming database over to Joe-E?  The
main reason was for increased assurance.  We thought we might get
higher assurance if we started from scratch, and made all our own
taming decisions, rather than just copying over E's taming database.
For more discussion, see e.g.,
  http://www.eros-os.org/pipermail/e-lang/2008-November/012938.html
This was based in part upon some experience with E's taming database
that left us concerned about the security risks of adopting E's
taming database wholesale
  http://www.combex.com/papers/darpa-review/security-review.html#taming
and in part based upon Mark Miller's urging.  The tradeoff is that,
as a result, Joe-E's taming database is far more limited.  Joe-E is
a research project, and we just don't have the software engineering
resources to do a good job of taming a large fraction of the Java
libraries.  We could have an interesting discussion about whether
that was the right design decision, but for better or worse, it was
the path we followed.

You might also find this thread on E vs Joe-E taming of interest:
  http://www.eros-os.org/pipermail/e-lang/2008-November/thread.html#12940

We used a separate tool for generating API documentation, namely,
the Joe-E Doc tool.  The Joe-E Doc tool is available here:
  https://code.google.com/p/joe-e-doc/ 
and the API documentation, annotated with taming decisions, is
available here:
  http://www.cs.berkeley.edu/~daw/joe-e/api/ 
I've updated the Taming page on the Joe-E wiki with all of these
links and information.