Jump to content
Excelsior Forums
rktumuluri

Incremental compilation ...

Recommended Posts

excelsior-jet is performing a complete compilation/linking/build all the time. I could not figure out a way to force an "incremental compilation" i.e if foo.java has changed out of a few hundred java files, then only foo.java needs to be compiled and appropriate linking should happen.

This behaviour is standard in most build systems that I am familiar with. (make, gmake, nmake based systems). Make captures dependencies and based on time-stamps etc figures out only the most minimal compilation/linking to be performed.

I suspect this is built into excelsior-jet, it's just that it's not working for me. I read the manual, scoured the forums etc. I am missing something.

Any help, pointers in this direction would be usefull.

In my case I have several hundred java files and jar-files in my project. So, every build takes 2 hours or so.

Cheers ...

/rk

Share this post


Link to post
Share on other sites

Sorry, but Excelsior JET doesn't support incremental compilation yet (except this case: User's Guide, Chapter "JC reference", Section "Make strategy").

p.s. we have one alpha-stage compilation submode "=smart". You may try to use it at your own peril.

Share this post


Link to post
Share on other sites

Sorry, but Excelsior JET doesn't support incremental compilation yet (except this case).

p.s. we have one alpha-stage compilation submode "=smart". You may try to use it at your own peril.

Thanks for your reply. It helps. It would also be good for excelsior to explain the "rationale" behind this. I suspect there is some good reason behind it.

Regards

/rk

Share this post


Link to post
Share on other sites
It would also be good for excelsior to explain the "rationale" behind this. I suspect there is some good reason behind it.

In fact rationale is simple: our development resources are limited, but there are a lot of features and improvements which can be made.

And it is not easy to implement fully-functional smart recompilation in presence of global optimizations. For example, consider the following case: changes in a class can influence to code generation of another completely unrelated class, as type hierarchy changes and the results of global analysis become invalid.

In the older versions of Excelsior JET there was a smart recompilation mode, but it was a source of subtle bugs. And since then compiler and its optimizer evolved a lot, so supporting this mode would require much more efforts. So we have decided to remove this mode for now.

In future, we may change our mind and implement smart recompilation as we understand concerns of our customers about compilation time.

But for now our main goal is to make a 64-bit version of Excelsior JET.

Best Regards,

-AlexM

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×