summaryrefslogtreecommitdiff
path: root/usr
AgeCommit message (Collapse)AuthorFilesLines
2009-07-29Flatten the Frame tree. Now each function call produces aAustin Clements8-206/+218
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
2009-07-28Implement comparison operators.Austin Clements1-21/+302
R=rsc APPROVED=rsc DELTA=304 (281 added, 0 deleted, 23 changed) OCL=32361 CL=32382
2009-07-28Fix segfault on unnamed function arguments. Make continueAustin Clements1-4/+9
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
2009-07-28Implement if, for (modulo ranges), break, continue, increment,Austin Clements3-31/+322
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
2009-07-28Support use of $GOBINDIR to override $HOME/binPhil Pennock1-2/+3
R=r,gri,rsc APPROVED=rsc DELTA=53 (12 added, 6 deleted, 35 changed) OCL=31822 CL=32282
2009-07-28Fix bug where typeArrayMap was using the address of theAustin Clements1-1/+1
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
2009-07-27Implement multi-valued functions, multi-valued return, andAustin Clements5-164/+425
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
2009-07-27Fix bug where nothing could ever be added to a code buffer.Austin Clements1-2/+2
R=rsc APPROVED=rsc DELTA=2 (0 added, 0 deleted, 2 changed) OCL=32245 CL=32247
2009-07-27Implement single-valued, non-variadic function literals andAustin Clements9-265/+1453
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
2009-07-21Implement assignment. Move convertTo.Austin Clements2-93/+518
R=rsc APPROVED=rsc DELTA=591 (497 added, 76 deleted, 18 changed) OCL=31933 CL=31955
2009-07-21Cleanup of Type/Value interface. Add Type.ZeroVal, replaceAustin Clements5-145/+190
all type-specific value functions, and use ZeroVal to create new frames. Remove Value.Type; it was unused and difficult for values with composite types. Add Value.Assign methods. R=rsc APPROVED=rsc DELTA=282 (135 added, 90 deleted, 57 changed) OCL=31894 CL=31930
2009-07-20Implement array types and index expressions.Austin Clements5-57/+258
Some cleanup. Elem() on PtrType is now just Elem and matches with ArrayType. Generators now switch over the result type instead of the operand type. Delete unused diag function. R=rsc APPROVED=rsc DELTA=281 (219 added, 18 deleted, 44 changed) OCL=31876 CL=31891
2009-07-17Gather errors in a go.scanner.ErrorList instead of printingAustin Clements2-33/+55
them as we go. Lots of bug fixes. Let the parser toss illegal character and string literals. Compile unary + correctly. Allow float OP ideal. Compile unary * correctly. Implement min and max float values. R=rsc APPROVED=rsc DELTA=64 (29 added, 7 deleted, 28 changed) OCL=31811 CL=31814
2009-07-17Finish shift implementation for ideals.Austin Clements1-34/+46
R=rsc APPROVED=rsc DELTA=65 (29 added, 17 deleted, 19 changed) OCL=31775 CL=31777
2009-07-17Cleanup func literals. "func (" -> "func("Austin Clements1-39/+39
R=rsc APPROVED=rsc DELTA=41 (0 added, 0 deleted, 41 changed) OCL=31773 CL=31773
2009-07-17Implement all unary and binary arithmetic operators.Austin Clements3-186/+514
R=rsc APPROVED=rsc DELTA=689 (497 added, 169 deleted, 23 changed) OCL=31755 CL=31772
2009-07-16Fix handling of non-waitable zombie threads. Now they are notAustin Clements2-9/+33
considered running, so WaitStop doesn't lock up and breakpoints get installed and uninstalled. We also don't try to detach from them, since that will fail. R=rsc APPROVED=rsc DELTA=35 (26 added, 2 deleted, 7 changed) OCL=31683 CL=31731
2009-07-15Make Value always represent an l-value and never a genericAustin Clements5-148/+313
container for values. Instead of having one evaluator function that returns a generic Value, there is now an evaluator function for each generalized type that simply returns a native type. The compiler is more type-safe now because there are almost no type conversions at evaluation time and it's impossible to invoke a nil evaluator function during evaluation. This also makes ideals and pointers really clean. As an added bonus, expression evaluation should be faster because it doesn't require heap allocation for every intermediate value, type switches, or lots of conversions to and from Value. It also involves fewer function calls. R=rsc APPROVED=rsc DELTA=431 (280 added, 115 deleted, 36 changed) OCL=31705 CL=31709
2009-07-15Beginnings of a Go interpreter. This implements basic andAustin Clements6-0/+1775
pointer types, supports literals, identifiers, type-checking most unary and binary operators, "compiling" a few unary and binary operators, and assignment and declaration statements. R=rsc APPROVED=rsc DELTA=1751 (1751 added, 0 deleted, 0 changed) OCL=31309 CL=31691
2009-07-15Implement forking debugged processes.Austin Clements1-25/+75
R=rsc APPROVED=rsc DELTA=81 (53 added, 3 deleted, 25 changed) OCL=31651 CL=31675
2009-07-14Implementation of process tracing using Linux's ptrace.Austin Clements4-12/+1552
R=rsc APPROVED=rsc DELTA=1543 (1528 added, 0 deleted, 15 changed) OCL=31570 CL=31630
2009-07-09Give ptrace code a real home.Austin Clements1-0/+0
R=rsc APPROVED=rsc DELTA=422 (211 added, 211 deleted, 0 changed) OCL=31425 CL=31431
2009-07-09Process tracing interface.Austin Clements1-0/+215
This is meant to be implemented per platform and used by higher-level debugging libraries. R=rsc APPROVED=rsc DELTA=211 (211 added, 0 deleted, 0 changed) OCL=31003 CL=31423
2009-06-16- install gofmt in src/cmd/gofmtRobert Griesemer7-1101/+0
- remove some left-over files R=rsc DELTA=1465 (281 added, 1181 deleted, 3 changed) OCL=30350 CL=30353
2009-06-15gofmt (final resting place TBD):Robert Griesemer7-1515/+128
- replacement for pretty; app to format a single .go file printer.go (pkg/go/printer): - replacement for astprinter.go; implements AST printing - also replaces pkg/go/ast/format.go for now cleanups: - removed/saved away old code R=r,rsc,iant DELTA=2833 (1183 added, 1628 deleted, 22 changed) OCL=30226 CL=30306
2009-06-09mv src/lib to src/pkgRob Pike2-2/+2
tests: all.bash passes, gobuild still works, godoc still works. R=rsc OCL=30096 CL=30102
2009-06-08- godoc periodic sync for Linux and DarwinRobert Griesemer1-52/+62
- support debug/sync (if automatic sync is enabled in the first place) - removed debug/restart feature R=rsc DELTA=97 (37 added, 27 deleted, 33 changed) OCL=30068 CL=30079
2009-06-08issue http redirect when neededRobert Griesemer1-22/+20
R=rsc DELTA=31 (6 added, 8 deleted, 17 changed) OCL=30046 CL=30051
2009-06-05set reasonable initial time stamp (instead of begin of epoch)Robert Griesemer1-0/+1
R=rsc DELTA=1 (1 added, 0 deleted, 0 changed) OCL=29970 CL=29973
2009-06-05disable automatic p4 sync (new default)Robert Griesemer1-1/+1
TBR=rsc DELTA=1 (0 added, 0 deleted, 1 changed) OCL=29969 CL=29969
2009-06-05- cleanup: remove use of local ReadFile in favor of io.ReadFileRobert Griesemer1-20/+10
- don't show p4 sync output if -verbose is not set R=rsc DELTA=25 (5 added, 15 deleted, 5 changed) OCL=29962 CL=29962
2009-06-05show remote addr instead of host in log linesRobert Griesemer1-1/+1
R=rsc DELTA=1 (0 added, 0 deleted, 1 changed) OCL=29961 CL=29961
2009-06-05- added goroutine to automatically p4 sync the current workspaceRobert Griesemer1-6/+69
- set "Updated" timestamp on served pages to p4 sync time R=rsc DELTA=72 (66 added, 3 deleted, 3 changed) OCL=29959 CL=29959
2009-06-05restructure makefiles, scripts to factor out O= logic.Russ Cox2-16/+21
remove a few hardcoded paths elsewhere too. R=r,gri DELTA=123 (44 added, 15 deleted, 64 changed) OCL=29914 CL=29945
2009-06-02change datafmt syntax to use '@' instead of '^' (to matchRobert Griesemer1-7/+7
convention used in template.go) R=rsc DELTA=22 (3 added, 1 deleted, 18 changed) OCL=29780 CL=29782
2009-06-02- renamed format -> datafmtRobert Griesemer2-100/+14
- factored out datafmt-specifics from pretty to ast R=rsc DELTA=3580 (1810 added, 1763 deleted, 7 changed) OCL=29770 CL=29774
2009-06-01format packageRobert Griesemer5-1157/+81
R=r,rsc DELTA=2871 (1712 added, 1118 deleted, 41 changed) OCL=29222 CL=29704
2009-05-22move pretty/comment.go into go/doc.Russ Cox3-218/+2
extract comment text code out of go/doc/doc.go into comment.go. no code changes, just rearrangement. first step so i can write tests. R=gri DELTA=633 (318 added, 301 deleted, 14 changed) OCL=29269 CL=29293
2009-05-22show subdirectories if present in a package dirRobert Griesemer5-101/+97
R=rsc DELTA=184 (69 added, 73 deleted, 42 changed) OCL=29178 CL=29253
2009-05-20semi-weekly snapshot:Robert Griesemer4-314/+488
- format.go implementation complete - lots of documentation added (not quite complete) TBR=r OCL=29130 CL=29130
2009-05-18fix typoRobert Griesemer1-1/+1
TBR=rsc OCL=29010 CL=29010
2009-05-18- make godoc restart feature work properlyRobert Griesemer1-1/+11
R=rsc DELTA=11 (10 added, 0 deleted, 1 changed) OCL=29007 CL=29009
2009-05-18- changed parser to return os.Error, removed ErrorHandlerRobert Griesemer2-74/+34
- added IsValid predicate to token.Position - updated pretty, godoc, gobuild - updated/expanded test cases R=rsc DELTA=265 (97 added, 78 deleted, 90 changed) OCL=28961 CL=29005
2009-05-15get rid of unused files in my home dirRobert Griesemer4-46/+0
TBR=r DELTA=9270 (0 added, 9270 deleted, 0 changed) OCL=28958 CL=28958
2009-05-15weekly snapshot:Robert Griesemer6-427/+297
format.go: - better error handling, indentation, support for defaults, environments for custom formatters, cleanups (more functionality, less code) pretty.go: - better comment printing using format.go made test script more robust TBR=r DELTA=622 (175 added, 305 deleted, 142 changed) OCL=28956 CL=28956
2009-05-15restart functionalityRobert Griesemer1-2/+21
R=rsc DELTA=21 (19 added, 0 deleted, 2 changed) OCL=28938 CL=28941
2009-05-14godoc fix: relative paths were incorrectRobert Griesemer2-12/+7
R=r DELTA=13 (1 added, 6 deleted, 6 changed) OCL=28840 CL=28844
2009-05-13Simplified AST:Robert Griesemer2-30/+13
- one node for array and slice types - one node for index and slice expressions - simplified parser, astprinter, and ast.txt R=r DELTA=71 (0 added, 43 deleted, 28 changed) OCL=28768 CL=28768
2009-05-12Allow http.Redirect to do both temporary (307) and permanent (301) redirects.David Symonds1-1/+1
This also adds a missing 'return' when a malformed URL is passed to it. R=rsc APPROVED=rsc DELTA=30 (13 added, 2 deleted, 15 changed) OCL=28598 CL=28710
2009-05-11A couple of godoc improvements:Robert Griesemer3-35/+20
- sort directories before printing - apply filtering to factory functions and methods - remove a couple of unused files R=r DELTA=84 (34 added, 40 deleted, 10 changed) OCL=28657 CL=28657