On Dec 11, 2008, at 7:24 PM, Rich Hickey wrote:

I am interested in the issues you are trying to address, and thanks
for volunteering!

Excellent. You're welcome.

I'd like to try to focus our efforts on release 1.0.

Sounds good.

Towards that end, it would be nice if your repl code got more
exercise, which it probably isn't given existing scripts which run
clojure.lang.Repl. Maybe it would be useful to have that just call
clojure.main/repl?

I think clojure.lang.Repl should translate its args to the new format and call clojure.main/-main:

  old: clojure.lang.Repl file1 file2 -- a b c
  new: clojure.main -i file1 -i file2 -r a b c

Similarly for clojure.lang.Script:

  old: clojure.lang.Script file1 file2 file3 -- a b c
  new: clojure.main -i file1 -i file2 file3 a b c

Other than that, I think we should hang on to these ideas post 1.0,
since adding them now doesn't give us enough time to shake them out.
Do you have a short list of things in this area that need to be fixed
for 1.0?

There are the two things I think need to be fixed for 1.0. (If you're including [1] below in the set of things you want to defer until post-1.0, please veto it.)

[1] Stub launcher written in Java for when clojure.jar contains only source code:

- the new clojure.lang.Repl could fill this role, but I think that's not ideal for 1.0

  - Better would be to allow this java command line to work:

      java -cp clojure.jar clojure.main ...

    whether or not clojure.jar contains only source code.

We could do this by writing a clojure/main.java that calls clojure.main/-main and removing :genclass in clojure/main.clj. I think that's a simple change that provides an important flexibility for clojure.jar. Adding a "source_jar" target to build.xml would go hand in hand with this.

[2] A single "-e" or "--eval" option should be allowed to contain multiple forms and it should evaluate them sequentially. There are cases where wrapping multiple forms in a "do" does not work and writing

  -e (this) -e (that) -e (the-other)

is tedious compared to

  -e "(this) (that) (the-other)"

--Steve

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to