Clojure

Miscellaneous improvements to Clojure runtime usability from Java

Details

  • Type: Enhancement Enhancement
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Declined
  • Affects Version/s: None
  • Fix Version/s: Release 1.4
  • Component/s: None
  • Labels:
    None

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.

Activity

Hide
Assembla Importer added a comment -
Show
Assembla Importer added a comment - Converted from http://www.assembla.com/spaces/clojure/tickets/452
Hide
Assembla Importer added a comment -

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?

Show
Assembla Importer added a comment - 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?
Hide
Chas Emerick added a comment -
Show
Chas Emerick added a comment - See http://dev.clojure.org/display/design/Improvements+to+interop+from+Java for a discussion of these changes.
Hide
Stuart Halloway added a comment -

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.

Show
Stuart Halloway added a comment - 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.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: