Skip to content

uw-unsat/symfix-vmcai20

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SymFix

This repository contains a prototype of SymFix for Rosette. See the full paper at https://unsat.cs.washington.edu/papers/porncharoenwase-symfix.pdf.

To install SymFix, clone this repo and run raco pkg install inside the directory.

To run SymFix, execute raco symfix <path-to-a-rosette-program>. Binary files of extension .symfix will be generated along with diff files of extension .symfix-diff. For instance, a Rosette program a.rkt would result in a.rkt.symfix and a.rkt.symfix-diff. There are two ways to apply generated repairs to a.rkt.

  • Simply overwrite a.rkt with a.rkt.symfix. This is useful for verification that the repair actually works, but might not be desirable in a long run as the file is binary.
  • Manually extract repairs from a.rkt.symfix-diff and apply the repairs to a.rkt. This is more desirable, but also more tedious. Due to the fact that Rosette is implemented in Racket which has syntactic extensions, we need to fully expand the program first to understand its semantics. However, this means that the diff of expanded programs might not resemble the unexpanded programs.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published