s/stx/BenchmarkRunnerAdapterStX.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 22 May 2014 12:26:59 +0100
changeset 211 67b35d0a0ee3
parent 210 8f2d6f71958f
child 215 e77c83f18c83
permissions -rw-r--r--
Added options to disable JIT compilation. --disable-jit disabled both Smalltalk and Java JIT. --disable-jit-smalltalk and --disable-jit-java disables selectivelt JIT for the language. Note, that --disable-jit-smalltalk disables JIT for all languages compiled to Smalltalk bytecodes such as JavaScript or Ruby.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:calipel/s/stx' }"
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
     3
StandaloneStartup subclass:#BenchmarkRunnerAdapterStX
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:''
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
12
3a7ebd3da52f Class categories renamed from CalipeL/S to CalipeL-S...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
     7
	category:'CalipeL-S-Smalltalk/X'
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
    10
BenchmarkRunnerAdapterStX class instanceVariableNames:'debugging'
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    11
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    12
"
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    13
 The following class instance variables are inherited by this class:
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    14
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    15
	StandaloneStartup - MutexHandle
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    16
	Object - 
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    17
"
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    18
!
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    19
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    20
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    21
!BenchmarkRunnerAdapterStX class methodsFor:'initialization'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    22
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    23
initialize
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    24
    "Invoked at system start or when the class is dynamically loaded."
120
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    25
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    26
    "Install signl handlers"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    27
    self setupSignalHandlers.
30
e2b7fd4d1d24 Fix initialization order.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 28
diff changeset
    28
    "Make sure platform is initialized"
e2b7fd4d1d24 Fix initialization order.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 28
diff changeset
    29
    BenchmarkPlatformStX initialize.
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    30
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
    31
    "Modified: / 01-08-2013 / 18:42:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
209
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    32
!
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    33
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    34
setupForPerformance
209
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    35
    "Set's system for maximum performance"
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    36
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    37
    "Set stack size to 16MB"
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    38
    Processor activeProcess setMaximumStackSize: ((1024 * 1024 * 16) max: Process 
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    39
    defaultMaximumStackSize).
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    40
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    41
    "Setup for performance"
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    42
    JavaNativeMethod cacheNativeImplementation: true.
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    43
    ObjectMemory javaNativeCodeOptimization: true.
209
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    44
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    45
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    46
    "ObjectMemory newSpaceSize: ObjectMemory newSpaceSize * 5."
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    47
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    48
    "Created: / 22-05-2014 / 12:17:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    49
!
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    50
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    51
setupJITJava:aBoolean 
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    52
    ObjectMemory javaJustInTimeCompilation:aBoolean.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    53
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    54
    "Created: / 22-05-2014 / 12:17:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    55
!
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    56
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    57
setupJITSmalltalk:aBoolean 
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    58
    ObjectMemory justInTimeCompilation:aBoolean.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    59
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    60
    "Created: / 22-05-2014 / 12:17:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
120
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    61
! !
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    62
120
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    63
!BenchmarkRunnerAdapterStX class methodsFor:'debugging'!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    64
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    65
dumpProcess: aProcess
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    66
    Stderr cr; cr
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    67
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    68
    "Created: / 27-06-2013 / 23:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    69
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    70
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    71
dumpProcess: aProcess on: aStream
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    72
    | ctx |
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    73
    aStream cr; cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    74
    aStream nextPutAll: '== ['; nextPutAll: aProcess id printString; nextPutAll:'] '; nextPutAll: aProcess name; nextPutAll: ' =='; cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    75
    aStream cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    76
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    77
    aProcess == Processor activeProcess ifTrue:[ctx := thisContext] ifFalse:[ctx := aProcess suspendedContext].
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    78
    [ ctx notNil ] whileTrue:[
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    79
        aStream nextPutAll: '  '.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    80
        ctx fullPrintOn: aStream.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    81
        aStream cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    82
        ctx := ctx sender.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    83
    ].
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    84
    aStream cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    85
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    86
    "
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    87
        self dumpProcess: Processor activeProcess on: Transcript.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    88
    "
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    89
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    90
    "Created: / 28-06-2013 / 01:00:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    91
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    92
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    93
dumpProcesses
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    94
    self dumpProcessesOn: Stderr
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    95
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    96
    "
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    97
    self dumpProcessesOn: Transcript.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    98
    "
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    99
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   100
    "Created: / 27-06-2013 / 23:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   101
    "Modified (comment): / 28-06-2013 / 01:06:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   102
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   103
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   104
dumpProcessesOn: aStream
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   105
    Process allInstancesDo:[:process|
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   106
        process isDead ifFalse:[
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   107
            self dumpProcess: process on: aStream
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   108
        ]
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   109
    ]
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   110
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   111
    "Created: / 27-06-2013 / 23:42:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   112
! !
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   113
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   114
!BenchmarkRunnerAdapterStX class methodsFor:'defaults'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   115
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   116
allowDebugOption
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   117
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   118
    ^true
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   119
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   120
    "Created: / 21-07-2011 / 09:48:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   121
! !
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   122
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   123
!BenchmarkRunnerAdapterStX class methodsFor:'multiple applications support'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   124
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   125
applicationRegistryPath
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   126
    "the key under which this application stores its process ID in the registry
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   127
     as a collection of path-components.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   128
     i.e. if #('foo' 'bar' 'baz') is returned here, the current applications ID will be stored
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   129
     in HKEY_CURRENT_USER\Software\foo\bar\baz\CurrentID.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   130
     (would also be used as a relative path for a temporary lock file under unix).
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   131
     Used to detect if another instance of this application is already running."
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   132
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   133
    ^ #('jv' 'calipel' 's')
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   134
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   135
    "Modified: / 28-05-2013 / 13:02:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   136
!
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   137
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   138
applicationUUID
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   139
    "answer an application-specific unique uuid.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   140
     This is used as the name of some exclusive OS-resource, which is used to find out,
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   141
     if another instance of this application is already running.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   142
     Under win32, a mutex is used; under unix, an exclusive file in the tempDir could be used.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   143
     If redefined, please return a real UUID (i.e. UUID fromString:'.....') and not a string or
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   144
     similar possibly conflicting identifier.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   145
     You can paste a fresh worldwide unique id via the editor's more-misc-paste UUID menuFunction."
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   146
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   147
    ^ UUID fromString: 'a7f3d0c5-429c-4be8-b857-4ff6ba6b0b65'
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   148
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   149
    "Modified: / 28-05-2013 / 13:02:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   150
! !
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   151
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   152
!BenchmarkRunnerAdapterStX class methodsFor:'startup'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   153
120
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   154
handleSIGTERM
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   155
    self dumpProcesses.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   156
    self exit:127.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   157
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   158
    "Created: / 27-06-2013 / 23:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   159
    "Modified: / 13-07-2013 / 15:09:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   160
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   161
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   162
handleSIGUSR2
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   163
    self dumpProcesses
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   164
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   165
    "Created: / 27-06-2013 / 23:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   166
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   167
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   168
setupSignalHandlers
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   169
    "On UNIX, this sets up a custom signal handler on SIGUSR2 and SIGTERM that
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   170
     dumps stacks on all threads"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   171
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   172
    | sigusr2 sigterm |
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   173
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   174
    OperatingSystem isUNIXlike ifTrue:[
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   175
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   176
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   177
        sigterm := Signal new.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   178
        sigterm handlerBlock: [:ex | self handleSIGTERM].
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   179
        OperatingSystem operatingSystemSignal:OperatingSystem sigTERM install: sigterm.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   180
        OperatingSystem enableSignal: OperatingSystem sigTERM.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   181
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   182
        sigusr2 := Signal new.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   183
        sigusr2 handlerBlock: [:ex | self handleSIGUSR2].
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   184
        OperatingSystem operatingSystemSignal:OperatingSystem sigUSR2 install: sigusr2.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   185
        OperatingSystem enableSignal: OperatingSystem sigUSR2.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   186
    ].
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   187
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   188
    "
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   189
    OperatingSystem sendSignal: OperatingSystem sigUSR2 to: OperatingSystem getProcessId
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   190
    "
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   191
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   192
    "Created: / 27-06-2013 / 20:57:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   193
    "Modified: / 28-06-2013 / 01:11:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   194
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   195
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   196
setupToolsForDebug
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   197
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   198
    super setupToolsForDebug.
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   199
    debugging := Transcript isNil or:[Transcript isView not].
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   200
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   201
    "Created: / 06-11-2011 / 22:06:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   202
    "Modified: / 01-08-2013 / 18:42:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   203
!
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   204
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   205
usage
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   206
    "Print usage to stderr"
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   207
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   208
    Stderr  nextPutAll:  'usage: benchmark-runner.';
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   209
            nextPutAll: (OperatingSystem isMSWINDOWSlike ifTrue:['bat'] ifFalse:['sh']);
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   210
            nextPutAll: ' <options> suitespec1 [suitespec2 [suitespec3 [...]]]';
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   211
            cr; cr.
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   212
    Stderr nextPutLine: 'Smalltalk/X specific options:'.
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   213
    Stderr nextPutLine: '  --debug ................ run in debug mode (only for Smalltalk/X)'.
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   214
    Stderr nextPutLine: '  -p PACKAGE ............. load package PACKAGE before running tests'.
124
e5582f62aab5 Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   215
    Stderr nextPutLine: '  --gdb .................. run benchmark under gdb debugger. Start with'.
e5582f62aab5 Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   216
    Stderr nextPutLine: '                           (gdb) r -I -f "$DIR/benchmark-runner.st" ...'.
e5582f62aab5 Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   217
    Stderr nextPutLine: '  --cgdb ................. run benchmark under cgdb debugger. Start with'.
e5582f62aab5 Fixed command line argument handling and error reporting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   218
    Stderr nextPutLine: '                           (gdb) r -I -f "$DIR/benchmark-runner.st" ...'.
210
8f2d6f71958f Removed dependency on stx:libprofiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
   219
    Stderr nextPutLine: '  --callgrind ............ run benchmark under callgrind profiler. Requires'.
8f2d6f71958f Removed dependency on stx:libprofiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
   220
    Stderr nextPutLine: '                           stx:libprofiler package.'.
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   221
    Stderr nextPutLine: '  --disable-jit .......... disable JIT compilation for both, Smalltalk and'.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   222
    Stderr nextPutLine: '                           Java.'.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   223
    Stderr nextPutLine: '  --disable-jit-java ...., disable Java JIT only.'.    
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   224
    Stderr nextPutLine: '  --disable-jit-smalltalk  disable Smalltalk JIT only.'.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   225
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   226
    Stderr cr.
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   227
    BenchmarkRunner new options.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   228
    Smalltalk exit: 0.
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   229
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   230
    "Created: / 13-01-2012 / 11:48:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   231
    "Modified: / 22-05-2014 / 12:21:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   232
! !
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   233
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   234
!BenchmarkRunnerAdapterStX class methodsFor:'startup-to be redefined'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   235
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   236
main:argv0
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   237
    | argv i packages enableSmalltalkJIT enableJavaJIT |    
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   238
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   239
    enableSmalltalkJIT := enableJavaJIT := true.
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   240
    [
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   241
        packages := OrderedCollection new.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   242
        argv := argv0 asOrderedCollection.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   243
        i := 1.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   244
        [ i <= argv size ] whileTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   245
            | arg |
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   246
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   247
            arg := argv at: i.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   248
            arg = '-p' ifTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   249
                i == argv size ifTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   250
                    self error: '-p expects package name'.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   251
                ] ifFalse:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   252
                    packages add: (argv at: i + 1).
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   253
                    argv removeIndex: i; removeIndex: i.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   254
                    i := i - 1.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   255
                ]
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   256
            ].
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   257
            arg = '--disable-jit' ifTrue:[ 
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   258
                enableSmalltalkJIT := enableJavaJIT := false.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   259
            ].
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   260
            arg = '--disable-jit-java' ifTrue:[ 
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   261
                enableJavaJIT := false.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   262
            ]. 
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   263
            arg = '--disable-jit-smalltalk' ifTrue:[ 
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   264
                enableJavaJIT := false.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   265
            ]. 
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   266
            i := i + 1.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   267
        ].
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   268
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   269
        "/Load packages..."
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   270
        packages isEmpty ifTrue:[packages add: (BenchmarkInstance package , '/benchmarks')].
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   271
        packages do:[:each|
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   272
            (Smalltalk loadPackage: each) ifFalse:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   273
                self error: 'Failed to load package ''', each ,''''.
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   274
            ]
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   275
        ].
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   276
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   277
        self setupForPerformance.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   278
        self setupJITSmalltalk: (enableSmalltalkJIT).  
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   279
        self setupJITJava: (enableJavaJIT).
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   280
        BenchmarkRunner new main: argv
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   281
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   282
    ] on: Error do:[:ex|
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   283
        debugging ifTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   284
            Display isNil ifTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   285
                Smalltalk openDisplay.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   286
            ]. 
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   287
            ex pass.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   288
        ] ifFalse:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   289
            Stderr 
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   290
                nextPutAll: 'ERROR: ';
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   291
                nextPutAll: ex class printString;
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   292
                nextPutAll: ': ';
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   293
                nextPutAll: ex description;
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   294
                cr.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   295
            Smalltalk exit: 1.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   296
        ].
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   297
    ].
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   298
    Smalltalk exit: 0.
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   299
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   300
    "Created: / 06-06-2013 / 10:07:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   301
    "Modified: / 22-05-2014 / 12:19:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   302
! !
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   304
!BenchmarkRunnerAdapterStX class methodsFor:'documentation'!
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
version_HG
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
    ^ '$Changeset: <not expanded> $'
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
! !
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   311
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   312
BenchmarkRunnerAdapterStX initialize!