UnitTestBot / UnitTestBot/usvm

The root issue for all TODOs

Open
#11 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Kotlin
Stars
33
Forks
27
Avg merge
4d 3h
Merged PRs (30d)
15

Description

This issue contains all TODOs, so as not to forget them. If you complete any todo from this list, don't forget to add a link to the report in some form.

TODOs

  • Benchmark different ways of collecting a guard in the HeapRefSplittingUtil::filter.
  • Make a single ite not only for symbolic heap refs, but for concrete heap refs too.
  • Compare eager and lazy UModel performance.
  • Structure source files into packages. Fixed in #13
  • Add simplifying UFlatUpdates in UComposer (case composing on UModel, where stores are concretized and we expect a concrete reading returns a concrete value). Added in #9
  • mkDistinct with concrete heap refs.
  • Interning URegionIds.
  • Choose constant names carefully in UExprTranslator.
  • Deal with big arrays in composition. Idea: we can create a ranged update node with copy from big array and apply it to heap.
  • Localized map in memory regions compostion.
  • Refactor UHeap to generic implementation with getMemoryRegion(regionId: URegionId).
  • Fix Type/ArrayType inconsistence.
  • Make recursive-free implementations in UFlatUpdates.
  • Implement UMemory::memset. Added in #17
  • Revision and design UComponents and DI in usvm.
  • Implement approximations for Throwable.
  • Choose a better way to place close function, related to this PR.
  • Refactor namings in RegionTree and all usages. Fixed in #26
  • Fix equals for update nodes and add related tests.
  • Think again about array casts and type elations with their elements.
  • Think about region refinement with bv constraints and their interaction with memory regions (eager vs lazy style). includesConcretely, includesSymbolically look like good extension points.
  • Fix translator cache usage in lazy models. Fixed in #28
  • Make cache in DfsIterator optional
  • Refactor the splitting read mechanism.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This is a tracking issue containing many unrelated TODOs across components such as HeapRefSplittingUtil::filter, UModel, UFlatUpdates, UComposer, UExprTranslator, UHeap, UComponents, RegionTree, and DfsIterator. Start by selecting one unchecked item and locating its implementation and related tests; completion criteria are not defined for the issue as a whole, so the selected work should be split into a focused issue or pull request.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
compilers
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.