Magma 1.4 on Pharo 1.4 and beyond
Chris Muller
asqueaker at gmail.com
Wed Jan 2 19:31:07 UTC 2013
Hi Pharoers, below is a script which will load Magma 1.4 into Pharo
1.4. Proceed past the Warnings.
After loading, you can run the tests by opening a Transcript and then executing:
MagmaTestCase fullSuite maDebug
Right now the tests immediately hit a snag due to an API factoring in
Pharo 1.4 which moved some "vm" accessors out of "Smalltalk" and into
"Smalltalk vm" but removing the "vm" prefix.. (sigh). There are also
a couple of extension methods needed in Pharo so that MethodContexts
can be serialized..
So, given that folks are already moving to 2.0 and there's already
talk about Pharo 3.0 alpha, I think we've reached the point where the
entire codebase should simply be forked for Pharo so that the code
doesn't get too squirrely and with a proliferation of "-Squeak" and
"-Pharo" packages. I'm looking for someone with experience with
cross-dialect issues interested in getting Magma ported to Pharo. I
would help from the Magma side, of course.
- Chris
| gofer |
(Smalltalk hasClassNamed: #MaObject) ifFalse:
[ "MaBase layer with tests"
gofer := Gofer new
squeaksource3: 'MaBase'.
#('Collections-BTree-lr.73'
'BrpExtensions-cmm.11'
'Ma-Core-cmm.232'
'Ma-Collections-cmm.141'
'Ma-Ascii-Report-cmm.9'
'Ma-Statistics-cmm.28'
'Ma-Search-cmm.42'
'Ma-Serializer-Core-cmm.290'
'Ma-Serializer-Pharo-Core-cmm.1'
'Ma-Serializer-Tests-cmm.40')
do: [ : each | gofer version: each ].
gofer load ].
"Load the Ma client server package"
(Smalltalk hasClassNamed: #MaClientSocket) ifFalse:
[ Gofer new
squeaksource3: 'Ma-Client-Server' ;
version: 'Ma-Client-Server-Core-cmm.225' ;
version: 'Ma-Client-Server-Tester-cmm.157' ;
load.
"Include OSProcess to support tester launching of images."
Gofer new
squeaksource: 'OSProcess' ;
version: 'OSProcess-dtl.66' ;
load ].
"Magma client"
(Smalltalk hasClassNamed: #MagmaSession) ifFalse:
[ Gofer new
squeaksource3: 'Magma' ;
version: 'WriteBarrier-cmm.44' ;
version: 'SOLHashTables-cmm.16' ;
version: 'Magma-Client-cmm.642' ;
load ].
"Magma server"
(Smalltalk hasClassNamed: #MagmaServerConsole) ifFalse:
[ Gofer new
squeaksource3: 'Magma' ;
version: 'Magma-Server-cmm.455' ;
version: 'Magma-Tools-cmm.68' ;
load ].
"Magma tester"
(Smalltalk hasClassNamed: #MagmaTestCase) ifFalse:
[Gofer new
squeaksource3: 'Magma' ;
version: 'Magma-Tester-cmm.406' ;
version: 'Magma-Pharo-Tester-cmm.1' ;
load]
More information about the Magma
mailing list