I've made a change to the naming and location of AOT-compiled
assemblies generated by ClojureCLR.

Previously, ClojureCLR had followed the conventions of ClojureJVM in
naming/locating class files (assemblies in CLR-land) generated by AOT-
compilation.  Thus, doing (compile 'a.b.c)  would find source file
<AppBase>\a\b\c.clj and generate <AppBase>\a\b\c.clj.dll.

In the lastest commit, this has been changed so that (compile 'a.b.c)
will find source file <AppBase>\a\b\c.clj and generate <AppBase>
\a.b.c.clj.dll.

Obviously, this change will force recompilation of existing apps.
Otherwise, it should have no effect.

Completely arbitrarily, ClojureCLR names the AOT-compilation generated
files whatever.clj.dll.  The .clj.  is superfluous, but does serve as
a visual indication of the assembly's origin.   Question:  Useful, or
just annoying?


Unnecessary explanation:

The reason for the change has to do with limitations of assembly
loading.  As previously coded, (compile 'a.b.c) would generate
<AppBase>\a\b.c.clj.dll and (compile 'd.e.c) would generate <AppBase>\d
\e\c.clj.dll.   There are circumstances where the latter would not
compile but might load the former instead.  This has to do with name
resolution in the load-from context in assembly loading, which does
not consider location.  The simplest solution was to encode namespace
information i the filename, so assemblies can be differentiated by
file name instead of location.

-David

-- 
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