On Tue, Nov 29, 2005 at 12:08:01PM -0800, Chip Salzenberg wrote:
> Therefore, I propose requiring people to spell aliasing as ':='.  This will
> affect all code generated to use P and S registers.  It should be an easy fix
> (albeit an extensive one).  And if we don't do it now, it'll just get harder.
> 
> So here's the lowdown:
> 
>    P0 := P1      # aliasing:   P0 and P1 point to same PMC
>    P0 := opcode  # aliasing:   P0 points to PMC returned by opcode
>    P0 = ...      # assignment: modifies P0, NO MATTER WHAT '...' IS
> 
>    S0 := S1      # aliasing:   S0 and S1 point to same header
>    S0 := opcode  # aliasing:   S0 points to header returned by opcode
>    S0 = ...      # assignment: modifies S0, NO MATTER WHAT '...' IS
> [...]
> Comments?  Fresh or rotten vegetables?

First comment:  How do we coordinate the transition?  Do we go to
having a separate branch (ick), or do we just declare a date in
which the grand renaming will take place?  

Second comment: how about access to keyed items -- does this mean:

    P0 := P1[S1]   # alias
    S0 = P1[S1]    # assignment
    I0 = P1[S1]    # assignment
    N0 = P1[S1]    # assignment

    P0 = P1[S1]    # supported?
    S0 := P1[S1]   # presumably an error?

Personally I haven't had much trouble with '=' and I don't think
I ever use ':='.  Perhaps I've just trained myself to the current
implementation, but I like that the shorter '=' does what I tend
to want/expect and I write an explicit 'assign' or 'set' opcode when
I need something different.

Pm

Reply via email to