Autoload.st
author Stefan Vogel <sv@exept.de>
Thu, 01 Jul 2004 12:06:47 +0200
changeset 8431 3e06c959dcff
parent 8382 c3fe9de270ad
child 8482 6ca4f0d2594d
permissions -rw-r--r--
#autoload - raise error if fileIn fails. Bevor this change, no error was raised, but the class was still autoloaded.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1991 by Claus Gittinger
154
d4236ec280a6 *** empty log message ***
claus
parents: 138
diff changeset
     3
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    12
5345
e7c6030aa2b5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5076
diff changeset
    13
"{ Package: 'stx:libbasic' }"
e7c6030aa2b5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5076
diff changeset
    14
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    15
nil subclass:#Autoload
938
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
    16
	instanceVariableNames:''
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
    17
	classVariableNames:'LazyLoading AutoloadFailedSignal LoadedClasses'
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
    18
	poolDictionaries:''
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
    19
	category:'Kernel-Classes'
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    21
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
    22
!Autoload class methodsFor:'documentation'!
68
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    23
88
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    24
copyright
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    25
"
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    26
 COPYRIGHT (c) 1991 by Claus Gittinger
154
d4236ec280a6 *** empty log message ***
claus
parents: 138
diff changeset
    27
	      All Rights Reserved
88
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    28
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    29
 This software is furnished under a license and may be used
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    30
 only in accordance with the terms of that license and with the
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    32
 be provided or otherwise made available to, or used by, any
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    33
 other person.  No title to or ownership of the software is
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    34
 hereby transferred.
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    35
"
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    36
!
81dacba7a63a *** empty log message ***
claus
parents: 68
diff changeset
    37
68
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    38
documentation
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    39
"
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    40
    In memory limited systems (as my 8Mb 386 is) all seldom-used classes are made
2662
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    41
    subclasses of this class. 
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    42
    Autoload catches all messages and files-In the corresponding code
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    43
    when first used. 
2689
ada9b102abcf typo fix
Claus Gittinger <cg@exept.de>
parents: 2666
diff changeset
    44
    Then the caught message is resent to the (now existing) class.
2662
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    45
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    46
    Class files are searched along the searchPath (see Smalltalk),
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    47
    and any of binary-classFile, byteCode-classFile or sourceFile are
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    48
    loaded, whichever is found first. For binaries to be loaded,
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    49
    these must be found in the 'bin' directory. Sources must be found
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    50
    in the 'source' directory.
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    51
    (Usually, Autoload classes finds the source file and loads that one).
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    52
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    53
    When started, the patches startup script arranges for the abbreviation
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    54
    file 'include/abbrev.stc' to be read and installs autoload stubs for
7280
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    55
    all classes listed in that file, which do not exist already.
2662
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    56
    The abbreviation file is maintained by the production environment
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    57
    and updated by makefile rules - therefore, it should not be edited
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    58
    manually.
68
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    59
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    60
    Late addition: above comment is no longer true - I have made now almost
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    61
    all Demos & Goodies be autoloaded ... even for big systems.
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    62
1278
7ef5a312d87e commentary
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
    63
    [class variables:]
92
0c73b48551ac *** empty log message ***
claus
parents: 88
diff changeset
    64
        
7280
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    65
        LazyLoading             <Boolean>       if true, the loaded classes 
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    66
                                                methods will NOT be compiled at 
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    67
                                                autoload time, but instead when 
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    68
                                                first called. This allows for a 
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    69
                                                faster load. However, expect short 
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    70
                                                pauses later when the methods are
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    71
                                                first executed.
126
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
    72
                                     
7280
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    73
        AutoloadFailedSignal    <Signal>        signal raised if an autoloaded 
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    74
                                                classes source is not available.
922
0e8e0d920d0d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 921
diff changeset
    75
7280
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    76
        LoadedClasses           <Collection>    set of classes that heve been
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    77
                                                autoloaded (for later unload)
1292
89497fff7f87 documentation
Claus Gittinger <cg@exept.de>
parents: 1278
diff changeset
    78
2662
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    79
    [see also:]
7280
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    80
        Smalltalk
2662
51f8054b524e commentary
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
    81
1292
89497fff7f87 documentation
Claus Gittinger <cg@exept.de>
parents: 1278
diff changeset
    82
    [author:]
7280
7afcccb7c856 Fix pidgin spelling: 'does not exists' and 'not exists'
Stefan Vogel <sv@exept.de>
parents: 7178
diff changeset
    83
        Claus Gittinger
68
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    84
"
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    85
! !
59faa75185ba *** empty log message ***
claus
parents: 22
diff changeset
    86
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
    87
!Autoload class methodsFor:'initialization'!
126
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
    88
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
    89
initialize
2223
87381a043e75 commentary
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
    90
    "initialize the failure-signal"
87381a043e75 commentary
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
    91
126
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
    92
    AutoloadFailedSignal isNil ifTrue:[
7092
630807cd320f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 7019
diff changeset
    93
        LazyLoading := false.
2654
fb9a81692dbf initialize classVar
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
    94
7092
630807cd320f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 7019
diff changeset
    95
        AutoloadFailedSignal := Error newSignalMayProceed:true.
630807cd320f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 7019
diff changeset
    96
        AutoloadFailedSignal nameClass:self message:#autoloadFailedSignal.
630807cd320f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 7019
diff changeset
    97
        AutoloadFailedSignal notifierString:'autoload failed'.
197
    98
7092
630807cd320f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 7019
diff changeset
    99
        self class changeClassTo:AutoloadMetaclass.
630807cd320f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 7019
diff changeset
   100
        self setSuperclass:nil.
630807cd320f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 7019
diff changeset
   101
        ObjectMemory flushCaches.
5005
e31701a84055 also catch #initialize.
Claus Gittinger <cg@exept.de>
parents: 4775
diff changeset
   102
    ].
8316
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   103
    LoadedClasses isNil ifTrue:[
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   104
        LoadedClasses := IdentitySet new.
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   105
    ].
5005
e31701a84055 also catch #initialize.
Claus Gittinger <cg@exept.de>
parents: 4775
diff changeset
   106
e31701a84055 also catch #initialize.
Claus Gittinger <cg@exept.de>
parents: 4775
diff changeset
   107
    self ~~ Autoload ifTrue:[
7092
630807cd320f Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 7019
diff changeset
   108
        ^ self doesNotUnderstand:(Message selector:#initialize)
5005
e31701a84055 also catch #initialize.
Claus Gittinger <cg@exept.de>
parents: 4775
diff changeset
   109
    ].
2223
87381a043e75 commentary
Claus Gittinger <cg@exept.de>
parents: 2112
diff changeset
   110
4511
da0b327f3204 Use AutoloadMetaclass to load a class on unhandled class methods.
Stefan Vogel <sv@exept.de>
parents: 4496
diff changeset
   111
    "Modified: / 20.5.1997 / 19:06:25 / cg"
da0b327f3204 Use AutoloadMetaclass to load a class on unhandled class methods.
Stefan Vogel <sv@exept.de>
parents: 4496
diff changeset
   112
    "Modified: / 3.8.1999 / 14:23:30 / stefan"
126
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   113
! !
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   114
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   115
!Autoload class methodsFor:'Signal constants'!
126
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   116
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   117
autoloadFailedSignal
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   118
    "return the signal raised when an autoload fails"
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   119
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   120
    ^ AutoloadFailedSignal
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   121
! !
c00c6e25c98c raise a signal on failure
claus
parents: 92
diff changeset
   122
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   123
!Autoload class methodsFor:'adding/removing autoloaded classes'!
359
claus
parents: 356
diff changeset
   124
216
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   125
addClass:aClassName
4052
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   126
    "given a name, install a corresponding autoload class stub for it.
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   127
     Return the (autoload-) stubClass or nil, if no new class was created."
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   128
4052
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   129
    ^ self addClass:aClassName inCategory:'autoloaded-Classes'
216
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   130
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   131
    "
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   132
     Autoload addClass:'Clock'
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   133
    "
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   134
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   135
    "Modified: 24.4.1996 / 19:54:16 / cg"
216
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   136
!
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   137
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   138
addClass:aClassName inCategory:aCategory
4052
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   139
    "given a name, install a corresponding autoload class stub for it.
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   140
     Return the (autoload-) stubClass or nil, if no new class was created."
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   141
4052
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   142
    |nameSymbol cls|
216
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   143
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   144
    nameSymbol := aClassName asSymbol.
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   145
    (Smalltalk at:nameSymbol) isNil ifTrue:[
5903
fa9072bf1506 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5902
diff changeset
   146
	cls := Autoload 
fa9072bf1506 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5902
diff changeset
   147
		subclass:nameSymbol
fa9072bf1506 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5902
diff changeset
   148
		instanceVariableNames:''
fa9072bf1506 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5902
diff changeset
   149
		classVariableNames:''
fa9072bf1506 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5902
diff changeset
   150
		poolDictionaries:''
fa9072bf1506 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5902
diff changeset
   151
		category:aCategory.
4052
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   152
    ].
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   153
    ^ cls
7b126a2f20ee checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
   154
216
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   155
    "
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   156
     Autoload addClass:'Clock' inCategory:'autoloaded-Demos'
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   157
    "
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   158
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   159
    "Modified: 24.4.1996 / 19:54:20 / cg"
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   160
!
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   161
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   162
removeClass:aClass
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   163
    "remove a class from the list of loaded classes"
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   164
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   165
    LoadedClasses remove:aClass ifAbsent:[]
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   166
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   167
    "Modified: 24.4.1996 / 19:54:35 / cg"
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   168
! !
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   169
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   170
!Autoload class methodsFor:'fileout'!
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   171
5345
e7c6030aa2b5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5076
diff changeset
   172
basicFileOutDefinitionOn:aStream withNameSpace:forceNameSpace withPackage:withPackage
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   173
    "print an expression to define myself on aStream.
8316
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   174
     Since autoloaded classes don't know their real definition, simply
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   175
     output some comment string making things clear in the browser."
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   176
5820
48390a140bcb Cleanup unused method vars
Stefan Vogel <sv@exept.de>
parents: 5705
diff changeset
   177
    |myName fileName nm package|
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   178
5345
e7c6030aa2b5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5076
diff changeset
   179
    (self == Autoload) ifTrue:[
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   180
        ^ super 
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   181
            basicFileOutDefinitionOn:aStream 
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   182
            withNameSpace:forceNameSpace
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   183
            withPackage:withPackage
5345
e7c6030aa2b5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5076
diff changeset
   184
    ].
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   185
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   186
    myName := self name.
1952
18cfc11b49fa use #nextPutLine instead of #nextPutAll; #cr
Claus Gittinger <cg@exept.de>
parents: 1862
diff changeset
   187
    aStream nextPutAll:'"' ; nextPutLine:'Notice from Autoload:'; cr;
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   188
            spaces:4; nextPutLine:myName , ' is not yet loaded.'; cr.
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   189
    aStream nextPutLine:'to load, execute: '.
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   190
    aStream cr; spaces:4; nextPutLine:myName  , ' autoload'.
4280
f100fa94428f oops - dont put dQuotes inside a comment-string
Claus Gittinger <cg@exept.de>
parents: 4279
diff changeset
   191
    aStream cr; nextPutLine:'or use the browsers load-function (in the class menu)'.
f100fa94428f oops - dont put dQuotes inside a comment-string
Claus Gittinger <cg@exept.de>
parents: 4279
diff changeset
   192
    aStream nextPutLine:'(double-click on the class will also load it).'.
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   193
    "
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   194
     the following is simply informative ...
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   195
     actually, its a hack & kludge - there ought to be a method for this
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   196
     in Smalltalk 
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   197
     (knowing the details of loading here is no good coding style)
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   198
    "
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   199
    fileName := Smalltalk fileNameForClass:myName.
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   200
    (ObjectFileLoader notNil and:[Smalltalk loadBinaries]) ifTrue:[
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   201
        (nm := Smalltalk libraryFileNameOfClass:myName) notNil ifTrue:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   202
            nm := nm , ' (a classLibrary, possibly including more classes)'
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   203
        ] ifFalse:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   204
            nm := Smalltalk getBinaryFileName:(fileName , '.so').
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   205
            nm isNil ifTrue:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   206
                nm := Smalltalk getBinaryFileName:(fileName , '.o')
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   207
            ].
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   208
            nm notNil ifTrue:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   209
                nm := nm , ' (a classBinary)'
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   210
            ]
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   211
        ].
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   212
    ].
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   213
    nm isNil ifTrue:[
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   214
        package := self package.
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   215
        package notNil ifTrue:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   216
            nm := Smalltalk getSourceFileName:((package copyReplaceAll:$: with:$/) , '/' , fileName , '.st').
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   217
        ].
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   218
        nm isNil ifTrue:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   219
            nm := Smalltalk getSourceFileName:(fileName , '.st').
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   220
        ].
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   221
    ].
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   222
    nm notNil ifTrue:[
7744
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   223
        aStream 
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   224
            cr; 
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   225
            nextPutLine:'When accessed, ' , myName , ' will automatically be loaded';
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   226
            nextPutLine:'from: '; spaces:4; nextPutAll:nm.
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   227
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   228
        nm asFilename isSymbolicLink ifTrue:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   229
            aStream cr; cr.
7744
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   230
            aStream 
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   231
                nextPutLine:'which is a link to: '; 
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   232
                spaces:4; 
eeddeb7883af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7574
diff changeset
   233
                nextPutAll:(nm asFilename linkInfo path).
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   234
        ]
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   235
    ] ifFalse:[
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   236
        package := self package.
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   237
        (Smalltalk at:#SourceCodeManager) notNil ifTrue:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   238
            aStream nextPutAll:'
5076
a927e67cf1db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5046
diff changeset
   239
When accessed, I''ll ask the sourceCodeManager to load the code 
a927e67cf1db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5046
diff changeset
   240
from ''' , fileName , '.st'' in the ''' , package , ''' package.'.
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   241
        ] ifFalse:[
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   242
            aStream nextPutAll:'
5076
a927e67cf1db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5046
diff changeset
   243
When accessed, I''ll search for a file named 
a927e67cf1db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5046
diff changeset
   244
''' , fileName , '.st'' in the ''' , package , ''' package.
709
c31cbd5e5323 more info for autoloaded classes (for browsers definition text)
Claus Gittinger <cg@exept.de>
parents: 661
diff changeset
   245
5076
a927e67cf1db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5046
diff changeset
   246
Packages are tried along the packagePath, which is:
a927e67cf1db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5046
diff changeset
   247
' , ((Smalltalk packagePath asStringCollection collect:[:each| '   ' , each]) asStringWith:Character cr). 
7019
6591ea303fbd *** empty log message ***
penk
parents: 6768
diff changeset
   248
        ]
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   249
    ].
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   250
    aStream cr; nextPutAll:'"'.
709
c31cbd5e5323 more info for autoloaded classes (for browsers definition text)
Claus Gittinger <cg@exept.de>
parents: 661
diff changeset
   251
4025
d9b9a5e77f1a when autoloading, allow for the stx-source subtree
Claus Gittinger <cg@exept.de>
parents: 4016
diff changeset
   252
    "Created: / 5.1.1997 / 14:31:33 / cg"
4280
f100fa94428f oops - dont put dQuotes inside a comment-string
Claus Gittinger <cg@exept.de>
parents: 4279
diff changeset
   253
    "Modified: / 6.6.1999 / 15:17:30 / cg"
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   254
! !
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   255
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   256
!Autoload class methodsFor:'lazy compilation'!
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   257
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   258
compileLazy
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   259
    "return the lazy loading flag - if on, fileIn is much faster,
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   260
     but pauses are to be expected later, since methods are compiled
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   261
     when first executed."
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   262
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   263
    ^ LazyLoading
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   264
!
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   265
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   266
compileLazy:aBoolean
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   267
    "turn on/off lazy loading - if on, fileIn is much faster,
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   268
     but pauses are to be expected later, since methods are compiled
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   269
     when first executed.
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   270
     If you like it, add a line to your startup file."
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   271
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   272
    LazyLoading := aBoolean
216
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   273
! !
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   274
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   275
!Autoload class methodsFor:'loading'!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   276
a27a279701f8 Initial revision
claus
parents:
diff changeset
   277
autoload
a27a279701f8 Initial revision
claus
parents:
diff changeset
   278
    "use this to force loading
2062
762e951d42b8 #initialize
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
   279
     - it is defined a noop in all non-autoloading classes"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   280
4033
6bd3f16bc897 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4025
diff changeset
   281
    |mySelf myName myNameSpace newClass oldMeta project prevMode 
5820
48390a140bcb Cleanup unused method vars
Stefan Vogel <sv@exept.de>
parents: 5705
diff changeset
   282
     package|
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   283
a27a279701f8 Initial revision
claus
parents:
diff changeset
   284
    mySelf := self.
164
9bad8fe706e9 *** empty log message ***
claus
parents: 154
diff changeset
   285
    myName := self name asSymbol.
3027
7d677a5ced41 care for loaded classes namespace (vs. default namespace)
Claus Gittinger <cg@exept.de>
parents: 2691
diff changeset
   286
    myNameSpace := self nameSpace.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   287
4775
4c96f1d40626 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4576
diff changeset
   288
    "/ recheck - in case my class somehow came into the system
4c96f1d40626 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4576
diff changeset
   289
    "/ (by loading a binary...)
4c96f1d40626 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4576
diff changeset
   290
    (newClass := Smalltalk at:myName) ~~ self ifTrue:[
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   291
        (newClass isBehavior and:[newClass isLoaded]) ifTrue:[
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   292
            ('Autoload [info]: already loaded: ', myName , '.') infoPrintCR.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   293
            self class becomeSameAs:newClass class.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   294
            self becomeSameAs:newClass.
4775
4c96f1d40626 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4576
diff changeset
   295
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   296
            ObjectMemory flushCaches.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   297
            ^ newClass
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   298
        ].
4775
4c96f1d40626 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4576
diff changeset
   299
    ].
4c96f1d40626 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4576
diff changeset
   300
2
claus
parents: 1
diff changeset
   301
    "load it"
1566
b1968c0d02bd checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1564
diff changeset
   302
    (Object infoPrinting and:[Smalltalk silentLoading ~~ true]) ifTrue:[
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   303
        Transcript showCR:('autoloading ', myName , ' ...'); endEntry.
1564
f3f9736bd0fa suppress load messages, if infoPrinting is turned off
Claus Gittinger <cg@exept.de>
parents: 1438
diff changeset
   304
    ].
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   305
860
b3ffea40999a use new becomeSameAs: to migrate to new class.
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
   306
    [
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   307
        "remove myself - to avoid recompilation"
8382
c3fe9de270ad to be evaluated: no longer nil global of class being autoloaded.
Claus Gittinger <cg@exept.de>
parents: 8316
diff changeset
   308
        "/ Smalltalk at:myName put:nil.
5902
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   309
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   310
        prevMode := ClassCategoryReader sourceMode.
1720
831096ab21a8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
   311
"/
831096ab21a8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
   312
"/ no- do not do this; it may lead to trouble ...
831096ab21a8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
   313
"/        ClassCategoryReader sourceMode:#reference.
1694
29791fde790e autoload classes keep source reference
Claus Gittinger <cg@exept.de>
parents: 1674
diff changeset
   314
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   315
        "/
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   316
        "/ in order to not get a package of private (or whatever),
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   317
        "/ temporarily set the currentProject to nil.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   318
        "/ we will later set the classes package to something useful
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   319
        "/
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   320
        Project notNil ifTrue:[
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   321
            project := Project current.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   322
            Project setProject:nil.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   323
        ].
2375
7eb1b35edc33 autoload into Smalltalk nameSpace - by default.
Claus Gittinger <cg@exept.de>
parents: 2366
diff changeset
   324
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   325
        package := self package.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   326
        Class nameSpaceQuerySignal answer:myNameSpace "Smalltalk" 
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   327
        do:[
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   328
            Class packageQuerySignal answer:package 
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   329
            do:[
6081
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   330
                Class classConventionViolationConfirmationQuerySignal answer:true
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   331
                do:[
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   332
                    (Smalltalk 
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   333
                        fileInClass:myName
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   334
                        package:package
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   335
                        initialize:false 
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   336
                        lazy:LazyLoading
8431
3e06c959dcff #autoload - raise error if fileIn fails.
Stefan Vogel <sv@exept.de>
parents: 8382
diff changeset
   337
                        silent:nil)  
3e06c959dcff #autoload - raise error if fileIn fails.
Stefan Vogel <sv@exept.de>
parents: 8382
diff changeset
   338
                    isNil ifTrue:[
6081
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   339
                        "/ temporary: try without stx/package prefix
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   340
                        "/ this will vanish as soon as source-directory
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   341
                        "/ is always guaranteed to contain an stx-subtree
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   342
                        ((package startsWith:'stx/') 
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   343
                        or:[package startsWith:'stx:']) ifTrue:[
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   344
                            package := package copyFrom:5.
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   345
                            Smalltalk 
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   346
                                fileInClass:myName
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   347
                                package:package
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   348
                                initialize:false 
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   349
                                lazy:LazyLoading
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   350
                                silent:nil.
fedbf974cfe8 dont ask for variable-name conventions while autoloading
Claus Gittinger <cg@exept.de>
parents: 6075
diff changeset
   351
                        ]
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   352
                    ]
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   353
                ]
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   354
            ]
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   355
        ].
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   356
        ClassCategoryReader sourceMode:prevMode.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   357
        project notNil ifTrue:[
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   358
            Project setProject:project.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   359
        ].
6602
04a98cfacbe1 Use #ifCurtailed: instead of #valueOnUnwindDo:
Stefan Vogel <sv@exept.de>
parents: 6251
diff changeset
   360
    ] ifCurtailed:[
8431
3e06c959dcff #autoload - raise error if fileIn fails.
Stefan Vogel <sv@exept.de>
parents: 8382
diff changeset
   361
        "something went wrong, restore previous state"
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   362
        ClassCategoryReader sourceMode:prevMode.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   363
        project notNil ifTrue:[
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   364
            Project setProject:project.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   365
        ].
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   366
        Smalltalk at:myName put:mySelf.
860
b3ffea40999a use new becomeSameAs: to migrate to new class.
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
   367
    ].
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   368
a27a279701f8 Initial revision
claus
parents:
diff changeset
   369
    "did it work ?"
164
9bad8fe706e9 *** empty log message ***
claus
parents: 154
diff changeset
   370
    newClass := Smalltalk at:myName.
9bad8fe706e9 *** empty log message ***
claus
parents: 154
diff changeset
   371
    Smalltalk at:myName put:mySelf.   "will be undone by become:"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   372
138
c9f46b635f98 *** empty log message ***
claus
parents: 126
diff changeset
   373
    "no - report the error"
8431
3e06c959dcff #autoload - raise error if fileIn fails.
Stefan Vogel <sv@exept.de>
parents: 8382
diff changeset
   374
    (newClass isNil or:[newClass isLoaded not]) ifTrue:[
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   375
        "
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   376
         this signal is raised, if an autoloaded class
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   377
         cannot be loaded. Usually, this happends when
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   378
         some sourcefile is missing, not readable or if 
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   379
         an entry is missing in the abbreviation file.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   380
         Check for a readable file named <myName>.st 
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   381
         in the 'source' directory and (if its a long fileName) 
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   382
         for a corresponding entry in the abbreviation file
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   383
         'include/abbrev.stc'.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   384
         Finally, your searchpath could be set wrong -
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   385
         both 'source' and 'include' directories must be found in
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   386
         one of the directories named in systemPath.
154
d4236ec280a6 *** empty log message ***
claus
parents: 138
diff changeset
   387
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   388
         In the debugger, press 'abort' to continue execution.
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   389
        " 
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   390
        AutoloadFailedSignal
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   391
            raiseRequestWith:self
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   392
            errorString:('autoload of ' , myName , ' failed').
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   393
        ^ nil
938
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
   394
    ].
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
   395
5463
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   396
    newClass setPackage:package.
6075
57f3ae8d2a28 renamed: #allSelectorsAndMethodsDo: into: #instAndClassSelectorsAndMethodsDo:
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   397
    newClass instAndClassSelectorsAndMethodsDo:[:sel :mthd | mthd setPackage:package].
5527
2817d7e173de set project of all autoloaded methods
Claus Gittinger <cg@exept.de>
parents: 5475
diff changeset
   398
938
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
   399
    "/
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
   400
    "/ autoloaded classes get their package from the revision (if present)
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
   401
    "/ this only happens with autoloaded sourceFiles which have no package
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
   402
    "/ info encoded. (binary classes have it)
2057
35003ed4b817 care for the package ID when autoloading
Claus Gittinger <cg@exept.de>
parents: 2019
diff changeset
   403
    "/ If there is no such information, give it my package (if I have one)
938
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
   404
    "/
5463
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   405
"/    newClass setPackageFromRevision.
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   406
"/
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   407
"/    newPackage := newClass package.
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   408
"/    (newPackage isNil or:[newPackage = 'no package']) ifTrue:[
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   409
"/        (package notNil and:[package ~= 'no package']) ifTrue:[
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   410
"/            newClass setPackage:package.
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   411
"/        ].
18ec3ac68106 preserve the package when autoloading
Claus Gittinger <cg@exept.de>
parents: 5345
diff changeset
   412
"/    ].
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   413
921
4db7603f9506 rename myself (just in case) & flush caches after loading
Claus Gittinger <cg@exept.de>
parents: 886
diff changeset
   414
    LoadedClasses add:newClass.
216
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   415
154
d4236ec280a6 *** empty log message ***
claus
parents: 138
diff changeset
   416
    "wow - it worked. now the big trick ..."
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   417
921
4db7603f9506 rename myself (just in case) & flush caches after loading
Claus Gittinger <cg@exept.de>
parents: 886
diff changeset
   418
"/    newClass class setSoleInstance:self.   "/ will be undone by become ...
4db7603f9506 rename myself (just in case) & flush caches after loading
Claus Gittinger <cg@exept.de>
parents: 886
diff changeset
   419
    oldMeta := self class.
4db7603f9506 rename myself (just in case) & flush caches after loading
Claus Gittinger <cg@exept.de>
parents: 886
diff changeset
   420
3267
870789c08fad do not change the autoloaded classes name to '... (auto)'
Claus Gittinger <cg@exept.de>
parents: 3151
diff changeset
   421
"/ self setName:(self name , ' (auto)').
7178
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   422
    self dependents do:[:aDependent |
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   423
        newClass addDependent:aDependent
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   424
    ].
8316
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   425
    Smalltalk changed:#aboutToAutoloadClass with:(self -> newClass).
860
b3ffea40999a use new becomeSameAs: to migrate to new class.
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
   426
    self becomeSameAs:newClass.
921
4db7603f9506 rename myself (just in case) & flush caches after loading
Claus Gittinger <cg@exept.de>
parents: 886
diff changeset
   427
    oldMeta becomeSameAs:newClass class.
4db7603f9506 rename myself (just in case) & flush caches after loading
Claus Gittinger <cg@exept.de>
parents: 886
diff changeset
   428
4db7603f9506 rename myself (just in case) & flush caches after loading
Claus Gittinger <cg@exept.de>
parents: 886
diff changeset
   429
    ObjectMemory flushCaches.
216
a8abff749575 *** empty log message ***
claus
parents: 213
diff changeset
   430
    LoadedClasses rehash.
921
4db7603f9506 rename myself (just in case) & flush caches after loading
Claus Gittinger <cg@exept.de>
parents: 886
diff changeset
   431
3443
d57ea75d3ac5 oops - must send #initialize to all privateClasses.
Claus Gittinger <cg@exept.de>
parents: 3287
diff changeset
   432
    newClass initializeWithAllPrivateClasses.
886
62c66d49077d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 860
diff changeset
   433
    newClass postAutoload.
5705
543d3e8ef7c6 send a change notification when autoloading
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   434
543d3e8ef7c6 send a change notification when autoloading
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   435
    Smalltalk changed:#classDefinition with:newClass.
7178
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   436
    self changed:#loaded.
886
62c66d49077d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 860
diff changeset
   437
    ^ newClass
938
a23bc7f62ed1 set package info when autoloading
Claus Gittinger <cg@exept.de>
parents: 922
diff changeset
   438
4025
d9b9a5e77f1a when autoloading, allow for the stx-source subtree
Claus Gittinger <cg@exept.de>
parents: 4016
diff changeset
   439
    "Modified: / 5.3.1999 / 12:59:13 / cg"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   440
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   441
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   442
!Autoload class methodsFor:'message catching'!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   443
6251
8dc5a2a6b670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6081
diff changeset
   444
at:arg
8dc5a2a6b670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6081
diff changeset
   445
    "catch at: - redefined because its understood"
8dc5a2a6b670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6081
diff changeset
   446
8dc5a2a6b670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6081
diff changeset
   447
    ^ self doesNotUnderstand:(Message selector:#at: with:arg)
8dc5a2a6b670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6081
diff changeset
   448
!
8dc5a2a6b670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6081
diff changeset
   449
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   450
basicNew
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   451
    "catch basicNew - load the class and send it to the real one"
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   452
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   453
    ^ self doesNotUnderstand:(Message selector:#basicNew)
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   454
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   455
    "Modified: 24.4.1996 / 19:53:10 / cg"
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   456
!
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   457
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   458
basicNew:arg
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   459
    "catch basicNew: - load the class and send it to the real one"
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   460
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   461
    ^ self doesNotUnderstand:(Message selector:#basicNew: with:arg)
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   462
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   463
    "Modified: 24.4.1996 / 19:53:16 / cg"
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   464
!
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   465
8185
e09efa26b6f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7744
diff changeset
   466
classResources
8316
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   467
    "catch classResources - load the class and resend to the real one"
8185
e09efa26b6f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7744
diff changeset
   468
e09efa26b6f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7744
diff changeset
   469
    ^ self doesNotUnderstand:(Message selector:#classResources)
e09efa26b6f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7744
diff changeset
   470
!
e09efa26b6f8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7744
diff changeset
   471
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   472
comment
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   473
    "return the classes comment.
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   474
     Autoloaded classes have no comment; but I myself have one"
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   475
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   476
    (self == Autoload) ifTrue:[^ super comment].
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   477
    ^ 'not yet loaded'
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   478
!
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   479
6768
4ccf91dfeba2 oops - catch #copy
penk
parents: 6602
diff changeset
   480
copy
4ccf91dfeba2 oops - catch #copy
penk
parents: 6602
diff changeset
   481
    "catch copy - load the class and resend #copy to the real one"
4ccf91dfeba2 oops - catch #copy
penk
parents: 6602
diff changeset
   482
4ccf91dfeba2 oops - catch #copy
penk
parents: 6602
diff changeset
   483
    ^ self doesNotUnderstand:(Message selector:#copy)
4ccf91dfeba2 oops - catch #copy
penk
parents: 6602
diff changeset
   484
!
4ccf91dfeba2 oops - catch #copy
penk
parents: 6602
diff changeset
   485
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   486
doesNotUnderstand:aMessage
2689
ada9b102abcf typo fix
Claus Gittinger <cg@exept.de>
parents: 2666
diff changeset
   487
    "caught a message; load the class and retry the message"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   488
a27a279701f8 Initial revision
claus
parents:
diff changeset
   489
    |newClass|
a27a279701f8 Initial revision
claus
parents:
diff changeset
   490
164
9bad8fe706e9 *** empty log message ***
claus
parents: 154
diff changeset
   491
    self ~~ Autoload ifTrue:[
7178
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   492
        newClass := self autoload.
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   493
        newClass notNil ifTrue:[
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   494
            ^ aMessage sendTo:newClass
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   495
        ]
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   496
    ].
789
155eca125ef0 return value from doesNotUnderstand (so handler can return a value)
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   497
    ^ super doesNotUnderstand:aMessage
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   498
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   499
    "Modified: 24.4.1996 / 19:53:27 / cg"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   500
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   501
7574
8041a5795bbf catch #error
tm
parents: 7280
diff changeset
   502
error
8041a5795bbf catch #error
tm
parents: 7280
diff changeset
   503
    "catch error - load the class and resend #error to the real one"
8041a5795bbf catch #error
tm
parents: 7280
diff changeset
   504
8041a5795bbf catch #error
tm
parents: 7280
diff changeset
   505
    ^ self doesNotUnderstand:(Message selector:#error)
8041a5795bbf catch #error
tm
parents: 7280
diff changeset
   506
!
8041a5795bbf catch #error
tm
parents: 7280
diff changeset
   507
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   508
new
2663
2ce59f3b8c2b comments
Claus Gittinger <cg@exept.de>
parents: 2662
diff changeset
   509
    "catch new - load the class and resend #new to the real one"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   510
a27a279701f8 Initial revision
claus
parents:
diff changeset
   511
    ^ self doesNotUnderstand:(Message selector:#new)
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   512
2663
2ce59f3b8c2b comments
Claus Gittinger <cg@exept.de>
parents: 2662
diff changeset
   513
    "Modified: 26.5.1997 / 14:59:52 / cg"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   514
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   515
a27a279701f8 Initial revision
claus
parents:
diff changeset
   516
new:arg
2663
2ce59f3b8c2b comments
Claus Gittinger <cg@exept.de>
parents: 2662
diff changeset
   517
    "catch new: - load the class and resend #new: it to the real one"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   518
a27a279701f8 Initial revision
claus
parents:
diff changeset
   519
    ^ self doesNotUnderstand:(Message selector:#new: with:arg)
1277
7acd342fb251 commentary
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   520
2663
2ce59f3b8c2b comments
Claus Gittinger <cg@exept.de>
parents: 2662
diff changeset
   521
    "Modified: 26.5.1997 / 14:59:58 / cg"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   522
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   523
1438
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   524
readFrom:aStream 
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   525
    "catch  - load the class and send it to the real one"
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   526
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   527
    ^ self doesNotUnderstand:(Message selector:#readFrom: with:aStream)
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   528
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   529
    "Created: 22.5.1996 / 23:44:23 / stefan"
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   530
!
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   531
1437
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   532
readFrom:aStream onError:exceptionBlock
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   533
    "catch  - load the class and send it to the real one"
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   534
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   535
    ^ self doesNotUnderstand:(Message selector:#readFrom:onError: with:aStream with:exceptionBlock)
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   536
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   537
    "Created: 22.5.1996 / 23:03:39 / stefan"
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   538
!
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   539
1438
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   540
readFromString:aString
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   541
    "catch  - load the class and send it to the real one"
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   542
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   543
    ^ self doesNotUnderstand:(Message selector:#readFromString: with:aString)
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   544
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   545
    "Created: 22.5.1996 / 23:46:15 / stefan"
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   546
!
76fdecf85f9e Catch readFrom: and readFromString: too.
Stefan Vogel <sv@exept.de>
parents: 1437
diff changeset
   547
1437
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   548
readFromString:aString onError:exceptionBlock
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   549
    "catch  - load the class and send it to the real one"
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   550
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   551
    ^ self doesNotUnderstand:(Message selector:#readFromString:onError: with:aString with:exceptionBlock)
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   552
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   553
    "Created: 22.5.1996 / 23:04:49 / stefan"
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   554
!
2a167c1f9f35 Catch readFrom:onError et al.
Stefan Vogel <sv@exept.de>
parents: 1414
diff changeset
   555
2691
33221e233f79 when asked via #respondsTo:, load & resend
Claus Gittinger <cg@exept.de>
parents: 2689
diff changeset
   556
respondsTo:aSelector
33221e233f79 when asked via #respondsTo:, load & resend
Claus Gittinger <cg@exept.de>
parents: 2689
diff changeset
   557
    "catch respondsTo: - load the class and resend #respondsTo: it to the real one"
33221e233f79 when asked via #respondsTo:, load & resend
Claus Gittinger <cg@exept.de>
parents: 2689
diff changeset
   558
33221e233f79 when asked via #respondsTo:, load & resend
Claus Gittinger <cg@exept.de>
parents: 2689
diff changeset
   559
    self == Autoload ifTrue:[
7178
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   560
        ^ super respondsTo:aSelector
2691
33221e233f79 when asked via #respondsTo:, load & resend
Claus Gittinger <cg@exept.de>
parents: 2689
diff changeset
   561
    ].
33221e233f79 when asked via #respondsTo:, load & resend
Claus Gittinger <cg@exept.de>
parents: 2689
diff changeset
   562
    ^ self doesNotUnderstand:(Message selector:#respondsTo: with:aSelector)
33221e233f79 when asked via #respondsTo:, load & resend
Claus Gittinger <cg@exept.de>
parents: 2689
diff changeset
   563
33221e233f79 when asked via #respondsTo:, load & resend
Claus Gittinger <cg@exept.de>
parents: 2689
diff changeset
   564
    "Modified: 26.5.1997 / 14:59:58 / cg"
8306
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   565
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   566
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   567
subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   568
    "create a new class as a subclass of an existing class (the receiver).
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   569
     The subclass will have indexed variables if the receiving-class has."
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   570
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   571
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   572
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   573
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   574
subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat classInstanceVariableNames:classInstanceVariableNames
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   575
    "create a new class as a subclass of an existing class (the receiver).
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   576
     The subclass will have indexed variables if the receiving-class has."
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   577
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   578
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   579
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   580
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   581
subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat inEnvironment:aNameSpace
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   582
    "create a new class as a subclass of an existing class (the receiver).
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   583
     The subclass will have indexed variables if the receiving-class has."
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   584
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   585
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   586
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   587
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   588
subclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   589
    "create a new class as a subclass of an existing class (the receiver).
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   590
     The subclass will have indexed variables if the receiving-class has."
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   591
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   592
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   593
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   594
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   595
variableByteSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   596
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   597
     in which the subclass has indexable byte-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   598
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   599
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   600
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   601
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   602
variableByteSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   603
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   604
     in which the subclass has indexable byte-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   605
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   606
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   607
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   608
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   609
variableDoubleSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   610
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   611
     in which the subclass has indexable double-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   612
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   613
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   614
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   615
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   616
variableDoubleSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   617
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   618
     in which the subclass has indexable double-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   619
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   620
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   621
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   622
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   623
variableFloatSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   624
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   625
     in which the subclass has indexable float-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   626
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   627
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   628
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   629
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   630
variableFloatSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   631
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   632
     in which the subclass has indexable float-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   633
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   634
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   635
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   636
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   637
variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   638
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   639
     in which the subclass has indexable unsigned long-long-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   640
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   641
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   642
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   643
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   644
variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   645
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   646
     in which the subclass has indexable longlong-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   647
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   648
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   649
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   650
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   651
variableLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   652
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   653
     in which the subclass has indexable long-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   654
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   655
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   656
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   657
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   658
variableLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   659
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   660
     in which the subclass has indexable long-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   661
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   662
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   663
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   664
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   665
variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   666
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   667
     in which the subclass has indexable signed long-long-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   668
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   669
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   670
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   671
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   672
variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   673
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   674
     in which the subclass has indexable signed longlong-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   675
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   676
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   677
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   678
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   679
variableSignedLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   680
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   681
     in which the subclass has indexable signed long-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   682
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   683
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   684
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   685
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   686
variableSignedLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   687
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   688
     in which the subclass has indexable signed long-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   689
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   690
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   691
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   692
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   693
variableSignedWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   694
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   695
     in which the subclass has indexable word-sized signed nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   696
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   697
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   698
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   699
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   700
variableSignedWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   701
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   702
     in which the subclass has indexable word-sized signed nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   703
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   704
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   705
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   706
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   707
variableSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   708
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   709
     in which the subclass has indexable pointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   710
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   711
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   712
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   713
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   714
variableSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat classInstanceVariableNames:classInstanceVariableNames
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   715
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   716
     in which the subclass has indexable pointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   717
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   718
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   719
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   720
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   721
variableSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   722
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   723
     in which the subclass has indexable pointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   724
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   725
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   726
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   727
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   728
variableWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   729
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   730
     in which the subclass has indexable word-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   731
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   732
    ^ self loadAndResendMessage
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   733
!
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   734
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   735
variableWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   736
    "create a new class as a subclass of an existing class (the receiver) 
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   737
     in which the subclass has indexable word-sized nonpointer variables"
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   738
5b610781e787 *** empty log message ***
werner
parents: 8185
diff changeset
   739
    ^ self loadAndResendMessage
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   740
! !
11
6bf3080856be *** empty log message ***
claus
parents: 5
diff changeset
   741
8316
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   742
!Autoload class methodsFor:'private'!
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   743
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   744
loadAndResendMessage
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   745
    "common helper to autoload a class and define a subclass of it by sending
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   746
     the sender-message again.
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   747
     This is invoked by all #subClass... definition messages."
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   748
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   749
    |sel args newClass|
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   750
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   751
    sel := thisContext sender selector.
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   752
    args := thisContext sender args.
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   753
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   754
    "take care: subclassing Autoload must still be possible"
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   755
    (self == Autoload) ifTrue:[
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   756
        ^ self perform:sel inClass:Autoload class superclass withArguments:args
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   757
    ].
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   758
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   759
    newClass := self autoload.
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   760
    newClass notNil ifTrue:[
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   761
        ^ newClass perform:sel withArguments:args
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   762
    ].
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   763
    ^ nil
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   764
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   765
    "Created: 8.2.1997 / 19:42:47 / cg"
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   766
! !
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   767
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   768
!Autoload class methodsFor:'queries'!
356
claus
parents: 345
diff changeset
   769
5902
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   770
accepts:aSignal
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   771
    "redefined to avoid recursive autoload"
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   772
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   773
    |newClass|
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   774
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   775
    self isBeingLoaded ifFalse:[
7178
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   776
        newClass := self autoload.
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   777
        newClass notNil ifTrue:[
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   778
            ^ newClass accepts:aSignal
2217cc44b048 changed #autoload.
james
parents: 7092
diff changeset
   779
        ].
5902
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   780
    ].
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   781
    ^ false
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   782
!
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   783
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   784
isBehavior
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   785
    "return true if the recevier is some kind of class.
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   786
     Autoloaded classes are definitely; therefore return true."
164
9bad8fe706e9 *** empty log message ***
claus
parents: 154
diff changeset
   787
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   788
    ^ true
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   789
!
356
claus
parents: 345
diff changeset
   790
5902
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   791
isBeingLoaded
5903
fa9072bf1506 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5902
diff changeset
   792
    ^ (self ~~ Autoload) and:[(Smalltalk at:self name) isNil ]
5902
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   793
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   794
    "Modified: / 16.2.1998 / 11:57:35 / stefan"
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   795
!
1d9268e8c717 recursive autoload of exception-subclasses
penk
parents: 5820
diff changeset
   796
729
67a60a088d56 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   797
isBuiltInClass
1266
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1148
diff changeset
   798
    "return true if this class is known by the run-time-system.
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1148
diff changeset
   799
     Returns false here."
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1148
diff changeset
   800
729
67a60a088d56 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   801
    ^ false
67a60a088d56 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   802
67a60a088d56 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   803
    "Created: 10.12.1995 / 00:28:22 / cg"
1266
cef9b3cd49df commentary
Claus Gittinger <cg@exept.de>
parents: 1148
diff changeset
   804
    "Modified: 23.4.1996 / 15:55:36 / cg"
729
67a60a088d56 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   805
!
67a60a088d56 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   806
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   807
isLoaded
3287
f3761386e4ba Comment
Stefan Vogel <sv@exept.de>
parents: 3267
diff changeset
   808
    "return true, if the class has been loaded.
f3761386e4ba Comment
Stefan Vogel <sv@exept.de>
parents: 3267
diff changeset
   809
     Autoload itself is loaded, subclasses are not.
f3761386e4ba Comment
Stefan Vogel <sv@exept.de>
parents: 3267
diff changeset
   810
     This allows testing wether a class has already been loaded."
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   811
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   812
    ^ (self == Autoload)
3287
f3761386e4ba Comment
Stefan Vogel <sv@exept.de>
parents: 3267
diff changeset
   813
f3761386e4ba Comment
Stefan Vogel <sv@exept.de>
parents: 3267
diff changeset
   814
    "Modified: / 16.2.1998 / 11:57:35 / stefan"
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   815
!
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   816
922
0e8e0d920d0d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 921
diff changeset
   817
loadedClasses
0e8e0d920d0d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 921
diff changeset
   818
    "return the set of classes that were autoloaded"
0e8e0d920d0d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 921
diff changeset
   819
8316
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   820
    ^ LoadedClasses
922
0e8e0d920d0d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 921
diff changeset
   821
!
0e8e0d920d0d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 921
diff changeset
   822
4401
d9667432d35b privateClasses and allPrivateClasses
Claus Gittinger <cg@exept.de>
parents: 4301
diff changeset
   823
privateClassesOrAll:allOfThem
4000
0f00add4298e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   824
    "an autoloaded class has none"
0f00add4298e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   825
0f00add4298e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   826
    ^ #()
0f00add4298e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   827
!
0f00add4298e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3655
diff changeset
   828
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   829
wasAutoloaded:aClass
922
0e8e0d920d0d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 921
diff changeset
   830
    "return true, if aClass was autoloaded"
0e8e0d920d0d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 921
diff changeset
   831
8316
4023c53e9320 Initialie classvar
Stefan Vogel <sv@exept.de>
parents: 8306
diff changeset
   832
    ^ LoadedClasses includes:aClass
11
6bf3080856be *** empty log message ***
claus
parents: 5
diff changeset
   833
! !
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   834
1862
e8f44f10f1ab changes for new #infoOf: / #linkInfoOf: return
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   835
!Autoload class methodsFor:'documentation'!
661
7e1c7358c980 version method at the end
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   836
7e1c7358c980 version method at the end
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   837
version
8431
3e06c959dcff #autoload - raise error if fileIn fails.
Stefan Vogel <sv@exept.de>
parents: 8382
diff changeset
   838
    ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.125 2004-07-01 10:06:47 stefan Exp $'
661
7e1c7358c980 version method at the end
Claus Gittinger <cg@exept.de>
parents: 624
diff changeset
   839
! !
6768
4ccf91dfeba2 oops - catch #copy
penk
parents: 6602
diff changeset
   840
620
c7353f86a302 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   841
Autoload initialize!