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

[WIP] Paths mutations #2

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

[WIP] Paths mutations #2

wants to merge 6 commits into from

Conversation

FedeLoch
Copy link

@FedeLoch FedeLoch commented Sep 20, 2024

Path's mutations

This is an experiment where we attempt to extend the diversity of inconsistencies between the interpreter and the compiler—differences found by the current path explorer. This experiment aims to introduce path mutations on our current path explorer. To avoid always exploring the same deterministic paths, during the exploration time, we will be introducing several mutations on the path's constraints.

The focus of this experiment is to explore the availability of constraint mutations as a technique to embrace new possible paths on the compiler, and therefore, find new checks if there are undiscovered inconsistencies.

Path constraints

Nowadays Ranger supports a series of different path constraints. These constraints are used inside the path representation to moderate the current path taken inside the interpreter.

The currently supported constraints are separated into five groups:

  • Logic Constraints ( AND, OR )
  • Comp/Ord Constraints ( =, !=, >, >=, <, <= )
  • Arithmetic Constraints ( **+, -, /, %, //, *** )
  • Bit Constraints ( <<, ADD, AND, OR )
  • VM Constraints ( isNotInt, isInt, isNotChar, isChar, isIntToFloat, intObjOf, floatObjOf, boolObjOf, isClassIndexOf, isContextObj )

Mutations

To encompass several variants, we thought of several different mutations:

LessIntMutation

GreaterIntMutation

...

// TODO

…r to avoid deterministic exploriation.

PathExplorer now has a mutator, who knows how to mutate a path, a set of constraints and each specific constraint.

To avoid change the current semantics, PathExplorar always is inizialited with a IdleMutator
@FedeLoch FedeLoch changed the title [WIP] Constraint mutations [WIP] Paths mutations Sep 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant