File [ivy]<Satterthwaite>Models>CrossCompiler.model!1

    -- CompilerServer.model
    -- Copyright (c) 1986 by Xerox Corporation.  All rights reserved.
    -- last edit by Satterthwaite, June 16, 1986 11:04:26 am PDT

    LET REC [
        Host: TYPE MachineParms~@PrincOpsParms.mesa!583261750[&options:~""];
        Target: TYPE MachineParms~@DragonParms.mesa!582574897[&options:~""]] IN
    LET @///SML/OSBasics.modelBcd!581021414 IN
    LET @///SML/CedarBasics.modelBcd!581021540 IN
    LET [
        ComputeServerServer: TYPE~
          @/Cedar/Cedar6.1/ComputeServerUser/ComputeServerServer.bcd!548206815,
        ConvertUnsafe: TYPE~@/Cedar/Cedar6.1/Rope/ConvertUnsafe.bcd!541570785,
        Loader: TYPE~@/Cedar/Cedar6.1/Loader/Loader.bcd!541582731,
        ProcessorFace: TYPE~@/Cedar/Cedar6.1/Heads/ProcessorFace.bcd!541571125,
        RuntimeError: TYPE~@/Cedar/Cedar6.1/MesaRuntime/RuntimeError.bcd!541570482,
        TimeStamp: TYPE~@/Cedar/Cedar6.1/BasicLoadState/TimeStamp.bcd!541573143,
        UnsafeStorage: TYPE~
          @/Cedar/Cedar6.1/SafeStorage/UnsafeStorage.bcd!541573222] IN

    LAMBDA [
        AsciiImpl: Ascii,
        BasicsImpl: Basics,
        BasicTimeImpl: BasicTime,
        CommanderImpl: Commander,
        ComputeServerServerImpl: ComputeServerServer,
        ConvertUnsafeImpl: ConvertUnsafe,
        FileNamesImpl: FileNames,
        FSImpl: FS,
        IOImpl: IO,
        LoaderImpl: Loader,
        PrincOpsUtilsImpl: PrincOpsUtils,
        ProcessImpl: Process,
        ProcessorFaceImpl: ProcessorFace,
        RefTextImpl: RefText,
        RopeImpl: Rope,
        RuntimeErrorImpl: RuntimeError,
        UnsafeStorageImpl: UnsafeStorage,
        VMImpl: VM] IN

      REC [

        &options: STRING~"j-b-ns";

        -- these come from BasicLoadState.df
        Table: TYPE~@Table.mesa!581378325*[];
        BcdDefs: TYPE~@BcdDefs.mesa!581363106*[];
        Bcd:~
          [Alloc:~@Alloc.mesa!581983338, AllocImpl:~@AllocImpl.mesa!581983332,
           CBinary:~@CBinary.mesa!350974958,
           FileSegment:~@FileSegment.mesa!539212121,
           Literals:~@Literals.mesa!583259652,
           PackageSymbols:~@PackageSymbols.mesa!581378630,
           RCMap:~@RCMap.mesa!582491357, RCMapOps:~@RCMapOps.mesa!577827292,
           RCMapBuilderImpl:~@RCMapBuilderImpl.mesa!582663357,
           RTBcd:~@RTBcd.mesa!581363862, RTSD:~@RTSD.mesa!539210962,
           SymbolOps:~@SymbolOps.mesa!582657155,
           SymbolPack:~@SymbolPack.mesa!582658138,
           SymbolPackExt:~@SymbolPackExt.mesa!582247039,
           Symbols:~@Symbols.mesa!582656813,
           SymbolSegment:~@SymbolSegment.mesa!581983414,
           SymbolTable:~@SymbolTable.mesa!539212225, Tree:~@Tree.mesa!582664643,
           TypeStrings:~@TypeStrings.mesa!539212399,
           TypeStringsImpl:~@TypeStringsImpl.mesa!582660931,
           TypePack:~@TypePack.mesa!582659696, Types:~@Types.mesa!582657333];
        SymbolCache:~@SymbolCache.mesa!582657590;

        -- this comes from AMTypes.df

        FileSegment: TYPE~Bcd.FileSegment*["s-z"];
        Symbols: TYPE~Bcd.Symbols*[];
        Literals: TYPE~Bcd.Literals*[];
        Tree: TYPE~Bcd.Tree*[];
        SymbolSegment: TYPE~Bcd.SymbolSegment*[];
        PackageSymbols: TYPE~Bcd.PackageSymbols*[];
        Alloc: TYPE~Bcd.Alloc*[];
        SymbolOps: TYPE~Bcd.SymbolOps*[];
        RCMap: TYPE~Bcd.RCMap*[];
        RTBcd: TYPE~Bcd.RTBcd*[];

        [SymbolPack: TYPE, SymbolPackImplA: SymbolPack, SymbolOpsImpl1: SymbolOps]~
          Bcd.SymbolPack*[]*[];
        SymbolTable: TYPE~Bcd.SymbolTable*[];
        SymbolOpsImpl: SymbolOps~
          SymbolOpsImpl1 + Bcd.SymbolPackExt*[]*[own:~SymbolPackImplA];
        SymbolTableImpl: SymbolTable~
          REC [
            [SymbolPack: TYPE, SymbolPackImplB: SymbolPack]~Bcd.SymbolPack*[]*[];
            SymbolTableImpl: SymbolTable~SymbolCache*[]*[initial:~SymbolPackImplB]].SymbolTableImpl;

        TreeOps: TYPE~@ProtoTreeOps.mesa!581631502*[];
        TreeOpsImpl: TreeOps~@TreePack.mesa!582664759*[]*[];

        LiteralOps: TYPE~@LiteralOps.mesa!582743240*[];
        LiteralOpsImpl: LiteralOps~@LiteralPack.mesa!582741928*[]*[];

        Types: TYPE~Bcd.Types*[];
        TypesImpl: Types~Bcd.TypePack*[]*[];

        SourceMap: TYPE~@SourceMap.mesa!581536182*[];

        FileParms: TYPE~@FileParms.mesa!542182141*["j-b-ns-z"];
        Copier: TYPE~@Copier.mesa!582659954*[];
        CopierImpl: Copier~
          @SymbolCopier.mesa!582664779*[]*[ownSymbols:~SymbolPackImplA]
            + @FilePack.mesa!581965101*[]*[own:~SymbolPackImplA];

        [ComData: TYPE, dataPtr: ComData]~@ComData.mesa!582655832*[]*[];

        SymLiteralOps: TYPE~@SymLiteralOps.mesa!581878672*[];
        SymLiteralOpsImpl: SymLiteralOps~@SymLiteralPack.mesa!582664965*[]*[];

        Real: TYPE~@IeeeFloat.mesa!577235028*[];
        RealImpl: Real~@IeeePack.mesa!577235448*[]*[];

        CompilerOps: TYPE~@CompilerOps.mesa!542182211*["j-b-ns-z"];
        CompilerUtil: TYPE~@CompilerUtil.mesa!581972195*[];

        Log: TYPE~@Log.mesa!576616016*[];
        ErrorTable: TYPE~@ErrorTable.mesa!567375969*[];
        [LogImpl: Log, SourceMapImpl: SourceMap]~@LogPack.mesa!583260007*[]*[];

        Pass1: CompilerUtil~
          REC [
            ParseTable: TYPE~@ParseTable.mesa!583268382*[];
            P1: TYPE~@P1.mesa!581547658*[];
            [Control: CompilerUtil, Driver: P1]~@Pass1.mesa!582664796*[]*[];
            P1Impl: P1~
              Driver + @Scanner.mesa!582585997*[]*[]
                + @ProtoParser.mesa!580755205*[]*[] + @Pass1T.mesa!583268340*[]*[]].Control;

        Pass2: CompilerUtil~@Pass2.mesa!582664858*[]*[];

        Pass3: CompilerUtil~
          REC [
            A3: TYPE~@A3.mesa!577058476*[];
            P3: TYPE~@P3.mesa!582587071*[];
            P3S: TYPE~@P3S.mesa!576177918*[];
            A3Impl: A3~@Attr3a.mesa!581633473*[]*[] + @Attr3b.mesa!582665015*[]*[];
            [Pass3: TYPE, passPtr: Pass3, Control: CompilerUtil]~
              @Pass3.mesa!582664920*[]*[];
            Pass3B: P3~@Pass3B.mesa!582664876*[]*[];
            Pass3D: P3~@Pass3D.mesa!582664901*[]*[];
            Pass3I: P3~@Pass3I.mesa!582664940*[]*[];
            Pass3M: P3~@Pass3M.mesa!582665420*[]*[];
            [Pass3S: P3, P3SImpl1: P3S]~@Pass3S.mesa!582665393*[]*[];
            Pass3V: P3~@Pass3V.mesa!582061958*[]*[];
            [Pass3Xa: P3, P3SImpl2: P3S]~@Pass3Xa.mesa!582587481*[]*[];
            [Pass3Xb: P3, P3SImpl3: P3S]~@Pass3Xb.mesa!583259360*[]*[];
            Pass3Xc: P3~@Pass3Xc.mesa!582589093*[]*[];
            P3Impl: P3~
              Pass3B + Pass3D + Pass3I + Pass3M + Pass3S + Pass3V + Pass3Xa
                + Pass3Xb + Pass3Xc;
            P3SImpl: P3S~P3SImpl1 + P3SImpl2 + P3SImpl3].Control;

        Pass3P: CompilerUtil~@Pass3P.mesa!582665043*[]*[];

        Pass4: CompilerUtil~
          LET [P4: TYPE~@P4.mesa!582741079*[]] IN
          REC [
            [Pass4: TYPE, passPtr: Pass4, Control: CompilerUtil]~
              @Pass4.mesa!582665069*[]*[];
            P4Impl: P4~
              @Pass4B.mesa!582665600*[]*[] + @Pass4D.mesa!582662627*[]*[]
                + @Pass4L.mesa!582665102*[]*[] + @Pass4S.mesa!582665619*[]*[]
                + @Pass4Ops.mesa!583260375*[]*[] + @Pass4Xa.mesa!582743548*[]*[]
                + @Pass4Xb.mesa!582591675*[]*[] + @Pass4Xc.mesa!582682256*[]*[]].Control;

        Pass5: CompilerUtil~@Dummy5.mesa!581986884*[]*[];

        BcdOutput: CompilerUtil~
          REC [
            TypeStrings: TYPE~Bcd.TypeStrings*[];
            TypeStringsImpl: TypeStrings~Bcd.TypeStringsImpl*[]*[];
            RCMapOps: TYPE~Bcd.RCMapOps*[];
            RCMapOpsImpl: RCMapOps~Bcd.RCMapBuilderImpl*[]*[];
            ObjectOut: CompilerUtil~@ObjectOut.mesa!583108896*[]*[]].ObjectOut;

        AllocImpl: Alloc~Bcd.AllocImpl*[]*[];
        CBinary: TYPE~Bcd.CBinary*[];
        CBinaryImpl: CBinary~
          @MesaTab.bcd!583268381*[] + @ErrorTab.bcd!583268386*[]
            + @DebugTab.bcd!583268388*[];
        CommandUtil: TYPE~@CommandUtil.mesa!542181810*[];
        CommandUtilImpl: CommandUtil~@CommandPack.mesa!542204761*[]*[];
        FileParmOps: TYPE~@FileParmOps.mesa!542182616*[];
        FileParmOpsImpl: FileParmOps~@FileParmPack.mesa!581364820*[]*[];
        DebugTable: TYPE~@DebugTable.mesa!542182360*[];
        Debug: CompilerUtil~@Debug.mesa!582665175*[]*[];

        OSMiscOps: TYPE~@OSMiscOps.mesa!563132423*[];
        OSMiscOpsImpl: OSMiscOps~@OSMiscOpsImpl.mesa!582655891*[]*[];

        [CompilerOpsImpl: CompilerOps, Sequencer: CompilerUtil]~
          @CompilerSequencer.mesa!581983453*[]*[ownSymbols:~SymbolPackImplA];

        CompilerUtilImpl: CompilerUtil~
          Pass1 + Pass2 + Pass3 + Pass3P + Pass4 + Pass5 + BcdOutput + Debug
            + Sequencer;

        --Compiler: CONTROL~@CompilerServerCommandImpl.mesa!581540490*[]*[]].CompilerOpsImpl
        Compiler: CONTROL~@CrossInterface.mesa!582243063*[]*[]].CompilerOpsImpl