summaryrefslogtreecommitdiff
path: root/src/cmd/gc/go.h
AgeCommit message (Collapse)AuthorFilesLines
2009-06-25bug165Russ Cox1-0/+2
R=ken OCL=30783 CL=30783
2009-06-23fix a 6g crash after type errors.Russ Cox1-1/+2
do not bother warning about marks left on stack after syntax errors. leave OCONV nodes in tree to avoid type errors arising from multiple walks. R=ken OCL=30639 CL=30662
2009-06-06implement optional semicolons with help from the lexer,Russ Cox1-0/+5
instead of having to double the type and statement grammars. R=ken OCL=29987 CL=29998
2009-06-06gc: grammar cleanup:Russ Cox1-17/+17
* no longer distinguishes const, var, type, package names. * all the predefined names are not tokens anymore. R=ken OCL=29326 CL=29985
2009-06-02minor cleanup, 64-bit /= and %= on 32-bitRuss Cox1-0/+3
R=ken OCL=29806 CL=29808
2009-05-27clean up gmove:Russ Cox1-2/+6
* conversions all in one place. * no separate load, store phases; direct memory addressing when possible (this is the x86 after all!). avoids extra registers, extra MOVQs. * fixes int32 -> uint64 bug (was zero-extending) R=ken OCL=29482 CL=29484
2009-05-26bug 150Ken Thompson1-1/+0
R=r OCL=29405 CL=29405
2009-05-268g: hello world works againRuss Cox1-0/+1
* string format changed * files got renamed * new files that i forgot to check in last time updates are all copy and paste from 6g R=ken OCL=29385 CL=29400
2009-05-231. check for dups in complex literalsKen Thompson1-0/+1
structtype{a:1, a:2} maptypetype{"xx":1, "xx":2} arraytypetype{5:1, 5:2} 2. bug in registerization concerning alias of a struct and one of its elements 3. code optimization of struct.field (which exposed bug in 2) R=r OCL=29315 CL=29315
2009-05-21enforce channel directionRuss Cox1-3/+3
R=ken OCL=29209 CL=29216
2009-05-21added key:val extension toKen Thompson1-0/+7
structure and array literals R=r OCL=29190 CL=29190
2009-05-20ifaceop was being called with integersRuss Cox1-1/+4
that came from two different enums. spilt into ifacecvt and ifaceop depending on which enum the argument is. R=ken OCL=29122 CL=29122
2009-05-20change representation of interface values.Russ Cox1-0/+1
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-18static initialization of slicesKen Thompson1-2/+4
R=r OCL=29016 CL=29016
2009-05-16static initializationKen Thompson1-1/+1
structure set up - no change yet R=r OCL=28966 CL=28966
2009-05-12no need for compiler to hard-code definition of runtime.Russ Cox1-1/+0
use the actual go source instead. R=r DELTA=90 (66 added, 18 deleted, 6 changed) OCL=28708 CL=28719
2009-05-086g:Russ Cox1-3/+6
new type equality restrictions better handling of renamed packages "sys" is no longer available to programs R=ken OCL=28553 CL=28578
2009-05-08move things out of sys into os and runtimeRuss Cox1-0/+1
R=r OCL=28569 CL=28573
2009-05-08eqtype(t1, t2, 0) => eqtype(t1, t2)Russ Cox1-1/+1
R=ken OCL=28559 CL=28562
2009-05-07if a struct s contains an anonymous interface valueRuss Cox1-0/+1
with method m, s.m() is ok and m now shows up in s's method set for interface runtime. see http://cl/28419-p2 for new test interface10.go. R=ken OCL=28420 CL=28423
2009-05-076g: error messagesRuss Cox1-0/+1
part 2; missing files R=ken OCL=28408 CL=28410
2009-05-066g: new interface rules (code got simpler!)Russ Cox1-6/+1
R=ken OCL=28374 CL=28378
2009-05-066g: generate string data as individual symbols,Russ Cox1-19/+1
so that 6l can discard strings used by dead code. also, for short strings, generate DUPOK global symbols so that references to, say, "%s: %s" in multiple files result in only a single symbol. R=ken OCL=28361 CL=28361
2009-04-09change representation of stringsKen Thompson1-12/+25
R=r OCL=27293 CL=27293
2009-04-08yet another attempt at auto-linkingRuss Cox1-1/+1
store only the original import path string (+ .a) if 6g resolves it to an archive file. let 6l re-resolve the .a at link time. this lets libraries build against an archive in the current directory but get used against an installed archive. R=r OCL=27244 CL=27244
2009-04-02use separate lex buf for better errors:Russ Cox1-0/+1
package main func main() { func(){}() + + } x.go:2: syntax error near _f001 becomes x.go:2: syntax error near func R=ken OCL=27047 CL=27047
2009-04-02implement some more 8gRuss Cox1-0/+1
package main func main() { println("hello,", 123); } R=ken OCL=27043 CL=27043
2009-03-30fix http://b/1748082Russ Cox1-1/+2
package main var f = func(a, b int) int { return a + b } R=ken OCL=26935 CL=26935
2009-03-30move portable object routines (especiallyRuss Cox1-3/+44
signature generation) into gc. R=ken OCL=26933 CL=26933
2009-03-30move portable code generation (basic statements) to gc.Russ Cox1-15/+64
R=ken OCL=26929 CL=26929
2009-03-30move some portable pieces of 6g/gsubr.c into gc/subr.cRuss Cox1-1/+32
int brcom(int); int brrev(int); void setmaxarg(Type*); Sig* lsort(Sig*, int(*)(Sig*, Sig*)); int dotoffset(Node*, int*, Node**); void stringpool(Node*); void tempname(Node*, Type*); R=ken OCL=26922 CL=26922
2009-03-30move alignment calculations into gcRuss Cox1-5/+38
R=ken OCL=26914 CL=26914
2009-03-30move bits.c from 6g to gcRuss Cox1-1/+38
R=ken OCL=26909 CL=26909
2009-03-24throw away most of the compat.h compatibility layerRuss Cox1-1/+0
in favor of the lib9 compatibility layer. no need for two. now that mycreate is gone, .6 files are 0644 not 0755. TBR=r OCL=26679 CL=26679
2009-03-17binary search on type switches.Ken Thompson1-1/+1
new feature 'case nil:' in type switch will match iff the interface is nil. R=r OCL=26404 CL=26404
2009-03-12make 6g constants behave as ken proposes. (i hope.)Russ Cox1-32/+16
various bug fixes and tests involving constants. test/const1.go is the major new test case. R=ken OCL=26216 CL=26224
2009-03-12chan flags close/closed installedKen Thompson1-0/+1
runtime not finished. R=r OCL=26217 CL=26217
2009-03-11added bitclear operators &^ and &^=Ken Thompson1-1/+2
R=r OCL=26152 CL=26152
2009-03-10Add support for a -I option. -I DIR searches for packages inIan Lance Taylor1-0/+9
DIR. R=ken,rsc DELTA=49 (41 added, 2 deleted, 6 changed) OCL=26057 CL=26092
2009-03-061. type switchesKen Thompson1-1/+2
2. fixed fault on bug128 3. got rid of typeof 4. fixed bug in t,ok = I2T R=r OCL=25873 CL=25873
2009-03-05new switch implementationKen Thompson1-2/+1
in preparation of type switch. no functional change (yet). R=r OCL=25784 CL=25788
2009-03-04reject invalid map key types at compile timeRuss Cox1-0/+1
R=ken OCL=25720 CL=25720
2009-03-03back to T{x}, stricter handling of T(x) vs x.(T)Russ Cox1-2/+2
R=ken DELTA=131 (60 added, 41 deleted, 30 changed) OCL=25617 CL=25633
2009-02-13add composite literal ( ) syntax.Russ Cox1-3/+7
warn about composite literal { } syntax. R=ken OCL=25018 CL=25023
2009-02-11require type assertions when narrowing.Russ Cox1-3/+3
R=ken OCL=24350 CL=24914
2009-02-07unsafe.Sizeof and unsafe.OffsetofKen Thompson1-0/+1
R=r OCL=24639 CL=24639
2009-02-06closures - 6g supportRuss Cox1-0/+14
R=ken OCL=24501 CL=24566
2009-02-05bug064Russ Cox1-2/+1
make f(g()) work when g returns multiple args with names different than f expects. func swap(a, b int) (c, d int) { return b, a } swap(swap(1,2)) R=ken OCL=24474 CL=24476
2009-01-30update compiler to new func rulesRuss Cox1-1/+2
R=ken OCL=23958 CL=23961
2009-01-29if take address of local, move to heap.Russ Cox1-4/+18
heuristic to not print bogus strings. fix one error message format. R=ken OCL=23849 CL=23851