Skip to content

GSoC 2025 Project Ideas

Soha Hussein edited this page Feb 3, 2025 · 8 revisions

Project Ideas

Please note that this list is not exclusive. If you have other ideas and topics related to JPF, please let us know on the JPF Google group. A possible proposal template can be found at the bottom of our GSoC page: JPF Google Summer of Code 2025.

JPF Infrastructure

Symbolic Pathfinder (SPF)

Environment and Test Case Generation

Project Description

#f03c15 Support Java 11/17 for JPF extensions

Description: jpf-core is essentially a JVM that currently fully supports only Java 8 and Java 11 (with limitations on bootstrap methods). Bootstrap methods are currently interpreted, which works for common usage but may not work for advanced cases. The goal of this project is to generate the call site code on the fly so bootstrap methods work as on the host JVM.

Difficulty: Hard
Scope: 350 hours
Required skills: Knowledge of Java bytecode
Preferred skills: Knowledge of private Java APIs Possible Mentors: Cyrille

#FFD700 Support for Java 17 for jpf-core

Related to the project above, there are also some new features in Java 17 that are not yet supported by JPF. We have work in progress on branch java-17. Currently unsupported Java features include language features that are not supported at run time (e.g., records) and Java language features that are not fully analyzed (e.g., sealed classes). In this project, you would identify such unsupported features and extend JPF (jpf-core) to support them.

Difficulty: Medium
Scope: 175 hours
Required skills: Knowledge of Java internals
Possible Mentors: Cyrille

#f03c15 Robustify String solving for SPF

Description: The goal of this project is to test SPF integration with Z3 string constraint solving; adding support cvc5 is a plus.

Difficulty: Hard
Scope: 350 hours
Required skills: Knowledge of Symbolic Pathfinder
Preferred skills: Knowledge of String constraint solving.
Possible Mentors: Corina, Elena, Soha

#FFD700 Support runtime exception in SPF

Description: The main goal of this project is to support throwing a runtime exception for some of the summarized functions such as String.substring. Also, this project should build on SPF Java 11 Gradle support, which implies fixing existing issues.

Difficulty: Meduim
Scope: 175 hours
Required skills: Knowledge of Symbolic Pathfinder
Possible Mentors: Soha

#f03c15 Support portfolio of solvers in SPF

Description: The main goal of this project is to enable the simultaneous invocation of multiple solvers, terminating the wait as soon as any solver returns a satisfiable result. This approach is expected to enhance SPF's ability to handle a broader range of constraints.

Difficulty: Hard
Scope: 350 hours
Required skills: Knowledge of Symbolic Pathfinder
Preferred skills: Expeirence with various solvers
Possible Mentors: Soha

Clone this wiki locally