DavePearce/Whiley — Issue #68: Improvements to Front-End Design
Author: DavePearce
Created: 2012-02-13 00:05:14+00:00
State: open

Basically, the front-end is currently a pile of cack. It needs to be improved, dramatically! See this post:

http://whiley.org/2012/02/13/design-of-the-whiley-compiler-wyc-front-end/

The main changes required I think are:

1. Separate resolution from expansion. In fact, expansion can be a purely Wyil activity, since it doesn't depend on anything else. This would mean nominal information was retained in Wyil up until the point of expansion.
2. Turn LocalGenerator into BlockGenerator, and do this first. Some abstract bytecodes will be required to defer a few important decisions (particularly, invocation and switch statements).
3. LocalResolver then becomes TypePropagation again. Or, perhaps BlockTyping or BlockInference.

Need to think whether this will really work or not. One critical issue is that we'll need proper support for intersection for representing intersection of nominal types.