soot-oss / soot

Soot - A Java optimization framework
GNU Lesser General Public License v2.1
2.87k stars 706 forks source link

Modularize Soot and Deprecate Some Modules #43

Open malaverdiere opened 11 years ago

malaverdiere commented 11 years ago

Soot currently is semi-modularized. Some mandatory dependencies (e.g. Jasmin) and optional ones (e.g. Probe, Paddle) are organized separately.

However, many modules within Soot are merged in the same code base. Some modules are unmaintained currently.

The core Soot project should contain the following modules:

Optional modules should be:

bergerbd commented 11 years ago

I think one of the first steps would be to create some kind of plugin mechanism (and a new parameter/configuration framework) for the existing analysis. This enables us to add analysis without creating a new main method. Therefore, it will be easier to test/integrate analysis written by others (just add the jar to the classpath and an entry to the configuration file). Then we can split the existing Soot codebase into different projects (no idea about dependencies between those analysis).

malaverdiere commented 11 years ago

I am thinking of the JDBC drivers right how. They get registered on class creation and then they are available to the application.

So we could have some singleton for registering new options and new packs. The programmer just need to refer to the class, and it will get registered.

There could be a way to make it more automatic, maybe using Reflection and passing the names of the 'bootstrapping' classes as command-line parameters?

Marc-André Laverdière-Papineau Doctorant - PhD Candidate

On 04/25/2013 01:24 AM, Bernhard Berger wrote:

I think one of the first steps would be to create some kind of plugin mechanism (and a new parameter/configuration framework) for the existing analysis. This enables us to add analysis without creating a new main method. Therefore, it will be easier to test/integrate analysis written by others (just add the jar to the classpath and an entry to the configuration file). Then we can split the existing Soot codebase into different projects (no idea about dependencies between those analysis).

— Reply to this email directly or view it on GitHub https://github.com/Sable/soot/issues/43#issuecomment-16989272.