I'm confused. Why do we need symlinks or copies at all? Why can't we just tell 
clojure where it's supposed to find a given projects dependencies? I'm sure the 
answer involves some mumbo-jumbo about classpath and what not, but surely there 
has to be a better alternative than whatever maven/leiningen are currently 
doing.

Granted, I'm coming at this from a common lisp background, but I think many 
lisp developers are used to not just working on a single project, but working 
on a bunch of related projects simultaneously, including the the 
language/runtime environment itself. I'd like a single instance of clojure, a 
single clojure-contrib (I still don't understand why I had to (admittedly 
seamlessly) download a bunch of jars to clean the build directory), a single 
incanter instance, etc... Perhaps I'm missing the obvious here, but I continue 
to fail to understand why the clojure world is doing things this way.

On a related note, why is the build system the cool kids seem to be using 
(leiningen) controlled by a bunch of shell scripts? Surely things like 
compiling .clj source files and making jars should be operations one can drive 
from the clojure repl, no?

Oh, and on a related note, I hate being forced into the src, test, lib 
heirarchy... Let me put my files where I want them to go. Whatever happened to 
the lancet build system from Stuart Holloway's book? That seemed to make sense 
to me.

thanks,

Cyrus

On Mar 11, 2010, at 1:32 PM, Phil Hagelberg wrote:

> On Wed, Mar 10, 2010 at 10:24 PM, Meikel Brandmeyer wrote: > On Mar
> 11, 5:07 am, Brent Millare wrote:
> 
>>> Since leiningen downloads everything to a local repo, can't we do away
>>> with copies and use symlinks if they are supported by the filesystem?
>>> I feel there should be an option for this.
>> 
>> Why not adding the files from the repo directly to the classpath?
>> Works everywhere and doesn't copy...
> 
> Historically this has been because calculating the classpath couldn't
> be done in Clojure itself since it needed to be done before the JVM
> booted. Having to figure this kind of thing out in a shell script or
> in elisp is a headache if the rules are not simple. But now with the
> subclassloader approach that lein and mvn use it's less of an issue.
> But it would mean deprecating the pure-elisp swank launcher, and I
> don't know how it would affect other tools (IDEs, etc), so I'm still
> hesitant.
> 
> I would be happy with a (simple-ish) patch to enable optionally
> switching to using symlinks or hard-links as this would be the
> lowest-impact fix, but I can't bring myself to care enough about the
> number of megabytes currently being wasted to code it myself; sorry.
> 
> -Phil
> 
> -- 
> 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
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

-- 
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
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to