Age | Commit message (Collapse) | Author | Files | Lines |
|
R=ken
http://go/go-review/1026032
|
|
R=ken
OCL=35920
CL=35920
|
|
R=ken
OCL=35919
CL=35919
|
|
R=ken
OCL=35905
CL=35905
|
|
also eliminate float80 dregs
R=ken
OCL=35894
CL=35896
|
|
because they are in package runtime.
another step to enforcing package boundaries.
R=r
DELTA=732 (114 added, 93 deleted, 525 changed)
OCL=35811
CL=35824
|
|
turn off testdclstack and "not used" errors
when there are syntax errors.
BUG=2181825
R=ken
OCL=35606
CL=35608
|
|
references during the parsing of :=. the base
problem is that when reading
a,b,c,d
the parser makes those refer to existing variables,
which might create a few stub top-level ones
for undefined names, but then if a := is the next
token, we need to undo those stubs.
this was causing problems in multifile packages
in which one file used a := variable named rpc
and the other imported a package named rpc.
R=ken
OCL=35446
CL=35446
|
|
R=ken
OCL=34859
CL=34865
|
|
R=ken
OCL=34732
CL=34756
|
|
universe block names.
BUG=2097244
R=ken
OCL=34295
CL=34473
|
|
R=ken
OCL=34465
CL=34470
|
|
plateau - more to come
R=rsc
OCL=34413
CL=34413
|
|
R=ken
OCL=34339
CL=34341
|
|
added iant's bug202 (in main code)
and ken's bug203 (in init function).
bug187 remains at large.
R=ken
OCL=34293
CL=34293
|
|
R=ken
OCL=34244
CL=34249
|
|
R=ken
OCL=34232
CL=34232
|
|
R=rsc
OCL=34090
CL=34090
|
|
to write type descriptors for ideal types
R=ken
OCL=33958
CL=33958
|
|
do not emit unreachable data symbols.
R=austin
DELTA=103 (71 added, 4 deleted, 28 changed)
OCL=33325
CL=33622
|
|
import "fmt"
var fmt = 1
R=ken
OCL=33556
CL=33561
|
|
in the presence of yacc lookahead.
better but still not perfect
R=ken
OCL=33541
CL=33541
|
|
R=ken
OCL=33526
CL=33528
|
|
R=ken
OCL=33134
CL=33141
|
|
R=ken
OCL=33108
CL=33113
|
|
x.go:3: invalid indirect of X (type int)
was
x.go:3: invalid indirect of nil
R=ken
OCL=33008
CL=33008
|
|
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
|
|
R=ken
OCL=32888
CL=32888
|
|
still to do:
* initializer cycle detection
* nicer error for type checking cycles
R=ken
OCL=32855
CL=32880
|
|
R=ken
OCL=32780
CL=32780
|
|
R=ken
OCL=32772
CL=32772
|
|
collapse a lot of duplication in dcl.c
switch to NodeList* from Dcl*
R=ken
OCL=32770
CL=32770
|
|
and delete some dead code.
no actual changes here.
R=ken
OCL=32764
CL=32764
|
|
split into typecheck + walk
R=ken
OCL=32726
CL=32726
|
|
typecheck.c is now responsible for all type checking
except for assignment and function argument "..."
R=ken
OCL=32661
CL=32667
|
|
R=ken
OCL=32576
CL=32580
|
|
handled by typecheck.
second switch is gone
move floating point minus into back end
R=ken
OCL=32558
CL=32558
|
|
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
|
|
not complete but compiler still works.
R=ken
OCL=32424
CL=32426
|
|
R=ken
OCL=32421
CL=32421
|
|
R=ken
OCL=32419
CL=32419
|
|
R=ken
OCL=32253
CL=32253
|
|
just like ONAME etc.
R=ken
OCL=31964
CL=31964
|
|
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
|
|
consts in the same factored block
const (
X = Y;
Y = 2;
)
R=ken
OCL=31782
CL=31782
|
|
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
|
|
delay evaluation of most types (all but func)
from parse time to type check time.
R=ken
OCL=31585
CL=31585
|
|
R=ken
OCL=31582
CL=31582
|
|
walkstate -> walkstmt
walktype -> walkexpr; stmts moved to walkstmt
walktype and friends have a final Node **init
argument that can have side effects appended,
making it more explicit when they do and do not happen.
this replaces the old global addtop and addtotop.
delete switch map and interface conversion cases
(dropped from the language months ago).
R=ken
OCL=31465
CL=31468
|
|
so remove code from go.y.
show original types in badtype; don't remove pointers.
not sure why this was here but it confuses things
if the bad part involves two named pointer types
with different names but the same pointed-at type.
R=ken
OCL=31369
CL=31369
|