summaryrefslogtreecommitdiff
path: root/src/cmd/gc
AgeCommit message (Collapse)AuthorFilesLines
2009-08-136g/6l: add go type information to symbol table.Russ Cox3-3/+12
archive size +70% binary size +30% old wreck.mtv=; ls -l /Users/rsc/bin/{godoc,gofmt} -rwxr-xr-x 1 rsc eng 1487922 Aug 13 13:21 /Users/rsc/bin/godoc -rwxr-xr-x 1 rsc eng 995995 Aug 13 13:21 /Users/rsc/bin/gofmt wreck.mtv=; du -sh $GOROOT/pkg/ 9.5M /home/rsc/go/pkg/ wreck.mtv=; new wreck.mtv=; ls -l /Users/rsc/bin/{godoc,gofmt} -rwxr-xr-x 1 rsc eng 2014390 Aug 13 14:25 /Users/rsc/bin/godoc -rwxr-xr-x 1 rsc eng 1268705 Aug 13 14:25 /Users/rsc/bin/gofmt wreck.mtv=; du -sh $GOROOT/pkg 16M /home/rsc/go/pkg wreck.mtv=; R=ken OCL=33217 CL=33220
2009-08-12mechanism for putting go types into 6.out symbol table.Russ Cox1-2/+1
no types yet. R=ken OCL=33142 CL=33146
2009-08-12rm outfile if 6g exits with an errorRuss Cox1-3/+6
R=ken OCL=33134 CL=33141
2009-08-12bug188 - sort(x)Russ Cox2-1/+9
R=ken OCL=33123 CL=33123
2009-08-12delete code for forward type declarationsRuss Cox9-170/+6
R=ken OCL=33108 CL=33113
2009-08-12whole-package compilationRuss Cox7-83/+204
R=ken OCL=33063 CL=33095
2009-08-11bug186 - f(iota)Russ Cox3-4/+9
R=ken OCL=33051 CL=33051
2009-08-10fix indirect errorRuss Cox2-2/+4
x.go:3: invalid indirect of X (type int) was x.go:3: invalid indirect of nil R=ken OCL=33008 CL=33008
2009-08-091. integer division by a constant done.Ken Thompson2-1/+295
2. moved functions from 6g to gc for portability to other families. 3. added rotate-carry instructions to peek and reg. R=rsc OCL=32946 CL=32946
2009-08-08plateau in divide by a constantKen Thompson1-1/+1
still to do - overflow, mod R=rsc OCL=32927 CL=32927
2009-08-07bug159Russ Cox1-1/+14
R=ken OCL=32902 CL=32914
2009-08-07bug185 - return b,a from func() (a,b int)Russ Cox1-4/+34
R=ken OCL=32900 CL=32900
2009-08-07bug184 - assignment compatibility in unpacked multireturnRuss Cox2-16/+31
R=ken OCL=32890 CL=32894
2009-08-07bug183 - embedded vs non-embedded struct field in eqtypeRuss Cox1-0/+2
R=ken OCL=32888 CL=32888
2009-08-07bug182 - compiler crashRuss Cox1-1/+1
R=ken OCL=32887 CL=32887
2009-08-07bug181 - type T *struct { T } is an invalid embedded typeRuss Cox3-2/+11
R=ken OCL=32886 CL=32886
2009-08-07clean up a few error messages;Russ Cox2-2/+2
disable func redeclaration mismatch test; fix golden.out R=ken OCL=32883 CL=32883
2009-08-07forward declarations not necessary.Russ Cox16-668/+990
still to do: * initializer cycle detection * nicer error for type checking cycles R=ken OCL=32855 CL=32880
2009-08-05delay range processing. old2new is goneRuss Cox9-363/+286
R=ken OCL=32780 CL=32780
2009-08-05delay := processingRuss Cox8-326/+214
R=ken OCL=32772 CL=32772
2009-08-04make Syms smaller.Russ Cox10-408/+204
collapse a lot of duplication in dcl.c switch to NodeList* from Dcl* R=ken OCL=32770 CL=32770
2009-08-04move various bits of code aroundRuss Cox7-1238/+1232
and delete some dead code. no actual changes here. R=ken OCL=32764 CL=32764
2009-08-04delayed evaluation of var blocksRuss Cox6-48/+97
R=ken OCL=32750 CL=32753
2009-08-04move select into its own file.Russ Cox6-237/+184
split into typecheck + walk R=ken OCL=32726 CL=32726
2009-08-04type checking of assignments, switch, if, forRuss Cox6-643/+411
R=ken OCL=32716 CL=32720
2009-08-03more 6g reorg; checkpoint.Russ Cox9-1354/+1130
typecheck.c is now responsible for all type checking except for assignment and function argument "..." R=ken OCL=32661 CL=32667
2009-07-31missed in last checkinRuss Cox1-0/+20
R=ken OCL=32581 CL=32581
2009-07-31checkpoint; still plenty to clean upRuss Cox11-1039/+490
R=ken OCL=32576 CL=32580
2009-07-30delete some code from walkexpr that is nowRuss Cox3-294/+89
handled by typecheck. second switch is gone move floating point minus into back end R=ken OCL=32558 CL=32558
2009-07-30typechecking checkpoint.Russ Cox12-546/+1318
started to move typechecking to another file. can build entire tree still, but lots of work is duplicated. much to clean up. R=ken OCL=32536 CL=32543
2009-07-29break and continue fixesRuss Cox1-28/+27
labeled break/continue was using first loop with any label, not first loop with the right label. R=ken OCL=32453 CL=32458
2009-07-29introduce typecheck pass before walkexpr.Russ Cox5-109/+393
not complete but compiler still works. R=ken OCL=32424 CL=32426
2009-07-29convert walkexpr to take Node**; drop indirRuss Cox7-215/+225
R=ken OCL=32421 CL=32421
2009-07-29expression printer; %#NRuss Cox4-0/+340
R=ken OCL=32419 CL=32419
2009-07-28make every func literal expression allocate,Russ Cox1-68/+60
so that == on func means that the functions originated in the same execution of a func literal or definition. before, there was an inconsistency: func() {x++} != func() {x++} but func() {} == func() {} this CL makes the second case != too, just like make(map[int]int) != make(map[int]int) R=r DELTA=202 (71 added, 62 deleted, 69 changed) OCL=32393 CL=32398
2009-07-28bug177: anonymous struct fields in reflectRuss Cox1-1/+1
(reported by iant) R=r DELTA=50 (32 added, 12 deleted, 6 changed) OCL=32263 CL=32385
2009-07-27constant keys for array initializersRuss Cox2-1/+4
R=ken OCL=32261 CL=32261
2009-07-27bug170; fix test for bug175Russ Cox1-1/+5
R=ken OCL=32255 CL=32255
2009-07-27multiple return in := bugRuss Cox2-0/+13
R=ken OCL=32253 CL=32253
2009-07-27print(1<<x)Russ Cox2-4/+5
R=ken OCL=32252 CL=32252
2009-07-27named string type bugsRuss Cox1-5/+13
R=ken OCL=32244 CL=32244
2009-07-27catchRuss Cox1-3/+9
a := true; a |= a; in the front end. R=ken OCL=32240 CL=32243
2009-07-27do not insert implicit "return;" in empty function bodyRuss Cox2-2/+2
R=ken OCL=32239 CL=32239
2009-07-21do not use ONONAMEs for line number information,Russ Cox1-0/+1
just like ONAME etc. R=ken OCL=31964 CL=31964
2009-07-20fix cut-and-paste bugs in error messagesRuss Cox1-5/+6
R=ken OCL=31890 CL=31890
2009-07-20avoid strncat in formatters.Russ Cox1-94/+55
the n argument to strncat is the maximum number of bytes to read from the src, not the total size of the destination. R=ken OCL=31871 CL=31875
2009-07-20explain selectsend problemRuss Cox1-1/+4
R=ken OCL=31865 CL=31867
2009-07-17another baby step.Russ Cox4-68/+70
excluding import data, no yacc node has type Type* anymore. 0 reduce/reduce conflicts. R=ken OCL=31793 CL=31795
2009-07-17baby step: const decls can refer to futureRuss Cox9-151/+363
consts in the same factored block const ( X = Y; Y = 2; ) R=ken OCL=31782 CL=31782
2009-07-17another step toward eliminating forward declarations.Russ Cox13-1897/+1744
introduce NodeList* type in compiler to replace OLIST. this clarifies where lists can and cannot occur. list append and concatenation are now cheap. the _r rules are gone from yacc. rev and unrev are gone. no more lists of lists. the representation of assignments is a bit clunkier. split into OAS (1=1) and OAS2 (2 or more on one side). delete dead chanrecv3 code. delay construction of func types. R=ken OCL=31745 CL=31762