1. 21 May, 2009 3 commits
    • Russ Cox's avatar
      hash reorg. · 140aed9a
      Russ Cox authored
      * new package hash defining interfaces Hash and Hash32.
      * adler32 and crc32 return Hash32 instead of specific types.
      * adler32 and crc32 provide non-allocating methods for single slices.
      * sha1 and md5 move to crypto, return Hash.
      * sum.go, a simple test program, moves to /usr/rsc.
      * refresh Make.deps
      
      R=r
      DELTA=1908  (935 added, 923 deleted, 50 changed)
      OCL=29095
      CL=29135
      140aed9a
    • Russ Cox's avatar
      new, stricter interface rule: · b89a54e5
      Russ Cox authored
      in x.(T) x cannot be a nil (uninitialized) interface variable.
      
      remove TODO per discussion.
      
      DELTA=3  (1 added, 1 deleted, 1 changed)
      OCL=29123
      CL=29134
      b89a54e5
    • Robert Griesemer's avatar
      semi-weekly snapshot: · 787dd4d3
      Robert Griesemer authored
      - format.go implementation complete
      - lots of documentation added (not quite complete)
      
      TBR=r
      OCL=29130
      CL=29130
      787dd4d3
  2. 20 May, 2009 9 commits
    • Robert Griesemer's avatar
      xcode config files, self-describing · e6cddeae
      Robert Griesemer authored
      R=r
      DELTA=250  (250 added, 0 deleted, 0 changed)
      OCL=29120
      CL=29127
      e6cddeae
    • Russ Cox's avatar
      reflect bug: NewZeroValue was refusing to create slices. · 2d5d4a1b
      Russ Cox authored
      as far as I can tell there's no reason not to.
      
      the Nillable test was succeeding because NewZeroValue
      returned the nil interface value and the type guard
      was letting it through.  the only change in the test is
      more detail in the print.
      
      R=r
      DELTA=8  (0 added, 7 deleted, 1 changed)
      OCL=29124
      CL=29126
      2d5d4a1b
    • Russ Cox's avatar
      ifaceop was being called with integers · a39bae09
      Russ Cox authored
      that came from two different enums.
      spilt into ifacecvt and ifaceop depending
      on which enum the argument is.
      
      R=ken
      OCL=29122
      CL=29122
      a39bae09
    • Russ Cox's avatar
      change representation of interface values. · 2da5022b
      Russ Cox authored
      this is not a user-visible change.
      
      before, all interface values were
      
      	struct Itype {
      		Sigt *type;
      		Sigi *inter;
      		void *method[n];
      	}
      
      	struct Iface {
      		void *addr;
      		Itype *itype;
      	}
      
      the itype is basically a vtable, but it's unnecessary
      if the static type is interface{ }.
      for interface values with static type empty, the
      new representation is
      
      	struct Eface {
      		void *addr;
      		Sigt *type;
      	}
      
      this complicates the code somewhat, but
      it reduces the number of Itypes that
      have to be computed and cached,
      it opens up opportunities to avoid function
      calls in a few common cases,
      and it will make it possible to lay out
      interface{} values at compile time,
      which i think i'll need for the new reflection.
      
      R=ken
      OCL=28701
      CL=29121
      2da5022b
    • Russ Cox's avatar
      fix implicit star for range on *map, *[]. · 47e51527
      Russ Cox authored
      do not update lineno from ONAME nodes,
      	because they have declaration lineno not use.
      show actual name in top-level statement error.
      
      before
      runtime.a:7: x.go:5: walkstate: NAME not a top level statement
      
      after
      x.go:14: walkstate: runtime.Goexit not a top level statement
      
      R=ken
      OCL=29113
      CL=29116
      47e51527
    • Russ Cox's avatar
      clear out pkg tree in clean.bash. · 04d8605c
      Russ Cox authored
      rename place-holder to _place_holder_ so it can be avoided.
      
      R=r
      DELTA=5  (2 added, 2 deleted, 1 changed)
      OCL=29093
      CL=29097
      04d8605c
    • Robert Griesemer's avatar
      removed TODO · c1fd171d
      Robert Griesemer authored
      (new rules on type compatibility cover this already)
      
      DELTA=2  (0 added, 2 deleted, 0 changed)
      OCL=29094
      CL=29096
      c1fd171d
    • Robert Griesemer's avatar
      new method set rules · 56809d0a
      Robert Griesemer authored
      DELTA=63  (27 added, 6 deleted, 30 changed)
      OCL=29065
      CL=29091
      56809d0a
    • Robert Griesemer's avatar
      more useful error string · 1b3b51f7
      Robert Griesemer authored
      R=r
      DELTA=5  (4 added, 0 deleted, 1 changed)
      OCL=29088
      CL=29090
      1b3b51f7
  3. 19 May, 2009 10 commits
  4. 18 May, 2009 11 commits
  5. 17 May, 2009 1 commit
  6. 16 May, 2009 6 commits