[Scons-dev] Issues that can potentially be closed

William Blevins wblevins001 at gmail.com
Sat Jul 12 10:57:10 EDT 2014


Javac works with what you give it.

If there are dependencies between datasets, then they will not build;
otherwise, they will compile just fine.  There are optimization concerns
though and here are some cases:

Java('build',
     [source1, source2],
     JAVASOURCEPATH='src')


Note: keep in mind that the javac call will multithread automatically;
I don't know if it default to 2 threads or to physical_core_count, but
there is some auto-optimization here.

Case 1:

source1 = [ 1.java, 2.java, #.java ]

source2 = [ a.java, b.java, n.java ]

This is probably fine since you are optimizing the compilation by
splitting of build trees.

Case 2:

source1 = 1.java

source2 = 2.java

sourceN = N.java

This is bad; there is a lot of overhead. Java builds are not
synonomous to c-like compiles.

Case 3:

source1 = dir1

source2 = dir2

This is essentially equivalent to case 1 and is fine.

---

Long story short, the sources should probably be flattened, but there
is also a performance issue with SCons java toolset atm which chokes
on Java( ... ) calls with a large number of source inputs.  Dirk and I
have been discussing this on BitBucket and allowing for splitting of
files like this may be useful currently.

V/R,

William




On Sat, Jul 12, 2014 at 10:31 AM, Gary Oberbrunner <garyo at oberbrunner.com>
wrote:

>
>
>
> On Sat, Jul 12, 2014 at 10:22 AM, William Blevins <wblevins001 at gmail.com>
> wrote:
>
>>
>> 2432 definitely duplicates 1772.  The only difference is that 2432
>> proposes a (bad) solution to the problem.
>>
>> Both give the example:
>>
>> Java('build',
>>      [source1, source2],
>>      JAVASOURCEPATH='src')
>>
>> And explain that "their" issue is that source1 and source2 build in parallel with separate javac commands; this is easily fixable with a FLATTEN call, but we still haven't asked the important question.  Is this working as designed and the documentation needs to be updated to reflect or is this a software failure?
>>
>> I see what you mean now, William.   I'm OK with marking as dup.  As for
> your big question, again I'm not the right guy to say but my understanding
> is javac works much better when all the .java files are passed on the same
> invocation.
>
> --
> Gary
>
> _______________________________________________
> Scons-dev mailing list
> Scons-dev at scons.org
> http://two.pairlist.net/mailman/listinfo/scons-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://two.pairlist.net/pipermail/scons-dev/attachments/20140712/5766c620/attachment-0001.html>


More information about the Scons-dev mailing list