syntax of function types and making them "reference types" like slice,
map, and chan. First step in Russ' proposal.
DELTA=111 (32 added, 15 deleted, 64 changed)
OCL=23669
CL=23964
- removed explicit "export" declarations and keyword
- fixed a few glitches and adjusted examples
(The details of what "export" mean should be clarified
in the spec, this is just so we have a working doc for
now.)
R=r
DELTA=131 (7 added, 63 deleted, 61 changed)
OCL=22753
CL=22970
Instead of trying to make open arrays look like arrays (which they aren't,
they just look like them), I decided to call them "slice types". As a result
they have value semantics, and one can really talk about what they really are.
Note:
- There are lots of missing details
- There are probably lots of mistakes
Looking for some initial feedback.
R=r
DELTA=444 (180 added, 189 deleted, 75 changed)
OCL=21769
CL=22020
in favor of explicit constructs
- simpler, clearer, and shorter overall
- no spec changes
(in retrospect it was just a (my) mistake to put it in in the first place)
R=r
DELTA=55 (13 added, 28 deleted, 14 changed)
OCL=21434
CL=21462
- language for type guards
- fixed language for break statements
Also: Removed uses of "we" and replaced by impersonal language.
Minor cosmetic changes.
DELTA=237 (160 added, 34 deleted, 43 changed)
OCL=18620
CL=18800
spec.
I have deliberately removed the wording about receivers where it was
before because I think it needs to be more precise. There is a TODO.
DELTA=90 (54 added, 0 deleted, 36 changed)
OCL=17597
CL=17716
(for instance *p was not allowed on the left side of "="). Changed
to Expression everywhere (this is too liberal, UnaryExpr is probably
good enough, but it seems funny, and we need to check semantically
anyway). This matches 6g yacc.
- Write expression syntac recursively to express evaluation order
and precedence syntactically.
- Organized open issues list, folded in stuff from todo.txt which
is now obsolete.
R=r
DELTA=108 (41 added, 52 deleted, 15 changed)
OCL=16903
CL=16910
- more precise wording by having an explicit list of cases
- simplified statement list
R=r
DELTA=16 (10 added, 0 deleted, 6 changed)
OCL=16871
CL=16875
- language for selectors and array/map indices
- formal description of syntax notation used
- factor out common productions to better show
symmetries in grammar
R=r
DELTA=113 (77 added, 13 deleted, 23 changed)
OCL=16853
CL=16865
except in statement list, where it is expressed in words
- allow for empty import, const, type, and var decl lists inside ()'s
- fixed grammar for inc/dec statements
- added empty statement as it appears to be accepted by 6g
R=r
DELTA=75 (23 added, 21 deleted, 31 changed)
OCL=16785
CL=16785
- typename cannot refer to interface types
- clarified syntax
- added TODO re: type name issue with qualified identifiers
Changed/fixed order of operators/keywords.
R=r
DELTA=10 (3 added, 0 deleted, 7 changed)
OCL=16337
CL=16339
- added "..." to list of delimiters (slightly re-arranged that table)
- rename of 2 productions for more consistent naming
R=r
DELTA=20 (7 added, 1 deleted, 12 changed)
OCL=16101
CL=16103
- leave only basic type conversions in that section
- we have a section of composite literals which covers those
- we have a section prepared (but not written) on type guards
- the built-in function "convert" doesn't need to be exposed
as it is redundant
R=r
DELTA=101 (6 added, 77 deleted, 18 changed)
OCL=15986
CL=15991