Changes between Version 21 and Version 22 of SemiTagging


Ignore:
Timestamp:
Nov 3, 2006 5:44:22 PM (7 years ago)
Author:
alexey
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SemiTagging

    v21 v22  
    9393This would require modifying 
    9494 * the code generation so that when allocating a constructor, the pointer to it has the appropriate bits set (just a matter of adjusting the offset from Hp) 
    95  * perhaps, make the entry code for a constructor return a pointer with the appropriate bits set. That way, a function like `f xs = head (tail xs)` would enter the second element of the list, and return to the caller with appropriate tag bits set. 
     95 * perhaps, make the entry code for a constructor return a pointer with the appropriate bits set. That way, a function like `f xs = head xs` would enter the first element of the list, and return to the caller with appropriate tag bits set. 
    9696 * the GC to set the LSB bit of constructor closure pointers, 
    9797 * the GC and the RTS code to mask out the LSB pointer when dereferencing it, 
    9898 * the code generation to test the LSB bit and case expressions and avoid the indirect jump. 
    99  
    100 (Simon, thanks for the example. I was hoping to not have to enter constructor closures but the second bullet example shows why entering constructors can still happen. However, can't the example just be {{{f xs = head xs}}}? --Alexey) 
    10199 
    102100{{{