From: Vinzent 'Gadget' Hoefler <nntp-2005-03@t-domaingrabbing.de>
Subject: Re: How to cache output of the compiler aka ccache
Date: Mon, 21 Mar 2005 08:16:53 +0000
Date: 2005-03-21T08:16:53+00:00 [thread overview]
Message-ID: <2836529.BOqhxBo8yv@jellix.jlfencey.com> (raw)
In-Reply-To: 87zmx0exbm.fsf@deneb.enyo.de
Florian Weimer wrote:
> * Vinzent Hoefler:
>
>> Florian Weimer wrote:
>>
>>> * Vinzent Hoefler:
>>>
>>>> It obviously fails to recompile missing dependencies. From my tests
>>>> it also seems to ignore file dates. So I'd say, the "Java Build
>>>> System" is non-existent.
>>>
>>> It's not specified by the standard.
>>
>> That's as good as "non-existent". :)
>
> Uh-oh, even with Ada, this is mostly a quality-of-implementation
> issue. Ada implementations only need to enforce consistency.
Yep. And talking about the compilation system: In which way is this
different from taking all dependencies into account and check if they
need to be recompiled?
> There's
> no need to support build tools which recognize dependencies and
> automatically recompile them. It's also perfectly acceptable to
> always recompile all dependencies.
Ok, yes, that's the painful way. But at least it *would* recompile them
then.
>>> Sun's implementation optionally
>>> recompiles out-of-date dependencies, though.
>>
>> Well, yes. I've tested some more, and from those tests it seems,
>> Sun's "javac" recompiles dependencies if they are at most one level
>> deep (or - to put it another way - direct dependencies of the file
>> being compiled). It even does that recursively, so if I delete /all/
>> .class files it recompiles everything, of course.
>
> Oh, come on, have a closer look at the documentation.
What documentation?
hovi@jellix:~> man javac
No manual entry for javac
hovi@jellix:~> javac -help
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-d <directory> Specify where to place generated class files
-encoding <encoding> Specify character encoding used by source files
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-help Print a synopsis of standard options
Oh, obviously you mean
<URI:http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/javac.html>.
Well, yes. The part about "searching for types" seems to imply it
recompiles needed things. But in fact it doesn't (yes, I *did* use the
-verbose option to check for that).
The fact is: if it compiles class A which depends on class B which
depends on class C and class C is out of date, but class B is not yet,
it does *not* recompile it. It stops after checking class B. And from
what I understand, this behaviour is indeed conforming to the
specification (if you'd like to call the information on some company's
web site a "specification").
Vinzent.
--
worst case: The wrong assumption there actually is one.
next prev parent reply other threads:[~2005-03-21 8:16 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-17 18:54 How to cache output of the compiler aka ccache i-google-iasuhdkajsh
2005-03-17 19:40 ` Robert A Duff
2005-03-17 20:04 ` Ludovic Brenta
2005-03-17 21:27 ` Marius Amado Alves
2005-03-18 1:24 ` Ludovic Brenta
2005-03-18 2:08 ` Robert A Duff
2005-03-17 19:47 ` Ludovic Brenta
2005-03-18 19:22 ` Simon Wright
2005-03-18 20:04 ` Randy Brukardt
2005-03-18 22:10 ` Florian Weimer
2005-03-19 3:25 ` Larry Kilgallen
2005-03-18 6:58 ` i-google-iasuhdkajsh
2005-03-18 13:33 ` Robert A Duff
2005-03-18 14:01 ` Vinzent 'Gadget' Hoefler
2005-03-18 14:41 ` Florian Weimer
2005-03-18 15:08 ` Vinzent 'Gadget' Hoefler
2005-03-18 16:24 ` Florian Weimer
2005-03-21 8:16 ` Vinzent 'Gadget' Hoefler [this message]
2005-03-21 8:54 ` Florian Weimer
2005-03-21 11:26 ` Vinzent 'Gadget' Hoefler
2005-03-18 8:07 ` Martin Krischik
2005-03-18 18:50 ` i-google-iasuhdkajsh
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox