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.
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:
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.
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.
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!
Conference DayThu 22 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
09:00 - 10:00
10:30 - 12:10
13:40 - 15:20