Tapenade toplevel and web server

Tapenade toplevel

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 -10)

    ← 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.