Age | Commit message (Collapse) | Author | Files | Lines |
|
R=ken
OCL=35799
CL=35799
|
|
turn off testdclstack and "not used" errors
when there are syntax errors.
BUG=2181825
R=ken
OCL=35606
CL=35608
|
|
fix bug198.
R=ken
OCL=35504
CL=35507
|
|
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
|
|
hook up to 8g and 5g too.
R=ken
OCL=34768
CL=34768
|
|
R=ken
OCL=34732
CL=34756
|
|
fix some bugs involving _.
R=ken
OCL=34621
CL=34621
|
|
init function context.
also moved composit literal
code from walk.c to sinit.c
R=rsc
OCL=34503
CL=34503
|
|
universe block names.
BUG=2097244
R=ken
OCL=34295
CL=34473
|
|
R=ken
OCL=34471
CL=34471
|
|
R=ken
OCL=34465
CL=34470
|
|
R=rsc
OCL=34462
CL=34462
|
|
plateau - more to come
R=rsc
OCL=34413
CL=34413
|
|
R=ken
OCL=34339
CL=34341
|
|
R=ken
OCL=34244
CL=34249
|
|
to write type descriptors for ideal types
R=ken
OCL=33958
CL=33958
|
|
R=ken
OCL=33765
CL=33765
|
|
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=33108
CL=33113
|
|
R=ken
OCL=33063
CL=33095
|
|
R=ken
OCL=33051
CL=33051
|
|
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
|
|
still to do - overflow, mod
R=rsc
OCL=32927
CL=32927
|
|
R=ken
OCL=32886
CL=32886
|
|
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
|
|
R=ken
OCL=32750
CL=32753
|
|
split into typecheck + walk
R=ken
OCL=32726
CL=32726
|
|
R=ken
OCL=32716
CL=32720
|
|
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
|
|
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
|
|
excluding import data,
no yacc node has type Type* anymore.
0 reduce/reduce conflicts.
R=ken
OCL=31793
CL=31795
|
|
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
|
|
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
|
|
R=ken
OCL=31310
CL=31310
|
|
R=ken
OCL=31122
CL=31278
|
|
* give genwrapper and genembedtramp the same signature.
* move duint8, duint16, duint32, duint64, duintptr into gc.
* tidy genwrapper.
* bug involving struct field symbols in signature list.
(hash-order dependent so hard to trigger)
* new Type print format %#-T like %#T but omits
names on function arguments.
R=ken
OCL=31237
CL=31237
|