Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Splitting fixes #326

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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 выйти нельзя

VSharp.SILI.Core/MemoryRegion.fs Outdated Show resolved Hide resolved
VSharp.SILI.Core/MemoryRegion.fs Show resolved Hide resolved
@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