Whats Going On


January 14th

Refactored function specialization, so it can be reused is both the type inferencer and the Octave partial evaluator. In fact, it is already used in the new versions of the given tools.

Known issues,

  • Varargin not yet supported
  • Add some code to see what is happening, or why something is failing
  • Recursive functions not yet supported, old type inferencer only supported self-recursion, so will first implement this.

The partial evaluator is now reusing the octave optimizer, Octave-SuperOpt, which combines constant propagation, copy propagation and common subexpression elimination.

January 7th

Weekend thoughts

Note to self: borrow FC3 DVD from Arthur to gather RPM's for making of an octavec RPM.

January 5th

New year, broken computer. Time to check what is bothering me still in the compiler, results of old code.

  • String representation in AST
  • Internal tools in [prefix]/bin directory
  • Function handle constant propagation
  • Traversal of pack-octave, should use generic forward dataflow strategy

And a lot more I can't think of at the moment...


December 17th

Working on a rewrite of the type inferencer. Why do I have the need to rewrite everything :-S ? Anyway, it gives a good insight in what as working in the old situation and what wasn't working (correctly).

Today it is times to add the rules for binary operators. Not difficult, just a lot of work. Next issue will be type based function specialization.

When the type inferencer is finished, I will define a backward propagation strategy, which we will use to rewrite optimizations like dead code elimination.

We should definitely look at the following optimizations: