Compiler pipeline

From Dyna
Jump to: navigation, search

Here are the intermediate files currently created by dynac. You may want to look at them to see what is going on, e.g., what type declarations were inferred.

Don't you need dynac's --keep-all-files option to see them?

This pipeline will change in the future -- in particular, it will add steps for optimization (pragma inference and program transformations). Eventually it will stabilize in case you want to add your own preprocessing steps.

foo.dyna 
--> foo.dyna_dpp     (after preprocessing)
--> foo.dyna_bin     (after binarization)
--> foo.dyna_dcl     (after declaration inference)
--> foo_dyna.{cpp,h} (generated code)
         (note that these replace foo-implementation.{cpp,h})
         (should we allow .cc instead of .cpp?)

We should mention the names of the executables that carry out each stage of processing.

Future:

dynac (like gcc) should be smart enough to start with any of the intermediate files and continue from there (i.e., it should know their extensions).
We might also want command-line flags that say "stop at a particular stage." Follow gcc here, too.
dynac should avoid replacing files with an identical version. For example, if no types change, foo.dyna.h may not need to change, so the makefile can avoid recompiling the driver program.
Personal tools
Namespaces

Variants
Actions
Navigation
Tools