Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /sml/trunk/src/cm/bootstrap/cmb-slave-stub.sml
ViewVC logotype

View of /sml/trunk/src/cm/bootstrap/cmb-slave-stub.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 573 - (download) (annotate)
Thu Mar 9 15:23:52 2000 UTC (19 years, 6 months ago) by blume
File size: 811 byte(s)
merging back changes from blume_devel_v110_26_2
(*
 * This is a stub providing "slave" functionality for CMB.
 * (We use dynamic linking technology to avoid loading the target compiler
 *  on the slave side unless it is really needed.)
 *
 * (C) 1999 Lucent Technologies, Bell Laboratories
 *
 * Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp)
 *)
structure CMBSlave = struct
    local
	val loaded = ref StringSet.empty (* remember what we already have *)
    in
	fun slave load arch s = let
	    val lib = concat ["smlnj/cmb/", arch, ".cm"]
	    (* eg. sparc-unix -> smlnj/cmb/sparc-unix.cm *)
	in
	    if StringSet.member (!loaded, lib) then ()
	    else if load lib then loaded := StringSet.add (!loaded, lib)
	    else  raise Fail (concat ["dynamic linkage for CMB slave ",
				      arch, " failed"]);
	    CMBSlaveHook.slave arch s
	end
    end
end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0