Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Any docs? #1

Open
coder-chenzhi opened this issue Dec 16, 2019 · 1 comment
Open

Any docs? #1

coder-chenzhi opened this issue Dec 16, 2019 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@coder-chenzhi
Copy link

I was looking for tools for WCET analysis for Java and found this repo. Is there any docs to explain how to use it and how it is implemented? Thanks!

@pietrobraione
Copy link
Owner

Unfortunately not. I had not yet any time to work on the documentation, not even on the README.md file. However making it work should not be too difficult. The tool is built with Gradle and depends on JBSE (already included as a git subproject) and Z3. To download the code, fix the dependencies and build it you can follow the same instructions as for TARDIS, whose repository is in my github space. For what concerns using it, the repository contains an examples/ directory where there are many examples of tool usage. I tried to keep the interface of the tool very similar to that of TARDIS: This means, as with TARDIS you can invoke GASP either from the command line, or from a Java program. All the examples follow the second strategy. For instance, the main method of the small.alternate.LauncherAlternate0 class creates a gasp.Options object, sets it with the many execution parameters for GASP, then creates a gasp.Main object passing to it the previously configured gasp.Options object, and invokes the run method of the gasp.Main object. That's all. For what concerns the parameters, the methods of the gasp.Options class are documented, but they are not documented in Javadoc format: You must read the source code of the class and read the @Option annotations, there you will find a description. There are two kind of parameters: The ones that configure the tool (number of thread, degree of logging, path of the code to analyze, paths of the libraries and binaries the tool depends on...), and the ones that configure the genetic algorithm (crossover function, mutation function, fitness function, local search algorithm, elite size...). The first group of parameters are easy to understand. For a discussion of the second group of parameters you can refer to Aquino, Braione, Denaro, Salza, "Facilitating program performance profiling via evolutionary symbolic execution", to be published in Software Testing, Verification and Reliability. It should be freely accessible for a while at https://doi.org/10.1002/stvr.1719, but if you cannot access it write me and I will send you a preprint.

@pietrobraione pietrobraione self-assigned this Dec 30, 2019
@pietrobraione pietrobraione added the enhancement New feature or request label Dec 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants