Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-03-24 05:44:00 -0800 (Thu, 24 Mar 2005)
Revision: 7027
Log message:
A number of changes to the closure/sweeper:
1) The "let type" now has the form
let type <ty_params_c> as <bound_ty_params_c> : <singleton_ty_params_c> = <ty_args_c> in rest
where the new "<bound_ty_params_c> :" is the ty_args{| |} of the variables
bound by ty_params_c.
2) I attempted to use the <bound_ty_params_c> in the closure (as we've
discussed in the "Problems with close_letrec_phase1" thread). Surprisingly, it
didn't affect any test results. I still puzzled by this.
3) When closing for variable v:ty, one needs to close for the free variables
of ty as well!
4) Optimizations:
- when looking for variable indeces, scan the hyps _once_, build a table
and use the table for lookup.
- first create "let exp" without any "let type" in the picture, then create
the "let type".
Jason, please take a look. If you think I got it right, then you'd probably
want to replicate the changes to the x86.