-- MergePreISLCedarMap.cm
-- Russ Atkinson, May 25, 1983 7:45 pm
-- Paul Rovner, June 2, 1983 2:50 pm
-- Doug Wyatt, July 1, 1983 11:11 am

-- This command file gives directions for the creation of version maps that include PreISLCedar as well as Cedar. You had better have over 4000 pages of VM available in order to run this beast, or you will be sorry!

-- if necessary, obtain the appropriate modules and base versionMap
BringOver /o IFSFileImpl.bcd IFSFile.df
BringOver /o VersionMapBuilderImpl.bcd VersionMapBuilder.df
BringOver /o Merged.VersionMap SaveMap.df

-- run the modules needed
Run IFSFileImpl
Run VersionMapBuilderImpl

← [] ← VersionMapDefaultsImpl.root -- ensure that the symbols for this are cached

-- now generate the new map from the old release and most recent updates
← VersionMapBuilderImpl.SetReportInterval[1]
← [] ← &update ← VersionMapBuilderImpl.GenerateMapFromRemote["Indigo", "<PreISLCedar>*!h"]

-- save the intermediate result in case we crash
← VersionMapImpl.SaveMapToFile[&update, "Temp.VersionMap$"]
-- to restart: &update ← VersionMapImpl.RestoreMapFromFile["Temp.VersionMap$"]

-- next, restore the map for the most recent release
← [] ← &lastRelease ← VersionMapImpl.RestoreMapFromFile["Merged.VersionMap"]

-- now make CedarSymbols.VersionMap & CedarSource.VersionMap
← [] ← &merge ← VersionMapBuilderImpl.MergeMaps[&lastRelease, &update]
← [] ← &both ← VersionMapBuilderImpl.SplitMap[&merge]
← [] ← &source ← VersionMapBuilderImpl.CompressMap[&both.source]
← VersionMapImpl.SaveMapToFile[&source, "CedarSource.VersionMap"]
← [] ← &symbols ← VersionMapBuilderImpl.CompressMap[&both.symbols]
← VersionMapImpl.SaveMapToFile[&symbols, "CedarSymbols.VersionMap"]
← VersionMapBuilderImpl.SetReportInterval[0]

-- finally, save the results
SModel /a SaveMap

-- force us to use the new maps for future references
← VersionMapDefaultsImpl.root ← NIL