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

Basic Structure for the Abstract Interpretation #397

Merged
merged 51 commits into from
Jan 26, 2024

Conversation

LukasPietzschmann
Copy link
Collaborator

No description provided.

@LukasPietzschmann LukasPietzschmann linked an issue Oct 12, 2023 that may be closed by this pull request
3 tasks
@LukasPietzschmann LukasPietzschmann self-assigned this Oct 12, 2023
@LukasPietzschmann LukasPietzschmann added the abstract interpretation Related to abstract interpretation label Oct 12, 2023
@LukasPietzschmann LukasPietzschmann marked this pull request as draft October 12, 2023 15:05
src/core/output.ts Outdated Show resolved Hide resolved
@codecov
Copy link

codecov bot commented Oct 16, 2023

Codecov Report

Attention: 33 lines in your changes are missing coverage. Please review.

Comparison is base (f059b24) 71.24% compared to head (dcf9eae) 71.49%.

Files Patch % Lines
src/util/cfg/cfg.ts 60.00% 14 Missing and 2 partials ⚠️
src/abstract-interpretation/domain.ts 81.70% 12 Missing and 3 partials ⚠️
src/util/cfg/visitor.ts 94.44% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #397      +/-   ##
==========================================
+ Coverage   71.24%   71.49%   +0.24%     
==========================================
  Files         215      217       +2     
  Lines        6858     6984     +126     
  Branches     1061     1084      +23     
==========================================
+ Hits         4886     4993     +107     
- Misses       1691     1704      +13     
- Partials      281      287       +6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Show resolved Hide resolved
@EagleoutIce
Copy link
Member

Just a note so we do not forget it:

  • we need a way to detect if interval tracking is not beneficial/valid (e.g,. if we see an x <- TRUE).
  • we should have a single point to define what the worst-case assumption represents (do we want to use Infinity or mark such fields separately?

src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/domain.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/domain.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/domain.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/domain.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/domain.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/domain.ts Show resolved Hide resolved
src/abstract-interpretation/domain.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/handler/binop/binop.ts Outdated Show resolved Hide resolved
Copy link
Member

@EagleoutIce EagleoutIce left a comment

Choose a reason for hiding this comment

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

Make ready for merge!

src/abstract-interpretation/domain.ts Outdated Show resolved Hide resolved
src/abstract-interpretation/processor.ts Outdated Show resolved Hide resolved
src/util/cfg/visitor.ts Outdated Show resolved Hide resolved
@LukasPietzschmann
Copy link
Collaborator Author

@EagleoutIce So I cleared all open comments / TODOs. Theoretically, this PR should be mergeable now.

Buuuuut AI still makes many tests fail (mainly 'cause we don't know how to handle many cases). I think it's also a long term goal to make AI fail silently. Is this something for a new issue, or should this be implemented in this PR?

@EagleoutIce
Copy link
Member

As far as I am concerned, at least passing these tests (e.g., by removing AI from the main pipeline for now) should be part of this PR.

As soon as abstract interpretation stops making the tests fail,
we can safely put it back in :^)
@LukasPietzschmann LukasPietzschmann marked this pull request as ready for review January 23, 2024 08:40
@EagleoutIce EagleoutIce merged commit c8f1933 into main Jan 26, 2024
22 checks passed
@EagleoutIce EagleoutIce deleted the 378-basic-structure-for-the-abstract-interpretation branch January 26, 2024 12:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
abstract interpretation Related to abstract interpretation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Basic Structure for the Abstract Interpretation
2 participants