[Soot-list] Jimplification via ASM , was: SOAP workshop summary

Eric Bodden eric.bodden at ec-spride.de
Mon Jun 18 12:12:16 EDT 2012


I had a look at the code.

Aaloan, if you can remove the dependencies on anything else but ASM
then I am happy to test-run and integrate the code.

Ideally, you would provide me a patch that I could just apply to the
current trunk.

Cheers,
Eric

On 18 June 2012 17:48, Aaloan Miftah <aaloanmiftah at yahoo.com> wrote:
> Hey,
>
> I haven't worked on invokedynamic, but support for everything else is there.
> For testing I used jpc and some homebrewn applications.
>
> ________________________________
> From: Eric Bodden <eric.bodden at ec-spride.de>
> To: Aaloan Miftah <aaloanmiftah at yahoo.com>
> Cc: Patrick Lam <plam at sable.mcgill.ca>; soot-list
> <soot-list at sable.mcgill.ca>
> Sent: Monday, June 18, 2012 8:41 AM
> Subject: Jimplification via ASM , was: [Soot-list] SOAP workshop summary
>
> Hello Aaloan.
>
> Could you tell me a bit more about this code? For instance, how well
> was it tested? Does it convert all bytecodes (including Java 7's
> invokedynamic) into Jimple? How about bytecode attributes?
>
> @Patrick: Is the ASM license compatible with Soot's LGPL?
>
> Best wishes,
> Eric
>
>
> On 18 June 2012 02:18, Aaloan Miftah <aaloanmiftah at yahoo.com> wrote:
>> Hi,
>>
>>> by optimizing how Soot creates Jimple
>> I've attached the asm based builder I use to generate Jimple. There is
>> a noticeable increase in performance (mainly because the jb phase has less
>> to do).
>>
>> Aaloan
>>
>> ________________________________
>> From: Patrick Lam <plam at sable.mcgill.ca>
>> To: "Soot-list at sable.mcgill.ca" <Soot-list at sable.mcgill.ca>
>> Sent: Saturday, June 16, 2012 9:55 PM
>> Subject: [Soot-list] SOAP workshop summary
>>
>> Hi all,
>>
>> At PLDI last week in Beijing, we ran the SOAP workshop, bringing
>> together Soot users for an invited talk, 8 contributed talks on
>> applications and extensions of Soot, and a discussion on the future of
>> Soot. Workshop organizers included Eric Bodden, Bruno Dufour, Laurie
>> Hendren, Patrick Lam, and Elena Sherman (who instigated the idea, but
>> could not attend). I counted up to 27 non-organizer participants in
>> the audience for the workshop.
>>
>> Anders Moeller gave an invited talk in two parts. The first part
>> described his use of Soot for performing string analysis on Java
>> programs, while the second part discussed something completely
>> different, a tour-de-force of static analysis for inferring types in
>> JavaScript code.
>>
>> The string analysis extracted a subset of the Jimple IR, eventually
>> converting it into regular expressions summarizing potential values
>> for string variables.  This raises a relevant question for the Soot
>> community: how could Soot better support this style of analysis, which
>> extracts facts from a Soot IR into a custom IR and then performs
>> analysis on that IR?  The string analysis code required thousands of
>> lines of code to create its own IR. Upon further reflection, I believe
>> that the LogicBlox pointer analysis by Martin Bravenboer works the
>> same way; it extracts pointer facts from Soot and then munges them.
>> Could we implement some sort of domain-specific language to make this
>> easy?
>>
>> The workshop included two broad categories of contributed talks:
>> infrastructure talks and application talks. Eric led off the
>> contributed talks with a description of an implementation of the IFDS
>> whole-program analysis framework and concluded the talks by explaining
>> how Soot now supports the invokedynamic framework. Other
>> infrastructure talks included an assessment, by Dacong (Tony) Yan, of
>> how Soot could support summary-based whole-program analysis; and a
>> description, by Alexandre Bartel, of a new Soot front-end for reading
>> Dalvik bytecode.
>>
>> On the application side, we saw custom implementations of the
>> fundamental compiler analyses, reaching defs (demand-driven) and
>> side-effects (with an escape-analysis filter), as well as a novel
>> static analysis for determining collection disjointness, and a welcome
>> voice from outside the PL community describing a DB-related Soot use.
>> Ju Qian described a side-effect analysis which used the Gay and
>> Steensgaard escape analysis to sharpen its results, while Longwen Lu
>> presented a demand-driven interprocedural reaching definitions
>> analysis. I presented a static analysis to gather facts about when
>> Java collections were disjoint, i.e. shared no objects, assuming
>> standard semantics for the collection API. Finally, Karthik
>> Ramachandra shared how he was able to use Soot for a domain-specific
>> analysis, optimizing database applications, for instance by combining
>> (remote, and hence expensive) queries.
>>
>> The final session of the workshop was a discussion of Soot's future
>> directions. I didn't take notes, but others did. I hope that someone
>> (hi, Eric!) can post a detailed summary of the discussions. A majority
>> of the discussion participants were hoping for better Soot
>> performance, perhaps through serialization of Soot state, or by
>> optimizing how Soot creates Jimple. We also talked about overhauling
>> Soot, and there was some excitement about starting over and creating a
>> better Soot. I am personally skeptical about big-bang rewrites and
>> wary of the second-system effect, so I think that the most likely path
>> to success is in aggressive refactoring. We would definitely need to
>> reduce the amount of global state (which would, as a beneficial
>> side-effect, ease parallelization). Soot refactoring transformations
>> may be interesting in their own right, when generalized, as original
>> research.
>>
>> Overall, I'm pleased with the way the workshop turned out and think that
>> it was a productive exercise. I'd like to thank all the participants and
>> organizers for contributing to the success of the workshop!
>>
>>   - Patrick Lam
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
>>
>>
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
>
>
>
> --
> Eric Bodden, Ph.D., http://bodden.de/
> Head of Secure Software Engineering Group at EC SPRIDE
> Principal Investigator in Secure Services at CASED
> Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
> Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
>
>



-- 
Eric Bodden, Ph.D., http://bodden.de/
Head of Secure Software Engineering Group at EC SPRIDE
Principal Investigator in Secure Services at CASED
Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt


More information about the Soot-list mailing list