[MLton] fxp: ported to MLton

Wesley W. Terpstra terpstra@gkec.tu-darmstadt.de
Wed, 8 Dec 2004 20:15:01 +0100


--uAKRQypu60I7Lcqm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi!

I ported fxp[1] to mlton[2]; really quite easy.

The necessary changes fell into three categories:
	1) conformance to SML Basis Library
		- there is no Array.extract
		- there is no 'gc' in Timer.checkCPUTimer
		- there is no Substring.full
		- only unit expressions should be sequenced
		- {Array/Vector}.{fold/app}* do not take slices
	2) adding .mlb files to describe the project
		- similar to .cm
		- must be ordered by dependency
	3) adding a startup hook to the programs
		- maybe incompatible with SML/NJ?

It appears to work, at least for me. =)
I'd be happy to help integrate this patch with your CVS.

[1] http://atseidl2.informatik.tu-muenchen.de/~berlea/Fxp/
[2] http://mlton.org/

-- 
Wesley W. Terpstra

--uAKRQypu60I7Lcqm
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="fxp-mlton.patch.gz"
Content-Transfer-Encoding: base64

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

--uAKRQypu60I7Lcqm--