< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionsParser.java

Print this page
rev 56282 : [mq]: graal

*** 34,45 **** import java.util.ServiceLoader; import jdk.internal.vm.compiler.collections.EconomicMap; import jdk.internal.vm.compiler.collections.MapCursor; - import jdk.vm.ci.services.Services; - /** * This class contains methods for parsing Graal options and matching them against a set of * {@link OptionDescriptors}. The {@link OptionDescriptors} are loaded via a {@link ServiceLoader}. */ public class OptionsParser { --- 34,43 ----
*** 51,80 **** */ public static Iterable<OptionDescriptors> getOptionsLoader() { if (IS_IN_NATIVE_IMAGE || cachedOptionDescriptors != null) { return cachedOptionDescriptors; } ! boolean java8OrEarlier = Services.getSavedProperties().get("java.specification.version").compareTo("1.9") < 0; ! ClassLoader loader; ! if (java8OrEarlier) { ! // On JDK 8, Graal and its extensions are loaded by same class loader. ! loader = OptionDescriptors.class.getClassLoader(); ! } else { ! /* ! * The Graal module (i.e., jdk.internal.vm.compiler) is loaded by the platform class ! * loader as of JDK 9. Modules that depend on and extend Graal are loaded by the app ! * class loader. As such, we need to start the provider search at the app class loader ! * instead of the platform class loader. ! */ ! loader = ClassLoader.getSystemClassLoader(); ! } ! return ServiceLoader.load(OptionDescriptors.class, loader); } ! public static void setCachedOptionDescriptors(List<OptionDescriptors> cachedOptionDescriptors) { assert IS_BUILDING_NATIVE_IMAGE : "Used to pre-initialize the option descriptors during native image generation"; ! OptionsParser.cachedOptionDescriptors = cachedOptionDescriptors; } /** * Parses a map representing assignments of values to options. * --- 49,64 ---- */ public static Iterable<OptionDescriptors> getOptionsLoader() { if (IS_IN_NATIVE_IMAGE || cachedOptionDescriptors != null) { return cachedOptionDescriptors; } ! return ModuleSupport.getOptionsLoader(); } ! public static void setCachedOptionDescriptors(List<OptionDescriptors> list) { assert IS_BUILDING_NATIVE_IMAGE : "Used to pre-initialize the option descriptors during native image generation"; ! OptionsParser.cachedOptionDescriptors = list; } /** * Parses a map representing assignments of values to options. *
< prev index next >