Source/Packages

Runtime.NativeCombine

packages/execution/src/Runtime/NativeCombine.alpha

874 lines55 declarations36.9 KiBSHA-256 10cc50beeee8

def · lines 174–221

nativeCombineDeliveringContextFor

Full file
Reduce the tree, then deliver the root value (to every leaf owner, or along the path to one), projected for `role`.
174def nativeCombineDeliveringContextFor =
175  (lambda unrestricted anchor : (family RegionTransferIdentity) .
176    (lambda unrestricted delivery : (family CombineDelivery) .
177      (lambda unrestricted role : Nat .
178        (lambda unrestricted tree : (family OrderedCombineTree) .
179          (let unrestricted digest =
180            (combineTreeDigest tree)
181            in
182            (let unrestricted global =
183              (compileOrderedCombine
184                (family RegionTransferIdentity)
185                anchor
186                digest
187                nativeCombineBinding
188                tree
189                0
190                (compileTreeDelivery
191                  (family RegionTransferIdentity)
192                  anchor
193                  digest
194                  nativeCombineBinding
195                  delivery
196                  tree
197                  0
198                  nativeCombineEnd))
199              in
200              (let unrestricted projected =
201                (projectGlobalProtocol
202                  (family OrderedCombineOperation (family RegionTransferIdentity))
203                  (family RegionTransferIdentity)
204                  (family ProtocolNoDecision)
205                  role
206                  global)
207                in
208                (constructor
209                  NativeCombineContext
210                  NativeCombineContextOf
211                  role
212                  tree
213                  digest
214                  anchor
215                  global
216                  projected
217                  (participantProtocolPayloads
218                    (family OrderedCombineOperation (family RegionTransferIdentity))
219                    (family RegionTransferIdentity)
220                    (family ProtocolNoDecision)
221                    projected)))))))))

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.