No textual changes except for html formatting.
Seems like a fine intermediate step.
R=r
DELTA=7638 (4079 added, 3559 deleted, 0 changed)
OCL=25211
CL=25224
- do not permit + for array concatenation anymore
(not implemented and not a good idea)
- document that unsafe function results are compile time constants
- fixed minor typos
DELTA=41 (7 added, 11 deleted, 23 changed)
OCL=24899
CL=24927
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
will bring document in line in a later CL, which may include revisiting some of the names
R=rsc
DELTA=58 (0 added, 0 deleted, 58 changed)
OCL=22906
CL=22908
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
- simplified Assignment syntax (only notational change)
- added TODOs
- made old text invisible by moving it into HTML comment
R=r
DELTA=107 (4 added, 95 deleted, 8 changed)
OCL=15972
CL=15987
2) Added proposal for making "if" statements consistent with the
other control structures.
R=r
DELTA=59 (32 added, 6 deleted, 21 changed)
OCL=15583
CL=15964
- clarified constants and constant expressions
- clarified type of array composite literals (fixed vs open arrays)
- clarified type of map composite literals (need to use '&' to get
a map pointer)
- added proposal for "if-else" (TBD)
- added TODO w/ respect to "x, ok = <-ch" (and for arrays)
R=r
DELTA=51 (35 added, 0 deleted, 16 changed)
OCL=15573
CL=15575
separate between ints and floats, added language regarding the
type of numeric literals)
- added language with respect to the scope of labels
- introduced ideal types for the purpose of the spec
- added language to expressions, operands
- added some more formal language about ideal type conversion
(probably not 100% correct yet)
R=r
DELTA=145 (69 added, 4 deleted, 72 changed)
OCL=15165
CL=15186
(work now with Ken's latest compiler fix)
- exoanded test cases accordingly
- fixed a type in the spec (thx r)
R=r
DELTA=65 (62 added, 2 deleted, 1 changed)
OCL=15050
CL=15050
- fixed several examples to use new function type syntax
- added list of open spec issues to todo.txt
R=r
DELTA=143 (88 added, 8 deleted, 47 changed)
OCL=14974
CL=15007
- removed "func" from function type
- make it work by changing composite literal syntax to use {} instead of ()
FunctionType is now more in line with the rest of the declarations, as the
keyword "func" is now really part of the declaration and not part of the type.
R=r,ken
DELTA=49 (14 added, 12 deleted, 23 changed)
OCL=14864
CL=14955