Skip to content
  • mevenson@1c010e3e-69d0-11dd-93a8-456734b0d56f's avatar
    A collection of provisional hacks at running under openjdk-11 · a628e961
    Working under openjdk-11; Currently testing for openjdk-8.
    Afterwards, openjdk-6, openjdk-7, and whatever additional
    implementations we wish to support.
    
    Even though it emits Java 5 bytecode (version 49.0), the result can be
    run on openjdk-11, the compiler seems to work fine.
    
    This patch reworks ABCL-CONTRIB strategy to introspect the value of
    the the Java system property "java.class.path".  This may not be
    sufficient to find the contribs under all possible ways that the
    implementation may be hosted.
    
    Currently, JSS does not work.  The first stumbling block is
    enumerating all available loadable classfiles using the new
    java.lang.module.ModuleView abstraction.
    
    JSS certainly does not work but the ABCL-CONTRIB works for
    implementations with access to a filesystem on which CL:DIRECTORY can
    work.
    
    To provide some background to the issues here, ABCL-CONTRIB is
    deliberately packaged separately from the contents of `abcl.jar` in
    order to:
    
    1. Keep the base ANSI implementation plus the included ASDF version in
       a single artifact with no other dependencies.
    
    2. Push the decision to potentially infringe on licenses explicitly to
       the user.
    
    The knowledgable User may use the build-time option for the inclusion
    of code in system.lisp and the AIO packaging mechanism to create an
    unified "All-in-one" artifact.
    
    Since ASDF is always included as part of the base `abcl.jar`, we may
    rely on its presence to find additional artifacts to add as additional
    code to abcl, aka. "the abcl contribs".  Currently, this is achieved
    by the following strategies, tried sequentially until one is found to
    be successful:
    
    1.  Introspecting for an implementation of "org.abcl-contrib" as
        declared in the system jar manifest.
    
    2.  Attempting to locate a jar file named `abcl-contrib{MUMBLE}.jar`,
        on the filesystem by searching directories referenced on the class
        path.
    
    3.  Replacing the occurance of 'abcl' with 'abcl-contrib' in the the
        name of the system jar pathname, and then introspecting the
        contents.
    
    It would probably be helpful to add the following strategies to find
    members of ABCL-CONTRIB:
    
    
    4.  Locating an `abcl-contrib.asd` artifact via the usual ASDF
        conventions.
    
    5.  Retrieving the contents of ABCL-CONTRIB from the network via a
        "cool URI".
    
    6.  (Java 11) Appropiate use of Java modules to describe graphs of
        loadable ABCL artifacts.
    a628e961