1
0
mirror of https://github.com/golang/go synced 2024-11-25 07:17:56 -07:00
Commit Graph

149 Commits

Author SHA1 Message Date
Robert Griesemer
a329471ced A first attempt to capture the type changes.
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
2009-01-05 11:17:26 -08:00
Robert Griesemer
6ccca61510 - receiver ident may be optional
R=r
DELTA=5  (2 added, 0 deleted, 3 changed)
OCL=21508
CL=21510
2008-12-18 13:29:11 -08:00
Robert Griesemer
4d23030859 - ripped out excessively fancy way of describing grammar
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
2008-12-17 15:39:15 -08:00
Robert Griesemer
6715358652 - Add introduction section (1 page), essentially a condensed form
of an earlier intro.
- Updated contents section.
- Removed left-over text from earlier documents.

No spec changes.

R=r
DELTA=379  (147 added, 227 deleted, 5 changed)
OCL=21312
CL=21331
2008-12-16 14:45:09 -08:00
Robert Griesemer
30a1a8c922 language for range clause
(I have deliberately left away the forms w/ := or = and
the forms with :)

R=r
DELTA=106  (44 added, 13 deleted, 49 changed)
OCL=21192
CL=21283
2008-12-16 11:38:56 -08:00
Robert Griesemer
ef77c22626 - fixed minor bug in example (found by ken)
R=r
OCL=21272
CL=21272
2008-12-16 10:45:39 -08:00
Robert Griesemer
9dfb2ea7af closing a TODO:
- define integer overflow as wrap-around
- be more specific about machine representation

DELTA=54  (34 added, 7 deleted, 13 changed)
OCL=20870
CL=21070
2008-12-12 10:30:10 -08:00
Robert Griesemer
7354b864b5 Revised proposal for const/var cleanup, with
Ken's suggestion for the "iota" extension to tuples.

DELTA=171  (88 added, 57 deleted, 26 changed)
OCL=20460
CL=20544
2008-12-04 17:33:37 -08:00
Robert Griesemer
337af31781 - allow for multiple method names per function type in an interface decl.
- added some initial language with respect to exports

R=r
DELTA=95  (47 added, 31 deleted, 17 changed)
OCL=19407
CL=19426
2008-11-17 18:11:36 -08:00
Robert Griesemer
a1c85ed83e Package-export proposal:
- syntax change
- missing: corresponding language

DELTA=5  (2 added, 0 deleted, 3 changed)
OCL=19221
CL=19352
2008-11-17 09:51:56 -08:00
Robert Griesemer
434c6052d8 - language to define type equality rigorously
- 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
2008-11-07 13:34:37 -08:00
Robert Griesemer
69e26bf28d - added (incomplete) section on parameter passing
- decribe passing of "..." parameters for a start

R=r
DELTA=70  (69 added, 0 deleted, 1 changed)
OCL=18503
CL=18503
2008-11-04 16:46:45 -08:00
Robert Griesemer
f618f8940d - keeping track of to-do items
R=r
DELTA=15  (10 added, 3 deleted, 2 changed)
OCL=18334
CL=18336
2008-11-03 10:52:28 -08:00
Robert Griesemer
2e90e5424e - language for struct field tags
DELTA=17  (15 added, 0 deleted, 2 changed)
OCL=18177
CL=18184
2008-10-30 15:52:37 -07:00
Robert Griesemer
ebf14c625d - clarified section on numeric types: platform-dependent types
are different from platform-independent types (not just aliases),
  except for byte, uint8
- added missing documentation of new(a, len, cap)
- updated todo/issues lists

DELTA=70  (24 added, 21 deleted, 25 changed)
OCL=17920
CL=18174
2008-10-30 14:50:23 -07:00
Robert Griesemer
2bfa95741f Preparation for varargs: Proposal for syntax.
DELTA=11  (7 added, 0 deleted, 4 changed)
OCL=17772
CL=17804
2008-10-24 13:13:12 -07:00
Robert Griesemer
4712165b17 - clarified that composites are values created every time they
are evaluated, removed corresponding TODO.

R=r
DELTA=5  (3 added, 1 deleted, 1 changed)
OCL=17746
CL=17751
2008-10-23 17:19:56 -07:00
Robert Griesemer
071c91bf48 First cut at incorporating anonymous fields of pointer types into the
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
2008-10-23 12:04:45 -07:00
Robert Griesemer
a6b546fe31 - be even more explicit about ideal number conversion in expressions
- added a note with respect the difference of semantics of *p++ in Go vs C

R=r
DELTA=14  (6 added, 2 deleted, 6 changed)
OCL=17455
CL=17457
2008-10-20 11:46:40 -07:00
Robert Griesemer
71696ac048 clarification of conversion rules for ideal numbers
R=r
DELTA=21  (11 added, 1 deleted, 9 changed)
OCL=17316
CL=17316
2008-10-16 15:03:22 -07:00
Robert Griesemer
b5e0cc7ef5 - added language re: interface compparison using ==, !=
(seems not controversial)

R=r
DELTA=8  (3 added, 2 deleted, 3 changed)
OCL=16940
CL=16940
2008-10-10 16:34:44 -07:00
Robert Griesemer
57b34617e0 - Fixed bug in spec: PrimaryExpr is too restrictive in most places
(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
2008-10-10 12:45:44 -07:00
Robert Griesemer
7271e048fc - added missing case for opt. semicolons (labels)
- 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
2008-10-09 20:05:24 -07:00
Robert Griesemer
bbfe31238b More spec progress:
- 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
2008-10-09 17:12:09 -07:00
Robert Griesemer
aed247fdb9 - make optional semicolons explicit in grammar in all places
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
2008-10-08 17:05:30 -07:00
Robert Griesemer
7abfcd981f - precise scope rules
- forward decls for interface and struct types
- complete & incomplete types
- optional semicolons

R=r
DELTA=216  (95 added, 15 deleted, 106 changed)
OCL=16465
CL=16687
2008-10-07 17:14:30 -07:00
Robert Griesemer
347cf67a85 - precise scope rules
- clarified naming of invisible fields
- fixed syntax of expression statements

R=r
DELTA=70  (33 added, 4 deleted, 33 changed)
OCL=16424
CL=16439
2008-10-03 14:04:28 -07:00
Rob Pike
569a107e0d Revised wording about sends.
Evaluation is done before communication starts.

R=gri
DELTA=19  (4 added, 1 deleted, 14 changed)
OCL=16357
CL=16416
2008-10-03 11:18:45 -07:00
Rob Pike
cd368a259e add a little text clarifying the behavior of 'select'
R=gri
DELTA=18  (8 added, 2 deleted, 8 changed)
OCL=16356
CL=16356
2008-10-02 10:37:12 -07:00
Robert Griesemer
5e92fb20b8 Clarifications re: anonymous fields in structs:
- 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
2008-10-01 17:21:19 -07:00
Robert Griesemer
52a548034e - exceptional conditions during expression evaluation are undefined
- "nil" for interfaces, comparison against "nil"

R=r
DELTA=38  (24 added, 5 deleted, 9 changed)
OCL=16207
CL=16211
2008-09-30 13:02:50 -07:00
Robert Griesemer
c59b2a3db1 - type of array literals is always fixed array
- changed terminology from "embedded type" to "anonymous field"

R=r
DELTA=38  (7 added, 2 deleted, 29 changed)
OCL=16193
CL=16196
2008-09-30 10:57:59 -07:00
Robert Griesemer
a1065faf7c - corrections and more on interface types
R=r
DELTA=35  (12 added, 13 deleted, 10 changed)
OCL=16162
CL=16164
2008-09-29 20:37:46 -07:00
Rob Pike
81672ef15b fix some typos, mostly
R=gri
OCL=16161
CL=16161
2008-09-29 20:06:48 -07:00
Robert Griesemer
1f3e842c73 Some initial language towards embedded types and methods for all types.
More to come.

R=r
DELTA=74  (47 added, 8 deleted, 19 changed)
OCL=16156
CL=16159
2008-09-29 18:41:30 -07:00
Robert Griesemer
cd49927ca7 - added language about string literal concatenation
- 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
2008-09-29 12:09:00 -07:00
Robert Griesemer
75a03a5b00 - added TODO
- changed FieldDecl production in preparation for inlined types

R=r
DELTA=6  (4 added, 0 deleted, 2 changed)
OCL=16046
CL=16046
2008-09-27 14:51:31 -07:00
Robert Griesemer
566e3b2043 - added language with respect to init() restrictions
R=r
DELTA=10  (9 added, 0 deleted, 1 changed)
OCL=16016
CL=16016
2008-09-26 16:41:50 -07:00
Robert Griesemer
133c68e9ac Simplification of Conversions section:
- 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
2008-09-26 14:04:21 -07:00
Robert Griesemer
b9f8b9c43a - fixed Go statement syntax (only notational change)
- 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
2008-09-26 13:38:38 -07:00
Robert Griesemer
ac05579345 1) Fixed spec w/ respect to result types.
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
2008-09-26 11:15:14 -07:00
Ian Lance Taylor
128f052891 Correct two web links, add missing semicolon after &lt.
R=r
DELTA=3  (0 added, 0 deleted, 3 changed)
OCL=15619
CL=15624
2008-09-22 11:29:40 -07:00
Robert Griesemer
b90b213e61 Updated spec:
- 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
2008-09-19 15:49:55 -07:00
Robert Griesemer
6a0fb60866 - added item to TODO list in go_spec
- filed a bug

R=r
OCL=15517
CL=15517
2008-09-18 23:16:22 -07:00
Robert Griesemer
2902a82ca4 adjusted doc to incorporate new channel notation
(still a couple of TODO's with respect to the new
notation).

R=r
DELTA=71  (10 added, 11 deleted, 50 changed)
OCL=15419
CL=15443
2008-09-17 13:57:11 -07:00
Rob Pike
f7a506bf42 tutorial code:
tweak a program or two
delete unused programs
add shell script to run them all

R=gri
DELTA=213  (62 added, 147 deleted, 4 changed)
OCL=15435
CL=15437
2008-09-17 12:14:52 -07:00
Rob Pike
592d2e3d8d update to new communications syntax
R=gri
OCL=15417
CL=15417
2008-09-16 19:40:38 -07:00
Rob Pike
6820196b75 section on service multiplexing
R=gri
DELTA=75  (57 added, 4 deleted, 14 changed)
OCL=15394
CL=15398
2008-09-16 13:14:44 -07:00
Rob Pike
db9002f152 replace 235 with sieve - less problematic
add programs, not yet described, to demonstrate servers.

R=gri
DELTA=279  (177 added, 16 deleted, 86 changed)
OCL=15380
CL=15389
2008-09-16 11:00:11 -07:00
Rob Pike
a43033a315 develop interfaces through cats
sort
2,3,5

R=gri
DELTA=648  (647 added, 0 deleted, 1 changed)
OCL=15315
CL=15352
2008-09-15 11:48:37 -07:00