Skip to content

Conversation

oveeernight
Copy link
Collaborator

  • splitting now is used only for addresses/structs memory regions
  • IMemoryKey.MatchCondition is not used anymore in MemoryRegion.fs. Now we use only IMemoryKey.IntersectionCondition, which does not require entry region. Records in RegionTree are ordered from oldest to newest in order of addition to the dictionary. splitRead traverses tree from newest records to oldest ones.
  • RegionTree.write is used in compose and map insted of splitWrite
  • UpdateTreeKey.time was removed
  • tree traverse during splitRead is terminated when key which is equal to readKey occurs
  • handle Ite-values in write operations
  • concretes are collected during tree traverse in splitRead

// records ordered from newest to oldest
let records = PersistentDict.toSeq d |> Seq.rev // may be inefficient?
let enumerator = records.GetEnumerator()
while not foundExactKey && enumerator.MoveNext() do
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему while а не for? Через for можно пробежаться по коллекции

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

из for выйти нельзя

@oveeernight oveeernight force-pushed the splitting-fixes branch 2 times, most recently from 7b16ec8 to 1b62ff6 Compare June 17, 2024 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants