Mon May 27 10:33:24 EDT 2013


The auto-lifting is really clumsy to deal with.  In practice it isn't
even needed so much: most parameter use seems to be constants from
context, so it might be better to explicitly dereference arrays.

For the internal state: auto-lifting is essential, since there is no
way to annotate it in the text, and it will always follow the same

So, let's get rid of the `bus' thing altogether, and use an explicit
deconstructor like the Racket sequences.

If it is done this way, types inside loop bodies will be scalar,
except for the outputs and the explicitly mentioned inputs, which will
be arrays.

What happens for state i/o?  It needs to be wrapped with
dereferencing operations.

This is a big change.  Is it compatible?  There is already explicit
indexing, so it looks like it would be possible.  Let's give it a try.

Yes, by tracking the current loop type, it is possible to insert
unpack/pack instructions for the state threading.

The rest should be straightforward except for details of type
annotation, but it is a permanent change.  Will break `reduce/n'.

This probably needs virtual buffers to implement multi-dim arrays.

Auto-lifting is removed from for/n.  Up to now everything looks good.
Insertion of virtual access is going to need some work.

meta/rai test synth works
next: access to loop indices