- 29 Jul, 2009 10 commits
-
-
Russ Cox authored
R=ken OCL=32421 CL=32421
-
Austin Clements authored
single frame and non-overlapping variables reuse frame slots. As a result, entering and exiting blocks no longer requires code execution, which means jumps across block boundaries should be doable now. Frame slot initialization happens at definition time now, instead of at frame creation time. As an added bonus, Scope's are now exclusively compile-time objects and we no longer need to specially track the function activation frame for access to out vars. R=rsc APPROVED=rsc DELTA=313 (102 added, 90 deleted, 121 changed) OCL=32416 CL=32420
-
Russ Cox authored
R=ken OCL=32419 CL=32419
-
Russ Cox authored
R=r DELTA=9 (8 added, 0 deleted, 1 changed) OCL=32413 CL=32418
-
Russ Cox authored
so that == on func means that the functions originated in the same execution of a func literal or definition. before, there was an inconsistency: func() {x++} != func() {x++} but func() {} == func() {} this CL makes the second case != too, just like make(map[int]int) != make(map[int]int) R=r DELTA=202 (71 added, 62 deleted, 69 changed) OCL=32393 CL=32398
-
David Symonds authored
This makes the list closed under its provided operations. R=rsc,gri APPROVED=rsc DELTA=18 (14 added, 0 deleted, 4 changed) OCL=32388 CL=32395
-
Robert Griesemer authored
R=rsc DELTA=3 (3 added, 0 deleted, 0 changed) OCL=32389 CL=32392
-
Rob Pike authored
easier and faster to read. they are now either a one-byte value or a n-byte value preceded by a byte holding -n. R=rsc DELTA=150 (45 added, 7 deleted, 98 changed) OCL=32381 CL=32387
-
Russ Cox authored
R=ken OCL=32264 CL=32386
-
Russ Cox authored
(reported by iant) R=r DELTA=50 (32 added, 12 deleted, 6 changed) OCL=32263 CL=32385
-
- 28 Jul, 2009 18 commits
-
-
Austin Clements authored
R=rsc APPROVED=rsc DELTA=304 (281 added, 0 deleted, 23 changed) OCL=32361 CL=32382
-
Robert Griesemer authored
gofmt formatted source code looks pretty good already; with a bit more fine-tuning it should be great. printer.go: - Implemented comment intersperse algorithm. The approach is a result of many trial-and-error experiments but at this point reasonably simple and open to arbitrary fine-tuning. parser.go: - Simplified handling of lead and line comments (formerly called leading and trailing comments). - Use a comments list instead of an array (I may change this back - this is not obviously better and uses more space). doc.go: - Remove comments from AST nodes that have been 'consumed' in the documentation to avoid duplicate printing of them. Allows for better control of what is printed w/o use of printing control flags (which are hard to use and not fine-grained enough). Corresponding adjustments to various clients of these files. R=rsc DELTA=478 (275 added, 108 deleted, 95 changed) OCL=32185 CL=32380
-
Austin Clements authored
jump to the post statement instead of the condition check. R=rsc APPROVED=rsc DELTA=10 (6 added, 1 deleted, 3 changed) OCL=32359 CL=32379
-
Robert Griesemer authored
TBR=rsc OCL=32330 CL=32330
-
Robert Griesemer authored
- Provides analogous functionality to a doubly-linked list implementation. - Completely symmetric set of operations. - Operations on the ADT do not lead to results that are outside the domain of the ADT (closed interface). - Alternative to container/list. R=rsc DELTA=489 (489 added, 0 deleted, 0 changed) OCL=32284 CL=32323
-
Russ Cox authored
R=r DELTA=13 (8 added, 2 deleted, 3 changed) OCL=32291 CL=32322
-
Russ Cox authored
pow10 was giving up too easily. R=r DELTA=4 (0 added, 3 deleted, 1 changed) OCL=32310 CL=32321
-
Austin Clements authored
and decrement. blockCompilers now form a tree the mimics the nesting of scopes and provide convenient ways to enter and exit scopes. blockCompilers also track the break and continue PC for the current block. The statement testing interface now works in lists of statements, which simplifies a bunch of things. R=rsc APPROVED=rsc DELTA=401 (335 added, 44 deleted, 22 changed) OCL=32308 CL=32317
-
Rob Pike authored
- derive int, uint, float, uintptr decoders based on their size - add overflow checks in decode R=rsc DELTA=407 (281 added, 44 deleted, 82 changed) OCL=32286 CL=32290
-
Rob Pike authored
R=rsc DELTA=16 (16 added, 0 deleted, 0 changed) OCL=32288 CL=32288
-
Rob Pike authored
R=rsc DELTA=5 (5 added, 0 deleted, 0 changed) OCL=32283 CL=32287
-
Phil Pennock authored
R=r,gri,rsc APPROVED=rsc DELTA=53 (12 added, 6 deleted, 35 changed) OCL=31822 CL=32282
-
Austin Clements authored
pointer to the Type instead of the address of the Type. R=rsc APPROVED=rsc DELTA=1 (0 added, 0 deleted, 1 changed) OCL=32265 CL=32279
-
Russ Cox authored
R=ken OCL=32261 CL=32261
-
Austin Clements authored
unpacking for assignments, call arguments, and returns. This change revamps the whole assignment compilation system to be multi-valued, using the new MultiType type and multiV value. Function calls, returns, and assignments now share a lot of code and produce very consistent error messages. R=rsc APPROVED=rsc DELTA=510 (335 added, 74 deleted, 101 changed) OCL=32248 CL=32258
-
Russ Cox authored
R=ken OCL=32257 CL=32257
-
Rob Pike authored
R=rsc DELTA=160 (124 added, 0 deleted, 36 changed) OCL=32233 CL=32256
-
Russ Cox authored
R=ken OCL=32255 CL=32255
-
- 27 Jul, 2009 12 commits
-
-
Russ Cox authored
R=ken OCL=32253 CL=32253
-
Russ Cox authored
R=ken OCL=32252 CL=32252
-
Russ Cox authored
for slice or string x. R=ken OCL=32249 CL=32249
-
Austin Clements authored
R=rsc APPROVED=rsc DELTA=2 (0 added, 0 deleted, 2 changed) OCL=32245 CL=32247
-
Russ Cox authored
R=ken OCL=32244 CL=32244
-
Russ Cox authored
a := true; a |= a; in the front end. R=ken OCL=32240 CL=32243
-
Russ Cox authored
R=ken OCL=32239 CL=32239
-
Ivan Krasin authored
the size of chunk with uncompressed data (00 is terms of DEFLATE). APPROVED=rsc DELTA=15 (14 added, 0 deleted, 1 changed) OCL=32105 CL=32238
-
Russ Cox authored
saving of sp was too far away from use in scanstack; the stack had changed since the sp was saved. R=r DELTA=9 (4 added, 2 deleted, 3 changed) OCL=32232 CL=32237
-
Austin Clements authored
function calling. Implement a type compiler and named types. Implement a universal scope containing built-in named types, and some built-in constants. Implement a simple virtual machine for executing statements and single-valued return. Fix many places that incorrectly dealt with named types. In particular, the Type.Zero methods now use the type's bit count to determine the appropriate value representation. As a result, a bit count of 0 now means architecture-dependent and bounded types use unsafe.Sizeof to determine the correct bounds. Previously, the bounds on a 32-bit machine would have been wrong. Eliminated Type.compatible, since the implementation is equivalent for all types. Added Type.rep that shallowly strips named types. Replaced almost all uses of Type.literal with Type.rep. Fix implementation of assign-op's so it only evaluates the left side once. As part of this, there is now a generic way to separate out the effect and value of an expression. R=rsc APPROVED=rsc DELTA=1530 (1244 added, 68 deleted, 218 changed) OCL=32184 CL=32230
-
Russ Cox authored
TBR=r OCL=32225 CL=32225
-
Rob Pike authored
R=rsc DELTA=298 (202 added, 0 deleted, 96 changed) OCL=32006 CL=32224
-