Skip to content

Commit 8370d82

Browse files
authored
Update core-lib, CI setup, and rebench.conf (#64)
2 parents fdc0430 + 8351a05 commit 8370d82

File tree

4 files changed

+97
-95
lines changed

4 files changed

+97
-95
lines changed

.github/workflows/ci.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on: [push, pull_request]
44

55
jobs:
66
test_som:
7-
runs-on: ubuntu-20.04 # ubuntu-latest
7+
runs-on: ubuntu-24.04 # ubuntu-latest
88
strategy:
99
fail-fast: false
1010
matrix:
@@ -20,8 +20,8 @@ jobs:
2020
- name: Basics PyPy 2.7
2121
python-version: pypy2.7
2222
id: basic
23-
- name: Basics Python 3.11
24-
python-version: 3.11
23+
- name: Basics Python 3.13
24+
python-version: 3.13
2525
id: basic
2626

2727
steps:
@@ -38,7 +38,7 @@ jobs:
3838
- name: Download PyPy Sources
3939
if: matrix.id != 'basic'
4040
run: |
41-
export PYPYVER=v7.3.16
41+
export PYPYVER=v7.3.18
4242
curl https://downloads.python.org/pypy/pypy2.7-${PYPYVER}-src.tar.bz2 -o pypy.tar.bz2
4343
tar -xjf pypy.tar.bz2
4444
mv pypy2.7-${PYPYVER}-src .pypy

.gitlab-ci.yml

+8-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ stages:
55

66
variables:
77
PYTHONUNBUFFERED: "true"
8-
PYPY_RELEASE: "7.3.16"
8+
PYPY_RELEASE: "7.3.18"
99

1010
before_script:
1111
- git submodule update --init
@@ -23,6 +23,7 @@ build:aarch64-test-and-rebench:
2323

2424
script:
2525
- export PATH=/opt/local/bin:/opt/local/sbin:/Users/gitlab-runner/Library/Python/3.12/bin:${PATH}:${PYPY_BIN_DIR}
26+
- (cd Examples/Benchmarks/TestSuite && ./duplicate-tests.sh)
2627

2728
# BC JIT Compiled Version
2829
- SOM_INTERP=BC $RPYTHON --batch -Ojit src/main_rpython.py
@@ -44,14 +45,13 @@ build:aarch64-test-and-rebench:
4445
- ./som-ast-interp -cp Smalltalk TestSuite/TestHarness.som
4546
- ./som-ast-interp -cp Smalltalk:TestSuite Examples/Benchmarks/TestSuite/TestTestSuite.som
4647

47-
- (cd Examples/Benchmarks/TestSuite && ./duplicate-tests.sh)
4848
- rebench --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf
4949

5050
build-and-test-interpreters:
5151
stage: build-test
5252
tags: [yuria]
5353
script:
54-
- export PATH=$PATH:$PYPY_BIN_DIR
54+
- export PATH=$PYPY_BIN_DIR:$PATH
5555
- export SOM_INTERP=BC
5656
- (cd Examples/Benchmarks/TestSuite && ./duplicate-tests.sh)
5757

@@ -90,7 +90,7 @@ build-and-test-jit-bc:
9090
stage: build-test
9191
tags: [yuria2]
9292
script:
93-
- export PATH=$PATH:$PYPY_BIN_DIR
93+
- export PATH=$PYPY_BIN_DIR:$PATH
9494
- export SOM_INTERP=BC
9595

9696
# JIT Compiled Version
@@ -112,7 +112,7 @@ build-and-test-jit-ast:
112112
stage: build-test
113113
tags: [yuria3]
114114
script:
115-
- export PATH=$PATH:$PYPY_BIN_DIR
115+
- export PATH=$PYPY_BIN_DIR:$PATH
116116
- export SOM_INTERP=AST
117117

118118
# JIT Compiled Version
@@ -147,7 +147,7 @@ benchmark-y1:
147147
- lz4 -d som-bc-interp.lz4 som-bc-interp
148148

149149
# Run Benchmarks
150-
- rebench --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf m:yuria
150+
- rebench --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf t:yuria
151151

152152
benchmark-y2:
153153
stage: benchmark
@@ -166,7 +166,7 @@ benchmark-y2:
166166
- lz4 -d som-bc-interp.lz4 som-bc-interp
167167

168168
# Run Benchmarks
169-
- rebench --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf m:yuria2
169+
- rebench --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf t:yuria2
170170

171171
benchmark-y3:
172172
stage: benchmark
@@ -185,7 +185,7 @@ benchmark-y3:
185185
- lz4 -d som-bc-interp.lz4 som-bc-interp
186186

187187
# Run Benchmarks
188-
- rebench --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf m:yuria3
188+
- rebench --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf t:yuria3
189189

190190
report-completion:
191191
stage: benchmark-completion

rebench.conf

+84-82
Original file line numberDiff line numberDiff line change
@@ -23,137 +23,139 @@ benchmark_suites:
2323
iterations: 1
2424
invocations: 5
2525
benchmarks:
26-
- Richards: {extra_args: 1, machines: [yuria ]}
27-
- DeltaBlue: {extra_args: 100, machines: [yuria2]}
28-
- NBody: {extra_args: 1000, machines: [yuria3]}
29-
- Json: {extra_args: 1, machines: [yuria ]}
30-
- GraphSearch: {extra_args: 7, machines: [yuria2]}
31-
- PageRank: {extra_args: 75, machines: [yuria3]}
26+
- Richards: {extra_args: 1, tags: [yuria ]}
27+
- DeltaBlue: {extra_args: 100, tags: [yuria2]}
28+
- NBody: {extra_args: 1000, tags: [yuria3]}
29+
- Json: {extra_args: 1, tags: [yuria ]}
30+
- GraphSearch: {extra_args: 7, tags: [yuria2]}
31+
- PageRank: {extra_args: 75, tags: [yuria3]}
3232

3333
macro-steady:
3434
gauge_adapter: RebenchLog
3535
command: *MACRO_CMD
3636
benchmarks:
37-
- Richards: {extra_args: 40, warmup: 30, iterations: 130, machines: [yuria ]}
38-
- DeltaBlue: {extra_args: 10000, warmup: 20, iterations: 120, machines: [yuria2]}
39-
- NBody: {extra_args: 200000, warmup: 20, iterations: 120, machines: [yuria3]}
40-
- Json: {extra_args: 80, warmup: 20, iterations: 120, machines: [yuria ]}
41-
- GraphSearch: {extra_args: 25, warmup: 100, iterations: 250, machines: [yuria2]}
42-
- PageRank: {extra_args: 1000, warmup: 20, iterations: 120, machines: [yuria3]}
37+
- Richards: {extra_args: 40, warmup: 30, iterations: 130, tags: [yuria ]}
38+
- DeltaBlue: {extra_args: 10000, warmup: 20, iterations: 120, tags: [yuria2]}
39+
- NBody: {extra_args: 200000, warmup: 20, iterations: 120, tags: [yuria3]}
40+
- Json: {extra_args: 80, warmup: 20, iterations: 120, tags: [yuria ]}
41+
- GraphSearch: {extra_args: 25, warmup: 100, iterations: 250, tags: [yuria2]}
42+
- PageRank: {extra_args: 1000, warmup: 20, iterations: 120, tags: [yuria3]}
4343

4444
awfy-startup:
4545
gauge_adapter: RebenchLog
4646
command: &AWFY_CMD "-cp Examples/AreWeFastYet/CD:Examples/AreWeFastYet/Havlak:Examples/AreWeFastYet/Core:Smalltalk Examples/AreWeFastYet/Harness.som --gc %(benchmark)s %(iterations)s "
4747
iterations: 1
4848
invocations: 5
4949
benchmarks:
50-
- CD: {extra_args: 10, machines: [yuria2]}
51-
- Havlak: {extra_args: 15, machines: [yuria3]}
50+
- CD: {extra_args: 10, tags: [yuria2]}
51+
- Havlak: {extra_args: 15, tags: [yuria3]}
5252

5353
awfy-steady:
5454
gauge_adapter: RebenchLog
5555
command: *AWFY_CMD
5656
benchmarks:
57-
- CD: {extra_args: 100, warmup: 30, iterations: 130, machines: [yuria2]}
58-
- Havlak: {extra_args: 150, warmup: 30, iterations: 130, machines: [yuria3]}
57+
- CD: {extra_args: 100, warmup: 30, iterations: 130, tags: [yuria2]}
58+
- Havlak: {extra_args: 150, warmup: 30, iterations: 130, tags: [yuria3]}
5959

6060
micro-startup:
6161
gauge_adapter: RebenchLog
6262
command: &MICRO_CMD "-cp Smalltalk:Examples/Benchmarks/LanguageFeatures:Examples/Benchmarks/TestSuite Examples/Benchmarks/BenchmarkHarness.som --gc %(benchmark)s %(iterations)s "
6363
iterations: 1
6464
invocations: 5
6565
benchmarks:
66-
- Fannkuch: {extra_args: 7, machines: [yuria ]}
67-
- Fibonacci: {extra_args: 10, machines: [yuria2]}
68-
- Dispatch: {extra_args: 10, machines: [yuria3]}
69-
- Bounce: {extra_args: 10, machines: [yuria ]}
70-
- Loop: {extra_args: 100, machines: [yuria2]}
71-
- Permute: {extra_args: 10, machines: [yuria3]}
72-
- Queens: {extra_args: 10, machines: [yuria ]}
73-
- List: {extra_args: 2, machines: [yuria2]}
74-
- Recurse: {extra_args: 12, machines: [yuria3]}
75-
- Storage: {extra_args: 8, machines: [yuria ]}
76-
- Sieve: {extra_args: 20, machines: [yuria2]}
77-
- BubbleSort: {extra_args: 15, machines: [yuria3]}
78-
- QuickSort: {extra_args: 15, machines: [yuria ]}
79-
- Sum: {extra_args: 40, machines: [yuria2]}
80-
- Towers: {extra_args: 2, machines: [yuria3]}
81-
- TreeSort: {extra_args: 7, machines: [yuria ]}
82-
- IntegerLoop: {extra_args: 7, machines: [yuria2]}
83-
- FieldLoop: {extra_args: 1, machines: [yuria3]}
84-
- WhileLoop: {extra_args: 30, machines: [yuria ]}
85-
- Mandelbrot: {extra_args: 50, machines: [yuria2]}
86-
87-
- Test: {invocations: 10, machines: [yuria ]}
88-
- TestGC: {invocations: 10, extra_args: 10, machines: [yuria ]}
66+
- Fannkuch: {extra_args: 7, tags: [yuria ]}
67+
- Fibonacci: {extra_args: 10, tags: [yuria2]}
68+
- Dispatch: {extra_args: 10, tags: [yuria3]}
69+
- Bounce: {extra_args: 10, tags: [yuria ]}
70+
- Loop: {extra_args: 100, tags: [yuria2]}
71+
- Permute: {extra_args: 10, tags: [yuria3]}
72+
- Queens: {extra_args: 10, tags: [yuria ]}
73+
- List: {extra_args: 2, tags: [yuria2]}
74+
- Recurse: {extra_args: 12, tags: [yuria3]}
75+
- Storage: {extra_args: 8, tags: [yuria ]}
76+
- Sieve: {extra_args: 20, tags: [yuria2]}
77+
- BubbleSort: {extra_args: 15, tags: [yuria3]}
78+
- QuickSort: {extra_args: 15, tags: [yuria ]}
79+
- Sum: {extra_args: 40, tags: [yuria2]}
80+
- Towers: {extra_args: 2, tags: [yuria3]}
81+
- TreeSort: {extra_args: 7, tags: [yuria ]}
82+
- IntegerLoop: {extra_args: 7, tags: [yuria2]}
83+
- FieldLoop: {extra_args: 1, tags: [yuria3]}
84+
- WhileLoop: {extra_args: 30, tags: [yuria ]}
85+
- Mandelbrot: {extra_args: 50, tags: [yuria2]}
86+
- IfNil: {extra_args: 80, tags: [yuria2]}
87+
88+
- Test: {invocations: 10, tags: [yuria ]}
89+
- TestGC: {invocations: 10, extra_args: 10, tags: [yuria ]}
8990

9091
micro-steady:
9192
gauge_adapter: RebenchLog
9293
command: *MICRO_CMD
9394
benchmarks:
94-
- Fannkuch: {extra_args: 9, warmup: 5, iterations: 55, machines: [yuria ]}
95-
- Fibonacci: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria ]}
96-
- Dispatch: {extra_args: 10000, warmup: 5, iterations: 55, machines: [yuria3]}
97-
- Bounce: {extra_args: 4000, warmup: 10, iterations: 60, machines: [yuria ]}
98-
- Loop: {extra_args: 10000, warmup: 5, iterations: 55, machines: [yuria2]}
99-
- Permute: {extra_args: 1500, warmup: 5, iterations: 55, machines: [yuria3]}
100-
- Queens: {extra_args: 1000, warmup: 5, iterations: 55, machines: [yuria ]}
101-
- List: {extra_args: 1000, warmup: 15, iterations: 65, machines: [yuria ]}
102-
- Recurse: {extra_args: 2000, warmup: 15, iterations: 65, machines: [yuria ]}
103-
- Storage: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria ]}
104-
- Sieve: {extra_args: 2500, warmup: 10, iterations: 60, machines: [yuria2]}
105-
- BubbleSort: {extra_args: 3000, warmup: 5, iterations: 55, machines: [yuria3]}
106-
- QuickSort: {extra_args: 2000, warmup: 5, iterations: 55, machines: [yuria ]}
107-
- Sum: {extra_args: 10000, warmup: 5, iterations: 55, machines: [yuria2]}
108-
- Towers: {extra_args: 1000, warmup: 5, iterations: 55, machines: [yuria3]}
109-
- TreeSort: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria ]}
110-
- IntegerLoop: {extra_args: 8000, warmup: 5, iterations: 55, machines: [yuria2]}
111-
- FieldLoop: {extra_args: 900, warmup: 5, iterations: 55, machines: [yuria3]}
112-
- WhileLoop: {extra_args: 9000, warmup: 5, iterations: 55, machines: [yuria2]}
113-
- Mandelbrot: {extra_args: 1000, warmup: 10, iterations: 110, machines: [yuria3]}
95+
- Fannkuch: {extra_args: 9, warmup: 5, iterations: 55, tags: [yuria ]}
96+
- Fibonacci: {extra_args: 1000, warmup: 10, iterations: 60, tags: [yuria ]}
97+
- Dispatch: {extra_args: 10000, warmup: 5, iterations: 55, tags: [yuria3]}
98+
- Bounce: {extra_args: 4000, warmup: 10, iterations: 60, tags: [yuria ]}
99+
- Loop: {extra_args: 10000, warmup: 5, iterations: 55, tags: [yuria2]}
100+
- Permute: {extra_args: 1500, warmup: 5, iterations: 55, tags: [yuria3]}
101+
- Queens: {extra_args: 1000, warmup: 5, iterations: 55, tags: [yuria ]}
102+
- List: {extra_args: 1000, warmup: 15, iterations: 65, tags: [yuria ]}
103+
- Recurse: {extra_args: 2000, warmup: 15, iterations: 65, tags: [yuria ]}
104+
- Storage: {extra_args: 1000, warmup: 10, iterations: 60, tags: [yuria ]}
105+
- Sieve: {extra_args: 2500, warmup: 10, iterations: 60, tags: [yuria2]}
106+
- BubbleSort: {extra_args: 3000, warmup: 5, iterations: 55, tags: [yuria3]}
107+
- QuickSort: {extra_args: 2000, warmup: 5, iterations: 55, tags: [yuria ]}
108+
- Sum: {extra_args: 10000, warmup: 5, iterations: 55, tags: [yuria2]}
109+
- Towers: {extra_args: 1000, warmup: 5, iterations: 55, tags: [yuria3]}
110+
- TreeSort: {extra_args: 1000, warmup: 10, iterations: 60, tags: [yuria ]}
111+
- IntegerLoop: {extra_args: 8000, warmup: 5, iterations: 55, tags: [yuria2]}
112+
- FieldLoop: {extra_args: 900, warmup: 5, iterations: 55, tags: [yuria3]}
113+
- WhileLoop: {extra_args: 9000, warmup: 5, iterations: 55, tags: [yuria2]}
114+
- Mandelbrot: {extra_args: 1000, warmup: 10, iterations: 110, tags: [yuria3]}
115+
- IfNil: {extra_args: 5000, warmup: 10, iterations: 110, tags: [yuria3]}
114116

115117
micro-somsom:
116118
gauge_adapter: RebenchLog
117119
command: "-cp Smalltalk:Examples/Benchmarks/LanguageFeatures Examples/Benchmarks/BenchmarkHarness.som --gc %(benchmark)s %(iterations)s "
118120
iterations: 1
119121
benchmarks:
120-
- Loop: {extra_args: 1, machines: [yuria3]}
121-
- Queens: {extra_args: 1, machines: [yuria ]}
122-
- List: {extra_args: 1, machines: [yuria2]}
123-
- Recurse: {extra_args: 1, machines: [yuria3]}
124-
- Mandelbrot: {extra_args: 3, machines: [yuria ]}
122+
- Loop: {extra_args: 1, tags: [yuria3]}
123+
- Queens: {extra_args: 1, tags: [yuria ]}
124+
- List: {extra_args: 1, tags: [yuria2]}
125+
- Recurse: {extra_args: 1, tags: [yuria3]}
126+
- Mandelbrot: {extra_args: 3, tags: [yuria ]}
125127

126128
som-parse:
127129
gauge_adapter: RebenchLog
128130
command: "-cp Smalltalk:Examples:Examples/Benchmarks/DeltaBlue:Examples/Benchmarks/GraphSearch:Examples/Benchmarks/Json:Examples/Benchmarks/NBody:TestSuite:core-lib/SomSom/tests:core-lib/SomSom/src/vmobjects:core-lib/SomSom/src/primitives:core-lib/SomSom/src/compiler Examples/Benchmarks/BenchmarkHarness.som --gc %(benchmark)s %(iterations)s "
129131
iterations: 1!
130132
invocations: 10
131133
benchmarks:
132-
- SomParse: {extra_args: 1, machines: [yuria2]}
133-
- SomInit: {extra_args: 10000, machines: [yuria2]}
134+
- SomParse: {extra_args: 1, tags: [yuria2]}
135+
- SomInit: {extra_args: 10000, tags: [yuria2]}
134136

135137
interpreter:
136138
description: Basic interpreter benchmarks for comparing performance of most basic concepts.
137139
gauge_adapter: RebenchLog
138140
invocations: 5
139141
command: "-cp Smalltalk:Examples/Benchmarks/Interpreter Examples/Benchmarks/BenchmarkHarness.som %(benchmark)s %(iterations)s 1"
140142
benchmarks:
141-
- ArgRead: {machines: [yuria ]}
142-
- ArrayReadConst: {machines: [yuria ]}
143-
- ArrayWriteConstConst: {machines: [yuria ]}
144-
- BlockSend0ConstReturn: {machines: [yuria ]}
145-
- Const: {machines: [yuria ]}
146-
- FieldConstWrite: {machines: [yuria ]}
147-
- FieldRead: {machines: [yuria ]}
148-
- FieldReadIncWrite: {machines: [yuria ]}
149-
- FieldReadWrite: {machines: [yuria ]}
150-
- GlobalRead: {machines: [yuria ]}
151-
- LocalConstWrite: {machines: [yuria ]}
152-
- LocalRead: {machines: [yuria ]}
153-
- LocalReadIncWrite: {machines: [yuria ]}
154-
- LocalReadWrite: {machines: [yuria ]}
155-
- SelfSend0: {machines: [yuria ]}
156-
- SelfSend0BlockConstNonLocalReturn: {machines: [yuria ]}
143+
- ArgRead: {tags: [yuria ]}
144+
- ArrayReadConst: {tags: [yuria ]}
145+
- ArrayWriteConstConst: {tags: [yuria ]}
146+
- BlockSend0ConstReturn: {tags: [yuria ]}
147+
- Const: {tags: [yuria ]}
148+
- FieldConstWrite: {tags: [yuria ]}
149+
- FieldRead: {tags: [yuria ]}
150+
- FieldReadIncWrite: {tags: [yuria ]}
151+
- FieldReadWrite: {tags: [yuria ]}
152+
- GlobalRead: {tags: [yuria ]}
153+
- LocalConstWrite: {tags: [yuria ]}
154+
- LocalRead: {tags: [yuria ]}
155+
- LocalReadIncWrite: {tags: [yuria ]}
156+
- LocalReadWrite: {tags: [yuria ]}
157+
- SelfSend0: {tags: [yuria ]}
158+
- SelfSend0BlockConstNonLocalReturn: {tags: [yuria ]}
157159

158160
executors:
159161
RPySOM-ast-interp:

0 commit comments

Comments
 (0)