Miscellaneous improvements to Clojure runtime usability from Java

Description

Using Clojure from Java is very pleasant overall, but there are some rough edges, many of which could be smoothed over with very simple enhancements. I would suggest:

  • there should be an RT.var or Var.find that takes a single string

  • an IFn wrapper should be available that catches and rethrows Exceptions as RuntimeExceptions

  • a simple class (clojure.lang.Clojure perhaps?) that provides a well-documented and stable API for common operations: requiring namespaces, loading files, finding vars, evaluating strings, etc. This also would have a side benefit of allowing breaking changes to the implementation details without breaking interop code.

There are others of this sort that I've come across; will update the above as I remember them.

Environment

None

Activity

Stuart Halloway October 7, 2011 at 6:22 PM

While the title of this ticket is broad, it looks like the actual discussion is about rethrowing RuntimeException. Clojure 1.3 and later solve this problem a different way, by not declaring Exception on the relevant interface points.

Please add tickets for the other items discussed on the wiki as appropriate.

Chas Emerick March 21, 2011 at 3:03 PM

import October 27, 2010 at 4:30 AM

Comment made by: importer

cemerick said: Here's an implementation of that IFn wrapper that rethrows Exceptions as RuntimeExceptions: SafeFn.java

This makes sense to me, but perhaps not everyone. Thoughts?

import October 27, 2010 at 4:30 AM

Comment made by: importer

Converted from http://www.assembla.com/spaces/clojure/tickets/452

Declined

Details

Assignee

Reporter

Priority

Fix versions

Created October 6, 2010 at 9:38 PM
Updated October 7, 2011 at 6:22 PM
Resolved October 7, 2011 at 6:22 PM