source: branches/1.0.x/abcl/src/org/armedbear/lisp/Autoload.java

Last change on this file was 13466, checked in by ehuelsmann, 14 years ago

Reduce load time of nested functions and the number of class loader objects.

This commit groups all nested function objects resulting from a COMPILE call
into one class loader (instead of a class loader each). Additionally, nested
function objects aren't instantiated using reflection anymore, instead, the
'new' instruction is used, winning a factor 100 per local function.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 34.5 KB
Line 
1/*
2 * Autoload.java
3 *
4 * Copyright (C) 2003-2006 Peter Graves
5 * $Id: Autoload.java 13466 2011-08-12 12:08:25Z ehuelsmann $
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20 *
21 * As a special exception, the copyright holders of this library give you
22 * permission to link this library with independent modules to produce an
23 * executable, regardless of the license terms of these independent
24 * modules, and to copy and distribute the resulting executable under
25 * terms of your choice, provided that you also meet, for each linked
26 * independent module, the terms and conditions of the license of that
27 * module.  An independent module is a module which is not derived from
28 * or based on this library.  If you modify this library, you may extend
29 * this exception to your version of the library, but you are not
30 * obligated to do so.  If you do not wish to do so, delete this
31 * exception statement from your version.
32 */
33
34package org.armedbear.lisp;
35
36import static org.armedbear.lisp.Lisp.*;
37
38/** See autoloads.lisp for a general explanation of what we're
39 * trying to achieve here.
40 */
41public class Autoload extends Function
42{
43    protected final String fileName;
44    protected final String className;
45
46    private final Symbol symbol;
47
48    protected Autoload(Symbol symbol)
49    {
50        super();
51        fileName = null;
52        className = null;
53        this.symbol = symbol;
54        symbol.setBuiltInFunction(false);
55    }
56
57    protected Autoload(Symbol symbol, String fileName, String className)
58    {
59        super();
60        this.fileName = fileName;
61        this.className = className;
62        this.symbol = symbol;
63        symbol.setBuiltInFunction(false);
64    }
65
66    protected final Symbol getSymbol()
67    {
68        return symbol;
69    }
70
71    public static void autoload(String symbolName, String className)
72    {
73        autoload(PACKAGE_CL, symbolName, className);
74    }
75
76    public static void autoload(Package pkg, String symbolName,
77                                String className)
78    {
79        autoload(pkg, symbolName, className, false);
80    }
81
82    public static void autoload(Package pkg, String symbolName,
83                                String className, boolean exported)
84    {
85        Symbol symbol = intern(symbolName.toUpperCase(), pkg);
86        if (pkg != PACKAGE_CL && exported) {
87            pkg.export(symbol);
88        }
89        if (symbol.getSymbolFunction() == null)
90            symbol.setSymbolFunction(new Autoload(symbol, null,
91                                                  "org.armedbear.lisp.".concat(className)));
92    }
93
94    public static void autoload(Symbol symbol, String className)
95    {
96        if (symbol.getSymbolFunction() == null)
97            symbol.setSymbolFunction(new Autoload(symbol, null,
98                                                  "org.armedbear.lisp.".concat(className)));
99    }
100
101
102    private static void effectiveLoad(String className, String fileName) {
103        if (className != null) {
104            try {
105                Class.forName(className);
106            }
107            catch (ClassNotFoundException e) {
108                e.printStackTrace();
109            }
110        } else {
111            Load.loadSystemFile(fileName, true);
112        }
113    }
114
115    private static void loadVerbose(Symbol sym, 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(sym.getQualifiedName() + " triggers autoloading of ");
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(symbol, loadDepth, className, getFileName());
147            } else
148                effectiveLoad(className, getFileName());
149        }
150        finally {
151            thread.resetSpecialBindings(mark);
152        }
153        if (debug) {
154            if (symbol != null) {
155                if (symbol.getSymbolFunction() instanceof Autoload) {
156                    Debug.trace("Unable to autoload " + symbol.princToString());
157                    throw new IntegrityError();
158                }
159            }
160        }
161    }
162
163    protected final String getFileName()
164    {
165        if (fileName != null)
166            return fileName;
167        return symbol.getName().toLowerCase();
168    }
169
170    @Override
171    public LispObject execute()
172    {
173        load();
174        return symbol.execute();
175    }
176
177    @Override
178    public LispObject execute(LispObject arg)
179    {
180        load();
181        return symbol.execute(arg);
182    }
183
184    @Override
185    public LispObject execute(LispObject first, LispObject second)
186
187    {
188        load();
189        return symbol.execute(first, second);
190    }
191
192    @Override
193    public LispObject execute(LispObject first, LispObject second,
194                              LispObject third)
195
196    {
197        load();
198        return symbol.execute(first, second, third);
199    }
200
201    @Override
202    public LispObject execute(LispObject first, LispObject second,
203                              LispObject third, LispObject fourth)
204
205    {
206        load();
207        return symbol.execute(first, second, third, fourth);
208    }
209
210    @Override
211    public LispObject execute(LispObject first, LispObject second,
212                              LispObject third, LispObject fourth,
213                              LispObject fifth)
214
215    {
216        load();
217        return symbol.execute(first, second, third, fourth, fifth);
218    }
219
220    @Override
221    public LispObject execute(LispObject first, LispObject second,
222                              LispObject third, LispObject fourth,
223                              LispObject fifth, LispObject sixth)
224
225    {
226        load();
227        return symbol.execute(first, second, third, fourth, fifth, sixth);
228    }
229
230    @Override
231    public LispObject execute(LispObject first, LispObject second,
232                              LispObject third, LispObject fourth,
233                              LispObject fifth, LispObject sixth,
234                              LispObject seventh)
235
236    {
237        load();
238        return symbol.execute(first, second, third, fourth, fifth, sixth,
239                              seventh);
240    }
241
242    @Override
243    public LispObject execute(LispObject first, LispObject second,
244                              LispObject third, LispObject fourth,
245                              LispObject fifth, LispObject sixth,
246                              LispObject seventh, LispObject eighth)
247
248    {
249        load();
250        return symbol.execute(first, second, third, fourth, fifth, sixth,
251                              seventh, eighth);
252    }
253
254    @Override
255    public LispObject execute(LispObject[] args)
256    {
257        load();
258        return symbol.execute(args);
259    }
260
261    @Override
262    public String printObject()
263    {
264        StringBuilder sb = new StringBuilder();
265        sb.append(symbol.princToString());
266        sb.append(" \"");
267        if (className != null) {
268            int index = className.lastIndexOf('.');
269            if (index >= 0)
270                sb.append(className.substring(index + 1));
271            else
272                sb.append(className);
273            sb.append(".class");
274        } else
275            sb.append(getFileName());
276        return unreadableString(sb.toString());
277    }
278
279    // ### autoload
280    private static final Primitive AUTOLOAD =
281        new Primitive("autoload", PACKAGE_EXT, true)
282    {
283        @Override
284        public LispObject execute(LispObject first)
285        {
286            if (first instanceof Symbol) {
287                Symbol symbol = (Symbol) first;
288                symbol.setSymbolFunction(new Autoload(symbol));
289                return T;
290            }
291            if (first instanceof Cons) {
292                for (LispObject list = first; list != NIL; list = list.cdr()) {
293                    Symbol symbol = checkSymbol(list.car());
294                    symbol.setSymbolFunction(new Autoload(symbol));
295                }
296                return T;
297            }
298            return error(new TypeError(first));
299        }
300        @Override
301        public LispObject execute(LispObject first, LispObject second)
302
303        {
304            final String fileName = second.getStringValue();
305            if (first instanceof Symbol) {
306                Symbol symbol = (Symbol) first;
307                symbol.setSymbolFunction(new Autoload(symbol, fileName, null));
308                return T;
309            }
310            if (first instanceof Cons) {
311                for (LispObject list = first; list != NIL; list = list.cdr()) {
312                    Symbol symbol = checkSymbol(list.car());
313                    symbol.setSymbolFunction(new Autoload(symbol, fileName, null));
314                }
315                return T;
316            }
317            return error(new TypeError(first));
318        }
319    };
320
321    // ### resolve
322    // Force autoload to be resolved.
323    private static final Primitive RESOLVE =
324        new Primitive("resolve", PACKAGE_EXT, true, "symbol")
325    {
326        @Override
327        public LispObject execute(LispObject arg)
328        {
329            Symbol symbol = checkSymbol(arg);
330            LispObject fun = symbol.getSymbolFunction();
331            if (fun instanceof Autoload) {
332                Autoload autoload = (Autoload) fun;
333                autoload.load();
334                return symbol.getSymbolFunction();
335            }
336            return fun;
337        }
338    };
339
340    // ### autoloadp
341    private static final Primitive AUTOLOADP =
342        new Primitive("autoloadp", PACKAGE_EXT, true, "symbol")
343    {
344        @Override
345        public LispObject execute(LispObject arg)
346        {
347            if (arg instanceof Symbol) {
348                if (arg.getSymbolFunction() instanceof Autoload)
349                    return T;
350            }
351            return NIL;
352        }
353    };
354
355    static {
356        autoload("acos", "MathFunctions");
357        autoload("acosh", "MathFunctions");
358        autoload("arithmetic-error-operands", "ArithmeticError");
359        autoload("arithmetic-error-operation", "ArithmeticError");
360        autoload("ash", "ash");
361        autoload("asin", "MathFunctions");
362        autoload("asinh", "MathFunctions");
363        autoload("atan", "MathFunctions");
364        autoload("atanh", "MathFunctions");
365        autoload("broadcast-stream-streams", "BroadcastStream");
366        autoload("ceiling", "ceiling");
367        autoload("cell-error-name", "cell_error_name");
368        autoload("char", "StringFunctions");
369        autoload("char-equal", "CharacterFunctions");
370        autoload("char-greaterp", "CharacterFunctions");
371        autoload("char-lessp", "CharacterFunctions");
372        autoload("char-not-greaterp", "CharacterFunctions");
373        autoload("char-not-lessp", "CharacterFunctions");
374        autoload("char<", "CharacterFunctions");
375        autoload("char<=", "CharacterFunctions");
376        autoload("char=", "CharacterFunctions");
377        autoload("cis", "MathFunctions");
378        autoload("clrhash", "HashTableFunctions");
379        autoload("clrhash", "HashTableFunctions");
380        autoload("concatenated-stream-streams", "ConcatenatedStream");
381        autoload("cos", "MathFunctions");
382        autoload("cosh", "MathFunctions");
383        autoload("delete-file", "delete_file");
384        autoload("delete-package", "PackageFunctions");
385        autoload("echo-stream-input-stream", "EchoStream");
386        autoload("echo-stream-output-stream", "EchoStream");
387        autoload("exp", "MathFunctions");
388        autoload("expt", "MathFunctions");
389        autoload("file-author", "file_author");
390        autoload("file-error-pathname", "file_error_pathname");
391        autoload("file-length", "file_length");
392        autoload("file-string-length", "file_string_length");
393        autoload("file-write-date", "file_write_date");
394        autoload("float", "FloatFunctions");
395        autoload("float-digits", "FloatFunctions");
396        autoload("float-radix", "FloatFunctions");
397        autoload("float-sign", "float_sign");
398        autoload("floatp", "FloatFunctions");
399        autoload("floor", "floor");
400        autoload("ftruncate", "ftruncate");
401        autoload("get-internal-real-time", "Time");
402        autoload("get-internal-run-time", "Time");
403        autoload("get-output-stream-string", "StringOutputStream");
404        autoload("get-properties", "get_properties");
405        autoload("get-universal-time", "Time");
406        autoload("gethash", "HashTableFunctions");
407        autoload("gethash", "HashTableFunctions");
408        autoload("hash-table-count", "HashTableFunctions");
409        autoload("hash-table-count", "HashTableFunctions");
410        autoload("hash-table-p", "HashTableFunctions");
411        autoload("hash-table-p", "HashTableFunctions");
412        autoload("hash-table-rehash-size", "HashTableFunctions");
413        autoload("hash-table-rehash-size", "HashTableFunctions");
414        autoload("hash-table-rehash-threshold", "HashTableFunctions");
415        autoload("hash-table-rehash-threshold", "HashTableFunctions");
416        autoload("hash-table-size", "HashTableFunctions");
417        autoload("hash-table-size", "HashTableFunctions");
418        autoload("hash-table-test", "HashTableFunctions");
419        autoload("hash-table-test", "HashTableFunctions");
420        autoload("%import", "PackageFunctions");
421        autoload("input-stream-p", "input_stream_p");
422        autoload("integer-decode-float", "FloatFunctions");
423        autoload("interactive-stream-p", "interactive_stream_p");
424        autoload("last", "last");
425        autoload("lisp-implementation-type", "lisp_implementation_type");
426        autoload("lisp-implementation-version", "lisp_implementation_version");
427        autoload("list-all-packages", "PackageFunctions");
428        autoload("listen", "listen");
429        autoload("log", "MathFunctions");
430        autoload("logand", "logand");
431        autoload("logandc1", "logandc1");
432        autoload("logandc2", "logandc2");
433        autoload("logbitp", "logbitp");
434        autoload("logcount", "logcount");
435        autoload("logeqv", "logeqv");
436        autoload("logior", "logior");
437        autoload("lognand", "lognand");
438        autoload("lognor", "lognor");
439        autoload("lognot", "lognot");
440        autoload("logorc1", "logorc1");
441        autoload("logorc2", "logorc2");
442        autoload("logtest", "logtest");
443        autoload("logxor", "logxor");
444        autoload("long-site-name", "SiteName");
445        autoload("machine-instance", "SiteName");
446        autoload("machine-type", "machine_type");
447        autoload("machine-version", "machine_version");
448        autoload("make-broadcast-stream", "BroadcastStream");
449        autoload("make-concatenated-stream", "ConcatenatedStream");
450        autoload("make-echo-stream", "EchoStream");
451        autoload("make-string-input-stream", "StringInputStream");
452        autoload("make-synonym-stream", "SynonymStream");
453        autoload("maphash", "HashTableFunctions");
454        autoload("mod", "mod");
455        autoload("open-stream-p", "open_stream_p");
456        autoload("output-stream-p", "output_stream_p");
457        autoload("package-error-package", "package_error_package");
458        autoload("package-error-package", "package_error_package");
459        autoload("package-name", "PackageFunctions");
460        autoload("package-nicknames", "PackageFunctions");
461        autoload("package-shadowing-symbols", "PackageFunctions");
462        autoload("package-use-list", "PackageFunctions");
463        autoload("package-used-by-list", "PackageFunctions");
464        autoload("packagep", "PackageFunctions");
465        autoload("peek-char", "peek_char");
466        autoload("print-not-readable-object", "PrintNotReadable");
467        autoload("probe-file", "probe_file");
468        autoload("rational", "FloatFunctions");
469        autoload("rem", "rem");
470        autoload("remhash", "HashTableFunctions");
471        autoload("remhash", "HashTableFunctions");
472        autoload("rename-package", "PackageFunctions");
473        autoload("room", "room");
474        autoload("scale-float", "FloatFunctions");
475        autoload("schar", "StringFunctions");
476        autoload("shadow", "PackageFunctions");
477        autoload("shadowing-import", "PackageFunctions");
478        autoload("short-site-name", "SiteName");
479        autoload("simple-condition-format-arguments", "SimpleCondition");
480        autoload("simple-condition-format-control", "SimpleCondition");
481        autoload("simple-string-p", "StringFunctions");
482        autoload("sin", "MathFunctions");
483        autoload("sinh", "MathFunctions");
484        autoload("software-type", "software_type");
485        autoload("software-version", "software_version");
486        autoload("sqrt", "MathFunctions");
487        autoload("stream-element-type", "stream_element_type");
488        autoload("stream-error-stream", "StreamError");
489        autoload("stream-external-format", "stream_external_format");
490        autoload("%set-stream-external-format", "stream_external_format");
491        autoload("stringp", "StringFunctions");
492        autoload("sxhash", "HashTableFunctions");
493        autoload("sxhash", "HashTableFunctions");
494        autoload("synonym-stream-symbol", "SynonymStream");
495        autoload("tan", "MathFunctions");
496        autoload("tanh", "MathFunctions");
497        autoload("truename", "probe_file");
498        autoload("truncate", "truncate");
499        autoload("type-error-datum", "TypeError");
500        autoload("type-error-expected-type", "TypeError");
501        autoload("unbound-slot-instance", "unbound_slot_instance");
502        autoload("unexport", "PackageFunctions");
503        autoload("unuse-package", "PackageFunctions");
504        autoload(PACKAGE_EXT, "arglist", "arglist", true);
505        autoload(PACKAGE_EXT, "assq", "assq", true);
506        autoload(PACKAGE_EXT, "assql", "assql", true);
507        autoload(PACKAGE_EXT, "file-directory-p", "probe_file", true);
508        autoload(PACKAGE_EXT, "gc", "gc", true);
509        autoload(PACKAGE_EXT, "get-floating-point-modes", "FloatFunctions", true);
510        autoload(PACKAGE_EXT, "make-slime-input-stream", "SlimeInputStream", true);
511        autoload(PACKAGE_EXT, "make-slime-output-stream", "SlimeOutputStream", true);
512        autoload(PACKAGE_EXT, "probe-directory", "probe_file", true);
513        autoload(PACKAGE_EXT, "set-floating-point-modes", "FloatFunctions", true);
514        autoload(PACKAGE_EXT, "simple-string-fill", "StringFunctions");
515        autoload(PACKAGE_EXT, "simple-string-search", "StringFunctions");
516        autoload(PACKAGE_EXT, "string-input-stream-current", "StringInputStream", true);
517        autoload(PACKAGE_EXT, "string-find", "StringFunctions");
518        autoload(PACKAGE_EXT, "string-position", "StringFunctions");
519        autoload(PACKAGE_EXT, "make-weak-reference", "WeakReference", true);
520        autoload(PACKAGE_EXT, "weak-reference-value", "WeakReference", true);
521        autoload(PACKAGE_EXT, "finalize", "Primitives", true);
522        autoload(PACKAGE_EXT, "cancel-finalization", "Primitives", true);
523        autoload(PACKAGE_JAVA, "%jnew-proxy", "JProxy");
524        autoload(PACKAGE_JAVA, "%find-java-class", "JavaObject");
525        autoload(PACKAGE_JAVA, "%register-java-class", "JavaObject");
526        autoload(PACKAGE_JAVA, "%jmake-invocation-handler", "JProxy");
527        autoload(PACKAGE_JAVA, "%jmake-proxy", "JProxy");
528        autoload(PACKAGE_JAVA, "%jnew-runtime-class", "RuntimeClass");
529        autoload(PACKAGE_JAVA, "%jredefine-method", "RuntimeClass");
530        autoload(PACKAGE_JAVA, "%jregister-handler", "JHandler");
531        autoload(PACKAGE_JAVA, "%load-java-class-from-byte-array", "RuntimeClass");
532        autoload(PACKAGE_JAVA, "get-default-classloader", "JavaClassLoader");
533        autoload(PACKAGE_JAVA, "make-classloader", "JavaClassLoader");
534        autoload(PACKAGE_JAVA, "%add-to-classpath", "JavaClassLoader");
535        autoload(PACKAGE_JAVA, "dump-classpath", "JavaClassLoader");
536        autoload(PACKAGE_MOP, "funcallable-instance-function", "StandardGenericFunction", false);
537        autoload(PACKAGE_MOP, "generic-function-name", "StandardGenericFunction", true);
538        autoload(PACKAGE_MOP, "method-qualifiers", "StandardMethod", true);
539        autoload(PACKAGE_MOP, "method-specializers", "StandardMethod", true);
540        autoload(PACKAGE_MOP, "set-funcallable-instance-function", "StandardGenericFunction", true);
541        autoload(PACKAGE_PROF, "%start-profiler", "Profiler", true);
542        autoload(PACKAGE_PROF, "stop-profiler", "Profiler", true);
543        autoload(PACKAGE_SYS, "%%string=", "StringFunctions");
544        autoload(PACKAGE_SYS, "%adjust-array", "adjust_array");
545        autoload(PACKAGE_SYS, "%defpackage", "PackageFunctions");
546        autoload(PACKAGE_SYS, "%finalize-generic-function", "StandardGenericFunction", true);
547        autoload(PACKAGE_SYS, "%generic-function-lambda-list", "StandardGenericFunction", true);
548        autoload(PACKAGE_SYS, "%generic-function-name", "StandardGenericFunction", true);
549        autoload(PACKAGE_SYS, "%get-output-stream-bytes", "ByteArrayOutputStream"); //AS 20090325
550        autoload(PACKAGE_SYS, "%get-output-stream-array", "ByteArrayOutputStream");
551        autoload(PACKAGE_SYS, "%make-array", "make_array");
552        autoload(PACKAGE_SYS, "%make-byte-array-input-stream", "ByteArrayInputStream"); //AS 20100317
553        autoload(PACKAGE_SYS, "%make-byte-array-output-stream", "ByteArrayOutputStream"); //AS 20090325
554        autoload(PACKAGE_SYS, "%make-condition", "make_condition", true);
555        autoload(PACKAGE_SYS, "%make-hash-table", "HashTableFunctions");
556        autoload(PACKAGE_SYS, "%make-hash-table", "HashTableFunctions");
557        autoload(PACKAGE_SYS, "%make-logical-pathname", "LogicalPathname", true);
558        autoload(PACKAGE_SYS, "%make-server-socket", "make_server_socket");
559        autoload(PACKAGE_SYS, "%make-socket", "make_socket");
560        autoload(PACKAGE_SYS, "%make-string", "StringFunctions");
561        autoload(PACKAGE_SYS, "%make-string-output-stream", "StringOutputStream");
562        autoload(PACKAGE_SYS, "%method-fast-function", "StandardMethod", true);
563        autoload(PACKAGE_SYS, "%method-function", "StandardMethod", true);
564        autoload(PACKAGE_SYS, "%method-generic-function", "StandardMethod", true);
565        autoload(PACKAGE_SYS, "%method-specializers", "StandardMethod", true);
566        autoload(PACKAGE_SYS, "%nstring-capitalize", "StringFunctions");
567        autoload(PACKAGE_SYS, "%nstring-downcase", "StringFunctions");
568        autoload(PACKAGE_SYS, "%nstring-upcase", "StringFunctions");
569        autoload(PACKAGE_SYS, "%run-shell-command", "ShellCommand");
570        autoload(PACKAGE_SYS, "%server-socket-close", "server_socket_close");
571        autoload(PACKAGE_SYS, "%set-arglist", "arglist");
572        autoload(PACKAGE_SYS, "%set-class-direct-slots", "SlotClass", true);
573        autoload(PACKAGE_SYS, "%set-function-info", "function_info");
574        autoload(PACKAGE_SYS, "%set-generic-function-lambda-list", "StandardGenericFunction", true);
575        autoload(PACKAGE_SYS, "%set-generic-function-name", "StandardGenericFunction", true);
576        autoload(PACKAGE_SYS, "%set-gf-required-args", "StandardGenericFunction", true);
577        autoload(PACKAGE_SYS, "%set-method-fast-function", "StandardMethod", true);
578        autoload(PACKAGE_SYS, "%set-method-function", "StandardMethod", true);
579        autoload(PACKAGE_SYS, "%set-method-generic-function", "StandardMethod", true);
580        autoload(PACKAGE_SYS, "%set-method-specializers", "StandardMethod", true);
581        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-and", "SimpleBitVector");
582        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-andc1", "SimpleBitVector");
583        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-andc2", "SimpleBitVector");
584        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-eqv", "SimpleBitVector");
585        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-ior", "SimpleBitVector");
586        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-nand", "SimpleBitVector");
587        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-nor", "SimpleBitVector");
588        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-not", "SimpleBitVector");
589        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-orc1", "SimpleBitVector");
590        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-orc2", "SimpleBitVector");
591        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-xor", "SimpleBitVector");
592        autoload(PACKAGE_SYS, "%slot-definition-allocation", "SlotDefinition", true);
593        autoload(PACKAGE_SYS, "%slot-definition-allocation-class", "SlotDefinition", true);
594        autoload(PACKAGE_SYS, "%slot-definition-initargs", "SlotDefinition", true);
595        autoload(PACKAGE_SYS, "%slot-definition-initform", "SlotDefinition", true);
596        autoload(PACKAGE_SYS, "%slot-definition-initfunction", "SlotDefinition", true);
597        autoload(PACKAGE_SYS, "%slot-definition-location", "SlotDefinition", true);
598        autoload(PACKAGE_SYS, "%slot-definition-name", "SlotDefinition", true);
599        autoload(PACKAGE_SYS, "%slot-definition-readers", "SlotDefinition", true);
600        autoload(PACKAGE_SYS, "%slot-definition-writers", "SlotDefinition", true);
601        autoload(PACKAGE_SYS, "%socket-accept", "socket_accept");
602        autoload(PACKAGE_SYS, "%socket-close", "socket_close");
603        autoload(PACKAGE_SYS, "%socket-stream", "socket_stream");
604        autoload(PACKAGE_SYS, "%string-capitalize", "StringFunctions");
605        autoload(PACKAGE_SYS, "%string-downcase", "StringFunctions");
606        autoload(PACKAGE_SYS, "%string-equal", "StringFunctions");
607        autoload(PACKAGE_SYS, "%string-greaterp", "StringFunctions");
608        autoload(PACKAGE_SYS, "%string-lessp", "StringFunctions");
609        autoload(PACKAGE_SYS, "%string-not-equal", "StringFunctions");
610        autoload(PACKAGE_SYS, "%string-not-greaterp", "StringFunctions");
611        autoload(PACKAGE_SYS, "%string-not-lessp", "StringFunctions");
612        autoload(PACKAGE_SYS, "%string-upcase", "StringFunctions");
613        autoload(PACKAGE_SYS, "%string/=", "StringFunctions");
614        autoload(PACKAGE_SYS, "%string<", "StringFunctions");
615        autoload(PACKAGE_SYS, "%string<=", "StringFunctions");
616        autoload(PACKAGE_SYS, "%string=", "StringFunctions");
617        autoload(PACKAGE_SYS, "%string>", "StringFunctions");
618        autoload(PACKAGE_SYS, "%string>=", "StringFunctions");
619        autoload(PACKAGE_SYS, "%time", "Time");
620        autoload(PACKAGE_SYS, "cache-emf", "StandardGenericFunction", true);
621        autoload(PACKAGE_SYS, "cache-slot-location", "StandardGenericFunction", true);
622        autoload(PACKAGE_SYS, "canonicalize-logical-host", "LogicalPathname", true);
623        autoload(PACKAGE_SYS, "class-direct-slots", "SlotClass");
624  autoload(PACKAGE_SYS, "%float-bits", "FloatFunctions");
625        autoload(PACKAGE_SYS, "coerce-to-double-float", "FloatFunctions");
626        autoload(PACKAGE_SYS, "coerce-to-single-float", "FloatFunctions");
627        autoload(PACKAGE_SYS, "compute-class-direct-slots", "SlotClass", true);
628        autoload(PACKAGE_SYS, "create-new-file", "create_new_file");
629        autoload(PACKAGE_SYS, "default-time-zone", "Time");
630        autoload(PACKAGE_SYS, "disassemble-class-bytes", "disassemble_class_bytes", true);
631        autoload(PACKAGE_SYS, "disable-zip-cache", "ZipCache", true);
632        autoload(PACKAGE_SYS, "double-float-high-bits", "FloatFunctions", true);
633        autoload(PACKAGE_SYS, "double-float-low-bits", "FloatFunctions", true);
634        autoload(PACKAGE_SYS, "float-infinity-p", "FloatFunctions", true);
635        autoload(PACKAGE_SYS, "float-nan-p", "FloatFunctions", true);
636        autoload(PACKAGE_SYS, "float-string", "FloatFunctions", true);
637        autoload(PACKAGE_SYS, "function-info", "function_info");
638        autoload(PACKAGE_SYS, "generic-function-argument-precedence-order","StandardGenericFunction", true);
639        autoload(PACKAGE_SYS, "generic-function-classes-to-emf-table","StandardGenericFunction", true);
640        autoload(PACKAGE_SYS, "generic-function-documentation","StandardGenericFunction", true);
641        autoload(PACKAGE_SYS, "generic-function-initial-methods","StandardGenericFunction", true);
642        autoload(PACKAGE_SYS, "generic-function-method-class","StandardGenericFunction", true);
643        autoload(PACKAGE_SYS, "generic-function-method-combination","StandardGenericFunction", true);
644        autoload(PACKAGE_SYS, "generic-function-methods","StandardGenericFunction", true);
645        autoload(PACKAGE_SYS, "get-cached-emf", "StandardGenericFunction", true);
646        autoload(PACKAGE_SYS, "get-cached-slot-location", "StandardGenericFunction", true);
647        autoload(PACKAGE_SYS, "get-function-info-value", "function_info");
648        autoload(PACKAGE_SYS, "gf-required-args", "StandardGenericFunction", true);
649        autoload(PACKAGE_SYS, "hash-table-entries", "HashTableFunctions");
650        autoload(PACKAGE_SYS, "hash-table-entries", "HashTableFunctions");
651        autoload(PACKAGE_SYS, "layout-class", "Layout", true);
652        autoload(PACKAGE_SYS, "layout-length", "Layout", true);
653        autoload(PACKAGE_SYS, "layout-slot-index", "Layout", true);
654        autoload(PACKAGE_SYS, "layout-slot-location", "Layout", true);
655        autoload(PACKAGE_SYS, "make-case-frob-stream", "CaseFrobStream");
656        autoload(PACKAGE_SYS, "make-double-float", "FloatFunctions", true);
657        autoload(PACKAGE_SYS, "make-file-stream", "FileStream");
658        autoload(PACKAGE_SYS, "make-fill-pointer-output-stream", "FillPointerOutputStream");
659        autoload(PACKAGE_SYS, "make-forward-referenced-class", "ForwardReferencedClass", true);
660        autoload(PACKAGE_SYS, "make-layout", "Layout", true);
661        autoload(PACKAGE_SYS, "make-single-float", "FloatFunctions", true);
662        autoload(PACKAGE_SYS, "make-slot-definition", "SlotDefinition", true);
663        autoload(PACKAGE_SYS, "make-structure-class", "StructureClass");
664        autoload(PACKAGE_SYS, "make-symbol-macro", "SymbolMacro");
665        autoload(PACKAGE_SYS, "method-documentation", "StandardMethod", true);
666        autoload(PACKAGE_SYS, "method-lambda-list", "StandardMethod", true);
667        autoload(PACKAGE_SYS, "psxhash", "HashTableFunctions");
668        autoload(PACKAGE_SYS, "puthash", "HashTableFunctions");
669        autoload(PACKAGE_SYS, "puthash", "HashTableFunctions");
670        autoload(PACKAGE_SYS, "remove-zip-cache-entry", "ZipCache");
671        autoload(PACKAGE_SYS, "set-function-info-value", "function_info");
672        autoload(PACKAGE_SYS, "set-generic-function-argument-precedence-order","StandardGenericFunction", true);
673        autoload(PACKAGE_SYS, "set-generic-function-classes-to-emf-table","StandardGenericFunction", true);
674        autoload(PACKAGE_SYS, "set-generic-function-documentation","StandardGenericFunction", true);
675        autoload(PACKAGE_SYS, "set-generic-function-initial-methods","StandardGenericFunction", true);
676        autoload(PACKAGE_SYS, "set-generic-function-method-class","StandardGenericFunction", true);
677        autoload(PACKAGE_SYS, "set-generic-function-method-combination","StandardGenericFunction", true);
678        autoload(PACKAGE_SYS, "set-generic-function-methods","StandardGenericFunction", true);
679        autoload(PACKAGE_SYS, "set-method-documentation", "StandardMethod", true);
680        autoload(PACKAGE_SYS, "set-method-lambda-list", "StandardMethod", true);
681        autoload(PACKAGE_SYS, "set-method-qualifiers", "StandardMethod", true);
682        autoload(PACKAGE_SYS, "set-slot-definition-allocation", "SlotDefinition", true);
683        autoload(PACKAGE_SYS, "set-slot-definition-allocation-class", "SlotDefinition", true);
684        autoload(PACKAGE_SYS, "set-slot-definition-initargs", "SlotDefinition", true);
685        autoload(PACKAGE_SYS, "set-slot-definition-initform", "SlotDefinition", true);
686        autoload(PACKAGE_SYS, "set-slot-definition-initfunction", "SlotDefinition", true);
687        autoload(PACKAGE_SYS, "set-slot-definition-location", "SlotDefinition", true);
688        autoload(PACKAGE_SYS, "set-slot-definition-name", "SlotDefinition", true);
689        autoload(PACKAGE_SYS, "set-slot-definition-readers", "SlotDefinition", true);
690        autoload(PACKAGE_SYS, "set-slot-definition-writers", "SlotDefinition", true);
691        autoload(PACKAGE_SYS, "simple-list-remove-duplicates", "simple_list_remove_duplicates");
692        autoload(PACKAGE_SYS, "single-float-bits", "FloatFunctions", true);
693        autoload(PACKAGE_SYS, "%std-allocate-instance", "StandardObjectFunctions", true);
694        autoload(PACKAGE_SYS, "unzip", "unzip", true);
695        autoload(PACKAGE_SYS, "zip", "zip", true);
696
697        autoload(PACKAGE_SYS, "proxy-preloaded-function",
698                 "AutoloadedFunctionProxy", false);
699        autoload(PACKAGE_SYS, "make-function-preloading-context",
700                 "AutoloadedFunctionProxy", false);
701        autoload(PACKAGE_SYS, "function-preload",
702                 "AutoloadedFunctionProxy", false);
703
704        autoload(Symbol.COPY_LIST, "copy_list");
705
706  autoload(PACKAGE_SYS, "make-fasl-class-loader", "FaslClassLoader", false);
707  autoload(PACKAGE_SYS, "get-fasl-function", "FaslClassLoader", false);
708
709  autoload(PACKAGE_SYS, "make-memory-class-loader", "MemoryClassLoader", false);
710  autoload(PACKAGE_SYS, "put-memory-function", "MemoryClassLoader", false);
711  autoload(PACKAGE_SYS, "get-memory-function", "MemoryClassLoader", false);
712       
713        autoload(Symbol.SET_CHAR, "StringFunctions");
714        autoload(Symbol.SET_SCHAR, "StringFunctions");
715
716        autoload(Symbol._SET_CLASS_SLOTS, "SlotClass");
717        autoload(Symbol._CLASS_SLOTS, "SlotClass");
718
719        autoload(Symbol.JAVA_EXCEPTION_CAUSE, "JavaException");
720        autoload(Symbol.JCLASS_NAME, "jclass_name");
721        autoload(Symbol.JCLASS_OF, "jclass_of");
722        autoload(Symbol.JMETHOD_RETURN_TYPE, "jmethod_return_type");
723    }
724}
Note: See TracBrowser for help on using the repository browser.