The patch extends the OpDSL with support for:
- Constant values
- Capture scalar parameters
- Access the iteration indices using the index operation
- Provide predefined floating point and integer types.
Up to now the patch only supports emitting the new nodes. The C++/yaml path is not fully implemented (there is no implementation at all on the C++ side) and untested. The fill_rng_2d operation defined in emit_structured_generic.py makes use of the new DSL constructs.
I'm trying to understand what a CaptureDef can be: I assume from the examples that it must be a primitive/scalar that is supplied as an SSA value. Can it be anything else (i.e. a whole-tensor value that does not participate in indexing/iteration)? Do you foresee this being different from captured attributes (which the old language supports)?
(you don't need to answer me inline if the questions have clear answers: just extend the docs, either here or in the language guide in the docs/ folder)