Write a Blog >>
Thu 22 Jun 2017 09:00 - 10:00 at Vertex WS218 - WALA Hack-A-Thon
Thu 22 Jun 2017 10:30 - 12:10 at Vertex WS218 - WALA Hack-A-Thon (2)
Thu 22 Jun 2017 13:40 - 15:20 at Vertex WS218 - WALA Hack-A-Thon (3)
Thu 22 Jun 2017 15:50 - 17:00 at Vertex WS218 - WALA Hack-A-Thon (4)

Getting Started

https://github.com/wala/WALA-start

Abstract

In the past, we have done WALA-focused workshops and tutorials at various editions of PLDI. They have been reasonably attended most of the time, and they may have encouraged people to check out WALA. While there has been significant development in WALA which could justify another tutorial around its JavaScript functionality, we think it might be even more useful to have a WALA “hack-a-thon” instead.

In this hackathon, would be structured by people choosing some set of ideas that we are trying to develop, and all of us working intensively on them during the hackathon. It would be a good opportunity for WALA hackers to share knowledge and also for people interested in working with WALA to get started with plenty of help. The goal would be for participants to further their own work with WALA, or to join WALA-based research that appeals to them. The assumption is that participants would largely be students, for whom this would be an opportunity to either further their current projects, join in other existing work, or find new research directions. We hope that this hack-a-thon will be a good opportunity for the community of WALA users to come together to work with WALA and share knowledge and ideas.

Activities

For this hack-a-thon, people can come and work on any of their current projects involving WALA. There will be knowledgeable WALA users and some of its creators at the hack-a-thon, and so interactive support and question answering will be more available than normal. It will be a good place to share thoughts and tips on how to use WALA, too.

For groups that are already significant users of and contributors to WALA, having people at the hack-a-thon would be a good opportunity for us to work together directly to take contributions and also to address any issues in WALA that make using it less than ideal. For people getting started with WALA, the hack-a-thon could be a good opportunity to get set up and working.

On the other hand, we also have several topics that would make a good focus for projects specific to the hack-a-thon. People could work in groups of whatever size to make progress on advancing WALA. While these ideas are mostly infrastructure related, they feed rather directly into research questions:

Swift Support

Apple is a dominant player in the mobile space, and Swift is its new language for writing mobile apps. While Apple provides tooling based on LLVM, current research analysis frameworks have little support for Swift. Given the amount of published work on Android, based on available infrastructure, we believe support for Swift would enable a wide range of new work. Apple’s security model is significantly different from that of Android, for example, and similarly Swift is rather different from popular languages on Android; it would be interesting to understand how these aspects affect program analysis. There is ongoing work on Swift support now, and we expect to have some basic level of functionality for people to explore at the hack-a-thon.

We are also very excited that Devin Coughlin, from the Swift team at Apple, will be at the hack-a-thon. Devin has expertise both in program analysis and in Apple’s Swift infrastructure, including the Swift Intermediate Language on which we are basing Swift support in WALA.

Concrete project idea: evaluate Swift call graph construction for some open source Swift code, and create any needed special-purpose context sensitivity policies to avoid precision loss in the face of advanced Swift features.

WALA Client

We recently made it possible to run at least some aspects of WALA directly in the browser using TeaVM, and we have a working prototype of client-side call graph construction for JavaScript. It could be interesting to see to what extent it is practical to create “online” program analysis for that looks for issues in JavaScript code when it is loaded. Analysis could also be integrated into increasingly popular Web-based IDEs and editors, such as Atom and Eclipse Orion.

Concrete project idea: build a plugin for Eclipse Orion that analyzes a JavaScript source file for references to non-existent functions in calls.

.NET Support

We have currently internal support for .NET in WALA; there is support inside for releasing it, but it would help to have strong interest outside. Since .NET opens up a wide range of languages that have little support in current research infrastructure, there will be many projects enabled by .NET support. We have working code now, and we could quickly start research based on it.

Concrete project idea: analyze Visual Basic .NET code and do basic FindBugs-style analysis.

Node.js Support

Support for nodejs was recently contributed to WALA, but we have done little to evaluate how analysis performs on nodejs apps. The code is part of the core and tested on Travis, so we could quickly start doing experiments with it as part of the hack-a-thon.

Concrete project idea: implement simple security analysis for nodejs.

These project ideas are not meant to be exhaustive; we would encourage any suggestions that you may have!

Thu 22 Jun

pldi-2017-workshops-and-tutorials
09:00 - 10:00: PLDI Tutorials - WALA Hack-A-Thon at Vertex WS218
pldi-2017-workshops-and-tutorials149811480000009:00 - 10:00
Other
pldi-2017-workshops-and-tutorials
10:30 - 12:10: PLDI Tutorials - WALA Hack-A-Thon (2) at Vertex WS218
pldi-2017-workshops-and-tutorials149812020000010:30 - 12:10
Other
pldi-2017-workshops-and-tutorials
13:40 - 15:20: PLDI Tutorials - WALA Hack-A-Thon (3) at Vertex WS218
pldi-2017-workshops-and-tutorials149813160000013:40 - 15:20
Other
pldi-2017-workshops-and-tutorials
15:50 - 17:00: PLDI Tutorials - WALA Hack-A-Thon (4) at Vertex WS218
pldi-2017-workshops-and-tutorials149813940000015:50 - 17:00
Other