Robert Griesemer
53f3d0733c
gofmt: more consistent formatting of const/var decls
...
- gofmt -w src misc
- only manually modified file: src/pkg/go/printer/nodes.go
R=rsc
CC=golang-dev, r
https://golang.org/cl/606041
2010-03-16 16:45:54 -07:00
Russ Cox
acfd7b8d12
runtime: lock finalizer table accesses
...
R=r
CC=golang-dev
https://golang.org/cl/462043
2010-03-15 20:29:17 -07:00
Alex Brainman
e00795859b
syscall: minimal mingw version of syscall to call windows dlls
...
lots of missing parts, but builds and can call dlls, see a sample code in syscall_mingw.go
R=rsc
CC=golang-dev
https://golang.org/cl/218042
2010-03-09 15:09:09 -08:00
Ken Thompson
f229c8b546
identical complex implementation
...
for 6g and 8g. can also be used
for 5g. 5g is still a stub.
R=rsc
CC=golang-dev
https://golang.org/cl/362041
2010-03-09 12:49:24 -08:00
Russ Cox
8ddd6c4181
runtime: clock garbage collection on bytes allocated, not pages in use
...
This keeps fragmentation from delaying
garbage collections (and causing more fragmentation).
Cuts fresh godoc (with indexes) from 261M to 166M (120M live).
Cuts toy wc program from 50M to 8M.
Fixes #647 .
R=r, cw
CC=golang-dev
https://golang.org/cl/257041
2010-03-08 14:15:44 -08:00
Ken Thompson
426099f42e
6g complex type usable
...
8g and 5g have stubs to ignore complex
R=rsc
CC=golang-dev
https://golang.org/cl/257042
2010-03-05 20:16:04 -08:00
Russ Cox
36c5c5bf40
cc: disallow ... argument unless NOSPLIT is set.
...
check that NOSPLIT functions don't use too much stack.
correct some missing NOSPLITs in the runtime library.
Fixes bug reported in
https://groups.google.com/group/golang-nuts/t/efff68b73941eccf
R=ken2
CC=golang-dev
https://golang.org/cl/236041
2010-03-04 15:34:25 -08:00
Russ Cox
3910161307
gc: implement []int(string) and []byte(string)
...
R=ken2
CC=golang-dev
https://golang.org/cl/224060
2010-02-25 15:11:07 -08:00
Ian Lance Taylor
bada653f4d
Use consistent types in .h file and .c file.
...
R=rsc
CC=golang-dev
https://golang.org/cl/224053
2010-02-25 10:13:09 -08:00
Ian Lance Taylor
7c99dcbdf9
Install runtime.h and cgocall.h.
...
This permits cgo generated code to use these header files even
if the Go sources are not around.
R=rsc
CC=golang-dev
https://golang.org/cl/224045
2010-02-24 17:00:25 -08:00
Russ Cox
8ba5c5593f
runtime: work around Linux kernel bug in futex
...
Fixes #420 .
R=r
CC=golang-dev
https://golang.org/cl/218065
2010-02-22 20:45:36 -08:00
Ken Thompson
f59cb49a5a
fixed bug in mpconst float multiply by 0.
...
more complex -- constants, variables and print.
R=rsc
CC=golang-dev
https://golang.org/cl/217061
2010-02-19 20:42:50 -08:00
Kai Backman
c0aac20e20
combined pchw and embedded into tiny. added section on arm to README
...
R=rsc
CC=golang-dev
https://golang.org/cl/194151
2010-02-18 23:33:21 -08:00
Ken Thompson
713e3e1541
more complex - constants
...
import and export
R=rsc
CC=golang-dev
https://golang.org/cl/214050
2010-02-18 14:46:28 -08:00
Ken Thompson
33d6a260c1
new types complex, complex64 and complex128
...
only front-end compiler work.
best to do thin in 3 steps
1. frontend
2. backend
3. lib
R=rsc
CC=golang-dev
https://golang.org/cl/214042
2010-02-17 22:08:30 -08:00
Russ Cox
04d9c8853b
runtime: fix bug in Caller documentation
...
R=r
CC=golang-dev
https://golang.org/cl/207110
2010-02-16 16:11:11 -08:00
Russ Cox
9f77e7ea3c
runtime: dummy gettime for mingw/386.
...
Fixes #598 .
R=adg
CC=golang-dev
https://golang.org/cl/206089
2010-02-12 12:49:16 -08:00
Russ Cox
22a7f2a14d
runtime: delete MHeapMapCache, which is useless
...
because free needs to mark the block as freed to
coordinate with the garbage collector.
(in C++ free can blindly put the block on the free list,
no questions asked, so the cache saves some work.)
R=iant
CC=golang-dev
https://golang.org/cl/206069
2010-02-10 21:23:08 -08:00
Russ Cox
66cdc699b2
arm: fix build on android
...
R=kaib
CC=golang-dev
https://golang.org/cl/206059
2010-02-10 15:01:02 -08:00
Russ Cox
fb94be55dc
runtime: tighten garbage collector
...
* specialize sweepspan as sweepspan0 and sweepspan1.
* in sweepspan1, inline "free" to avoid expensive mlookup.
R=iant
CC=golang-dev
https://golang.org/cl/206060
2010-02-10 14:59:39 -08:00
Russ Cox
991a968f44
runtime: do not zero blocks on free (this time for sure!)
...
R=iant
CC=golang-dev
https://golang.org/cl/207054
2010-02-10 11:31:00 -08:00
Russ Cox
f25586a306
runtime: garbage collection + malloc performance
...
* add bit tracking finalizer status, avoiding getfinalizer lookup
* add ability to allocate uncleared memory
R=iant
CC=golang-dev
https://golang.org/cl/207044
2010-02-10 00:00:12 -08:00
Russ Cox
2b4a9fa176
fix NaCl build for latest runtime changes
...
R=iant
CC=golang-dev
https://golang.org/cl/206052
2010-02-09 16:56:22 -08:00
Russ Cox
de90a7d4aa
runtime: fix FreeBSD build
...
stab in the dark but plausible: the kernel does try to
return time zone information.
http://fxr.watson.org/fxr/source/kern/kern_time.c?v=FREEBSD8#L421
R=iant
CC=golang-dev
https://golang.org/cl/206053
2010-02-09 16:54:51 -08:00
Russ Cox
62d627f0bc
runtime: allow arbitrary return type in SetFinalizer.
...
finalize chan, to free OS X semaphore inside Lock.
os: finalize File, to close fd.
Fixes #503 .
R=ken2
CC=golang-dev
https://golang.org/cl/204065
2010-02-08 21:41:54 -08:00
Russ Cox
e4f06812c5
runtime: instrument malloc + garbage collector.
...
add simple garbage collection benchmark.
R=iant
CC=golang-dev
https://golang.org/cl/204053
2010-02-08 14:32:22 -08:00
Russ Cox
87915b6565
runtime: introduce MemStatsType
...
R=ken2
CC=golang-dev
https://golang.org/cl/204061
2010-02-07 01:20:44 -08:00
Kai Backman
ebf32c5868
fix comment
...
R=rsc
CC=golang-dev
https://golang.org/cl/203053
2010-02-06 21:59:46 -08:00
Andrew Gerrand
8ec9ffc742
6l: move mapped symbol table lower in memory
...
Allows binary to run on some Linux system.
Fix for issue 365.
R=rsc
CC=golang-dev
https://golang.org/cl/199096
2010-02-04 12:46:11 -08:00
Christopher Wedgwood
43d2e59a81
os/signal: send SIGCHLDs to Incoming
...
R=rsc
CC=golang-dev
https://golang.org/cl/199082
2010-02-03 23:24:28 -08:00
Russ Cox
33e396a4a7
finalizers; merge package malloc into package runtime
...
R=r, cw
CC=golang-dev
https://golang.org/cl/198085
2010-02-03 16:31:34 -08:00
Russ Cox
1f11ece67f
nacl: fix build, finally fixed 8l convergence bug
...
R=r
CC=golang-dev
https://golang.org/cl/199042
2010-02-01 15:20:19 -08:00
Russ Cox
68796b0270
gc: add ... T, rework plain ...
...
No longer a distinct type; now a property of func types.
R=ken2
CC=golang-dev
https://golang.org/cl/197042
2010-02-01 00:25:59 -08:00
Russ Cox
a186b77b03
gc: implement defer print/println/panic/panicln
...
Fixes #219 .
R=ken2, r
CC=golang-dev
https://golang.org/cl/194097
2010-01-27 15:37:08 -08:00
Kai Backman
9f5264f299
small embedded target for arm.
...
R=rsc
CC=golang-dev
https://golang.org/cl/193104
2010-01-26 20:22:59 -08:00
Russ Cox
718be3215f
in C and asm, replace pkg·name with ·name
...
(eliminate assumption of package global name space,
make code easier to move between packages).
R=r
CC=golang-dev
https://golang.org/cl/194072
2010-01-25 18:52:55 -08:00
Russ Cox
1912632019
runtime, type switch: eliminate package global name space assumption
...
bonus: type switch now detects multiple uses of identical interface types.
bonus: interface types are now order-independent, following the spec.
R=ken2
CC=golang-dev
https://golang.org/cl/194053
2010-01-25 18:23:20 -08:00
Russ Cox
1cecac8134
gc: record full package paths in runtime type data
...
detect compilation of special package runtime with
compiler flag instead of package name.
R=ken2
CC=golang-dev
https://golang.org/cl/193080
2010-01-24 23:33:59 -08:00
Russ Cox
0365b989a4
runtime: wait to allocate mach semaphores backing Locks until needed
...
need better management of mach semaphores eventually
but this avoids allocating them for uncontended Locks.
R=r
CC=agl1, golang-dev
https://golang.org/cl/190079
2010-01-19 21:14:15 -08:00
Russ Cox
da9bc7ae7d
runtime: add demo running Go on raw (emulated) hw
...
8l: add GOOS=pchw, stop spelling out all the elf numbers.
R=r
CC=golang-dev
https://golang.org/cl/186144
2010-01-13 19:51:59 -08:00
Devon H. O'Dell
1564b984a5
runtime: GS already set up by setldt in Linux/386; remove duplicate
...
R=rsc
CC=golang-dev
https://golang.org/cl/186146
2010-01-13 17:50:12 -08:00
Russ Cox
12518e441b
runtime cleanup.
...
* move memory code into $GOOS-specific directory.
* allow printing of static strings < 256 bytes.
(dynamic strings will bump maxstring as they are allocated.)
* use cgo2c for runtime.mal.
R=r, dho
CC=golang-dev
https://golang.org/cl/186143
2010-01-13 17:50:02 -08:00
Russ Cox
f85abf01bc
runtime: reset DF flag after running external code on 386
...
R=r
CC=golang-dev
https://golang.org/cl/186108
2010-01-13 09:08:39 -08:00
Russ Cox
711088106e
runtime: fix bug in preemption checks; was causing "lock count" panics
...
R=r
CC=golang-dev
https://golang.org/cl/186078
2010-01-12 10:03:02 -08:00
Russ Cox
5328df6534
runtime: check for preemption due to garbage collection
...
in various already expensive routines.
helps keep cpu utilization up when GOMAXPROCS > 1,
but not a full solution.
http://groups.google.com/group/golang-nuts/t/7a9535c4136d3e2
R=r
CC=golang-dev
https://golang.org/cl/184043
2010-01-09 09:47:45 -08:00
Russ Cox
74a9fc18f6
runtime: close TODO now that 8c bug is fixed
...
R=r
CC=golang-dev
https://golang.org/cl/183138
2010-01-06 19:24:11 -08:00
Hector Chu
6bfe5f55f4
Ported runtime to Windows.
...
R=rsc
CC=golang-dev
https://golang.org/cl/176066
2010-01-06 17:58:55 -08:00
Adam Langley
50d6c81d4a
runtime: fix race condition
...
(Thanks to ken and rsc for pointing this out)
rsc:
ken pointed out that there's a race in the new
one-lock-per-channel code. the issue is that
if one goroutine has gone to sleep doing
select {
case <-c1:
case <-c2:
}
and then two more goroutines try to send
on c1 and c2 simultaneously, the way that
the code makes sure only one wins is the
selgen field manipulation in dequeue:
// if sgp is stale, ignore it
if(sgp->selgen != sgp->g->selgen) {
//prints("INVALID PSEUDOG POINTER\n");
freesg(c, sgp);
goto loop;
}
// invalidate any others
sgp->g->selgen++;
but because the global lock is gone both
goroutines will be fiddling with sgp->g->selgen
at the same time.
This results in a 7% slowdown in the single threaded case for a
ping-pong microbenchmark.
Since the cas predominantly succeeds, adding a simple check first
didn't make any difference.
R=rsc
CC=golang-dev
https://golang.org/cl/180068
2009-12-18 12:25:53 -08:00
Kai Backman
d85bb81878
first stub for softfloats, intercepts float instructions and skips
...
them in the stream.
R=rsc
https://golang.org/cl/174052
2009-12-17 16:08:42 -08:00
Russ Cox
08579c26dd
runtime: if os/signal is not in use, crash on
...
most signals, so that ordinary programs
can be killed, for example.
Fixes #434 .
R=dsymonds1
CC=golang-dev, hoisie
https://golang.org/cl/180064
2009-12-16 20:20:50 -08:00
David Symonds
b5866494ea
os/signal: new package
...
Fixes #71 .
R=rsc, r
https://golang.org/cl/162056
2009-12-15 18:21:29 -08:00
Russ Cox
d16bc7a9f2
runtime: return zero value in x, ok = <-c when ok == false
...
Fixes #401 .
R=ken2
https://golang.org/cl/180053
2009-12-15 16:59:23 -08:00
Robert Griesemer
d65a5cce89
1) Change default gofmt default settings for
...
parsing and printing to new syntax.
Use -oldparser to parse the old syntax,
use -oldprinter to print the old syntax.
2) Change default gofmt formatting settings
to use tabs for indentation only and to use
spaces for alignment. This will make the code
alignment insensitive to an editor's tabwidth.
Use -spaces=false to use tabs for alignment.
3) Manually changed src/exp/parser/parser_test.go
so that it doesn't try to parse the parser's
source files using the old syntax (they have
new syntax now).
4) gofmt -w src misc test/bench
4th set of files.
R=rsc
CC=golang-dev
https://golang.org/cl/180049
2009-12-15 15:40:16 -08:00
Russ Cox
19c18358ca
runtime: in exitsyscall, avoid confusing garbage collector
...
R=r
CC=golang-dev
https://golang.org/cl/178046
2009-12-14 19:06:20 -08:00
Devon H. O'Dell
857d4cf1a9
Remove GOBIN in PATH dependency; don't assume cwd is $GOROOT/src
...
This change removes the necessity to have GOBIN in $PATH,
and also doesn't assume that the build is being run from
$GOROOT/src. This is a minimal set of necessary changes
to get Go to build happily from the FreeBSD ports
collection.
R=rsc
CC=golang-dev
https://golang.org/cl/171044
2009-12-11 15:14:09 -08:00
Kai Backman
d08d33f389
fix calling convention and make memmove restore the g and m
...
registers.
R=rsc
https://golang.org/cl/166049
2009-12-10 11:42:01 -08:00
Russ Cox
0400a7f8b1
runtime: start new darwin/amd64 threads on correct stack,
...
then enable stack check.
R=r
https://golang.org/cl/165100
2009-12-08 23:34:45 -08:00
Devon H. O'Dell
5a4a08fab8
Fix stack on FreeBSD / add stack check across the board
...
FreeBSD was passing stk as the new thread's stack base, while
stk is the top of the stack in go. The added check should cause
a trap if this ever comes up in any new ports, or regresses
in current ones.
R=rsc
CC=golang-dev
https://golang.org/cl/167055
2009-12-08 18:19:30 -08:00
Devon H. O'Dell
cdce7325c8
When SA_SIGINFO is set, we should use __sa_sigaction on FreeBSD
...
R=rsc
CC=golang-dev
https://golang.org/cl/165097
2009-12-08 18:18:04 -08:00
Russ Cox
0d3301a557
runtime: don't touch pages of memory unnecessarily.
...
cuts working size for hello world from 6 MB to 1.2 MB.
still some work to be done, but diminishing returns.
R=r
https://golang.org/cl/165080
2009-12-07 15:52:14 -08:00
Russ Cox
33649bd278
runtime: introduce unsafe.New and unsafe.NewArray
...
to provide functionality previously hacked in to
reflect and gob.
R=r
https://golang.org/cl/165076
2009-12-07 15:51:58 -08:00
Rob Pike
20c1ec263a
pick off special one-byte case in copy. worth 2x in benchmarks (38ns->16ns).
...
the one-item case could be generalized easily with no cost. worth considering.
R=rsc
CC=golang-dev, cw
https://golang.org/cl/167044
2009-12-07 11:28:02 -08:00
Russ Cox
ed6fd1bcbe
runtime: disable pointer scan optimization
...
* broken by reflect, gob
TBR=r
https://golang.org/cl/166077
2009-12-06 08:18:58 -08:00
Russ Cox
864c757a1c
gc/runtime: pass type structure to makeslice.
...
* inform garbage collector about memory with no pointers in it
1.9s gcc reverse-complement.c
reverse-complement.go
4.5s / 3.5s original, with/without bounds checks
3.5s / 3.3s bounds check reduction
3.3s / 2.8s smarter garbage collector
2.6s / 2.3s assembler bytes.IndexByte
2.5s / 2.1s even smarter garbage collector (this CL)
R=r
https://golang.org/cl/165064
2009-12-04 21:44:05 -08:00
Adam Langley
e79bcf8bfd
runtime: shift the index for the sort by one.
...
Makes the code look cleaner, even if it's a little harder to figure
out from the sort invariants.
R=rsc
CC=golang-dev
https://golang.org/cl/165061
2009-12-04 13:31:18 -08:00
Adam Langley
d1740bb3a6
Remove global chanlock.
...
On a microbenchmark that ping-pongs on lots of channels, this makes
the multithreaded case about 20% faster and the uniprocessor case
about 1% slower. (Due to cache effects, I expect.)
R=rsc, agl
CC=golang-dev
https://golang.org/cl/166043
2009-12-04 10:57:01 -08:00
Russ Cox
cf37254b1c
runtime: fix Caller crash on 386.
...
Fixes #176 .
R=r
https://golang.org/cl/166044
2009-12-03 17:24:14 -08:00
Russ Cox
7e5055ceea
runtime: malloc fixes
...
* throw away dead code
* add mlookup counter
* add malloc counter
* set up for blocks with no pointers
Fixes #367 .
R=r
https://golang.org/cl/165050
2009-12-03 17:22:23 -08:00
Sergio Luis O. B. Correia
6fc820729e
go: makes it build for the case $GOROOT has whitespaces
...
the bash scripts and makefiles for building go didn't take into account
the fact $GOROOT / $GOBIN could both be directories containing whitespaces,
and was not possible to build it in such a situation.
this commit adjusts the various makefiles/scripts to make it aware of that
possibility, and now it builds successfully when using a path with whitespaces
as well.
Fixes #115 .
R=rsc, dsymonds1
https://golang.org/cl/157067
2009-11-23 17:32:51 -08:00
William Josephson
1444f1bb1d
Missed a reference to sc instead of mc in 157065.
...
R=rsc, dho
https://golang.org/cl/157116
2009-11-20 13:46:47 -08:00
Devon H. O'Dell
7ada6018a7
FreeBSD's mcontext isn't exactly the same as sigcontext, so
...
we can't use them interchangably.
R=rsc, wjosephson
CC=golang-dev
https://golang.org/cl/156113
2009-11-20 13:08:16 -08:00
Russ Cox
aa4c638b7b
x[y:] for strings
...
R=ken2
https://golang.org/cl/157114
2009-11-20 11:42:28 -08:00
Russ Cox
652f55672d
x[lo:] - gc and runtime.
...
* add runtime sliceslice1 for x[lo:]
* remove runtime arraytoslice, rewriting &arr into arr[0:len(arr)].
* port cgen_inline into 8g, 5g.
* use native memmove in maps
R=ken2
https://golang.org/cl/157106
2009-11-20 09:11:46 -08:00
Russ Cox
6e0767bb04
reflect fixes
...
R=r
https://golang.org/cl/156104
2009-11-19 22:06:32 -08:00
Russ Cox
4aaf948f90
runtime: mask signals during signal handler on OS X
...
Fixes #265 .
R=r
CC=golang-dev
https://golang.org/cl/157084
2009-11-19 11:01:16 -08:00
Russ Cox
e1c5c3df77
runtime: fix bug on darwin/amd64 - bad g in bsdthread_start
...
R=r
https://golang.org/cl/157077
2009-11-18 18:17:11 -08:00
Devon H. O'Dell
60b1a17b9e
More FreeBSD-touchups. Thundercats are GOOOOO!
...
R=rsc
CC=golang-dev
https://golang.org/cl/157074
2009-11-18 16:51:59 -08:00
Rob Pike
093493c6a5
bugs in memmove:
...
- has arguments (no stack split)
- MOVL does not set condition
R=ken2, rsc
https://golang.org/cl/156086
2009-11-18 15:00:02 -08:00
William Josephson
4c0f262a2d
Remove unnecessary execute bits.
...
R=rsc
https://golang.org/cl/156077
2009-11-18 09:19:29 -08:00
Devon H. O'Dell
659780b643
Add an intptr type to runtime; needed in FreeBSD
...
In thread.c, we need to cast to whatever the native
size of intptr is on the system, but we only have
uintptr available. They're the same size, but can't
do signed casts without this one :).
R=rsc
CC=golang-dev
https://golang.org/cl/156073
2009-11-18 09:11:39 -08:00
Devon H. O'Dell
b3f538a4fd
FreeBSD/i386 work
...
This patchset gets Go to pretty much the same state that
FreeBSD/amd64 is in.
R=rsc
https://golang.org/cl/157055
2009-11-17 23:58:51 -08:00
Russ Cox
744d5ae48a
runtime: add ARM memmove
...
R=ken2
https://golang.org/cl/156063
2009-11-17 22:54:20 -08:00
Russ Cox
ed0beea27b
copy tweaks
...
* move memmove to arch-specific subdirectories
* add memmove for arm
* add copyright notices marking them as copied from Inferno
R=ken2
https://golang.org/cl/156061
2009-11-17 22:16:55 -08:00
Russ Cox
41554e2528
runtime: two trivial but important bug fixes
...
R=r
https://golang.org/cl/156059
2009-11-17 22:00:30 -08:00
Ken Thompson
948f3e77e1
bug in copy
...
R=rsc
https://golang.org/cl/156056
2009-11-17 20:44:35 -08:00
Ken Thompson
c4606d05da
install copy predefined
...
did not test 386, but should work
shouldnt matter if copy is not used
R=rsc
https://golang.org/cl/156055
2009-11-17 20:41:44 -08:00
Russ Cox
4dfd7fdde5
runtime: do not create new threads during malloc.
...
the signal handling stack is a different size than
the normal stack, so it cannot be allocated using
the backup stack allocator.
Fixes #250 .
R=agl1
CC=golang-dev
https://golang.org/cl/157044
2009-11-17 14:42:08 -08:00
Rob Pike
6240b0110a
improve documentation of runtime. there was no mention of types.
...
R=rsc
CC=golang-dev
https://golang.org/cl/157042
2009-11-17 11:44:15 -08:00
Russ Cox
a65bf95dd8
syscall: use correct pointer in recvfrom/sendto.
...
linux/386 stack trace: use 32-bit hex.
Fixes #159 .
R=r
https://golang.org/cl/154178
2009-11-17 08:39:04 -08:00
Devon H. O'Dell
0489a260da
FreeBSD-specific porting work.
...
cgo/libmach remain unimplemented. However, compilers, runtime,
and packages are 100%. I still need to go through and implement
missing syscalls (at least make sure they're all listed), but
for all shipped functionality, this is done. Ship! ;)
R=rsc, VenkateshSrinivas
https://golang.org/cl/152142
2009-11-17 08:20:58 -08:00
Russ Cox
597b2a91a6
runtime: make signal handler work on 386
...
R=r
https://golang.org/cl/154171
2009-11-16 17:51:47 -08:00
Russ Cox
091191336a
runtime: avoid crash in Caller
...
Fixes #176 .
R=r
https://golang.org/cl/154146
2009-11-15 12:57:15 -08:00
Adam Langley
3f7a32405d
runtime: warn about SELinux based mmap failures on Linux.
...
SELinux will cause mmap to fail when we request w+x memory unless the
user has configured their policies. We have a warning in make.bash,
but it's quite likely that the policy will be reset at some point and
then all their binaries start failing.
This patch prints a warning on Linux when mmap fails with EACCES.
R=rsc
CC=golang-dev
https://golang.org/cl/152086
2009-11-13 10:08:51 -08:00
Kai Backman
a23746ea65
fix style nit ignored in previous cl
...
R=rsc
https://golang.org/cl/152110
2009-11-12 16:12:28 -08:00
Kai Backman
6a48aab747
add support for pre arm v6 cas. set GOARM=5 to enable.
...
R=rsc
https://golang.org/cl/154101
2009-11-12 15:23:23 -08:00
Kai Backman
6dbd142951
add cache flushing call after generating closure.
...
go/test: passes 88% (306/347)
R=rsc
https://golang.org/cl/152089
2009-11-11 23:23:11 -08:00
Russ Cox
fe1e49241c
update old comment: things are much better now
...
R=r
https://golang.org/cl/152057
2009-11-10 19:59:22 -08:00
Robert Griesemer
3bb0032cd6
- replaced gofmt expression formatting algorithm with
...
rsc's algorithm
- applied gofmt -w misc src
- partial CL (last chunk)
R=rsc, r
http://go/go-review/1024041
2009-11-09 21:23:52 -08:00
Kai Backman
52c549fc9b
make 5g executables run on android/arm hardware. change OABI
...
usage to EABI.
go/test: passes 85% (296/347) on random android phone.
R=rsc
http://go/go-review/1024003
2009-11-05 22:53:08 -08:00
Robert Griesemer
d3d3accdb7
gofmt-ify io, json, runtime, encoding
...
R=rsc
http://go/go-review/1017056
2009-11-05 15:37:55 -08:00
Kai Backman
770b872752
clone and futex
...
go/test: passes 99% (343/347)
R=rsc
http://go/go-review/1016004
2009-10-29 21:21:14 -07:00
Adam Langley
b89d630977
Fix bug when sending via select.
...
selfree maintains a cache of Select structures for several sizes. In
newselect, we'll use an entry from the cache if one is found. However,
the Scase structures corresponding to a send may have been allocated
for the wrong size. In this case we'll write off the end of the Scase
into random memory and, generally, read some amount of junk in the
receive.
This patch fixes the issue by removing the cache, on the advice of
rsc.
R=rsc
CC=go-dev
http://go/go-review/1016002
2009-10-28 18:23:53 -07:00
Russ Cox
32e979c0de
mysterious bug: runtime.acid wasn't getting rebuilt
...
when switching architectures.
fix bug twice: make sure clean removes the file,
and generate into architecture-specific file names.
R=r
http://go/go-review/1013018
2009-10-28 14:03:16 -07:00
Ian Lance Taylor
f529224039
Get the right sigaction struct for the 386 rt_sigaction system
...
call. This uses the header files from a 32-bit Ubuntu Hardy
system.
The use of _LOOSE_KERNEL_NAMES seems right. The
-D__ARCH_SI_UID_T works around a bug which appears to be fixed
in later Linux versions.
R=rsc
http://go/go-review/1013015
2009-10-26 22:49:08 -07:00
Kai Backman
6f91ba1b0f
proper syscall convention for arm
...
R=rsc
http://go/go-review/1015009
2009-10-25 11:51:16 -07:00
Kai Backman
0af8e1045c
fix off by 4 bug in morestack (lr again). remove storing of r0
...
now that all arguments are passed on the stack.
go/test: passes 89% (310/345)
R=rsc
APPROVED=rsc
DELTA=33 (13 added, 14 deleted, 6 changed)
OCL=36009
CL=36022
2009-10-23 10:59:31 -07:00
Kai Backman
03bbfe6724
fix off by 4 in newproc arg copying.
...
R=rsc
APPROVED=rsc
DELTA=4 (0 added, 0 deleted, 4 changed)
OCL=36001
CL=36004
2009-10-22 13:31:52 -07:00
Ian Lance Taylor
fd5fa4b301
Fix the sigaction declaration to match the system for Linux.
...
I don't know whether Darwin needs a change here.
R=rsc
http://go/go-review/1013010
2009-10-22 23:51:54 -07:00
Ian Lance Taylor
057f7d5b07
s/pc/PC/ in traceback output to match amd64.
...
test/run expects to see "PC".
R=rsc
http://go/go-review/1015002
2009-10-22 23:38:34 -07:00
Rob Pike
8a20cfc009
fix build: no acid
...
R=rsc
http://go/go-review/1014005
2009-10-22 11:52:35 -07:00
Russ Cox
219fb02042
fix build after Mercurial move.
...
various missing or incorrect files.
R=r
CC=go-dev
http://go/go-review/1014004
2009-10-22 10:59:27 -07:00
Russ Cox
02fd255a14
bug162, over and over
...
R=ken
OCL=35919
CL=35919
2009-10-20 08:03:43 -07:00
Kai Backman
33a7bcf315
getcallerpc and setcallerpc
...
go/test: passes 87% (303/345)
R=rsc
APPROVED=rsc
DELTA=19 (5 added, 6 deleted, 8 changed)
OCL=35903
CL=35906
2009-10-19 21:58:16 -07:00
Kai Backman
a15aa05ae2
first version of closures. test/closure doesn't yet pass.
...
go/test: passes 87% (300/343)
R=rsc
APPROVED=rsc
DELTA=125 (125 added, 0 deleted, 0 changed)
OCL=35893
CL=35900
2009-10-19 19:59:39 -07:00
Russ Cox
22a5c78f44
rename sys functions to runtime,
...
because they are in package runtime.
another step to enforcing package boundaries.
R=r
DELTA=732 (114 added, 93 deleted, 525 changed)
OCL=35811
CL=35824
2009-10-15 23:10:49 -07:00
Russ Cox
488ca3c7a6
move math out of runtime.
...
a step toward enforcing package boundaries,
necessary to eliminate global package name space.
R=r
DELTA=581 (310 added, 271 deleted, 0 changed)
OCL=35805
CL=35823
2009-10-15 23:09:22 -07:00
Kai Backman
222a15c840
test/64bit.go passes but doesn't generate properly yet.
...
R=rsc
APPROVED=rsc
DELTA=235 (98 added, 38 deleted, 99 changed)
OCL=35789
CL=35813
2009-10-15 19:41:51 -07:00
Russ Cox
5bbd4c2f1b
publish semacquire and semrelease for use by sync.
...
more enforcing package boundaries
R=r
DELTA=46 (13 added, 15 deleted, 18 changed)
OCL=35806
CL=35806
2009-10-15 17:46:53 -07:00
Kai Backman
b83549a7e6
cas
...
R=rsc
APPROVED=rsc
DELTA=31 (1 added, 8 deleted, 22 changed)
OCL=35752
CL=35757
2009-10-14 21:47:28 -07:00
Russ Cox
a68592a4dd
excise some internal references.
...
R=r
DELTA=209 (65 added, 114 deleted, 30 changed)
OCL=35718
CL=35721
2009-10-14 13:02:05 -07:00
Rob Pike
f6d67c9e95
write stack traces and panics to stderr
...
R=rsc
DELTA=31 (5 added, 3 deleted, 23 changed)
OCL=35700
CL=35700
2009-10-13 22:48:03 -07:00
Kai Backman
101f7cbd61
changed 5c 64 bit word ordering to little endian so it matches
...
5g. fixes to 64 bit code gen. added (finally) function to do
shifts properly.
go/test: passes 83% (287/342)
R=rsc
APPROVED=rsc
DELTA=156 (50 added, 53 deleted, 53 changed)
OCL=35589
CL=35616
2009-10-12 13:35:28 -07:00
Russ Cox
add89dd1ba
stack overflow debugging and fix.
...
* in 6l, -K already meant check for stack underflow.
add -KK to mean double-check stack overflows
even in nosplit functions.
* comment out print locks; they deadlock too easily
but are still useful to put back for special occasions.
* let runcgo assembly switch to scheduler stack
without involving scheduler directly. because runcgo
gets called from matchmg, it is too hard to keep it
from being called on other stacks.
R=r
DELTA=94 (65 added, 18 deleted, 11 changed)
OCL=35591
CL=35604
2009-10-12 10:26:38 -07:00
Kai Backman
1620023d03
fix float <-> int64 conversions
...
R=rsc
APPROVED=rsc
DELTA=25 (25 added, 0 deleted, 0 changed)
OCL=35566
CL=35574
2009-10-10 22:06:26 -07:00
Russ Cox
fb1bcd47c6
acid bug fix.
...
lock printf output to avoid interlacing debug prints.
R=r
DELTA=10 (7 added, 0 deleted, 3 changed)
OCL=35539
CL=35561
2009-10-09 16:45:20 -07:00
Russ Cox
93689d863c
keep a list of all the M's,
...
so that the garbage collector doesn't free them.
R=ken
OCL=35538
CL=35538
2009-10-09 15:35:33 -07:00
Russ Cox
91549438d8
apply gofmt to rand reflect regexp rpc runtime sort strconv strings sync syscall testing time unicode unsafe utf8
...
R=gri
DELTA=1409 (79 added, 24 deleted, 1306 changed)
OCL=35415
CL=35437
2009-10-07 11:55:06 -07:00
Kai Backman
a2cf914379
5l library loading, 64 bit entry points
...
R=rsc
APPROVED=rsc
DELTA=58 (52 added, 3 deleted, 3 changed)
OCL=35417
CL=35417
2009-10-06 19:00:30 -07:00
Kai Backman
d58b5fca45
move cas out, add dummy runcgo.
...
R=rsc
APPROVED=rsc
DELTA=73 (45 added, 28 deleted, 0 changed)
OCL=35363
CL=35366
2009-10-05 21:52:10 -07:00
Russ Cox
133a158bd8
8c, 8l dynamic loading support.
...
better mach binaries.
cgo working on darwin+linux amd64+386.
eliminated context switches - pi is 30x faster.
add libcgo to build.
on snow leopard:
- non-cgo binaries work; all tests pass.
- cgo binaries work on amd64 but not 386.
R=r
DELTA=2031 (1316 added, 626 deleted, 89 changed)
OCL=35264
CL=35304
2009-10-03 10:37:12 -07:00
Russ Cox
e67a5084b8
cgo working on linux/386
...
R=r
DELTA=70 (47 added, 4 deleted, 19 changed)
OCL=35167
CL=35171
2009-09-30 13:47:15 -07:00
Russ Cox
285b6021e9
missing files; cleaned up g4 nothave output.
...
fixes 386 build.
R=r
DELTA=56 (56 added, 0 deleted, 0 changed)
OCL=34979
CL=34981
2009-09-24 13:38:18 -07:00
Russ Cox
12fc217336
cgo checkpoint.
...
can write all 3 output files and then compile them by hand.
R=r
DELTA=919 (841 added, 16 deleted, 62 changed)
OCL=34954
CL=34973
2009-09-24 11:43:19 -07:00
Russ Cox
1b14bdbf1c
changes to accommodate nacl:
...
* change ldt0setup to set GS itself; nacl won't let us do it.
* change breakpoint to INT $3 so 8l can translate to HLT for nacl.
* panic if closure is needed on nacl.
* do not try to access symbol table on nacl.
* mmap in 64kB chunks.
nacl support:
* system calls, threading, locks.
R=r
DELTA=365 (357 added, 5 deleted, 3 changed)
OCL=34880
CL=34906
2009-09-22 16:28:32 -07:00
Russ Cox
bbcb91a3a7
convert 386 to use %gs instead of %fs for extern register.
...
required for nacl and may be nicer for ffi,
because %gs is the standard register for thread-local storage.
R=ken
OCL=34861
CL=34866
2009-09-21 15:46:50 -07:00
Kai Backman
46e392e01c
changed 5c calling convention to use stack exclusively for in
...
params. a number of fixes to assembly routines that assumed R0
had the first arg. one stack offset fix, arm pushes the link
register on stack top.
go/test: passes 65% (235/364) tests
R=rsc
APPROVED=rsc
DELTA=20 (11 added, 0 deleted, 9 changed)
OCL=34809
CL=34812
2009-09-18 16:45:41 -07:00
Austin Clements
ad9c6f7700
Rudimentary command shell for Ogle. Hack to prevent linker
...
from inlining newprocreadylocked. Fix type bridge's handling
of basic types. Include interpreter's Thread in bridged
native function calls.
; load . "6.out"
Started 6.out
; BpSet("main·merge")
; ContWait()
breakpoint at 0x400800
=> 400800 main·merge /home/austin/src-go1/usr/austin/ptrace/test/sort.go:19
; bt
=> 400800 main·merge /home/austin/src-go1/usr/austin/ptrace/test/sort.go:19
400b6a main·mergeSort+0x1be /home/austin/src-go1/usr/austin/ptrace/test/sort.go:34
448313 goexit /home/austin/src-go1/src/pkg/runtime/proc.c:133
; main.merge.a
{1}
; load . "pid:25753"
Attached to 25753
; bt
=> 479ddf syscall·Syscall+0x24 /home/austin/src-go1/src/pkg/syscall/asm_linux_amd64.s:24
47c011 syscall·Read+0x5d /home/austin/src-go1/src/pkg/syscall/zsyscall_linux_amd64.go:368
4119e5 os·*File·Read+0x5f /home/austin/src-go1/src/pkg/os/file.go:122
427bf3 bufio·*Reader·fill+0x116 /home/austin/src-go1/src/pkg/bufio/bufio.go:105
428361 bufio·*Reader·ReadSlice+0x195 /home/austin/src-go1/src/pkg/bufio/bufio.go:244
40204a ogle·Main+0x94 /home/austin/src-go1/usr/austin/ogle/cmd.go:226
40080f main·main+0xf /home/austin/src-go1/usr/austin/ogle/main.go:6
41c4b8 mainstart+0xf /home/austin/src-go1/src/pkg/runtime/amd64/asm.s:55
41531f goexit /home/austin/src-go1/src/pkg/runtime/proc.c:133
R=rsc
APPROVED=rsc
DELTA=433 (420 added, 2 deleted, 11 changed)
OCL=34410
CL=34782
2009-09-18 09:11:19 -07:00
Kai Backman
bcfc6e631f
fixed register usage and removed some dead code.
...
R=rsc
APPROVED=rsc
DELTA=17 (0 added, 12 deleted, 5 changed)
OCL=34659
CL=34665
2009-09-15 16:15:17 -07:00
Russ Cox
7a0f4cac03
pass Type* to makechan and makemap so that
...
they can get the official alignment out of there
instead of guessing.
R=ken
OCL=34450
CL=34450
2009-09-08 13:46:54 -07:00
Russ Cox
a18208fb60
fix range on invalid utf8 bug
...
R=r
DELTA=42 (21 added, 20 deleted, 1 changed)
OCL=34328
CL=34333
2009-09-03 13:56:06 -07:00
Russ Cox
fe8ff955e9
add newprocreadylocked for debugger
...
R=austin
DELTA=10 (9 added, 0 deleted, 1 changed)
OCL=34163
CL=34166
2009-08-31 18:10:11 -07:00
Russ Cox
4962e7ee9b
use correct pc for printing fn+%#x in tracebacks
...
R=austin
DELTA=12 (2 added, 0 deleted, 10 changed)
OCL=34098
CL=34120
2009-08-31 10:55:24 -07:00
Ken Thompson
bf0130cc0f
sliceslice inline
...
R=rsc
OCL=34041
CL=34041
2009-08-28 12:37:39 -07:00
Russ Cox
2aea4a063b
recycle G structs
...
R=r
DELTA=1 (1 added, 0 deleted, 0 changed)
OCL=33887
CL=33904
2009-08-26 15:26:09 -07:00
Russ Cox
de7920e6fd
finish ChanValue: Len and Cap.
...
R=r
DELTA=45 (45 added, 0 deleted, 0 changed)
OCL=33873
CL=33881
2009-08-26 12:42:22 -07:00
Russ Cox
653cef1ba0
add Close() and Closed() to ChanValue
...
R=r
DELTA=60 (56 added, 3 deleted, 1 changed)
OCL=33868
CL=33872
2009-08-26 10:47:18 -07:00
Rob Pike
87f2208bda
rename runtime internals to have modern names (array->slice etc)
...
R=rsc
DELTA=444 (179 added, 177 deleted, 88 changed)
OCL=33847
CL=33849
2009-08-25 15:54:25 -07:00
Russ Cox
67815ef65b
checkpoint & test (pidigits) before trying to automate.
...
R=r
DELTA=616 (598 added, 11 deleted, 7 changed)
OCL=33846
CL=33848
2009-08-25 15:37:22 -07:00
Russ Cox
fdc4b4a47f
start of FFI support, and a demo.
...
R=r
DELTA=494 (492 added, 0 deleted, 2 changed)
OCL=33784
CL=33810
2009-08-24 17:30:00 -07:00
Russ Cox
1f177cd8b2
linker work
...
* use //ffi comments in package import data
to generate relocation entries and library loads.
* call initffi in rt0.s if present
R=r
DELTA=117 (91 added, 3 deleted, 23 changed)
OCL=33739
CL=33750
2009-08-24 10:19:31 -07:00