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