Alex, You have written an excellent post: http://blogs.sun.com/abuckley/en_US/entry/versioning_in_the_java_platform, but I don’t see the relevance to the requested source proposal. No one is asking you to solve the issues you raise. All people are asking is that the source statement behaves like the ‘-source’ flag for 1.7 will.
So how about putting something along these lines into the JLS. 1. Change the books name to The Java 1.7 Language Specification (J1.7LS). 2. In the introduction state that the book describes version 1.7 of Java only and that the reader should refer to The Java Language Specification (JLS) ed. 3 for older versions of Java. 3. The source statement is compulsory and goes before package and is source “1.7”;, if the file does not contain this statement then it is not a Java 1.7 program and is not described in this book. For pre 1.7 Java see JLS ed. 3. 4. If the compiler offers a –source flag or similar on the command line then this flag is to be ignored for 1.7 files, i.e. the source statement overrides the –source flag (or equivalent) for the file in question. That is it; you don’t need to say anything else because currently the JLS does not specify what the source encoding is for different Java version, what the compilation strategy is for different Javas, what to do with a mixed version compilation, or what to do about libraries. Yet people manage with the –source flag as it currently is and its behaviour has not been altered in anyway. The above J1.7LS is obviously an outline but is more than sufficient for a yah or nah decision. -- Howard. On Sep 18, 7:05 pm, Alex Buckley <[email protected]> wrote: > On Sep 17, 5:51 pm, Reinier Zwitserloot <[email protected]> wrote: > > > Alex, 'source' simply acknowledges that java (the language) syntax and > > java (the runtime library) dependencies are utterly unrelated things. > > Incorrect. Language features often rely on library features. > Seehttp://blogs.sun.com/abuckley/en_US/entry/versioning_in_the_java_plat... > for examples. > > > Why MUST they track each other? In practice that already doesn't > > happen: Code compiled on javac6 is routinely run on jvm5, and vice > > versa. javac has -source and -target parameters for a reason. > > javac6 can emit ClassFiles for jvm5 precisely because no source > language changes happened in java6. > > javac5 can emit ClassFiles for jvm6 because Sun's compatibility policy > generally prohibits the removal of features from jvm_n in jvm_n+1. > > This discussion precisely demonstrates my earlier point. Some people > don't merely suggest a language feature; they demand a detailed > interactive discussion with Sun on the feature. Luckily, I can short- > circuit this one because I wrote a detailed and closely related blog > entry. But there are millions of people with suggestions, and no > company in the world has enough employees to address each and every > one. > > Alex --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---
