Skip to content

GSoC 2026 Project Ideas

Soha Hussein edited this page Feb 27, 2026 · 3 revisions

Project Ideas

Please note that this list is not exclusive. If you have other ideas and topics related to JPF, please get in touch with us via our Discord server: https://discord.gg/sX4YZUVHK7. A possible proposal template can be found at the bottom of our GSoC page: JPF Google Summer of Code 2026.

JPF Infrastructure

Java Ranger (JR)

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 Support Floating Point Constraints for Path-Merged Regions

Description: Java Ranger is a path-merging symbolic execution that is built on top of SPF, which is in turn built on top JPF. Instead of dynamically executing all execution paths, Java Ranger can collapse multiple paths into a single dynamic path, that has a disjunctive constraint describing the behaviour of the merged region. In this project, we want to allow Java Ranger to summarize regions with floating point contraints. This means that we might first add some floating point support to the baseline symbolic execution, then, after that allow JR to include summarizes of these operation.

Difficulty: Hard
Scope: 350 hours
Required skills: Knowledge of Symbolic PathFinder.
Preferred skills: Knowledge of Java Ranger.

#f03c15 Support runtime exception in Java Ranger

Description: The main goal of this project is to support throwing a runtime exception for some of the summarized functions. This project will extend Java Ranger branch sv-comp. Please refer to sv-comp 2026 for benchmarks about Java runtime exceptions.

Difficulty: Hard Scope: 350 hours
Required skills: Knowledge of Symbolic Pathfinder Preferred skills: Knowledge of Java Ranger.
Possible Mentors: Soha

Clone this wiki locally