RFR(s): 4285505: deprecate java.lang.Compiler

Roger Riggs Roger.Riggs at Oracle.com
Fri Sep 9 13:55:10 UTC 2016


Hi Stuart,

Related to java.lang.Complier there is the System property 
"java.compiler" [1].
Is there some notation needed on the property or will it just go poof 
when the compiler is removed?

Thanks, Roger

[1] JDK-8041676 <https://bugs.openjdk.java.net/browse/JDK-8041676> 
java.compiler property is uninitialized


On 9/7/2016 4:52 PM, Stuart Marks wrote:
> Hi all,
>
> Please review this small patch to deprecate java.lang.Compiler for 
> removal.
>
> Thanks,
>
> s'marks
>
> # HG changeset patch
> # User smarks
> # Date 1473281459 25200
> #      Wed Sep 07 13:50:59 2016 -0700
> # Node ID e520c4e6970c079573bad20c6b1eba8d5794b34d
> # Parent  76ba1b74f268f1acc4847e242a2cfcd29880418c
> 4285505: deprecate java.lang.Compiler
> Reviewed-by: XXX
>
> diff -r 76ba1b74f268 -r e520c4e6970c 
> src/java.base/share/classes/java/lang/Compiler.java
> --- a/src/java.base/share/classes/java/lang/Compiler.java    Tue Sep 
> 06 16:08:54 2016 -0700
> +++ b/src/java.base/share/classes/java/lang/Compiler.java    Wed Sep 
> 07 13:50:59 2016 -0700
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights 
> reserved.
> + * Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights 
> reserved.
>   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>   *
>   * This code is free software; you can redistribute it and/or modify it
> @@ -29,21 +29,18 @@
>   * The {@code Compiler} class is provided to support Java-to-native-code
>   * compilers and related services. By design, the {@code Compiler} 
> class does
>   * nothing; it serves as a placeholder for a JIT compiler 
> implementation.
> + * If no compiler is available, these methods do nothing.
>   *
> - * <p> When the Java Virtual Machine first starts, it determines if 
> the system
> - * property {@code java.compiler} exists. (System properties are 
> accessible
> - * through {@link System#getProperty(String)} and {@link
> - * System#getProperty(String, String)}.  If so, it is assumed to be 
> the name of
> - * a library (with a platform-dependent exact location and type); {@link
> - * System#loadLibrary} is called to load that library. If this loading
> - * succeeds, the function named {@code java_lang_Compiler_start()} in 
> that
> - * library is called.
> - *
> - * <p> If no compiler is available, these methods do nothing.
> + * @deprecated JIT compilers and their technologies vary too widely to
> + * be controlled effectively by a standardized interface. As such, many
> + * JIT compiler implementations ignore this interface, and are instead
> + * controllable by implementation-specific mechanisms such as 
> command-line
> + * options. This class is subject to removal in a future version of 
> Java SE.
>   *
>   * @author  Frank Yellin
>   * @since   1.0
>   */
> + at Deprecated(since="9", forRemoval=true)
>  public final class Compiler  {
>      private Compiler() {}               // don't make instances
>



More information about the core-libs-dev mailing list