CheapBlock.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 21920 56d37fc40d49
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     1
"
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1994 by Claus Gittinger
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     3
	      All Rights Reserved
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     4
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    11
"
5350
b4c57faa79d5 #beVarArg -> asVarArgBlock
Claus Gittinger <cg@exept.de>
parents: 2694
diff changeset
    12
"{ Package: 'stx:libbasic' }"
b4c57faa79d5 #beVarArg -> asVarArgBlock
Claus Gittinger <cg@exept.de>
parents: 2694
diff changeset
    13
19446
9ed2b71ec0c7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16917
diff changeset
    14
"{ NameSpace: Smalltalk }"
9ed2b71ec0c7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16917
diff changeset
    15
5350
b4c57faa79d5 #beVarArg -> asVarArgBlock
Claus Gittinger <cg@exept.de>
parents: 2694
diff changeset
    16
Block variableSubclass:#CheapBlock
1181
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    17
	instanceVariableNames:'selfValue method'
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    18
	classVariableNames:''
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    19
	poolDictionaries:''
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    20
	category:'Kernel-Methods'
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    21
!
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    22
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    23
!CheapBlock class methodsFor:'documentation'!
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    24
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    25
copyright
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    26
"
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    27
 COPYRIGHT (c) 1994 by Claus Gittinger
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    28
	      All Rights Reserved
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    29
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    30
 This software is furnished under a license and may be used
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    35
 hereby transferred.
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    36
"
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    37
!
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    38
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    39
documentation
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    40
"
222
85fee82884dd commenting
claus
parents: 213
diff changeset
    41
    CheapBlocks are blocks which do not need their home-context
1254
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    42
    (i.e. blocks that do not access any method arguments 
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    43
     or method locals).
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    44
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    45
    CheapBlocks are never created explicitely; the only creation
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    46
    is done by the compilers, when some sourceCode is compiled to either
2243
adf9680a593e commentary
Claus Gittinger <cg@exept.de>
parents: 1852
diff changeset
    47
    machine or byteCode, and the generated block is found to neither access
adf9680a593e commentary
Claus Gittinger <cg@exept.de>
parents: 1852
diff changeset
    48
    any variables from its homeContext nor does a method-return.
adf9680a593e commentary
Claus Gittinger <cg@exept.de>
parents: 1852
diff changeset
    49
    CheapBlocks create less overhead to the runtime system, in that they
20786
1b45f3e7bde7 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19446
diff changeset
    50
    do not keep the creating context from being reclaimed (but, don't expect
2243
adf9680a593e commentary
Claus Gittinger <cg@exept.de>
parents: 1852
diff changeset
    51
    too much of a difference ;-)
1254
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    52
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    53
    Since they have no reference to the home, they must store their
1254
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    54
    creating method explicitely - otherwise, the system had no 
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    55
    chance of finding the source-position of the block.
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    56
1293
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    57
    [Instance variables:]
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    58
1254
48c2748b5197 commentary
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    59
      selfValue   <Object>          copied self value
21417
8f5e79af0f27 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20786
diff changeset
    60
                                    (if it's a copying block)
222
85fee82884dd commenting
claus
parents: 213
diff changeset
    61
85fee82884dd commenting
claus
parents: 213
diff changeset
    62
      method      <Method>          method where block was created 
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    63
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    64
    NOTICE: layout known by runtime system and compiler - do not change
1293
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    65
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    66
    [author:]
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    67
        Claus Gittinger
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    68
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    69
    [see also:]
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    70
        Block Context Method
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    71
        ( contexts, stacks & unwinding :html: programming/contexts.html )
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    72
"
1181
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    73
! !
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    74
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    75
!CheapBlock class methodsFor:'queries'!
623
6795a71e39d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    76
1181
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    77
isBuiltInClass
1264
8d916aa63bce commentary
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    78
    "return true if this class is known by the run-time-system.
8d916aa63bce commentary
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    79
     Here, true is returned for myself, false for subclasses."
1181
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    80
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    81
    ^ self == CheapBlock
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    82
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    83
    "Created: 16.4.1996 / 11:25:23 / cg"
1264
8d916aa63bce commentary
Claus Gittinger <cg@exept.de>
parents: 1254
diff changeset
    84
    "Modified: 23.4.1996 / 15:56:46 / cg"
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    85
! !
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    86
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    87
!CheapBlock methodsFor:'accessing'!
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
    88
2694
46ba8cbdc013 added #homeMethod for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    89
homeMethod
19446
9ed2b71ec0c7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16917
diff changeset
    90
    "return the receiver's home method.
9ed2b71ec0c7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16917
diff changeset
    91
     That's the method where the block was created."
161
ed36169f354d *** empty log message ***
claus
parents: 156
diff changeset
    92
ed36169f354d *** empty log message ***
claus
parents: 156
diff changeset
    93
    ^ method
2694
46ba8cbdc013 added #homeMethod for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    94
46ba8cbdc013 added #homeMethod for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    95
    "Created: 19.6.1997 / 16:14:35 / cg"
46ba8cbdc013 added #homeMethod for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    96
    "Modified: 19.6.1997 / 16:15:44 / cg"
46ba8cbdc013 added #homeMethod for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    97
!
46ba8cbdc013 added #homeMethod for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    98
623
6795a71e39d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
    99
selfValue
6795a71e39d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   100
    "return the copied self"
6795a71e39d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   101
6795a71e39d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 528
diff changeset
   102
    ^ selfValue
1796
f67d9ea87a45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   103
!
f67d9ea87a45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   104
f67d9ea87a45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   105
setMethod:aMethod
19446
9ed2b71ec0c7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16917
diff changeset
   106
    "set the receiver's home method.
1796
f67d9ea87a45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   107
     This is a private entry for the compiler"
f67d9ea87a45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   108
f67d9ea87a45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   109
    method := aMethod
f67d9ea87a45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   110
f67d9ea87a45 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   111
    "Created: 21.10.1996 / 13:58:29 / cg"
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   112
! !
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   113
2247
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   114
!CheapBlock methodsFor:'conversion'!
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   115
5350
b4c57faa79d5 #beVarArg -> asVarArgBlock
Claus Gittinger <cg@exept.de>
parents: 2694
diff changeset
   116
asVarArgBlock
2247
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   117
    "convert myself into a varArg block;
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   118
     this one has 1 formal argument, which gets the list
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   119
     of actual arguments when evaluated."
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   120
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   121
    nargs ~~ 1 ifTrue:[
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   122
        self error:'vararg blocks must take exactly 1 argument - the arg list'.
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   123
        ^ nil
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   124
    ].
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   125
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   126
    self changeClassTo:VarArgCheapBlock.
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   127
    ^ self
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   128
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   129
    "
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   130
     |b|
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   131
5350
b4c57faa79d5 #beVarArg -> asVarArgBlock
Claus Gittinger <cg@exept.de>
parents: 2694
diff changeset
   132
     b := [:argList | argList printCR] asVarArgBlock.
2247
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   133
     b value.
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   134
     b value:'arg1' value:'arg2' value:'arg3' value:'arg4'
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   135
    "
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   136
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   137
    "Created: 23.1.1997 / 13:35:28 / cg"
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   138
    "Modified: 23.1.1997 / 13:35:48 / cg"
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   139
! !
3e227e6ea1fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
   140
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   141
!CheapBlock methodsFor:'printing & storing'!
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   142
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   143
printOn:aStream
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   144
    "append a a printed representation of the block to aStream"
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   145
1852
89b2328f4203 use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 1796
diff changeset
   146
    |who|
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   147
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   148
    "
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   149
     cheap blocks have no home context, but a method instead
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   150
    "
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   151
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   152
    aStream nextPutAll:'[] in '.
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   153
    "
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   154
     find out, for which class this method was for ...
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   155
    "
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   156
    method notNil ifTrue:[
1852
89b2328f4203 use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 1796
diff changeset
   157
        who := method who.
89b2328f4203 use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 1796
diff changeset
   158
        who notNil ifTrue:[
16917
4bcb5dedb31f class: CheapBlock
Stefan Vogel <sv@exept.de>
parents: 16277
diff changeset
   159
            aStream nextPutAll:(who methodClass name , '>>' , who methodSelector).
1852
89b2328f4203 use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 1796
diff changeset
   160
            aStream nextPutAll:' (optimized)'.
89b2328f4203 use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 1796
diff changeset
   161
            ^ self
89b2328f4203 use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 1796
diff changeset
   162
        ].
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   163
    ].
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   164
    "
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   165
     currently, some cheap blocks don't know where they have been created
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   166
    "
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   167
    aStream nextPutAll:' ??? (optimized)'.
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   168
    ^ self
1852
89b2328f4203 use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 1796
diff changeset
   169
89b2328f4203 use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 1796
diff changeset
   170
    "Modified: 1.11.1996 / 16:21:19 / cg"
156
f03b8fb5e778 Initial revision
claus
parents:
diff changeset
   171
! !
1181
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   172
16277
f0452249a320 class: CheapBlock
Stefan Vogel <sv@exept.de>
parents: 5350
diff changeset
   173
!CheapBlock methodsFor:'testing'!
f0452249a320 class: CheapBlock
Stefan Vogel <sv@exept.de>
parents: 5350
diff changeset
   174
f0452249a320 class: CheapBlock
Stefan Vogel <sv@exept.de>
parents: 5350
diff changeset
   175
isCheapBlock
f0452249a320 class: CheapBlock
Stefan Vogel <sv@exept.de>
parents: 5350
diff changeset
   176
    ^ true
f0452249a320 class: CheapBlock
Stefan Vogel <sv@exept.de>
parents: 5350
diff changeset
   177
! !
f0452249a320 class: CheapBlock
Stefan Vogel <sv@exept.de>
parents: 5350
diff changeset
   178
1181
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   179
!CheapBlock class methodsFor:'documentation'!
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   180
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   181
version
19446
9ed2b71ec0c7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16917
diff changeset
   182
    ^ '$Header$'
1181
6637fee79d7b only Block & CheapBlock are fixed - subclasses may look different
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   183
! !
16277
f0452249a320 class: CheapBlock
Stefan Vogel <sv@exept.de>
parents: 5350
diff changeset
   184