Russ Cox
3935610e35
chans and maps of interfaces
...
R=r
DELTA=746 (729 added, 1 deleted, 16 changed)
OCL=20858
CL=20858
2008-12-09 16:16:07 -08:00
Russ Cox
3f8aa662e9
add support for ref counts to memory allocator.
...
mark and sweep, stop the world garbage collector
(intermediate step in the way to ref counting).
can run pretty with an explicit gc after each file.
R=r
DELTA=502 (346 added, 143 deleted, 13 changed)
OCL=20630
CL=20635
2008-12-05 15:24:18 -08:00
Russ Cox
79e1db2da1
add stub routines stackalloc() and stackfree().
...
run oldstack on g0's stack, just like newstack does,
so that oldstack can free the old stack.
R=r
DELTA=53 (44 added, 0 deleted, 9 changed)
OCL=20404
CL=20433
2008-12-04 08:30:54 -08:00
Russ Cox
dfa5893d4f
preparation for exec.
...
* syscall:
add syscall.RawSyscall, which doesn't use sys.entersyscall/sys.exitsyscall
add syscall.dup2
add syscall.BytePtrPtr
add syscall.Rusage, RusagePtr
add syscall.F_GETFD, F_SETFD, FD_CLOEXEC
* runtime:
clean up, correct signal handling.
can now survive (continue running after) a signal.
R=r
DELTA=394 (286 added, 51 deleted, 57 changed)
OCL=20351
CL=20369
2008-12-03 14:21:28 -08:00
Russ Cox
efc86a74e4
change meaning of $GOMAXPROCS to number of cpus to use,
...
not number of threads. can still starve all the other threads,
but only by looping, not by waiting in a system call.
fix darwin syscall.Syscall6 bug.
fix chanclient bug.
delete $GOMAXPROCS from network tests.
add stripped down printf, sys.printhex to runtime.
R=r
DELTA=355 (217 added, 36 deleted, 102 changed)
OCL=20017
CL=20019
2008-11-25 16:48:10 -08:00
Russ Cox
a5433369aa
use pc/ln table to print source lines in traceback
...
r45=; 6.out
oops
panic PC=0x400316
0x400316?zi /home/rsc/go/src/runtime/rt0_amd64_linux.s:83
main·g(4195177, 0, 4205661, ...)
main·g(0x400369, 0x402c5d, 0x403e49, ...)
0x40034c?zi /home/rsc/go/src/runtime/x.go:24
main·f(4205661, 0, 4210249, ...)
main·f(0x402c5d, 0x403e49, 0x1, ...)
0x400368?zi /home/rsc/go/src/runtime/x.go:37
main·main(4210249, 0, 1, ...)
main·main(0x403e49, 0x1, 0x7fff9d894bd8, ...)
0x402c5c?zi /home/rsc/go/src/runtime/rt0_amd64.s:70
mainstart(1, 0, 2643020760, ...)
mainstart(0x1, 0x7fff9d894bd8, 0x0, ...)
r45=;
R=r
DELTA=251 (198 added, 25 deleted, 28 changed)
OCL=19965
CL=19979
2008-11-25 09:23:36 -08:00
Russ Cox
3aa063d79c
delete stack mark strings
...
in favor of using in-memory copy of symbol table.
$ ls -l pretty pretty.big
-rwxr-xr-x 1 rsc eng 439516 Nov 21 16:43 pretty
-rwxr-xr-x 1 rsc eng 580984 Nov 21 16:20 pretty.big
$
R=r
DELTA=446 (238 added, 178 deleted, 30 changed)
OCL=19851
CL=19884
2008-11-23 17:08:55 -08:00
Russ Cox
75647d2024
First pieces of malloc.
...
R=r
DELTA=756 (754 added, 0 deleted, 2 changed)
OCL=19266
CL=19378
2008-11-17 12:32:35 -08:00
Ken Thompson
bc0b4f0d2a
mike's map code
...
R=r
OCL=19146
CL=19146
2008-11-13 10:35:44 -08:00
Russ Cox
e8766354a4
handle Inf, NaN in float print
...
R=r
DELTA=48 (23 added, 14 deleted, 11 changed)
OCL=18707
CL=18922
2008-11-10 14:54:10 -08:00
Ken Thompson
79fbbe37a7
select default
...
R=r
OCL=18646
CL=18646
2008-11-05 21:50:28 -08:00
Rob Pike
7ee60b174d
sys.stringtorune doesn't need a length parameter.
...
R=rsc
DELTA=7 (0 added, 0 deleted, 7 changed)
OCL=16600
CL=16630
2008-10-07 10:03:34 -07:00
Russ Cox
72154b042f
go/acid/go
...
R=r
DELTA=99 (95 added, 1 deleted, 3 changed)
OCL=15983
CL=15992
2008-09-26 14:10:26 -07:00
Russ Cox
a61bb95497
get rid of per-G Note, avoids per-G kernel semaphore on Mac.
...
2.14u 19.82s 22.17r 6.out 100000 # old
1.87u 0.43s 2.31r 6.out 100000 # new
R=r
OCL=15762
CL=15772
2008-09-24 14:13:07 -07:00
Russ Cox
5ff12f871f
only use mach kernel semaphores for actual contention.
...
running rob's powser p.go:
3.21u 2.58s 5.80r 6.out # old
1.48u 0.05s 1.54r 6.out # new
R=r
OCL=15748
CL=15750
2008-09-24 10:25:28 -07:00
Russ Cox
fb40f88c40
test cleanup
...
- do not print tracebacks if $GOTRACEBACK=0
- set GOTRACEBACK=0 during tests
- filter out pc numbers in errors
R=r
DELTA=70 (22 added, 30 deleted, 18 changed)
OCL=15618
CL=15642
2008-09-22 13:47:53 -07:00
Ken Thompson
8231e94520
now method/interface code
...
R=r
OCL=15627
CL=15627
2008-09-22 12:16:19 -07:00
Russ Cox
a67258f380
proper handling of signals.
...
do not run init on g0.
R=r
DELTA=161 (124 added, 23 deleted, 14 changed)
OCL=15490
CL=15497
2008-09-18 15:56:46 -07:00
Rob Pike
ab9f27b227
fix up linux trap handling - INTB 5 gives SEGV
...
R=rsc
OCL=15244
CL=15244
2008-09-12 12:35:06 -07:00
Rob Pike
e9047d1fc2
fix silly portability bug
...
R=gri
OCL=15238
CL=15238
2008-09-12 12:17:13 -07:00
Rob Pike
6e8dbc2051
- catch trace traps
...
- disassemble the instructions in a trace trap to see if it's a run-time trap
- if so, print relevant info
- avoid double-printing traceback on panic
R=ken,rsc
DELTA=66 (50 added, 7 deleted, 9 changed)
OCL=15199
CL=15224
2008-09-12 09:44:41 -07:00
Russ Cox
376898ca8b
go threads for OS X
...
R=r
OCL=14944
CL=15013
2008-09-09 11:50:14 -07:00
Ken Thompson
66a603c986
arrays
...
R=r
OCL=14603
CL=14603
2008-08-27 17:28:30 -07:00
Russ Cox
f7f6329e26
kill trailing white space.
...
(apparently my first attempt didn't work.)
R=r
OCL=13888
CL=13888
2008-08-05 14:21:42 -07:00
Russ Cox
96824000ed
* comment, clean up scheduler
...
* rewrite lock implementation to be correct
(tip: never assume that an algorithm you found
in a linux man page is correct.)
* delete unneeded void* arg from clone fn
* replace Rendez with Note
* comment mal better
* use 6c -w, fix warnings
* mark all assembly functions 7
R=r
DELTA=828 (338 added, 221 deleted, 269 changed)
OCL=13884
CL=13886
2008-08-05 14:18:47 -07:00
Russ Cox
d28acc42ec
first cut at multithreading. works on Linux.
...
* kick off new os procs (machs) as needed
* add sys·sleep for testing
* add Lock, Rendez
* properly lock mal, sys·newproc, scheduler
* linux syscall arg #4 is in R10, not CX
* chans are not multithread-safe yet
* multithreading disabled by default;
set $gomaxprocs=2 (or 1000) to turn it on
This should build on OS X but may not.
Rob and I will fix soon after submitting.
TBR=r
OCL=13784
CL=13842
2008-08-04 16:43:49 -07:00
Rob Pike
3835e01d97
print tracebacks for all goroutines, not just the crashing one
...
R=ken
OCL=13518
CL=13518
2008-07-28 11:29:41 -07:00
Ken Thompson
e963cba8a1
select
...
R=r
APPROVED=r
DELTA=147 (94 added, 14 deleted, 39 changed)
OCL=13477
CL=13477
2008-07-25 15:55:12 -07:00
Ken Thompson
cb9b1038db
select
...
R=r
APPROVED=r
DELTA=638 (433 added, 21 deleted, 184 changed)
OCL=13426
CL=13438
2008-07-24 15:57:30 -07:00
Ken Thompson
b78676a49d
start of select
...
random bugs fixed
SVN=128149
2008-07-20 20:13:07 -07:00
Ken Thompson
e7d549fbd7
new (more fifo) schedulint algorithm
...
newproc will reuse dead procs
SVN=127565
2008-07-16 13:50:23 -07:00
Rob Pike
c870ac239e
add sys.writefile; support for darwin only in this CL
...
SVN=127153
2008-07-14 20:54:55 -07:00
Ken Thompson
526200345c
synch chan
...
SVN=127055
2008-07-14 14:33:39 -07:00
Ken Thompson
594175d0b5
chan
...
SVN=126958
2008-07-13 14:29:46 -07:00
Rob Pike
2da9783e2b
preserve AX across stack jump so C routines return correct value when triggering morestack.
...
SVN=126935
2008-07-12 11:30:53 -07:00
Ken Thompson
751ce3a77a
segmented stacks AND goroutines
...
SVN=126929
2008-07-11 19:16:39 -07:00
Ken Thompson
7b454bb1d9
defined external registers g and m
...
SVN=126521
2008-07-09 11:35:26 -07:00
Ken Thompson
4528854308
unique import/export names
...
more on go statement
SVN=126421
2008-07-08 17:19:17 -07:00
Rob Pike
6db99de606
add bytestorune and stringtorune to sys.
...
SVN=126321
2008-07-08 10:36:43 -07:00
Rob Pike
5b904a3bde
update to Unicode 5
...
SVN=126184
2008-07-07 14:07:46 -07:00
Rob Pike
d3204ef19f
makes stack traces work for segmented stacks
...
SVN=125371
2008-06-30 14:39:47 -07:00
Rob Pike
8e82a673db
Break runtime.c into separate pieces for maps, strings, print, etc.
...
Share common assembler for amd64 runtime
SVN=125317
2008-06-30 11:50:36 -07:00
Rob Pike
3e4e83ab1e
add sys.readfile()
...
add args to linux runtime
SVN=124961
2008-06-26 14:09:26 -07:00
Ken Thompson
7d11924c13
middle dot as alpha package separator
...
SVN=124419
2008-06-24 17:16:06 -07:00
Ken Thompson
87dae02a63
string nil same as string ""
...
SVN=124381
2008-06-24 14:11:20 -07:00
Rob Pike
aeb43984ec
add signal handling and traceback support therein.
...
factor the runtime into architecture-dependent and -independent pieces.
ditto for the OS dependence.
SVN=124020
2008-06-21 15:36:23 -07:00
Ken Thompson
4e8142c929
maps
...
SVN=123089
2008-06-16 22:34:50 -07:00
Rob Pike
88a3371a91
print pc on faults
...
SVN=123030
2008-06-16 17:04:30 -07:00
Ken Thompson
e1a06ccc80
now checks for lvalue/rvalue context of
...
expressions.
start of generics for calling builtin
functions
start of map type
'any' demoted from reserved word to type
SVN=122808
2008-06-15 20:24:30 -07:00
Ken Thompson
bbb2073223
goos garch
...
SVN=121367
2008-06-05 19:38:39 -07:00