s/stx/BenchmarkRunnerAdapterStX.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 18 Mar 2016 22:41:49 +0000
changeset 312 c9a8fa71d8fc
parent 302 30fc156ff773
permissions -rw-r--r--
Web: Fixed filtering by tags in "Results" page "Results" page not allow for filtering by tags. * If both, configuration and tags are specified, only reports for specified configurations AND with at least one of the specified tags are shown. * If only tags are specified, then all reports on all configurations having at keast one of specified tags are shown. Kudos to Jan Kurs for forcing me to fix this :-)
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
285
0cf54ee76de5 Normalized Windows OS identification string with Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 265
diff changeset
     3
"{ NameSpace: Smalltalk }"
0cf54ee76de5 Normalized Windows OS identification string with Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 265
diff changeset
     4
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
     5
StandaloneStartup subclass:#BenchmarkRunnerAdapterStX
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
12
3a7ebd3da52f Class categories renamed from CalipeL/S to CalipeL-S...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
     9
	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
    10
!
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
    12
BenchmarkRunnerAdapterStX class instanceVariableNames:'debugging'
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    13
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
 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
    16
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    17
	StandaloneStartup - MutexHandle
285
0cf54ee76de5 Normalized Windows OS identification string with Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 265
diff changeset
    18
	Object - 
2
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
!
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    21
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    22
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
    23
!BenchmarkRunnerAdapterStX class methodsFor:'initialization'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    24
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    25
initialize
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    26
    "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
    27
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    28
    "Install signl handlers"
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    29
    self setupSignalHandlers.
30
e2b7fd4d1d24 Fix initialization order.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 28
diff changeset
    30
    "Make sure platform is initialized"
e2b7fd4d1d24 Fix initialization order.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 28
diff changeset
    31
    BenchmarkPlatformStX initialize.
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    32
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
    33
    "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
    34
!
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    35
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    36
setupForPerformance
209
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    37
    "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
    38
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    39
    "Set stack size to 16MB"
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
    40
    Processor activeProcess setMaximumStackSize: ((1024 * 1024 * 16) max: Process
209
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    41
    defaultMaximumStackSize).
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    42
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    43
    "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
    44
    JavaNativeMethod cacheNativeImplementation: true.
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    45
    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
    46
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    47
4392e490bd70 Fix: setup for performance only when running using standalone runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 147
diff changeset
    48
    "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
    49
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    50
    "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
    51
!
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    52
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
    53
setupJITJava:aBoolean
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    54
    ObjectMemory javaJustInTimeCompilation:aBoolean.
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
    "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
    57
!
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    58
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
    59
setupJITSmalltalk:aBoolean
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    60
    ObjectMemory justInTimeCompilation:aBoolean.
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    61
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
    62
    "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
    63
! !
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    64
120
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    65
!BenchmarkRunnerAdapterStX class methodsFor:'debugging'!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    66
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    67
dumpProcess: aProcess
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    68
    Stderr cr; cr
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
    "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
    71
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    72
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    73
dumpProcess: aProcess on: aStream
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    74
    | ctx |
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    75
    aStream cr; cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    76
    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
    77
    aStream cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    78
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    79
    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
    80
    [ ctx notNil ] whileTrue:[
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    81
        aStream nextPutAll: '  '.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    82
        ctx fullPrintOn: aStream.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    83
        aStream cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    84
        ctx := ctx sender.
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
    aStream cr.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    87
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
        self dumpProcess: Processor activeProcess on: Transcript.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    90
    "
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
    "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
    93
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    94
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    95
dumpProcesses
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    96
    self dumpProcessesOn: Stderr
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
    97
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
    self dumpProcessesOn: Transcript.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   100
    "
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   101
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   102
    "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
   103
    "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
   104
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   105
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   106
dumpProcessesOn: aStream
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   107
    Process allInstancesDo:[:process|
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   108
        process isDead ifFalse:[
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   109
            self dumpProcess: process on: aStream
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
    ]
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   112
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   113
    "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
   114
! !
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   115
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   116
!BenchmarkRunnerAdapterStX class methodsFor:'defaults'!
2
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
allowDebugOption
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
    ^true
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
    "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
   123
! !
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   124
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   125
!BenchmarkRunnerAdapterStX class methodsFor:'multiple applications support'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   126
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   127
applicationRegistryPath
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   128
    "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
   129
     as a collection of path-components.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   130
     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
   131
     in HKEY_CURRENT_USER\Software\foo\bar\baz\CurrentID.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   132
     (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
   133
     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
   134
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   135
    ^ #('jv' 'calipel' 's')
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
    "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
   138
!
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   139
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   140
applicationUUID
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   141
    "answer an application-specific unique uuid.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   142
     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
   143
     if another instance of this application is already running.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   144
     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
   145
     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
   146
     similar possibly conflicting identifier.
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   147
     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
   148
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   149
    ^ UUID fromString: 'a7f3d0c5-429c-4be8-b857-4ff6ba6b0b65'
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
    "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
   152
! !
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   153
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   154
!BenchmarkRunnerAdapterStX class methodsFor:'startup'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   155
120
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   156
handleSIGTERM
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   157
    self dumpProcesses.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   158
    self exit:127.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   159
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   160
    "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
   161
    "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
   162
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   163
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   164
handleSIGUSR2
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   165
    self dumpProcesses
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
    "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
   168
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   169
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   170
setupSignalHandlers
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   171
    "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
   172
     dumps stacks on all threads"
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
    | sigusr2 sigterm |
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
    OperatingSystem isUNIXlike ifTrue:[
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   177
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   178
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   179
        sigterm := Signal new.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   180
        sigterm handlerBlock: [:ex | self handleSIGTERM].
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   181
        OperatingSystem operatingSystemSignal:OperatingSystem sigTERM install: sigterm.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   182
        OperatingSystem enableSignal: OperatingSystem sigTERM.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   183
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   184
        sigusr2 := Signal new.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   185
        sigusr2 handlerBlock: [:ex | self handleSIGUSR2].
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   186
        OperatingSystem operatingSystemSignal:OperatingSystem sigUSR2 install: sigusr2.
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   187
        OperatingSystem enableSignal: OperatingSystem sigUSR2.
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
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
    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
   192
    "
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   193
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   194
    "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
   195
    "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
   196
!
5d283d82c28c Added signal handlers for Smalltalk/X.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 30
diff changeset
   197
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   198
setupToolsForDebug
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   199
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   200
    super setupToolsForDebug.
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   201
    debugging := Transcript isNil or:[Transcript isView not].
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   202
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   203
    "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
   204
    "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
   205
!
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   206
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   207
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
   208
    "Print usage to stderr"
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   209
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   210
    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
   211
            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
   212
            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
   213
            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
   214
    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
   215
    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
   216
    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
   217
    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
   218
    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
   219
    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
   220
    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
   221
    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
   222
    Stderr nextPutLine: '                           stx:libprofiler package.'.
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   223
    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
   224
    Stderr nextPutLine: '                           Java.'.
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   225
    Stderr nextPutLine: '  --disable-jit-java ...., disable Java JIT only.'.
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   226
    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
   227
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   228
    Stderr cr.
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   229
    BenchmarkRunner new options.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   230
    Smalltalk exit: 0.
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   231
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   232
    "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
   233
    "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
   234
! !
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
!BenchmarkRunnerAdapterStX class methodsFor:'startup-to be redefined'!
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   237
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   238
main:argv0
302
30fc156ff773 Benchmark runner: do not abort benchmark execution when one benchmark fail to execute
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   239
    | runner argv i packages enableSmalltalkJIT enableJavaJIT status |
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   240
215
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   241
    runner := BenchmarkRunner new.
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   242
    enableSmalltalkJIT := enableJavaJIT := true.
302
30fc156ff773 Benchmark runner: do not abort benchmark execution when one benchmark fail to execute
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   243
    status := BenchmarkRunner statusSuccess.
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   244
    [
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   245
        packages := OrderedCollection new.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   246
        argv := argv0 asOrderedCollection.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   247
        i := 1.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   248
        [ i <= argv size ] whileTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   249
            | arg |
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   250
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   251
            arg := argv at: i.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   252
            arg = '-p' ifTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   253
                i == argv size ifTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   254
                    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
   255
                ] ifFalse:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   256
                    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
   257
                    argv removeIndex: i; removeIndex: i.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   258
                    i := i - 1.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   259
                ]
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   260
            ].
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   261
            arg = '--disable-jit' ifTrue:[
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   262
                enableSmalltalkJIT := enableJavaJIT := false.
215
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   263
                argv removeIndex: i.
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   264
                i := i - 1.
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   265
            ].
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   266
            arg = '--disable-jit-java' ifTrue:[
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   267
                enableJavaJIT := false.
215
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   268
                argv removeIndex: i.
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   269
                i := i - 1.
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   270
            ].
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   271
            arg = '--disable-jit-smalltalk' ifTrue:[
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   272
                enableJavaJIT := false.
215
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   273
                argv removeIndex: i.
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   274
                i := i - 1.
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   275
            ].
223
72287b3d9937 Removed --script paramter (alias for --arguments)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   276
            (arg = '--arguments') ifTrue:[
215
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   277
                | arguments argumentsF parsed |
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   278
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   279
                i > argv size ifTrue:[
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   280
                    self error: arg, ' requires a file parameter.'
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   281
                ].
215
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   282
                argumentsF := (arguments := (argv at: i + 1)) asFilename.
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   283
                argumentsF exists ifFalse:[
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   284
                    self error:'no such file: ', arguments.
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   285
                ].
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   286
                parsed := OrderedCollection new.
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   287
                argumentsF readingFileDo:[:f | runner parseArguments: f into: parsed ].
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   288
                argv removeIndex: i; removeIndex: i.
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   289
                i := i - 1.
e77c83f18c83 Fix in BenchmarkRunnerAdapterStX: the adapter itself must expand --script/--arguments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 211
diff changeset
   290
                argv addAll: parsed beforeIndex: i + 1.
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   291
            ].
265
849a61efd824 Fixes typo introduced in 5b9e93c1135d
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 261
diff changeset
   292
            (arg startsWith: '-Xdump-compile-map=') ifTrue:[
302
30fc156ff773 Benchmark runner: do not abort benchmark execution when one benchmark fail to execute
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   293
                "Ignore here - this is for VMs with no -Xdump-compile-map support"
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   294
                argv removeIndex: i.
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   295
                i := i - 1.
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   296
            ].
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   297
            i := i + 1.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   298
        ].
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   299
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   300
        "/Load packages..."
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   301
        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
   302
        packages do:[:each|
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   303
            (Smalltalk loadPackage: each) ifFalse:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   304
                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
   305
            ]
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   306
        ].
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   307
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   308
        self setupForPerformance.
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   309
        self setupJITSmalltalk: (enableSmalltalkJIT).
211
67b35d0a0ee3 Added options to disable JIT compilation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   310
        self setupJITJava: (enableJavaJIT).
302
30fc156ff773 Benchmark runner: do not abort benchmark execution when one benchmark fail to execute
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   311
        status := runner main: argv
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   312
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   313
    ] on: Error do:[:ex|
302
30fc156ff773 Benchmark runner: do not abort benchmark execution when one benchmark fail to execute
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   314
        status := BenchmarkRunner statusError.
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   315
        debugging ifTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   316
            Display isNil ifTrue:[
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   317
                Smalltalk openDisplay.
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   318
            ].
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   319
            ex pass.
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   320
        ] ifFalse:[
261
5b9e93c1135d Added support for -Xdump-compile-map VM option.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 223
diff changeset
   321
            Stderr
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   322
                nextPutAll: 'ERROR: ';
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   323
                nextPutAll: ex class printString;
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   324
                nextPutAll: ': ';
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   325
                nextPutAll: ex description;
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   326
                cr.
302
30fc156ff773 Benchmark runner: do not abort benchmark execution when one benchmark fail to execute
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   327
            Smalltalk exit: status.
147
91e4feb2c8b5 Moved error handling to command line adapter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 124
diff changeset
   328
        ].
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   329
    ].
302
30fc156ff773 Benchmark runner: do not abort benchmark execution when one benchmark fail to execute
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   330
    Smalltalk exit: status.
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   331
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   332
    "Created: / 06-06-2013 / 10:07:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
302
30fc156ff773 Benchmark runner: do not abort benchmark execution when one benchmark fail to execute
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   333
    "Modified: / 22-10-2015 / 14:58:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   334
! !
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   336
!BenchmarkRunnerAdapterStX class methodsFor:'documentation'!
1
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
version_HG
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
    ^ '$Changeset: <not expanded> $'
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
! !
1ab204c5442a BenchmarkInstance refactored, added initial version of text report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
2
e48eb0a3f5a3 Added benchmark runner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   343
9
e0be46520a59 Split BenchmarkRunner in common and platform-specific code. Addec platform object
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7
diff changeset
   344
BenchmarkRunnerAdapterStX initialize!