1
0
mirror of https://github.com/golang/go synced 2024-11-26 18:16:48 -07:00
go/test
Russ Cox 2da5022bcf change representation of interface values.
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
2009-05-20 14:57:55 -07:00
..
bugs bug152: literal []slice{ } as range expression 2009-05-15 13:17:07 -07:00
chan Don't bother to import "os" just so that we can call 2009-05-16 23:12:28 -07:00
fixedbugs Match gccgo error messages. 2009-05-19 15:23:43 -07:00
ken move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
235.go Don't bother to import "os" just so that we can call 2009-05-16 23:12:28 -07:00
args.go move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
bigalg.go Convert go tree to hierarchical pkg directory: 2009-04-16 20:52:37 -07:00
char_lit.go move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
closedchan.go add test for close/closed, fix a few implementation bugs. 2009-03-23 18:50:35 -07:00
closure.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
cmp1.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
cmp2.go implement new restrictions on what 2009-01-26 09:56:42 -08:00
cmp3.go implement new restrictions on what 2009-01-26 09:56:42 -08:00
cmp4.go implement new restrictions on what 2009-01-26 09:56:42 -08:00
cmp5.go implement new restrictions on what 2009-01-26 09:56:42 -08:00
complit.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
const1.go ^ type(const) now inverts "enough" bits 2009-03-24 16:40:38 -07:00
const2.go Recognize gccgo error message. 2009-03-16 21:48:07 -07:00
const3.go make 6g constants behave as ken proposes. (i hope.) 2009-03-12 19:04:38 -07:00
const.go make 6g constants behave as ken proposes. (i hope.) 2009-03-12 19:04:38 -07:00
convert.go implications of stricter type equality: 2009-05-08 15:40:14 -07:00
convlit1.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
convlit.go update convlit.go to current spec 2009-05-05 11:23:39 -07:00
decl.go typo in message 2009-04-19 21:12:48 -07:00
declbad.go Recognize gcco error messages. 2009-04-28 07:16:03 -07:00
defer.go test for defer 2009-01-27 15:08:08 -08:00
empty.go test of new empty productions 2008-10-08 15:33:18 -07:00
env.go move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
errchk make 6g constants behave as ken proposes. (i hope.) 2009-03-12 19:04:38 -07:00
escape1.go Rename function to avoid function redefinition error. Remove 2009-02-05 12:54:15 -08:00
escape.go if take address of local, move to heap. 2009-01-29 17:38:58 -08:00
export.go delete export 2009-01-20 14:40:40 -08:00
float_lit.go minor int/float fixes 2008-10-29 13:58:12 -07:00
for.go fix bug depot: 2008-08-11 22:07:49 -07:00
func1.go Check for specific error messages in the testsuite. This 2008-09-19 14:39:49 -07:00
func2.go convert *[] to []. 2008-12-18 22:37:22 -08:00
func3.go change in spec results in non-error 2008-10-06 16:27:14 -07:00
func4.go Recognize gccgo error messages: 2009-02-06 15:57:02 -08:00
func5.go update go code tree to new func rules. 2009-01-30 14:39:31 -08:00
func.go delete export 2009-01-20 14:40:40 -08:00
gc1.go gc #0. mark and sweep collector. 2009-01-26 17:37:05 -08:00
gc.go gc #0. mark and sweep collector. 2009-01-26 17:37:05 -08:00
golden.out change representation of interface values. 2009-05-20 14:57:55 -07:00
hashmap.go delete export 2009-01-20 14:40:40 -08:00
helloworld.go fix bug depot: 2008-08-11 22:07:49 -07:00
hilbert.go delete export 2009-01-20 14:40:40 -08:00
if1.go move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
if.go fix bug depot: 2008-08-11 22:07:49 -07:00
import1.go Match gccgo error messages. 2009-05-19 15:23:43 -07:00
import.go implications of stricter type equality: 2009-05-08 15:40:14 -07:00
indirect.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
initcomma.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
int_lit.go move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
interface1.go describe each interface test 2009-05-12 16:09:47 -07:00
interface2.go describe each interface test 2009-05-12 16:09:47 -07:00
interface3.go describe each interface test 2009-05-12 16:09:47 -07:00
interface4.go update reflect for upcoming interface representation change. 2009-05-12 16:08:16 -07:00
interface5.go describe each interface test 2009-05-12 16:09:47 -07:00
interface6.go describe each interface test 2009-05-12 16:09:47 -07:00
interface7.go describe each interface test 2009-05-12 16:09:47 -07:00
interface8.go describe each interface test 2009-05-12 16:09:47 -07:00
interface9.go Match gccgo error messages. 2009-05-19 15:23:43 -07:00
interface10.go describe each interface test 2009-05-12 16:09:47 -07:00
interface11.go update reflect for upcoming interface representation change. 2009-05-12 16:08:16 -07:00
interface.go delete export 2009-01-20 14:40:40 -08:00
iota.go delete export 2009-01-20 14:40:40 -08:00
literal.go fix bug depot: 2008-08-11 22:07:49 -07:00
malloc1.go printf->Printf etc. 2009-01-15 13:48:11 -08:00
mallocrand.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
mallocrep1.go delete export 2009-01-20 14:40:40 -08:00
mallocrep.go convert tests; nothing interesting. 2009-01-16 16:12:14 -08:00
map.go allow range on nil maps 2009-03-23 18:32:37 -07:00
method1.go delete export 2009-01-20 14:40:40 -08:00
method2.go delete export 2009-01-20 14:40:40 -08:00
method3.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
method.go delete export 2009-01-20 14:40:40 -08:00
nil.go delete export 2009-01-20 14:40:40 -08:00
parentype.go Automated g4 rollback of changelist 25024, 2009-03-03 08:39:12 -08:00
peano.go delete export 2009-01-20 14:40:40 -08:00
printbig.go fix printing of -(1<<63) 2008-09-17 14:08:52 -07:00
range.go range over channels. 2009-03-20 11:32:58 -07:00
run update golden.out. 2008-11-17 12:44:22 -08:00
sieve.go delete export 2009-01-20 14:40:40 -08:00
sigchld.go preparation for exec. 2008-12-03 14:21:28 -08:00
simassign.go fix bug depot: 2008-08-11 22:07:49 -07:00
stack.go test for new string bug 2009-04-10 06:22:41 -07:00
string_lit.go move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
stringrange.go change utf8.FullRuneInString and utf8.DecodeRuneInString 2009-05-11 14:10:34 -07:00
switch1.go move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
switch.go fix bug depot: 2008-08-11 22:07:49 -07:00
test0.go delete export 2009-01-20 14:40:40 -08:00
turing.go fix bug depot: 2008-08-11 22:07:49 -07:00
typeswitch.go move things out of sys into os and runtime 2009-05-08 15:21:41 -07:00
utf.go change utf8.FullRuneInString and utf8.DecodeRuneInString 2009-05-11 14:10:34 -07:00
varinit.go The scope rules have been clarified to indicate that a 2008-11-17 12:19:02 -08:00
vectors.go Convert go tree to hierarchical pkg directory: 2009-04-16 20:52:37 -07:00