private.rc
author claus
Wed, 16 Aug 1995 17:38:28 +0200
changeset 25 463dd2575719
parent 24 1b6ff7a7839e
child 26 398bad70619c
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
bf0b63015196 Initial revision
claus
parents:
diff changeset
     1
"*
bf0b63015196 Initial revision
claus
parents:
diff changeset
     2
 * $Header$
bf0b63015196 Initial revision
claus
parents:
diff changeset
     3
 *
bf0b63015196 Initial revision
claus
parents:
diff changeset
     4
 * sample private.rc - file
bf0b63015196 Initial revision
claus
parents:
diff changeset
     5
 *
10
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
     6
 * a copy of this file can (should) reside in your home or
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
     7
 * current directory - put all private preferences in here.
25
claus
parents: 24
diff changeset
     8
 * notice, you will find some things enclosed in
claus
parents: 24
diff changeset
     9
 *  ... getLoginName = 'claus' ifTrue:[
claus
parents: 24
diff changeset
    10
 *      
claus
parents: 24
diff changeset
    11
 * these are my personal preferrences which will be
claus
parents: 24
diff changeset
    12
 * ignored in your environment, but are taken in mine.
claus
parents: 24
diff changeset
    13
 * That way, I dont have to maintain two different 'private.rc' files.
claus
parents: 24
diff changeset
    14
 * (you may want to have a look into it - some is of general interrest)
4
bf0b63015196 Initial revision
claus
parents:
diff changeset
    15
 *"
bf0b63015196 Initial revision
claus
parents:
diff changeset
    16
25
claus
parents: 24
diff changeset
    17
"/
claus
parents: 24
diff changeset
    18
"/ this turns off information messages from classes
claus
parents: 24
diff changeset
    19
"/ (such as 'D8IMAGE: allocating colors ...'
claus
parents: 24
diff changeset
    20
"/
claus
parents: 24
diff changeset
    21
"/ Object infoPrinting:false.
claus
parents: 24
diff changeset
    22
Object infoPrinting:true.
claus
parents: 24
diff changeset
    23
claus
parents: 24
diff changeset
    24
"/
claus
parents: 24
diff changeset
    25
"/ this turns off information messages from the VM
claus
parents: 24
diff changeset
    26
"/ (such as 'MEM: chitty chatty ...'
claus
parents: 24
diff changeset
    27
"/
claus
parents: 24
diff changeset
    28
"/ ObjectMemory infoPrinting:false.
claus
parents: 24
diff changeset
    29
ObjectMemory infoPrinting:true.
claus
parents: 24
diff changeset
    30
claus
parents: 24
diff changeset
    31
"/
claus
parents: 24
diff changeset
    32
"/ this turns off error/fatal messages from the VM
claus
parents: 24
diff changeset
    33
"/ (it does not really make sense to turn them off)
claus
parents: 24
diff changeset
    34
"/
claus
parents: 24
diff changeset
    35
"/ Smalltalk debugPrinting:false.
claus
parents: 24
diff changeset
    36
claus
parents: 24
diff changeset
    37
"/
claus
parents: 24
diff changeset
    38
"/ set the package for fileIns done below
claus
parents: 24
diff changeset
    39
"/
24
claus
parents: 21
diff changeset
    40
Project notNil ifTrue:[
claus
parents: 21
diff changeset
    41
    Project setDefaultProject.
25
claus
parents: 24
diff changeset
    42
    Project current packageName:#'goody-fileIn'.
24
claus
parents: 21
diff changeset
    43
].
claus
parents: 21
diff changeset
    44
!
claus
parents: 21
diff changeset
    45
25
claus
parents: 24
diff changeset
    46
"/ a kludge: some Xservers send #Delete for both the backspace
claus
parents: 24
diff changeset
    47
"/ and the Delete key. In this case, we use the Backspace function
claus
parents: 24
diff changeset
    48
"/ for both keys. If your Xserver does not do this (it should not)
claus
parents: 24
diff changeset
    49
"/ remove or comment the following 'bindValue:#BackSpace'-line:
claus
parents: 24
diff changeset
    50
"/
claus
parents: 24
diff changeset
    51
|map macros|
24
claus
parents: 21
diff changeset
    52
claus
parents: 21
diff changeset
    53
map := Display keyboardMap.
25
claus
parents: 24
diff changeset
    54
map bindValue:#BackSpace     to:#Delete.
claus
parents: 24
diff changeset
    55
claus
parents: 24
diff changeset
    56
"/
claus
parents: 24
diff changeset
    57
"/ my personal preferences - make it unconditional if you like them
claus
parents: 24
diff changeset
    58
"/ 
claus
parents: 24
diff changeset
    59
OperatingSystem getLoginName = 'claus' ifTrue:[
claus
parents: 24
diff changeset
    60
    map bindValue:#Compose     to:#'Control_R'.    "/ remove this line, if your keyboard has a compose-key
claus
parents: 24
diff changeset
    61
claus
parents: 24
diff changeset
    62
claus
parents: 24
diff changeset
    63
    "/
claus
parents: 24
diff changeset
    64
    "/ convenient functions on the keyboard
claus
parents: 24
diff changeset
    65
    "/
claus
parents: 24
diff changeset
    66
    map bindValue:#Again         to:#F1.
claus
parents: 24
diff changeset
    67
    map bindValue:#UserInterrupt to:#Break.
claus
parents: 24
diff changeset
    68
    map bindValue:#PrintIt       to:#Print.      "/ called PrintScreen on most keyboards
claus
parents: 24
diff changeset
    69
    map bindValue:#InspectIt     to:#Execute.    "/ called SysReq on most keyboards
claus
parents: 24
diff changeset
    70
claus
parents: 24
diff changeset
    71
    "/
claus
parents: 24
diff changeset
    72
    "/ have F5 paste the output of a selected unix command ..
claus
parents: 24
diff changeset
    73
    "/ have CtrlTab toggle between 4 and 8 col tab setting
claus
parents: 24
diff changeset
    74
    "/ F6/F7 is cool (not available on all systems): 
claus
parents: 24
diff changeset
    75
    "/    F6 sends the selection to spell ,
claus
parents: 24
diff changeset
    76
    "/    F7 locates the next spelling error and searches for these word(s)
claus
parents: 24
diff changeset
    77
    "/ F10 indents selection by 4
claus
parents: 24
diff changeset
    78
    "/ F9  undents selection by 4
claus
parents: 24
diff changeset
    79
    "/
claus
parents: 24
diff changeset
    80
    "/ F3  comments a (multiline) selection
claus
parents: 24
diff changeset
    81
    "/ F4  uncomments a (multiline) selection
claus
parents: 24
diff changeset
    82
    "/
claus
parents: 24
diff changeset
    83
    macros := Smalltalk at:#FunctionKeySequences.
claus
parents: 24
diff changeset
    84
    macros isNil ifTrue:[
claus
parents: 24
diff changeset
    85
	macros := IdentityDictionary new.
claus
parents: 24
diff changeset
    86
	Smalltalk at:#FunctionKeySequences put:macros.
claus
parents: 24
diff changeset
    87
    ].
claus
parents: 24
diff changeset
    88
    "/ replace selection by unix command
claus
parents: 24
diff changeset
    89
    macros at:#F99 put:'
claus
parents: 24
diff changeset
    90
			"replace selection by 
claus
parents: 24
diff changeset
    91
			 corresponding
claus
parents: 24
diff changeset
    92
			 unix commands output"
claus
parents: 24
diff changeset
    93
claus
parents: 24
diff changeset
    94
			|sel|
claus
parents: 24
diff changeset
    95
claus
parents: 24
diff changeset
    96
			sel := self selection.
claus
parents: 24
diff changeset
    97
			sel notNil ifTrue:[
claus
parents: 24
diff changeset
    98
			    self replace:
claus
parents: 24
diff changeset
    99
				(PipeStream readingFrom:(sel asString))
claus
parents: 24
diff changeset
   100
				    contents asString
claus
parents: 24
diff changeset
   101
			]'.
claus
parents: 24
diff changeset
   102
claus
parents: 24
diff changeset
   103
    "/ toggle tabs
claus
parents: 24
diff changeset
   104
    macros at:#F98 put:'
claus
parents: 24
diff changeset
   105
			"toggle between 4-col 
claus
parents: 24
diff changeset
   106
			 and 8-col tabs"
claus
parents: 24
diff changeset
   107
claus
parents: 24
diff changeset
   108
			(tabPositions == self class tab4Positions)
claus
parents: 24
diff changeset
   109
			     ifTrue:[self setTab8]
claus
parents: 24
diff changeset
   110
			     ifFalse:[self setTab4]'.
claus
parents: 24
diff changeset
   111
claus
parents: 24
diff changeset
   112
    "/ get next spelling error, and select it
claus
parents: 24
diff changeset
   113
    macros at:#F97 put:'
claus
parents: 24
diff changeset
   114
			|errs thisErr sl sc|
claus
parents: 24
diff changeset
   115
claus
parents: 24
diff changeset
   116
			thisErr := Smalltalk at:#''_thisError''.
claus
parents: 24
diff changeset
   117
			thisErr isNil ifTrue:[
claus
parents: 24
diff changeset
   118
			    errs := Smalltalk at:#''_spellOutput''.
claus
parents: 24
diff changeset
   119
			    (errs notNil and:[errs notEmpty]) ifTrue:[
claus
parents: 24
diff changeset
   120
				thisErr := errs removeFirst.
claus
parents: 24
diff changeset
   121
				errs isEmpty ifTrue:[Smalltalk removeKey:''_spellOut'']
claus
parents: 24
diff changeset
   122
			    ].
claus
parents: 24
diff changeset
   123
			    Smalltalk at:#''_lastErrLine'' put:1.
claus
parents: 24
diff changeset
   124
			    Smalltalk at:#''_lastErrCol'' put:1.
claus
parents: 24
diff changeset
   125
			].
claus
parents: 24
diff changeset
   126
			thisErr notNil ifTrue:[
claus
parents: 24
diff changeset
   127
			    sl := Smalltalk at:#''_lastErrLine''.
claus
parents: 24
diff changeset
   128
			    sc := Smalltalk at:#''_lastErrCol''.
claus
parents: 24
diff changeset
   129
			    self searchForwardFor:thisErr
claus
parents: 24
diff changeset
   130
				 startingAtLine:sl col:sc 
claus
parents: 24
diff changeset
   131
				 ifFound:[:fl :fc | self selectWordAtLine:fl col:fc.
claus
parents: 24
diff changeset
   132
						    Smalltalk at:#''_lastErrLine'' put:fl.
claus
parents: 24
diff changeset
   133
						    Smalltalk at:#''_lastErrCol'' put:fc+1]
claus
parents: 24
diff changeset
   134
				 ifAbsent:[self device beep]
claus
parents: 24
diff changeset
   135
			]'.
claus
parents: 24
diff changeset
   136
claus
parents: 24
diff changeset
   137
    "/ send contents to spell; remember spelling errors
claus
parents: 24
diff changeset
   138
    "/ does not work on all systems (some do not have spell ...)
claus
parents: 24
diff changeset
   139
    macros at:#F96 put:'
claus
parents: 24
diff changeset
   140
			|p f s|
7
57c09d1b7f69 *** empty log message ***
claus
parents: 4
diff changeset
   141
25
claus
parents: 24
diff changeset
   142
			f := Filename newTemporary. s := f writeStream.
claus
parents: 24
diff changeset
   143
			s nextPutAll:self contents asString.
claus
parents: 24
diff changeset
   144
			s close.
claus
parents: 24
diff changeset
   145
			p := PipeStream readingFrom:''spell '' , f pathName.
claus
parents: 24
diff changeset
   146
			Smalltalk at:#''_spellOutput'' put:p contents asString asCollectionOfLines.
claus
parents: 24
diff changeset
   147
			p close.
claus
parents: 24
diff changeset
   148
			self information:''F7 positions on the next spelling error''.
claus
parents: 24
diff changeset
   149
			'.
claus
parents: 24
diff changeset
   150
claus
parents: 24
diff changeset
   151
    "/ indent by 4
claus
parents: 24
diff changeset
   152
    macros at:#F95 put:'
claus
parents: 24
diff changeset
   153
			"indent selected line-range 
claus
parents: 24
diff changeset
   154
			 by 4 spaces (i.e. to the right)"
claus
parents: 24
diff changeset
   155
claus
parents: 24
diff changeset
   156
			self selectionStartLine to:self selectionEndLine-1 do:[:lineNr |
claus
parents: 24
diff changeset
   157
			    |line|
claus
parents: 24
diff changeset
   158
claus
parents: 24
diff changeset
   159
			    line := self listAt:lineNr.
claus
parents: 24
diff changeset
   160
			    line notNil ifTrue:[
claus
parents: 24
diff changeset
   161
				line notEmpty ifTrue:[
claus
parents: 24
diff changeset
   162
				    line := ''    '' , line.
claus
parents: 24
diff changeset
   163
				    self at:lineNr put:line
claus
parents: 24
diff changeset
   164
				]
claus
parents: 24
diff changeset
   165
			    ]
claus
parents: 24
diff changeset
   166
			]
claus
parents: 24
diff changeset
   167
			'.
claus
parents: 24
diff changeset
   168
    "/ undent by 4
claus
parents: 24
diff changeset
   169
    macros at:#F94 put:'
claus
parents: 24
diff changeset
   170
			"undent selected line-range 
claus
parents: 24
diff changeset
   171
			 by 4 spaces (i.e. to the left)"
claus
parents: 24
diff changeset
   172
claus
parents: 24
diff changeset
   173
			self selectionStartLine to:self selectionEndLine-1 do:[:lineNr |
claus
parents: 24
diff changeset
   174
			    |line|
claus
parents: 24
diff changeset
   175
claus
parents: 24
diff changeset
   176
			    line := self listAt:lineNr.
claus
parents: 24
diff changeset
   177
			    line notNil ifTrue:[
claus
parents: 24
diff changeset
   178
				line notEmpty ifTrue:[
claus
parents: 24
diff changeset
   179
				    (line startsWith:''    '') ifTrue:[
claus
parents: 24
diff changeset
   180
					line := line copyFrom:5.
claus
parents: 24
diff changeset
   181
					self at:lineNr put:line
claus
parents: 24
diff changeset
   182
				    ]
claus
parents: 24
diff changeset
   183
				]
claus
parents: 24
diff changeset
   184
			    ]
claus
parents: 24
diff changeset
   185
			]
claus
parents: 24
diff changeset
   186
			'.
claus
parents: 24
diff changeset
   187
claus
parents: 24
diff changeset
   188
    map bindValue:#CmdF99  to:#F5.
claus
parents: 24
diff changeset
   189
    map bindValue:#CmdF98 to:#CtrlTab.
claus
parents: 24
diff changeset
   190
    "/ map bindValue:#CmdF97 to:#F7.
claus
parents: 24
diff changeset
   191
    "/ map bindValue:#CmdF96 to:#F6.
claus
parents: 24
diff changeset
   192
    map bindValue:#CmdF95 to:#F10.
claus
parents: 24
diff changeset
   193
    map bindValue:#CmdF94 to:#F9.
claus
parents: 24
diff changeset
   194
claus
parents: 24
diff changeset
   195
    map bindValue:#CommentSelection to:#F3.
claus
parents: 24
diff changeset
   196
    map bindValue:#UncommentSelection to:#F4.
claus
parents: 24
diff changeset
   197
claus
parents: 24
diff changeset
   198
    "/
claus
parents: 24
diff changeset
   199
    "/ since some of my machines have german keyboards ;-)
claus
parents: 24
diff changeset
   200
    "/ and I like to be able to edit my files on all machines,
claus
parents: 24
diff changeset
   201
    "/ I need a translation in both ways.
claus
parents: 24
diff changeset
   202
    "/ you'd normally not define things in both directions.
claus
parents: 24
diff changeset
   203
    "/
claus
parents: 24
diff changeset
   204
    "/ actually, these things belong into d_xxx.rc ...
claus
parents: 24
diff changeset
   205
    "/
claus
parents: 24
diff changeset
   206
    "/ german national characters on a US keyboard:
claus
parents: 24
diff changeset
   207
    "/
claus
parents: 24
diff changeset
   208
    map bindValue:(Character value:16rFC) to:#'Cmd['.
claus
parents: 24
diff changeset
   209
    map bindValue:(Character value:16rE4) to:#'Cmd'''.
claus
parents: 24
diff changeset
   210
    map bindValue:(Character value:16rF6) to:#'Cmd;'.
claus
parents: 24
diff changeset
   211
    map bindValue:(Character value:16rDC) to:#'Cmd{'.
claus
parents: 24
diff changeset
   212
    map bindValue:(Character value:16rC4) to:#'Cmd"'.
claus
parents: 24
diff changeset
   213
    map bindValue:(Character value:16rD6) to:#'Cmd:'.
claus
parents: 24
diff changeset
   214
    map bindValue:(Character value:16rDF) to:#'Cmd-'.
claus
parents: 24
diff changeset
   215
claus
parents: 24
diff changeset
   216
    "/
claus
parents: 24
diff changeset
   217
    "/ US characters on german keyboard:
claus
parents: 24
diff changeset
   218
    "/
claus
parents: 24
diff changeset
   219
    map bindValue:$[ to:#'Alt['.
claus
parents: 24
diff changeset
   220
    map bindValue:$] to:#'Alt]'.
claus
parents: 24
diff changeset
   221
    map bindValue:$| to:#'Alt|'.
claus
parents: 24
diff changeset
   222
    map bindValue:${ to:#'Alt{'.
claus
parents: 24
diff changeset
   223
claus
parents: 24
diff changeset
   224
    "/
claus
parents: 24
diff changeset
   225
    "/ no matter what the 'display.rc' says:
claus
parents: 24
diff changeset
   226
    "/     I want my #iris style ...
claus
parents: 24
diff changeset
   227
    "/
claus
parents: 24
diff changeset
   228
    View defaultStyle:#iris
claus
parents: 24
diff changeset
   229
].
claus
parents: 24
diff changeset
   230
claus
parents: 24
diff changeset
   231
claus
parents: 24
diff changeset
   232
"/ add my private directories to the searchPath ...
claus
parents: 24
diff changeset
   233
"/ This does not make sense in your environment.
claus
parents: 24
diff changeset
   234
"/ However, I leave the code here to show how its done.
claus
parents: 24
diff changeset
   235
"/
24
claus
parents: 21
diff changeset
   236
Smalltalk systemPath addFirst:'../..'.
claus
parents: 21
diff changeset
   237
16
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   238
OperatingSystem getLoginName = 'claus' ifTrue:[
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   239
    Smalltalk systemPath addFirst:'/phys/clam/claus/smalltalk/not_delivered'.
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   240
    Smalltalk systemPath addFirst:'/phys/clam/claus/smalltalk/private_classes'.
20
af1e702d74d0 *** empty log message ***
claus
parents: 17
diff changeset
   241
    Smalltalk systemPath addFirst:'/phys/clam/claus/work/fileIn/not_delivered'.
25
claus
parents: 24
diff changeset
   242
    Smalltalk systemPath addFirst:'../../libpro'.
16
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   243
].
25
claus
parents: 24
diff changeset
   244
claus
parents: 24
diff changeset
   245
"/ since smalltalk keeps track of which directories exist
claus
parents: 24
diff changeset
   246
"/ in the path, this cache has to be flushed whenever new directories
claus
parents: 24
diff changeset
   247
"/ are added to the path:
claus
parents: 24
diff changeset
   248
"/
24
claus
parents: 21
diff changeset
   249
Smalltalk flushPathCaches.
16
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   250
25
claus
parents: 24
diff changeset
   251
"/
claus
parents: 24
diff changeset
   252
"/ color allocation strategy:
claus
parents: 24
diff changeset
   253
"/
claus
parents: 24
diff changeset
   254
"/ the default is to allocate from the colormap as required.
claus
parents: 24
diff changeset
   255
"/ As long as the number of distinct colors used is less than the number
claus
parents: 24
diff changeset
   256
"/ of available colors (which is usually the case) this leads to better looking
claus
parents: 24
diff changeset
   257
"/ images.
claus
parents: 24
diff changeset
   258
"/ However, if many images are to be displayed simulatiously, images displayed
claus
parents: 24
diff changeset
   259
"/ first may steal too many colors required in images displayed later.
claus
parents: 24
diff changeset
   260
"/ In this case, it is better to preallocate some colors, and dither all images
claus
parents: 24
diff changeset
   261
"/ using theese. Of course, while making the worst case better, this makes
claus
parents: 24
diff changeset
   262
"/ the best case worse. You can decide ...
claus
parents: 24
diff changeset
   263
"/
10
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   264
"/   Color getColors6x6x4.
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   265
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   266
25
claus
parents: 24
diff changeset
   267
"/ The following loads some nice cursors; for example thumbsUp and thumbsDown
claus
parents: 24
diff changeset
   268
"/
claus
parents: 24
diff changeset
   269
"/ claus:
claus
parents: 24
diff changeset
   270
"/     I like those fancy cursors :-)
claus
parents: 24
diff changeset
   271
"/     if you think this is too 'childish', remove the line below ...
claus
parents: 24
diff changeset
   272
"/
claus
parents: 24
diff changeset
   273
"/
7
57c09d1b7f69 *** empty log message ***
claus
parents: 4
diff changeset
   274
Smalltalk silentFileIn:'../goodies/Cursor-ST80Cursors.chg'.
10
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   275
25
claus
parents: 24
diff changeset
   276
claus
parents: 24
diff changeset
   277
"/ claus:
claus
parents: 24
diff changeset
   278
"/     I dont want those warnings about stx features being non-portable ...
claus
parents: 24
diff changeset
   279
"/     However, you should (at least when new to the system) see them.
claus
parents: 24
diff changeset
   280
"/     Once you get bored about them, make the below unconditional.
claus
parents: 24
diff changeset
   281
"/     (you can also turn them off in the NewLaunchers settings menu ...)
claus
parents: 24
diff changeset
   282
"/
7
57c09d1b7f69 *** empty log message ***
claus
parents: 4
diff changeset
   283
OperatingSystem getLoginName = 'claus' ifTrue:[
12
d8d2f32ca7a2 *** empty log message ***
claus
parents: 10
diff changeset
   284
    Compiler warnSTXSpecials:false.
d8d2f32ca7a2 *** empty log message ***
claus
parents: 10
diff changeset
   285
    Compiler allowUnderscoreInIdentifier:true. 
16
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   286
    Compiler warnUnderscoreInIdentifier:false. 
7
57c09d1b7f69 *** empty log message ***
claus
parents: 4
diff changeset
   287
].
10
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   288
25
claus
parents: 24
diff changeset
   289
claus
parents: 24
diff changeset
   290
"/ this is a temporary kludge: specify the flags to be used
claus
parents: 24
diff changeset
   291
"/ when compiling via stc. Primitive compilation (from within the browser)
claus
parents: 24
diff changeset
   292
"/ is still experimental. So you better not care (yet)
claus
parents: 24
diff changeset
   293
"/ BTW: its only supported on UnixWare and SGI anyway 
claus
parents: 24
diff changeset
   294
"/      (and not in the free demo release).
claus
parents: 24
diff changeset
   295
"/
claus
parents: 24
diff changeset
   296
Compiler stcCompilation:#default.
10
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   297
OperatingSystem getOSType = 'irix' ifTrue:[
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   298
    Compiler stcCompilationFlags:'-I../../include +optinline -DGLX'.
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   299
] ifFalse:[
43d0db9ff204 *** empty log message ***
claus
parents: 8
diff changeset
   300
    Compiler stcCompilationFlags:'-I../../include -I../../librun/VGL/vogl/src +optinline -DVGL'.
25
claus
parents: 24
diff changeset
   301
].
7
57c09d1b7f69 *** empty log message ***
claus
parents: 4
diff changeset
   302
25
claus
parents: 24
diff changeset
   303
"/ experimental: try to always keep some bytes in the pocket
claus
parents: 24
diff changeset
   304
"/ this changes the memory policy, to start the background whenever
claus
parents: 24
diff changeset
   305
"/ freespace drops below 250k or 500k have been allocated since the last GC. 
claus
parents: 24
diff changeset
   306
"/ AND to allocate more memory, if (after the collect) less than 1Mb is free.
claus
parents: 24
diff changeset
   307
"/ Doing so makes the system behave better if lots of memory is required
claus
parents: 24
diff changeset
   308
"/ for short periods of time, since it prepares itself for that
claus
parents: 24
diff changeset
   309
"/ during idle time. (I often walk around in the fileBrowser, loading big
claus
parents: 24
diff changeset
   310
"/ files like XWorkstation.st or SystemBrowser.st ....)
claus
parents: 24
diff changeset
   311
"/
claus
parents: 24
diff changeset
   312
"/ If you find this setup useful, remove the if, and make the
claus
parents: 24
diff changeset
   313
"/ statements in the block unconditional.
claus
parents: 24
diff changeset
   314
"/
16
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   315
OperatingSystem getLoginName = 'claus' ifTrue:[
17
fde6fd32e9de *** empty log message ***
claus
parents: 16
diff changeset
   316
    ObjectMemory freeSpaceGCAmount:1000000. 
fde6fd32e9de *** empty log message ***
claus
parents: 16
diff changeset
   317
    ObjectMemory freeSpaceGCLimit:250000. 
25
claus
parents: 24
diff changeset
   318
    ObjectMemory incrementalGCLimit:500000. 
16
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   319
    ObjectMemory startBackgroundCollectorAt:5. 
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   320
    ObjectMemory startBackgroundFinalizationAt:5. 
25
claus
parents: 24
diff changeset
   321
].
claus
parents: 24
diff changeset
   322
claus
parents: 24
diff changeset
   323
"/ experimental: configure the memory manager to quickly increase
claus
parents: 24
diff changeset
   324
"/ its oldSpace, as long as it stays below 8Mb (i.e. do not enter
claus
parents: 24
diff changeset
   325
"/ a blocking mark&sweep or compress, but go straight ahead increasing
claus
parents: 24
diff changeset
   326
"/ the oldSpace). Above that, behave as usual, i.e. try a GC first,
claus
parents: 24
diff changeset
   327
"/ then increase the oldSpace size if that did not help.
claus
parents: 24
diff changeset
   328
"/ If you have a machine with lots of (real) memory, you may want to
claus
parents: 24
diff changeset
   329
"/ increase the number. The value below should be ok for 16-32Mb machines.
claus
parents: 24
diff changeset
   330
"/
claus
parents: 24
diff changeset
   331
OperatingSystem getLoginName = 'claus' ifTrue:[
claus
parents: 24
diff changeset
   332
    ObjectMemory fastMoreOldSpaceLimit:8*1024*1024.
claus
parents: 24
diff changeset
   333
    ObjectMemory fastMoreOldSpaceAllocation:true.
claus
parents: 24
diff changeset
   334
].
16
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   335
!
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   336
25
claus
parents: 24
diff changeset
   337
"/ another experimental (and a secret for now, since I dont want
claus
parents: 24
diff changeset
   338
"/ you to play with those ;-)
claus
parents: 24
diff changeset
   339
"/ For now, this is experimental. Once the best numbers
claus
parents: 24
diff changeset
   340
"/ have been found, I'll hardwire them and document it ...
claus
parents: 24
diff changeset
   341
8
d82829c0d867 *** empty log message ***
claus
parents: 7
diff changeset
   342
|a|
d82829c0d867 *** empty log message ***
claus
parents: 7
diff changeset
   343
ObjectMemory newSpaceSize > (500*1024) ifTrue:[
d82829c0d867 *** empty log message ***
claus
parents: 7
diff changeset
   344
    a := #(nil nil nil nil -16 -4 -2 -2 0 0 16 nil) copy.
d82829c0d867 *** empty log message ***
claus
parents: 7
diff changeset
   345
] ifFalse:[
17
fde6fd32e9de *** empty log message ***
claus
parents: 16
diff changeset
   346
"/         min max cpy /32 /16 /8 /4 /2 /4 /8 /16 /32 "
25
claus
parents: 24
diff changeset
   347
    "/
claus
parents: 24
diff changeset
   348
    "/ slow tenure - keeps objects longer in newSpace,
claus
parents: 24
diff changeset
   349
    "/  producing more scavenge overhead, but releasing IGC somewhat
claus
parents: 24
diff changeset
   350
    "/
17
fde6fd32e9de *** empty log message ***
claus
parents: 16
diff changeset
   351
"/  a := #(nil nil nil -100 -8 -4 -1  1 2  4  8   16 nil) copy.
fde6fd32e9de *** empty log message ***
claus
parents: 16
diff changeset
   352
"/  a := #(nil nil nil nil -16 -4  0  0  0 4 16 nil) copy.
25
claus
parents: 24
diff changeset
   353
17
fde6fd32e9de *** empty log message ***
claus
parents: 16
diff changeset
   354
    "fast tenure"
25
claus
parents: 24
diff changeset
   355
    "/
claus
parents: 24
diff changeset
   356
    "/ fast tenure - moves objects earlier into oldSpace,
claus
parents: 24
diff changeset
   357
    "/ releasing newSpace collector; however, the oldSpace IGC
claus
parents: 24
diff changeset
   358
    "/ may have more work to do.
claus
parents: 24
diff changeset
   359
    "/
16
db5d473df9f0 *** empty log message ***
claus
parents: 12
diff changeset
   360
    a := #(nil nil nil nil -20 -8 -3 -1 -1 1 16 nil) copy.
8
d82829c0d867 *** empty log message ***
claus
parents: 7
diff changeset
   361
].
d82829c0d867 *** empty log message ***
claus
parents: 7
diff changeset
   362
ObjectMemory tenureParameters:a.
25
claus
parents: 24
diff changeset
   363
claus
parents: 24
diff changeset
   364
claus
parents: 24
diff changeset
   365
"/ set the package back to some useful default for programming
claus
parents: 24
diff changeset
   366
"/ this is the package token assigned (by default) to all new methods/classes
claus
parents: 24
diff changeset
   367
"/ (so you can use a browser on package=#private to find all of your new
claus
parents: 24
diff changeset
   368
"/ stuff easily. (the conditional on Project being nonNil is for stripped down
claus
parents: 24
diff changeset
   369
"/ systems without a Project class)
claus
parents: 24
diff changeset
   370
claus
parents: 24
diff changeset
   371
Project notNil ifTrue:[
claus
parents: 24
diff changeset
   372
    Project setDefaultProject.
claus
parents: 24
diff changeset
   373
    Project current packageName:#'private'.
claus
parents: 24
diff changeset
   374
].
8
d82829c0d867 *** empty log message ***
claus
parents: 7
diff changeset
   375
!