Skip to content

Conversation

michaelnebel
Copy link
Contributor

@michaelnebel michaelnebel commented Sep 18, 2025

In this PR we change the C# extraction to use * IDs for Locations. This is a recommend pre-requisite for starting the work on C# overlay support.

It turns out that there is a complication in relation to the "empty" location: There is a build in assumption in the QL library that we can refer to a unique single location for representing an "empty" location. That is,

  • The value has to be present as much of the QL library assumes that the "empty" location can be used in case there is no other "real" relevant location available.
  • To avoid severe performance issues (combinatorial explosion) the empty location needs to be unique.

Until now the empty location piggy backed on the fact that

  • At least one generated location (with empty filename and 0 as positions) would be created on extraction.
  • The trap importer would ensure de-duplication of these types of generated locations (ultimately resulting in a single such location).

As a part of this PR we now extract a single synthetic "empty" location to be used to represent the empty location in the QL library.

DCA

  • It appears that the analysis time has increased slightly and especially for the mono repo. However, it is worth noticing that the end-to-times are approximately the same. An example: For mono the analysis time increases by 20% (which corresponds to approximately 20s). However, the trap import time is reduced around 20s as well - I suspect this is because without * IDs the trap importer needs to do a lot of location de-duplication (for mono there is approximately 17m source location tuples, where 5m are duplicates - which are removed due to labelling on main). Correspondingly the increase in analysis time can be explained by the more bloated location table.

@github-actions github-actions bot added the C# label Sep 18, 2025
@michaelnebel michaelnebel force-pushed the csharp/locationstarid branch 2 times, most recently from 412d6a2 to 8332cd1 Compare September 22, 2025 12:02
@michaelnebel michaelnebel force-pushed the csharp/locationstarid branch 2 times, most recently from efbbdcb to f6d0516 Compare September 22, 2025 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant