Tapenade toplevel and web server¶
Tapenade toplevel¶
Files:
Tapenade
Javadoc
The top-level class of Tapenade is Tapenade
.
It schedules the operations at the higher level.
It provides one main scheduler for command-line invocation.
Other schedulers are provided, for the GUI or for the web servlet.
Typical chain of operations is (See
Figure 1),
in order:
Parse all the source files (Step -1 ⇒ 0)
← uses the input files
→ results into a sequence of AST operators (IL) (State 0)
Build the Internal Representation (IR) (Step 0 ⇒ 2)
← uses the stream of AST operators
→ results into a Call-Graph of Flow-Graphs (State 2)
Run Data-Flow analyses (Step 2 ⇒ 4)
← uses the Internal Representation
→ results into Data-Flow info attached to the Call-Graph and Flow-Graphs (State 4)
Differentiate (Step 4 ⇒ 5)
← uses the Internal Representation augmented with Data-Flow info
→ results into another Call-Graph of Flow-Graphs (State 5)
Regenerate AST of differentiated code (Step 5 ⇒ 6)
← uses the differentiated Call-Graph of Flow-Graphs
→ results into AST, one per future file (State 6)
Create differentiated files (Step 6 ⇒ End)
← uses the differentiated AST’s
→ results in files
Tapenade web-server¶
Files:
ADServlet RetryServlet RetryNewServlet
Tapenade web server www-tapenade.inria.fr is implemented in class ADServlet. Details will be given here
Tapenade is also available as a docker image. You can find the Tapenade docker images in the Tapenade gitlab repository.
To get the latest Tapenade image, run:
docker pull registry.gitlab.inria.fr/tapenade/tapenade:latest
Add the -html
option to generate the HTML results:
docker run --rm registry.gitlab.inria.fr/tapenade/tapenade -html ... <files>
Use your web browser to display the HTML Results contained in …/tapenadehtml/tapenade.html.
See [https://gitlab.inria.fr/tapenade/tapenade/-/blob/master/bin/tapenadocker](tapenadocker shell script) to run the latest Tapenade docker image.