Pending Character-related work - Character-warnings
Jonathan Gibbons
jonathan.gibbons at oracle.com
Thu Jul 1 23:22:22 UTC 2010
Ulf,
As complicated as the build is now, it used to be way more complicated.
I suspect you're just seeing a bit of history leaking into that part of
the build. Because some of the code in the java.lang.Character area is
automatically generated, it has its own special Makefile rules, so I
suspect it has slipped through the cracks to make sure the files that
get generated are compiled with the latest compiler to -target 7 class
files.
-- Jon
On 07/01/2010 04:11 PM, Ulf Zibis wrote:
> Jonathan, Kelly,
>
> thanks for your short but excellent descriptive explanation.
> It mainly reflects how I understood the build process in general.
> Can you briefly answer my questions below?
>
> Am 01.07.2010 18:13, schrieb Kelly O'Hair:
>>
>> On Jul 1, 2010, at 7:56 AM, Jonathan Gibbons wrote:
>>
>>> On 07/01/2010 01:32 AM, Ulf Zibis wrote:
>>>> Am 01.07.2010 09:38, schrieb Martin Buchholz:
>>>>> On Wed, Jun 30, 2010 at 23:49, Ulf Zibis<Ulf.Zibis at gmx.de> wrote:
>>>>>> Am 30.06.2010 19:50, schrieb Martin Buchholz:
>>>>>>> On Wed, Jun 30, 2010 at 01:22, Ulf Zibis<Ulf.Zibis at gmx.de>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Am 29.06.2010 02:29, schrieb Martin Buchholz:
>>>>>>>>> I tried to do that, but Character.java is one of those classes
>>>>>>>>> that needs to be compilable by the bootstrap JDK,
>>>>>>>>> so this change ist leider nicht moeglich.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> I think, there should be a note about this in the sources of those
>>>>>>>> classes.
>>>>>>>>
>>>>>>> Such a note is likely to become obsolete soon.
>>>>>>>
>>>>>> How do you mean that? Will the build procedure change soon. Then
>>>>>> it would be
>>>>>> anyway appropriate to update to new "style".
>>>>> In jdk8, the bootstrap jdk will be at least jdk7.
>>>>
>>>> It would make me wonder if there wont come new language extensions.
>>>> I was thinking about a comment (in all bootstrap compiled classes)
>>>> which couldn't become obsolete like:
>>>> "Don't use latest language extensions in this class. It's one of
>>>> those which must be compilable by the bootstrap JDK while building
>>>> this JDK. Add @suppressWarnings if appropriate."
>>>>
>>>> Anyway, couldn't we use the latest existing JDK-7 build for
>>>> bootstrap? Then we could update the sources 2 weeks later.
>>>> ... or use 2 versions for bootstrap and library as said before.
>>>>
>>>> -Ulf
>>>>
>>>>
>>>
>>> Ulf,
>>>
>>> I suggest you go read blogs by Kelly (http://blogs.sun.com/kto/) and
>>> myself (http://blogs.sun.com/jjg/) on the process of building the
>>> JDK. The boot JDK is always the latest available FCS product (i.e
>>> JDK 6 for JDK 7), but the first thing done in the build is to build
>>> a hybrid javac that runs on the boot JDK and which understands the
>>> latest language. Therefore, with the exception of javac and related
>>> tools that are used during the bootstrap (e.g. javah) most of the
>>> JDK, and all the code in the jdk/ repo can be built with the latest
>>> language features.
>
> I understand this, that all classes in jdk7/tl are compiled by
> source=7 level.
> Is that correct?
> In particular, why should j.l.Character then be compilable by source=6
> level, as Martin said?
> If so, is it thinkable to have 2 versions, one for the bootstrap and
> one for the final JDK7 library, so the latter would be "clean" for the
> source=7 level?
>
> -Ulf
>
>
>>>
>>> There may however be historical reasons why some classes still get
>>> special treatment; those would need to be examined on a case by case
>>> basis.
>>>
>>
>> I think some of the source generation tools may require a 'dumbing
>> down' of the source, I forget the exact details.
>>
>> The jdk/make/tools/src tools are supposed to be built with the BOOT
>> jdk (jdk6), and in general are small utility tools
>> that need to be run before the jdk7 image exists, but are not
>> technically part of the jdk7 image.
>> So like langtools, they need to be BOOT jdk flavored sources, or have
>> a way to run with a BOOT jdk.
>>
>> -kto
>>
>>> -- Jon
>>>
>>
>>
>>
>
More information about the build-dev
mailing list