Mon Jan 24 15:33:02 EST 2011

Runtime or compile-time?

It's difficult to think of which information needs to be run-time and
which compile-time for the compose operation.  While Scheme removes
the Haskell straightjacket tension, the freedom that is introduced
with arbitrary compile time computation and stage hierarchies is
sometimes confusing..

I think the problem can be solved with state/in/out dimensions
recorded at run time, but it requires that the dataflow sorting is
performed at run-time, which might not be a good idea.  In other
words: that would require an interpreter, and we need a compiler.

The thing is that if this meta-data is stored at compile time, then
the detour through vectors I implemented today isn't so useful: the
vector bundled si->so interface doesn't solve composition as the
vector dimensions still need to be known.

So, next problem to solve is to store model meta data in transformer
bindings [1].

Using `syntax-local-value'[2] this information can be retrieved.

The nice thing about this approach is that names can be used in the
`composite-model' form.

[1] http://docs.racket-lang.org/reference/syntax-model.html?q=struct-type&q=define-struct#%28tech._transformer._binding%29
[2] http://docs.racket-lang.org/reference/stxtrans.html#%28def._%28%28quote._~23~25kernel%29._syntax-local-value%29%29