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

Last change on this file was 14378, checked in by Mark Evenson, 12 years ago

Backport r14369 | mevenson | 2013-02-13 20:01:20 +0100 (Wed, 13 Feb 2013) | 7 lines

Implementation of autoloader for SETF generalized references.

Fixes #296. Fixes #266. Fixes #228.

For forms which set the symbol properties of SETF-EXPANDER or
SETF-FUNCTION to function definitions, places stub of type
AutoloadGeneralizedReference? to be resolved when first invoked.

Does NOT include changes to asdf.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 35.8 KB
Line 
1/*
2 * Autoload.java
3 *
4 * Copyright (C) 2003-2006 Peter Graves
5 * $Id: Autoload.java 14378 2013-02-13 19:54:49Z mevenson $
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    protected 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    private static void effectiveLoad(String className, String fileName) {
102        if (className != null) {
103            try {
104                Class.forName(className);
105            }
106            catch (ClassNotFoundException e) {
107                e.printStackTrace();
108            }
109        } else {
110            Load.loadSystemFile(fileName, true);
111        }
112    }
113
114    private static void loadVerbose(Symbol sym, int loadDepth, String className,
115            String fileName) {
116        final String prefix = Load.getLoadVerbosePrefix(loadDepth);
117        Stream out = getStandardOutput();
118        out._writeString(prefix);
119        out._writeString(sym.getQualifiedName() + " triggers autoloading of ");
120        out._writeString(className == null ? fileName : className);
121        out._writeLine(" ...");
122        out._finishOutput();
123        long start = System.currentTimeMillis();
124        effectiveLoad(className, fileName);
125        long elapsed = System.currentTimeMillis() - start;
126        out._writeString(prefix);
127        out._writeString(" Autoloaded ");
128        out._writeString(className == null ? fileName : className);
129        out._writeString(" (");
130        out._writeString(String.valueOf(((float)elapsed)/1000));
131        out._writeLine(" seconds)");
132        out._finishOutput();
133    }
134
135    public void load()
136    {
137        final LispThread thread = LispThread.currentThread();
138        final SpecialBindingsMark mark = thread.markSpecialBindings();
139        int loadDepth = Fixnum.getValue(_LOAD_DEPTH_.symbolValue());
140        thread.bindSpecial(_LOAD_DEPTH_, Fixnum.getInstance(++loadDepth));
141        try {
142            if (_AUTOLOAD_VERBOSE_.symbolValue(thread) != NIL
143                || "Y".equals(System.getProperty("abcl.autoload.verbose")))
144            {
145                loadVerbose(symbol, loadDepth, className, getFileName());
146            } else
147                effectiveLoad(className, getFileName());
148        }
149        finally {
150            thread.resetSpecialBindings(mark);
151        }
152        if (debug) {
153            if (symbol != null) {
154                if (symbol.getSymbolFunction() instanceof Autoload) {
155                    Debug.trace("Unable to autoload " + symbol.princToString());
156                    throw new IntegrityError();
157                }
158            }
159        }
160    }
161
162    protected final String getFileName()
163    {
164        if (fileName != null)
165            return fileName;
166        return symbol.getName().toLowerCase();
167    }
168
169    @Override
170    public LispObject execute()
171    {
172        load();
173        return symbol.execute();
174    }
175
176    @Override
177    public LispObject execute(LispObject arg)
178    {
179        load();
180        return symbol.execute(arg);
181    }
182
183    @Override
184    public LispObject execute(LispObject first, LispObject second)
185
186    {
187        load();
188        return symbol.execute(first, second);
189    }
190
191    @Override
192    public LispObject execute(LispObject first, LispObject second,
193                              LispObject third)
194
195    {
196        load();
197        return symbol.execute(first, second, third);
198    }
199
200    @Override
201    public LispObject execute(LispObject first, LispObject second,
202                              LispObject third, LispObject fourth)
203
204    {
205        load();
206        return symbol.execute(first, second, third, fourth);
207    }
208
209    @Override
210    public LispObject execute(LispObject first, LispObject second,
211                              LispObject third, LispObject fourth,
212                              LispObject fifth)
213
214    {
215        load();
216        return symbol.execute(first, second, third, fourth, fifth);
217    }
218
219    @Override
220    public LispObject execute(LispObject first, LispObject second,
221                              LispObject third, LispObject fourth,
222                              LispObject fifth, LispObject sixth)
223
224    {
225        load();
226        return symbol.execute(first, second, third, fourth, fifth, sixth);
227    }
228
229    @Override
230    public LispObject execute(LispObject first, LispObject second,
231                              LispObject third, LispObject fourth,
232                              LispObject fifth, LispObject sixth,
233                              LispObject seventh)
234
235    {
236        load();
237        return symbol.execute(first, second, third, fourth, fifth, sixth,
238                              seventh);
239    }
240
241    @Override
242    public LispObject execute(LispObject first, LispObject second,
243                              LispObject third, LispObject fourth,
244                              LispObject fifth, LispObject sixth,
245                              LispObject seventh, LispObject eighth)
246
247    {
248        load();
249        return symbol.execute(first, second, third, fourth, fifth, sixth,
250                              seventh, eighth);
251    }
252
253    @Override
254    public LispObject execute(LispObject[] args)
255    {
256        load();
257        return symbol.execute(args);
258    }
259
260    @Override
261    public String printObject()
262    {
263        StringBuilder sb = new StringBuilder();
264        sb.append(symbol.princToString());
265        sb.append(" stub to be autoloaded from \"");
266        if (className != null) {
267            int index = className.lastIndexOf('.');
268            if (index >= 0)
269                sb.append(className.substring(index + 1));
270            else
271                sb.append(className);
272            sb.append(".class");
273        } else
274            sb.append(getFileName());
275        sb.append("\"");
276        return unreadableString(sb.toString());
277    }
278
279    public static final Primitive AUTOLOAD = new pf_autoload();
280    @DocString(name="autoload",
281               args="symbol-or-symbols &optional filename",
282               doc="Setup the autoload for SYMBOL-OR-SYMBOLS optionally corresponding to FILENAME.")
283    private static final class pf_autoload extends Primitive {
284        pf_autoload() {   
285            super("autoload", PACKAGE_EXT, true);
286        }
287        @Override
288        public LispObject execute(LispObject first)
289        {
290            if (first instanceof Symbol) {
291                Symbol symbol = (Symbol) first;
292                symbol.setSymbolFunction(new Autoload(symbol));
293                return T;
294            }
295            if (first instanceof Cons) {
296                for (LispObject list = first; list != NIL; list = list.cdr()) {
297                    Symbol symbol = checkSymbol(list.car());
298                    symbol.setSymbolFunction(new Autoload(symbol));
299                }
300                return T;
301            }
302            return error(new TypeError(first));
303        }
304        @Override
305        public LispObject execute(LispObject first, LispObject second)
306
307        {
308            final String fileName = second.getStringValue();
309            if (first instanceof Symbol) {
310                Symbol symbol = (Symbol) first;
311                symbol.setSymbolFunction(new Autoload(symbol, fileName, null));
312                return T;
313            }
314            if (first instanceof Cons) {
315                for (LispObject list = first; list != NIL; list = list.cdr()) {
316                    Symbol symbol = checkSymbol(list.car());
317                    symbol.setSymbolFunction(new Autoload(symbol, fileName, null));
318                }
319                return T;
320            }
321            return error(new TypeError(first));
322        }
323    };
324
325    public static final Primitive RESOLVE = new pf_resolve();
326    @DocString(name="resolve", 
327               args="symbol",
328               doc="Force the symbol to be resolved via the autoloader mechanism.")
329    private static final class pf_resolve extends Primitive {
330        pf_resolve() {
331            super("resolve", PACKAGE_EXT, true, "symbol");
332        }
333        @Override
334        public LispObject execute(LispObject arg) {
335            Symbol symbol = checkSymbol(arg);
336            LispObject fun = symbol.getSymbolFunction();
337            if (fun instanceof Autoload) {
338                Autoload autoload = (Autoload) fun;
339                autoload.load();
340                return symbol.getSymbolFunction();
341            }
342            return fun;
343        }
344    }
345
346    public static final Primitive AUTOLOADP = new pf_autoloadp();
347    @DocString(name="autoloadp", 
348               args="symbol",
349               doc="Boolean predicate for whether SYMBOL stands for a function that currently needs to be autoloaded.")
350    private static final class pf_autoloadp extends Primitive {
351        pf_autoloadp() {
352            super("autoloadp", PACKAGE_EXT, true, "symbol");
353        }
354                   
355        @Override
356        public LispObject execute(LispObject arg)
357        {
358            if (arg instanceof Symbol) {
359                if (arg.getSymbolFunction() instanceof Autoload)
360                    return T;
361            }
362            return NIL;
363        }
364    };
365
366    static {
367        autoload("acos", "MathFunctions");
368        autoload("acosh", "MathFunctions");
369        autoload("arithmetic-error-operands", "ArithmeticError");
370        autoload("arithmetic-error-operation", "ArithmeticError");
371        autoload("ash", "ash");
372        autoload("asin", "MathFunctions");
373        autoload("asinh", "MathFunctions");
374        autoload("atan", "MathFunctions");
375        autoload("atanh", "MathFunctions");
376        autoload("broadcast-stream-streams", "BroadcastStream");
377        autoload("ceiling", "ceiling");
378        autoload("cell-error-name", "cell_error_name");
379        autoload("char", "StringFunctions");
380        autoload("char-equal", "CharacterFunctions");
381        autoload("char-greaterp", "CharacterFunctions");
382        autoload("char-lessp", "CharacterFunctions");
383        autoload("char-not-greaterp", "CharacterFunctions");
384        autoload("char-not-lessp", "CharacterFunctions");
385        autoload("char<", "CharacterFunctions");
386        autoload("char<=", "CharacterFunctions");
387        autoload("char=", "CharacterFunctions");
388        autoload("cis", "MathFunctions");
389        autoload("clrhash", "HashTableFunctions");
390        autoload("clrhash", "HashTableFunctions");
391        autoload("concatenated-stream-streams", "ConcatenatedStream");
392        autoload("cos", "MathFunctions");
393        autoload("cosh", "MathFunctions");
394        autoload("delete-file", "delete_file");
395        autoload("%delete-package", "PackageFunctions");
396        autoload("echo-stream-input-stream", "EchoStream");
397        autoload("echo-stream-output-stream", "EchoStream");
398        autoload("exp", "MathFunctions");
399        autoload("expt", "MathFunctions");
400        autoload("file-author", "file_author");
401        autoload("file-error-pathname", "file_error_pathname");
402        autoload("file-length", "file_length");
403        autoload("file-string-length", "file_string_length");
404        autoload("file-write-date", "file_write_date");
405        autoload("float", "FloatFunctions");
406        autoload("float-digits", "FloatFunctions");
407        autoload("float-radix", "FloatFunctions");
408        autoload("float-sign", "float_sign");
409        autoload("floatp", "FloatFunctions");
410        autoload("floor", "floor");
411        autoload("ftruncate", "ftruncate");
412        autoload("get-internal-real-time", "Time");
413        autoload("get-internal-run-time", "Time");
414        autoload("get-output-stream-string", "StringOutputStream");
415        autoload("get-properties", "get_properties");
416        autoload("get-universal-time", "Time");
417        autoload("gethash", "HashTableFunctions");
418        autoload("gethash", "HashTableFunctions");
419        autoload("hash-table-count", "HashTableFunctions");
420        autoload("hash-table-count", "HashTableFunctions");
421        autoload("hash-table-p", "HashTableFunctions");
422        autoload("hash-table-p", "HashTableFunctions");
423        autoload("hash-table-rehash-size", "HashTableFunctions");
424        autoload("hash-table-rehash-size", "HashTableFunctions");
425        autoload("hash-table-rehash-threshold", "HashTableFunctions");
426        autoload("hash-table-rehash-threshold", "HashTableFunctions");
427        autoload("hash-table-size", "HashTableFunctions");
428        autoload("hash-table-size", "HashTableFunctions");
429        autoload("hash-table-test", "HashTableFunctions");
430        autoload("hash-table-test", "HashTableFunctions");
431        autoload("%import", "PackageFunctions");
432        autoload("input-stream-p", "input_stream_p");
433        autoload("integer-decode-float", "FloatFunctions");
434        autoload("interactive-stream-p", "interactive_stream_p");
435        autoload("last", "last");
436        autoload("lisp-implementation-type", "lisp_implementation_type");
437        autoload("lisp-implementation-version", "lisp_implementation_version");
438        autoload("list-all-packages", "PackageFunctions");
439        autoload("listen", "listen");
440        autoload("log", "MathFunctions");
441        autoload("logand", "logand");
442        autoload("logandc1", "logandc1");
443        autoload("logandc2", "logandc2");
444        autoload("logbitp", "logbitp");
445        autoload("logcount", "logcount");
446        autoload("logeqv", "logeqv");
447        autoload("logior", "logior");
448        autoload("lognand", "lognand");
449        autoload("lognor", "lognor");
450        autoload("lognot", "lognot");
451        autoload("logorc1", "logorc1");
452        autoload("logorc2", "logorc2");
453        autoload("logtest", "logtest");
454        autoload("logxor", "logxor");
455        autoload("long-site-name", "SiteName");
456        autoload("machine-instance", "SiteName");
457        autoload("machine-type", "machine_type");
458        autoload("machine-version", "machine_version");
459        autoload("make-broadcast-stream", "BroadcastStream");
460        autoload("make-concatenated-stream", "ConcatenatedStream");
461        autoload("make-echo-stream", "EchoStream");
462        autoload("make-string-input-stream", "StringInputStream");
463        autoload("make-synonym-stream", "SynonymStream");
464        autoload("maphash", "HashTableFunctions");
465        autoload("mod", "mod");
466        autoload("open-stream-p", "open_stream_p");
467        autoload("output-stream-p", "output_stream_p");
468        autoload("package-error-package", "package_error_package");
469        autoload("package-error-package", "package_error_package");
470        autoload("package-name", "PackageFunctions");
471        autoload("package-nicknames", "PackageFunctions");
472        autoload("package-shadowing-symbols", "PackageFunctions");
473        autoload("package-use-list", "PackageFunctions");
474        autoload("package-used-by-list", "PackageFunctions");
475        autoload("packagep", "PackageFunctions");
476        autoload("peek-char", "peek_char");
477        autoload("print-not-readable-object", "PrintNotReadable");
478        autoload("probe-file", "probe_file");
479        autoload("rational", "FloatFunctions");
480        autoload("rem", "rem");
481        autoload("remhash", "HashTableFunctions");
482        autoload("remhash", "HashTableFunctions");
483        autoload("rename-package", "PackageFunctions");
484        autoload("room", "room");
485        autoload("scale-float", "FloatFunctions");
486        autoload("schar", "StringFunctions");
487        autoload("shadow", "PackageFunctions");
488        autoload("shadowing-import", "PackageFunctions");
489        autoload("short-site-name", "SiteName");
490        autoload("simple-condition-format-arguments", "SimpleCondition");
491        autoload("simple-condition-format-control", "SimpleCondition");
492        autoload("simple-string-p", "StringFunctions");
493        autoload("sin", "MathFunctions");
494        autoload("sinh", "MathFunctions");
495        autoload("software-type", "software_type");
496        autoload("software-version", "software_version");
497        autoload("sqrt", "MathFunctions");
498        autoload("stream-element-type", "stream_element_type");
499        autoload("stream-error-stream", "StreamError");
500        autoload("stream-external-format", "stream_external_format");
501        autoload("%set-stream-external-format", "stream_external_format");
502        autoload("stringp", "StringFunctions");
503        autoload("sxhash", "HashTableFunctions");
504        autoload("sxhash", "HashTableFunctions");
505        autoload("synonym-stream-symbol", "SynonymStream");
506        autoload("tan", "MathFunctions");
507        autoload("tanh", "MathFunctions");
508        autoload("truename", "probe_file");
509        autoload("truncate", "truncate");
510        autoload("type-error-datum", "TypeError");
511        autoload("type-error-expected-type", "TypeError");
512        autoload("unbound-slot-instance", "unbound_slot_instance");
513        autoload("unexport", "PackageFunctions");
514        autoload("unuse-package", "PackageFunctions");
515        autoload(PACKAGE_EXT, "arglist", "arglist", true);
516        autoload(PACKAGE_EXT, "assq", "assq", true);
517        autoload(PACKAGE_EXT, "assql", "assql", true);
518        autoload(PACKAGE_EXT, "file-directory-p", "probe_file", true);
519        autoload(PACKAGE_EXT, "gc", "gc", true);
520        autoload(PACKAGE_EXT, "get-floating-point-modes", "FloatFunctions", true);
521        autoload(PACKAGE_EXT, "make-slime-input-stream", "SlimeInputStream", true);
522        autoload(PACKAGE_EXT, "make-slime-output-stream", "SlimeOutputStream", true);
523        autoload(PACKAGE_EXT, "probe-directory", "probe_file", true);
524        autoload(PACKAGE_EXT, "set-floating-point-modes", "FloatFunctions", true);
525        autoload(PACKAGE_EXT, "simple-string-fill", "StringFunctions");
526        autoload(PACKAGE_EXT, "simple-string-search", "StringFunctions");
527        autoload(PACKAGE_EXT, "string-input-stream-current", "StringInputStream", true);
528        autoload(PACKAGE_EXT, "string-find", "StringFunctions");
529        autoload(PACKAGE_EXT, "string-position", "StringFunctions");
530        autoload(PACKAGE_EXT, "make-weak-reference", "WeakReference", true);
531        autoload(PACKAGE_EXT, "weak-reference-value", "WeakReference", true);
532        autoload(PACKAGE_EXT, "finalize", "Primitives", true);
533        autoload(PACKAGE_EXT, "cancel-finalization", "Primitives", true);
534        autoload(PACKAGE_JAVA, "%jnew-proxy", "JProxy");
535        autoload(PACKAGE_JAVA, "%find-java-class", "JavaObject");
536        autoload(PACKAGE_JAVA, "%register-java-class", "JavaObject");
537        autoload(PACKAGE_JAVA, "%jmake-invocation-handler", "JProxy");
538        autoload(PACKAGE_JAVA, "%jmake-proxy", "JProxy");
539        autoload(PACKAGE_JAVA, "%jnew-runtime-class", "RuntimeClass");
540        autoload(PACKAGE_JAVA, "%jredefine-method", "RuntimeClass");
541        autoload(PACKAGE_JAVA, "%jregister-handler", "JHandler");
542        autoload(PACKAGE_JAVA, "%load-java-class-from-byte-array", "RuntimeClass");
543        autoload(PACKAGE_JAVA, "get-default-classloader", "JavaClassLoader");
544        autoload(PACKAGE_JAVA, "make-classloader", "JavaClassLoader");
545        autoload(PACKAGE_JAVA, "%add-to-classpath", "JavaClassLoader");
546        autoload(PACKAGE_JAVA, "dump-classpath", "JavaClassLoader");
547        autoload(PACKAGE_MOP, "eql-specializer-object", "EqualSpecializerObject", true);
548        autoload(PACKAGE_MOP, "funcallable-instance-function", "FuncallableStandardObject", false);
549        autoload(PACKAGE_MOP, "set-funcallable-instance-function", "FuncallableStandardObject", true);
550        autoload(PACKAGE_PROF, "%start-profiler", "Profiler", true);
551        autoload(PACKAGE_PROF, "stop-profiler", "Profiler", true);
552        autoload(PACKAGE_SYS, "%%string=", "StringFunctions");
553        autoload(PACKAGE_SYS, "%adjust-array", "adjust_array");
554        autoload(PACKAGE_SYS, "%defpackage", "PackageFunctions");
555        autoload(PACKAGE_SYS, "%finalize-generic-function", "StandardGenericFunction", true);
556        autoload(PACKAGE_SYS, "%generic-function-lambda-list", "StandardGenericFunction", true);
557        autoload(PACKAGE_SYS, "%generic-function-name", "StandardGenericFunction", true);
558        autoload(PACKAGE_SYS, "set-generic-function-declarations", "StandardGenericFunction", true);
559        autoload(PACKAGE_SYS, "%get-output-stream-bytes", "ByteArrayOutputStream"); //AS 20090325
560        autoload(PACKAGE_SYS, "%get-output-stream-array", "ByteArrayOutputStream");
561        autoload(PACKAGE_SYS, "%make-array", "make_array");
562        autoload(PACKAGE_SYS, "%make-byte-array-input-stream", "ByteArrayInputStream"); //AS 20100317
563        autoload(PACKAGE_SYS, "%make-byte-array-output-stream", "ByteArrayOutputStream"); //AS 20090325
564        autoload(PACKAGE_SYS, "%make-condition", "make_condition", true);
565        autoload(PACKAGE_SYS, "%make-hash-table", "HashTableFunctions");
566        autoload(PACKAGE_SYS, "%make-hash-table", "HashTableFunctions");
567        autoload(PACKAGE_SYS, "%make-logical-pathname", "LogicalPathname", true);
568        autoload(PACKAGE_SYS, "%make-server-socket", "make_server_socket");
569        autoload(PACKAGE_SYS, "%make-socket", "make_socket");
570        autoload(PACKAGE_SYS, "%make-string", "StringFunctions");
571        autoload(PACKAGE_SYS, "%make-string-output-stream", "StringOutputStream");
572        autoload(PACKAGE_SYS, "%nstring-capitalize", "StringFunctions");
573        autoload(PACKAGE_SYS, "%nstring-downcase", "StringFunctions");
574        autoload(PACKAGE_SYS, "%nstring-upcase", "StringFunctions");
575        autoload(PACKAGE_SYS, "%run-shell-command", "ShellCommand");
576        autoload(PACKAGE_SYS, "%server-socket-close", "server_socket_close");
577        autoload(PACKAGE_SYS, "%set-arglist", "arglist");
578        autoload(PACKAGE_CL, "find-class", "LispClass", true);
579        autoload(PACKAGE_SYS, "%set-find-class", "LispClass", true);
580        autoload(PACKAGE_SYS, "%set-class-direct-slots", "SlotClass", true);
581        autoload(PACKAGE_SYS, "%set-function-info", "function_info");
582        autoload(PACKAGE_SYS, "%set-generic-function-lambda-list", "StandardGenericFunction", true);
583        autoload(PACKAGE_SYS, "%set-generic-function-name", "StandardGenericFunction", true);
584        autoload(PACKAGE_SYS, "%set-gf-required-args", "StandardGenericFunction", true);
585        autoload(PACKAGE_SYS, "%set-gf-optional-args", "StandardGenericFunction", true);
586        autoload(PACKAGE_SYS, "gf-required-args", "StandardGenericFunction", true);
587        autoload(PACKAGE_SYS, "gf-optional-args", "StandardGenericFunction", true);
588        autoload(PACKAGE_SYS, "%init-eql-specializations", "StandardGenericFunction", true);
589        autoload(PACKAGE_SYS, "%get-arg-specialization", "StandardGenericFunction", true);
590        autoload(PACKAGE_SYS, "%set-symbol-macro", "Primitives");
591        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-and", "SimpleBitVector");
592        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-andc1", "SimpleBitVector");
593        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-andc2", "SimpleBitVector");
594        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-eqv", "SimpleBitVector");
595        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-ior", "SimpleBitVector");
596        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-nand", "SimpleBitVector");
597        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-nor", "SimpleBitVector");
598        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-not", "SimpleBitVector");
599        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-orc1", "SimpleBitVector");
600        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-orc2", "SimpleBitVector");
601        autoload(PACKAGE_SYS, "%simple-bit-vector-bit-xor", "SimpleBitVector");
602        autoload(PACKAGE_SYS, "%slot-definition-allocation", "SlotDefinition", true);
603        autoload(PACKAGE_SYS, "%slot-definition-allocation-class", "SlotDefinition", true);
604        autoload(PACKAGE_SYS, "%slot-definition-initargs", "SlotDefinition", true);
605        autoload(PACKAGE_SYS, "%slot-definition-initform", "SlotDefinition", true);
606        autoload(PACKAGE_SYS, "%slot-definition-initfunction", "SlotDefinition", true);
607        autoload(PACKAGE_SYS, "%slot-definition-location", "SlotDefinition", true);
608        autoload(PACKAGE_SYS, "%slot-definition-name", "SlotDefinition", true);
609        autoload(PACKAGE_SYS, "%slot-definition-readers", "SlotDefinition", true);
610        autoload(PACKAGE_SYS, "%slot-definition-writers", "SlotDefinition", true);
611        autoload(PACKAGE_SYS, "%socket-accept", "socket_accept");
612        autoload(PACKAGE_SYS, "%socket-close", "socket_close");
613        autoload(PACKAGE_SYS, "%socket-stream", "socket_stream");
614        autoload(PACKAGE_SYS, "%string-capitalize", "StringFunctions");
615        autoload(PACKAGE_SYS, "%string-downcase", "StringFunctions");
616        autoload(PACKAGE_SYS, "%string-equal", "StringFunctions");
617        autoload(PACKAGE_SYS, "%string-greaterp", "StringFunctions");
618        autoload(PACKAGE_SYS, "%string-lessp", "StringFunctions");
619        autoload(PACKAGE_SYS, "%string-not-equal", "StringFunctions");
620        autoload(PACKAGE_SYS, "%string-not-greaterp", "StringFunctions");
621        autoload(PACKAGE_SYS, "%string-not-lessp", "StringFunctions");
622        autoload(PACKAGE_SYS, "%string-upcase", "StringFunctions");
623        autoload(PACKAGE_SYS, "%string/=", "StringFunctions");
624        autoload(PACKAGE_SYS, "%string<", "StringFunctions");
625        autoload(PACKAGE_SYS, "%string<=", "StringFunctions");
626        autoload(PACKAGE_SYS, "%string=", "StringFunctions");
627        autoload(PACKAGE_SYS, "%string>", "StringFunctions");
628        autoload(PACKAGE_SYS, "%string>=", "StringFunctions");
629        autoload(PACKAGE_SYS, "%time", "Time");
630        autoload(PACKAGE_SYS, "cache-emf", "StandardGenericFunction", true);
631        autoload(PACKAGE_SYS, "cache-slot-location", "StandardGenericFunction", true);
632        autoload(PACKAGE_SYS, "canonicalize-logical-host", "LogicalPathname", true);
633        autoload(PACKAGE_SYS, "class-direct-slots", "SlotClass");
634        autoload(PACKAGE_SYS, "%float-bits", "FloatFunctions");
635        autoload(PACKAGE_SYS, "coerce-to-double-float", "FloatFunctions");
636        autoload(PACKAGE_SYS, "coerce-to-single-float", "FloatFunctions");
637        autoload(PACKAGE_SYS, "compute-class-direct-slots", "SlotClass", true);
638        autoload(PACKAGE_SYS, "create-new-file", "create_new_file");
639        autoload(PACKAGE_SYS, "default-time-zone", "Time");
640        autoload(PACKAGE_SYS, "disassemble-class-bytes", "disassemble_class_bytes", true);
641        autoload(PACKAGE_SYS, "disable-zip-cache", "ZipCache", true);
642        autoload(PACKAGE_SYS, "double-float-high-bits", "FloatFunctions", true);
643        autoload(PACKAGE_SYS, "double-float-low-bits", "FloatFunctions", true);
644        autoload(PACKAGE_SYS, "float-infinity-p", "FloatFunctions", true);
645        autoload(PACKAGE_SYS, "float-nan-p", "FloatFunctions", true);
646        autoload(PACKAGE_SYS, "float-string", "FloatFunctions", true);
647        autoload(PACKAGE_SYS, "function-info", "function_info");
648        autoload(PACKAGE_SYS, "%generic-function-argument-precedence-order","StandardGenericFunction", true);
649        autoload(PACKAGE_SYS, "generic-function-classes-to-emf-table","StandardGenericFunction", true);
650        autoload(PACKAGE_SYS, "generic-function-documentation","StandardGenericFunction", true);
651        autoload(PACKAGE_SYS, "generic-function-initial-methods","StandardGenericFunction", true);
652        autoload(PACKAGE_SYS, "%generic-function-method-class","StandardGenericFunction", true);
653        autoload(PACKAGE_SYS, "%generic-function-method-combination","StandardGenericFunction", true);
654        autoload(PACKAGE_SYS, "%generic-function-methods","StandardGenericFunction", true);
655        autoload(PACKAGE_SYS, "get-cached-emf", "StandardGenericFunction", true);
656        autoload(PACKAGE_SYS, "get-cached-slot-location", "StandardGenericFunction", true);
657        autoload(PACKAGE_SYS, "get-function-info-value", "function_info");
658        autoload(PACKAGE_SYS, "gf-required-args", "StandardGenericFunction", true);
659        autoload(PACKAGE_SYS, "gf-optional-args", "StandardGenericFunction", true);
660        autoload(PACKAGE_SYS, "hash-table-entries", "HashTableFunctions");
661        autoload(PACKAGE_SYS, "hash-table-entries", "HashTableFunctions");
662        autoload(PACKAGE_SYS, "layout-class", "Layout", true);
663        autoload(PACKAGE_SYS, "layout-length", "Layout", true);
664        autoload(PACKAGE_SYS, "layout-slot-index", "Layout", true);
665        autoload(PACKAGE_SYS, "layout-slot-location", "Layout", true);
666        autoload(PACKAGE_SYS, "make-case-frob-stream", "CaseFrobStream");
667        autoload(PACKAGE_SYS, "make-double-float", "FloatFunctions", true);
668        autoload(PACKAGE_SYS, "make-file-stream", "FileStream");
669        autoload(PACKAGE_SYS, "make-fill-pointer-output-stream", "FillPointerOutputStream");
670        autoload(PACKAGE_SYS, "make-forward-referenced-class", "ForwardReferencedClass", true);
671        autoload(PACKAGE_SYS, "make-layout", "Layout", true);
672        autoload(PACKAGE_SYS, "make-single-float", "FloatFunctions", true);
673        autoload(PACKAGE_SYS, "make-slot-definition", "SlotDefinition", true);
674        autoload(PACKAGE_SYS, "make-structure-class", "StructureClass");
675        autoload(PACKAGE_SYS, "make-symbol-macro", "Primitives");
676        autoload(PACKAGE_SYS, "psxhash", "HashTableFunctions");
677        autoload(PACKAGE_SYS, "puthash", "HashTableFunctions");
678        autoload(PACKAGE_SYS, "puthash", "HashTableFunctions");
679        autoload(PACKAGE_SYS, "remove-zip-cache-entry", "ZipCache");
680        autoload(PACKAGE_SYS, "set-function-info-value", "function_info");
681        autoload(PACKAGE_SYS, "set-generic-function-argument-precedence-order","StandardGenericFunction", true);
682        autoload(PACKAGE_SYS, "set-generic-function-classes-to-emf-table","StandardGenericFunction", true);
683        autoload(PACKAGE_SYS, "set-generic-function-documentation","StandardGenericFunction", true);
684        autoload(PACKAGE_SYS, "set-generic-function-initial-methods","StandardGenericFunction", true);
685        autoload(PACKAGE_SYS, "set-generic-function-method-class","StandardGenericFunction", true);
686        autoload(PACKAGE_SYS, "set-generic-function-method-combination","StandardGenericFunction", true);
687        autoload(PACKAGE_SYS, "set-generic-function-methods","StandardGenericFunction", true);
688        autoload(PACKAGE_SYS, "set-slot-definition-allocation", "SlotDefinition", true);
689        autoload(PACKAGE_SYS, "set-slot-definition-allocation-class", "SlotDefinition", true);
690        autoload(PACKAGE_SYS, "set-slot-definition-initargs", "SlotDefinition", true);
691        autoload(PACKAGE_SYS, "set-slot-definition-initform", "SlotDefinition", true);
692        autoload(PACKAGE_SYS, "set-slot-definition-initfunction", "SlotDefinition", true);
693        autoload(PACKAGE_SYS, "set-slot-definition-location", "SlotDefinition", true);
694        autoload(PACKAGE_SYS, "set-slot-definition-name", "SlotDefinition", true);
695        autoload(PACKAGE_SYS, "set-slot-definition-readers", "SlotDefinition", true);
696        autoload(PACKAGE_SYS, "set-slot-definition-writers", "SlotDefinition", true);
697        autoload(PACKAGE_SYS, "simple-list-remove-duplicates", "simple_list_remove_duplicates");
698        autoload(PACKAGE_SYS, "single-float-bits", "FloatFunctions", true);
699        autoload(PACKAGE_SYS, "%std-allocate-instance", "StandardObject", true);
700        autoload(PACKAGE_SYS, "swap-slots", "StandardObject", true);
701        autoload(PACKAGE_SYS, "std-instance-layout", "StandardObject", true);
702        autoload(PACKAGE_SYS, "%set-std-instance-layout", "StandardObject", true);
703        autoload(PACKAGE_SYS, "std-instance-class", "StandardObject", true);
704        autoload(PACKAGE_SYS, "standard-instance-access", "StandardObject", true);
705        autoload(PACKAGE_SYS, "%set-standard-instance-access", "StandardObject", true);
706        autoload(PACKAGE_SYS, "std-slot-boundp", "StandardObject", true);
707        autoload(PACKAGE_SYS, "std-slot-value", "StandardObject", true);
708        autoload(PACKAGE_SYS, "set-std-slot-value", "StandardObject", true);
709        autoload(PACKAGE_SYS, "%allocate-funcallable-instance", "FuncallableStandardObject", true);
710        autoload(PACKAGE_SYS, "unzip", "unzip", true);
711        autoload(PACKAGE_SYS, "zip", "zip", true);
712
713        autoload(Symbol.COPY_LIST, "copy_list");
714
715  autoload(PACKAGE_SYS, "make-fasl-class-loader", "FaslClassLoader", false);
716  autoload(PACKAGE_SYS, "get-fasl-function", "FaslClassLoader", false);
717
718  autoload(PACKAGE_SYS, "make-memory-class-loader", "MemoryClassLoader", false);
719  autoload(PACKAGE_SYS, "put-memory-function", "MemoryClassLoader", false);
720  autoload(PACKAGE_SYS, "get-memory-function", "MemoryClassLoader", false);
721       
722        autoload(Symbol.SET_CHAR, "StringFunctions");
723        autoload(Symbol.SET_SCHAR, "StringFunctions");
724
725        autoload(Symbol._SET_CLASS_SLOTS, "SlotClass");
726        autoload(Symbol._CLASS_SLOTS, "SlotClass");
727
728        autoload(Symbol.JAVA_EXCEPTION_CAUSE, "JavaException");
729        autoload(Symbol.JCLASS_NAME, "jclass_name");
730        autoload(Symbol.JCLASS_OF, "jclass_of");
731        autoload(Symbol.JMETHOD_RETURN_TYPE, "jmethod_return_type");
732
733        autoload(PACKAGE_JAVA, "%jget-property-value", "JavaBeans", false);
734        autoload(PACKAGE_JAVA, "%jset-property-value", "JavaBeans", false);
735
736        autoload(PACKAGE_EXT, "autoload-setf-expander", "AutoloadGeneralizedReference", true);
737        autoload(PACKAGE_EXT, "autoload-setf-function", "AutoloadGeneralizedReference", true);
738        autoload(PACKAGE_EXT, "autoload-ref-p", "AutoloadGeneralizedReference", true);
739    }
740}
Note: See TracBrowser for help on using the repository browser.