X Tutup
Skip to content

Commit 25c6d55

Browse files
author
Johan Brichau
authored
Merge pull request SeasideSt#113 from SeasideSt/thixcontextfix
Finalize thisContext implementation
2 parents 66c03f6 + d8f2829 commit 25c6d55

File tree

5 files changed

+58
-9
lines changed

5 files changed

+58
-9
lines changed

.github/workflows/ci.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: smalltalkCI
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-16.04
8+
strategy:
9+
fail-fast: false
10+
matrix:
11+
smalltalk: [ Pharo64-8.0, Pharo64-7.0, Pharo-6.1, Pharo-5.0, GemStone64-3.5.4, GemStone64-3.4.5, GemStone64-3.3.9, GemStone64-3.2.17, GemStone64-3.1.0.6, Squeak64-5.3, Squeak64-5.2, Squeak64-5.1 ]
12+
experimental: [ false ]
13+
include:
14+
- smalltalk: Pharo64-9.0
15+
experimental: true
16+
- smalltalk: Squeak64-trunk
17+
experimental: true
18+
continue-on-error: ${{ matrix.experimental }}
19+
name: ${{ matrix.smalltalk }}
20+
steps:
21+
- uses: actions/checkout@v2
22+
- uses: hpi-swa/setup-smalltalkCI@v1
23+
with:
24+
smalltalk-version: ${{ matrix.smalltalk }}
25+
- name: Fix missing OS prerequisites for GemStone builds
26+
run: |
27+
git clone https://github.com/GsDevKit/GsDevKit_home.git
28+
./GsDevKit_home/bin/utils/installOsPrereqs
29+
continue-on-error: true
30+
if: startsWith(matrix.smalltalk,'GemStone')
31+
- name: Run tests
32+
run: smalltalkci -s ${{ matrix.smalltalk }}
33+
shell: bash
34+
timeout-minutes: 10
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
*grease-gemstone-core
22
thisContext
3-
^ (GsContext fromLevel: 1) sender sender
3+
^ GsContext fromLevel: 3
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
accessing
2+
namedTempAt: index
3+
^ self tempAt: index
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
private
2+
returnSender
3+
^ GRPlatform current thisContext sender
Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
1-
tests-processes
1+
tests
22
testThisContext
3-
| methodContext |
4-
methodContext := self platform thisContext.
5-
[
6-
| blockContext |
7-
blockContext := self platform thisContext.
8-
self assert: blockContext sender = methodContext ]
9-
value
3+
| methodContext block |
4+
methodContext := self platform thisContext.
5+
block := [ | blockContext |
6+
blockContext := self platform thisContext.
7+
self assert: blockContext sender = methodContext.
8+
"The following is a difference between Gemstone and Pharo... "
9+
(Smalltalk includesKey: #GRGemStonePlatform)
10+
ifTrue: [ self assert: blockContext receiver = block ]
11+
ifFalse: [
12+
self assert: blockContext receiver = self.
13+
self assert: (blockContext namedTempAt: (blockContext tempNames indexOf: #blockContext)) == blockContext ].
14+
self assert: (blockContext namedTempAt: (blockContext tempNames indexOf: #methodContext)) == methodContext ].
15+
block value.
16+
self assert: self returnSender = methodContext.
17+
self assert: methodContext receiver = self.
18+
self assert: (self platform thisContext namedTempAt: (self platform thisContext tempNames indexOf: #block)) == block

0 commit comments

Comments
 (0)
X Tutup