Changeset 13181


Ignore:
Timestamp:
01/23/11 20:08:52 (11 years ago)
Author:
ehuelsmann
Message:

Increase autoload verbosity: include FASLs too (not only Java classes).

File:
1 edited

Legend:

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

    r13143 r13181  
    9898                                                  "org.armedbear.lisp.".concat(className)));
    9999    }
    100    
    101     public void load()
    102     {
     100
     101
     102    private static void effectiveLoad(String className, String fileName) {
    103103        if (className != null) {
    104             final LispThread thread = LispThread.currentThread();
    105             final SpecialBindingsMark mark = thread.markSpecialBindings();
    106             int loadDepth = Fixnum.getValue(_LOAD_DEPTH_.symbolValue());
    107             thread.bindSpecial(_LOAD_DEPTH_, Fixnum.getInstance(++loadDepth));
    108104            try {
    109                 if (_AUTOLOAD_VERBOSE_.symbolValue(thread) != NIL
    110                     || "Y".equals(System.getProperty("abcl.autoload.verbose")))
    111                 {
    112                     final String prefix = Load.getLoadVerbosePrefix(loadDepth);
    113                     Stream out = getStandardOutput();
    114                     out._writeString(prefix);
    115                     out._writeString(" Autoloading ");
    116                     out._writeString(className);
    117                     out._writeLine(" ...");
    118                     out._finishOutput();
    119                     long start = System.currentTimeMillis();
    120                     Class.forName(className);
    121                     long elapsed = System.currentTimeMillis() - start;
    122                     out._writeString(prefix);
    123                     out._writeString(" Autoloaded ");
    124                     out._writeString(className);
    125                     out._writeString(" (");
    126                     out._writeString(String.valueOf(((float)elapsed)/1000));
    127                     out._writeLine(" seconds)");
    128                     out._finishOutput();
    129                 } else
    130                     Class.forName(className);
     105                Class.forName(className);
    131106            }
    132107            catch (ClassNotFoundException e) {
    133108                e.printStackTrace();
    134109            }
    135             finally {
    136                 thread.resetSpecialBindings(mark);
    137             }
    138         } else
    139             Load.loadSystemFile(getFileName(), true);
     110        } else {
     111            Load.loadSystemFile(fileName, true);
     112        }
     113    }
     114
     115    private static void loadVerbose(int loadDepth, String className,
     116            String fileName) {
     117        final String prefix = Load.getLoadVerbosePrefix(loadDepth);
     118        Stream out = getStandardOutput();
     119        out._writeString(prefix);
     120        out._writeString(" Autoloading ");
     121        out._writeString(className == null ? fileName : className);
     122        out._writeLine(" ...");
     123        out._finishOutput();
     124        long start = System.currentTimeMillis();
     125        effectiveLoad(className, fileName);
     126        long elapsed = System.currentTimeMillis() - start;
     127        out._writeString(prefix);
     128        out._writeString(" Autoloaded ");
     129        out._writeString(className == null ? fileName : className);
     130        out._writeString(" (");
     131        out._writeString(String.valueOf(((float)elapsed)/1000));
     132        out._writeLine(" seconds)");
     133        out._finishOutput();
     134    }
     135
     136    public void load()
     137    {
     138        final LispThread thread = LispThread.currentThread();
     139        final SpecialBindingsMark mark = thread.markSpecialBindings();
     140        int loadDepth = Fixnum.getValue(_LOAD_DEPTH_.symbolValue());
     141        thread.bindSpecial(_LOAD_DEPTH_, Fixnum.getInstance(++loadDepth));
     142        try {
     143            if (_AUTOLOAD_VERBOSE_.symbolValue(thread) != NIL
     144                || "Y".equals(System.getProperty("abcl.autoload.verbose")))
     145            {
     146                loadVerbose(loadDepth, className, getFileName());
     147            } else
     148                effectiveLoad(className, getFileName());
     149        }
     150        finally {
     151            thread.resetSpecialBindings(mark);
     152        }
    140153        if (debug) {
    141154            if (symbol != null) {
Note: See TracChangeset for help on using the changeset viewer.