Changeset 14063


Ignore:
Timestamp:
08/07/12 10:36:33 (8 years ago)
Author:
rschlatte
Message:

Add :MOP to *FEATURES*

  • also simplify *features* initialization a bit
Location:
trunk/abcl/src/org/armedbear/lisp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/Keyword.java

    r13309 r14063  
    105105        LOCAL               = internKeyword("LOCAL"),
    106106        LONG                = internKeyword("LONG"),
     107        MOP                 = internKeyword("MOP"),
    107108        NAME                = internKeyword("NAME"),
    108109        NETBSD              = internKeyword("NETBSD"),
  • trunk/abcl/src/org/armedbear/lisp/Lisp.java

    r14033 r14063  
    23242324  static
    23252325  {
    2326     Symbol.FEATURES.initializeSpecial(NIL);
    2327     String osName = System.getProperty("os.name");
     2326    final String osName = System.getProperty("os.name");
     2327    final String version = System.getProperty("java.version");
     2328    final String os_arch = System.getProperty("os.arch");
     2329
     2330    // Common features
     2331    LispObject featureList = list(Keyword.ARMEDBEAR, Keyword.ABCL,
     2332                                  Keyword.COMMON_LISP, Keyword.ANSI_CL,
     2333                                  Keyword.CDR6, Keyword.MOP);
     2334    // OS type
    23282335    if (osName.startsWith("Linux"))
    2329       {
    2330         Symbol.FEATURES.setSymbolValue(list(Keyword.ARMEDBEAR,
    2331                                              Keyword.ABCL,
    2332                                              Keyword.COMMON_LISP,
    2333                                              Keyword.ANSI_CL,
    2334                                              Keyword.UNIX,
    2335                                              Keyword.LINUX,
    2336                                              Keyword.CDR6));
    2337       }
     2336      featureList = Primitives.APPEND.execute(list(Keyword.UNIX,
     2337                                                  Keyword.LINUX),
     2338                                             featureList);
    23382339    else if (osName.startsWith("SunOS"))
    2339       {
    2340         Symbol.FEATURES.setSymbolValue(list(Keyword.ARMEDBEAR,
    2341                                              Keyword.ABCL,
    2342                                              Keyword.COMMON_LISP,
    2343                                              Keyword.ANSI_CL,
    2344                                              Keyword.UNIX,
    2345                                              Keyword.SUNOS,
    2346                                              Keyword.SOLARIS,
    2347                                              Keyword.CDR6));
    2348       }
     2340      featureList = Primitives.APPEND.execute(list(Keyword.UNIX,
     2341                                                   Keyword.SUNOS,
     2342                                                   Keyword.SOLARIS),
     2343                                              featureList);
    23492344    else if (osName.startsWith("Mac OS X") ||
    23502345             osName.startsWith("Darwin"))
    2351       {
    2352         Symbol.FEATURES.setSymbolValue(list(Keyword.ARMEDBEAR,
    2353                                              Keyword.ABCL,
    2354                                              Keyword.COMMON_LISP,
    2355                                              Keyword.ANSI_CL,
    2356                                              Keyword.UNIX,
    2357                                              Keyword.DARWIN,
    2358                                              Keyword.CDR6));
    2359       }
     2346      featureList = Primitives.APPEND.execute(list(Keyword.UNIX,
     2347                                                   Keyword.DARWIN),
     2348                                              featureList);
    23602349    else if (osName.startsWith("FreeBSD"))
    2361       {
    2362         Symbol.FEATURES.setSymbolValue(list(Keyword.ARMEDBEAR,
    2363                                              Keyword.ABCL,
    2364                                              Keyword.COMMON_LISP,
    2365                                              Keyword.ANSI_CL,
    2366                                              Keyword.UNIX,
    2367                                              Keyword.FREEBSD,
    2368                                              Keyword.CDR6));
    2369       }
     2350      featureList = Primitives.APPEND.execute(list(Keyword.UNIX,
     2351                                                   Keyword.FREEBSD),
     2352                                              featureList);
    23702353    else if (osName.startsWith("OpenBSD"))
    2371       {
    2372         Symbol.FEATURES.setSymbolValue(list(Keyword.ARMEDBEAR,
    2373                                              Keyword.ABCL,
    2374                                              Keyword.COMMON_LISP,
    2375                                              Keyword.ANSI_CL,
    2376                                              Keyword.UNIX,
    2377                                              Keyword.OPENBSD,
    2378                                              Keyword.CDR6));
    2379       }
     2354      featureList = Primitives.APPEND.execute(list(Keyword.UNIX,
     2355                                                   Keyword.OPENBSD),
     2356                                              featureList);
    23802357    else if (osName.startsWith("NetBSD"))
    2381       {
    2382         Symbol.FEATURES.setSymbolValue(list(Keyword.ARMEDBEAR,
    2383                                              Keyword.ABCL,
    2384                                              Keyword.COMMON_LISP,
    2385                                              Keyword.ANSI_CL,
    2386                                              Keyword.UNIX,
    2387                                              Keyword.NETBSD,
    2388                                              Keyword.CDR6));
    2389       }
     2358      featureList = Primitives.APPEND.execute(list(Keyword.UNIX,
     2359                                                   Keyword.NETBSD),
     2360                                              featureList);
    23902361    else if (osName.startsWith("Windows"))
    2391       {
    2392         Symbol.FEATURES.setSymbolValue(list(Keyword.ARMEDBEAR,
    2393                                              Keyword.ABCL,
    2394                                              Keyword.COMMON_LISP,
    2395                                              Keyword.ANSI_CL,
    2396                                              Keyword.WINDOWS,
    2397                                              Keyword.CDR6));
    2398       }
    2399     else
    2400       {
    2401         Symbol.FEATURES.setSymbolValue(list(Keyword.ARMEDBEAR,
    2402                                              Keyword.ABCL,
    2403                                              Keyword.COMMON_LISP,
    2404                                              Keyword.ANSI_CL,
    2405                                              Keyword.CDR6));
    2406       }
    2407   }
    2408   static
    2409   {
    2410     final String version = System.getProperty("java.version");
    2411     if (version.startsWith("1.5"))
    2412       {
    2413         Symbol.FEATURES.setSymbolValue(new Cons(Keyword.JAVA_1_5,
    2414                                                 Symbol.FEATURES.getSymbolValue()));
    2415       }
    2416     else if (version.startsWith("1.6"))
    2417       {
    2418         Symbol.FEATURES.setSymbolValue(new Cons(Keyword.JAVA_1_6,
    2419                                                 Symbol.FEATURES.getSymbolValue()));
    2420       }
    2421     else if (version.startsWith("1.7"))
    2422       {
    2423         Symbol.FEATURES.setSymbolValue(new Cons(Keyword.JAVA_1_7,
    2424                                                 Symbol.FEATURES.getSymbolValue()));
    2425       }
    2426   }
    2427   static
    2428   {
    2429     String os_arch = System.getProperty("os.arch");
     2362      featureList = new Cons(Keyword.WINDOWS, featureList);
     2363    // Java version
     2364    if (version.startsWith("1.5")) {
     2365        featureList = new Cons(Keyword.JAVA_1_5, featureList);
     2366    } else if (version.startsWith("1.6")) {
     2367        featureList = new Cons(Keyword.JAVA_1_6, featureList);
     2368    } else if (version.startsWith("1.7")) {
     2369        featureList = new Cons(Keyword.JAVA_1_7, featureList);
     2370    }
     2371    // Processor architecture
    24302372    if(os_arch != null) {
    24312373      if (os_arch.equals("amd64"))
    2432         Symbol.FEATURES.setSymbolValue(new Cons(Keyword.X86_64,
    2433                                                 Symbol.FEATURES.getSymbolValue()));
     2374        featureList = new Cons(Keyword.X86_64, featureList);
    24342375      else if (os_arch.equals("x86"))
    2435         Symbol.FEATURES.setSymbolValue(new Cons(Keyword.X86,
    2436                                                 Symbol.FEATURES.getSymbolValue()));
     2376        featureList = new Cons(Keyword.X86, featureList);
    24372377    }
     2378    Symbol.FEATURES.initializeSpecial(NIL);
     2379    Symbol.FEATURES.setSymbolValue(featureList);
    24382380  }
    24392381
Note: See TracChangeset for help on using the changeset viewer.