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