Changeset 4503


Ignore:
Timestamp:
10/23/03 00:29:49 (19 years ago)
Author:
piso
Message:

Refactoring: initialize() => initializeLisp(), initializeTopLevel().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/Interpreter.java

    r4412 r4503  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Interpreter.java,v 1.41 2003-10-16 14:34:33 piso Exp $
     5 * $Id: Interpreter.java,v 1.42 2003-10-23 00:29:49 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    3939    public static Interpreter interpreter;
    4040
    41     public static boolean initialized;
    42 
    4341    private static String ldArgs;
    4442    private static ArrayList history;
     
    8886    }
    8987
    90     public static synchronized void initialize(boolean jlisp)
    91     {
    92         if (!initialized) {
     88    private static boolean lispInitialized;
     89
     90    public static synchronized void initializeLisp(boolean jlisp)
     91    {
     92        if (!lispInitialized) {
    9393            try {
    9494                Load._load("boot.lisp", true, false, false);
     
    9696                    Class.forName("org.armedbear.j.LispAPI");
    9797                    Load._load("j.lisp");
    98                 } else {
    99                     File file = new File(System.getProperty("user.home"),
    100                                          ".ablisprc");
    101                     if (file.isFile())
    102                         Load.load(file.getCanonicalPath(), true, false);
    10398                }
    10499            }
     
    106101                t.printStackTrace();
    107102            }
    108             initialized = true;
     103            lispInitialized = true;
     104        }
     105    }
     106
     107    private static boolean topLevelInitialized;
     108
     109    private static synchronized void initializeTopLevel()
     110    {
     111        if (!topLevelInitialized) {
     112            try {
     113                // Resolve top-level-loop autoload.
     114                Symbol TOP_LEVEL_LOOP = intern("TOP-LEVEL-LOOP", PACKAGE_TPL);
     115                LispObject tplFun = TOP_LEVEL_LOOP.getSymbolFunction();
     116                if (tplFun instanceof Autoload) {
     117                    Autoload autoload = (Autoload) tplFun;
     118                    autoload.load();
     119                }
     120                _LOAD_VERBOSE_.setSymbolValue(T);
     121                _AUTOLOAD_VERBOSE_.setSymbolValue(T);
     122                String userHome = System.getProperty("user.home");
     123                File file = new File(userHome, ".ablrc");
     124                if (file.isFile())
     125                    Load.load(file.getCanonicalPath());
     126                else {
     127                    file = new File(userHome, ".ablisprc");
     128                    if (file.isFile()) {
     129                        String message =
     130                            "Warning: use of .ablisprc is deprecated; use .ablrc instead.";
     131                        getStandardOutput().writeLine(message);
     132                        Load.load(file.getCanonicalPath());
     133                    }
     134                }
     135            }
     136            catch (Throwable t) {
     137                t.printStackTrace();
     138            }
     139            topLevelInitialized = true;
    109140        }
    110141    }
     
    122153            out.writeString(banner());
    123154            out.flushOutput();
    124             initialize(jlisp);
     155            initializeLisp(jlisp);
     156            initializeTopLevel();
    125157            Symbol TOP_LEVEL_LOOP = intern("TOP-LEVEL-LOOP", PACKAGE_TPL);
    126158            LispObject tplFun = TOP_LEVEL_LOOP.getSymbolFunction();
     
    542574    public static LispObject evaluate(String s) throws ConditionThrowable
    543575    {
    544         if (!initialized)
    545             initialize(true);
     576        if (!lispInitialized)
     577            initializeLisp(true);
    546578        StringInputStream stream = new StringInputStream(s);
    547579        LispObject obj = stream.read(false, EOF, false);
Note: See TracChangeset for help on using the changeset viewer.