---
# System prepended metadata

title: CIS-400 Technical Update 5 - Team 30

---

# CIS-400 Technical Update 5 - Team 30
**Project Title:** 
Automatic Data Synchronization for Compartmentalized Software
**Members:**
* Zhilei Zheng: zhileiz@seas.upenn.edu
* William Sun: wsun@seas.upenn.edu
* Zachary Zhao: zhaozeyu@seas.upenn.edu
* Suyog: suyogbob@seas.upenn.edu

**Advisors:** Professor Boon Thau Loo, Professor Steve Zdancewic



## Work Done (Week Nov. 2nd - Nov.15th)
* Learned LLVM Fundamentals (Suyog, Will)
    * Understood how to "preprocess" source code
    * Explored Intermediate Representation of C source code. 
* Explored "Program Dependence Graph" discussed by *PtrSplit* paper. (Zachary)
    * Discussed ways to to integrate this into our system
    * Pointer bounds tracking, 
    * marshalling and unmarshalling
* Fully understood libcompart through example programs. (Zhilei)
    * Understood marshalling and demarshalling mechanism
    * Compile-time generation of code for data marshalling. 
* Reached out to advisor and author of Softbound and scheduled appointment(Zhilei)



## Time Spent
| Member | Nov.2nd - Nov.8th | Nov.9th. - Nov. 15th
| -------- | -------- | -------- | 
| Zhilei   |   6hrs   |   9hrs   | 
| Zachary  |    4hrs  |   5hrs   | 
| William  |    5hrs  |    4hrs  |
| Suyog    |   6hrs   |    4hrs  |

## Plans for Coming Weeks
- Understand how to use C annotations to inject basic code into a program
- Understand Dependency Trees as used by PtrSplit and work on a plan to adapt it to our project needs
- Build a basic toy program to test code injection
- Build a toy program to test synchronization in a compartmentalized solution
- Understand and experiment with Program Dependence Graphs