Skip to content

Improvements from JLiSA#345

Merged
lucaneg merged 5 commits intomasterfrom
jlisa-improvements
Dec 5, 2025
Merged

Improvements from JLiSA#345
lucaneg merged 5 commits intomasterfrom
jlisa-improvements

Conversation

@lucaneg
Copy link
Member

@lucaneg lucaneg commented Dec 5, 2025

This branch carries improvements to:

  • BaseCallGraph's resolution of calls
  • Flexible number of bits in NumericType
  • CharacterType
  • A number of new SymbolicExpressions
  • ConstantValuePropagation for whole-value constants
  • Reachability analysis

@lucaneg lucaneg added this to the 0.2 milestone Dec 5, 2025
@lucaneg lucaneg self-assigned this Dec 5, 2025
Copilot AI review requested due to automatic review settings December 5, 2025 09:50
@lucaneg lucaneg added the 🐛 type:bug Something isn't working label Dec 5, 2025
@lucaneg lucaneg added this to LiSA Dec 5, 2025
@lucaneg lucaneg added 🎆 type:feature New feature or request ‼ priority:p1 Priority planning - level 1 🔍 scope:analysis Work regarding abstract domains or fixpoint algorithms 🌍 scope:interproc Work regarding interprocedural analyses or call graphs labels Dec 5, 2025
@lucaneg lucaneg moved this to PR WIP in LiSA Dec 5, 2025
@lucaneg lucaneg added the 🏗 resolution:wip Incomplete work - do not review yet label Dec 5, 2025
@lucaneg lucaneg removed the 🏗 resolution:wip Incomplete work - do not review yet label Dec 5, 2025
@lucaneg lucaneg moved this from PR WIP to PR Ready in LiSA Dec 5, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces significant improvements to the LiSA framework, focusing on type system enhancements, call graph resolution, and new analysis capabilities.

Key Changes:

  • Refactored NumericType to use a flexible bit-count system via getNBits() instead of individual boolean methods
  • Added CharacterType interface with supporting operators for character manipulation and validation
  • Introduced extensive symbolic expression operators for strings, numerics, and characters
  • Enhanced BaseCallGraph with distance-based target selection for improved call resolution
  • Added ConstantValuePropagation analysis for tracking constant values across program execution
  • Implemented Reachability analysis to track program point reachability

Reviewed changes

Copilot reviewed 90 out of 92 changed files in this pull request and generated 49 comments.

Show a summary per file
File Description
NumericType.java Refactored bit-size checking to use getNBits() method with default implementations (contains critical bugs)
CharacterType.java New interface for character types
Multiple operator files Added 30+ new symbolic operators for strings, characters, and numeric operations
BaseCallGraph.java Enhanced call resolution with distance-based target selection and improved documentation
TypeSystem.java Added getCharacterType() and distanceBetweenTypes() methods
ConstantValuePropagation.java New analysis for constant value propagation (contains critical bug)
Reachability.java, ReachLattice.java New reachability analysis infrastructure
Character operator files Two critical bugs in type inference returning BooleanType instead of CharacterType
Build and config files Gradle wrapper deletions and build configuration adjustments

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@lucaneg lucaneg merged commit 891c16e into master Dec 5, 2025
2 checks passed
@lucaneg lucaneg deleted the jlisa-improvements branch December 5, 2025 17:09
@github-project-automation github-project-automation bot moved this from PR Ready to PR Merged in LiSA Dec 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

‼ priority:p1 Priority planning - level 1 🔍 scope:analysis Work regarding abstract domains or fixpoint algorithms 🌍 scope:interproc Work regarding interprocedural analyses or call graphs 🐛 type:bug Something isn't working 🎆 type:feature New feature or request

Projects

Status: PR Merged

Development

Successfully merging this pull request may close these issues.

2 participants