2008-11-21 13:36:16 -07:00
|
|
|
# Copyright 2009 The Go Authors. All rights reserved.
|
|
|
|
# Use of this source code is governed by a BSD-style
|
|
|
|
# license that can be found in the LICENSE file.
|
|
|
|
|
2009-05-19 16:42:00 -06:00
|
|
|
# After editing the DIRS= list or adding imports to any Go files
|
|
|
|
# in any of those directories, run:
|
|
|
|
#
|
2009-05-23 20:39:25 -06:00
|
|
|
# ./deps.bash
|
2009-05-19 16:42:00 -06:00
|
|
|
#
|
|
|
|
# to rebuild the dependency information in Make.deps.
|
|
|
|
|
2010-09-21 23:30:42 -06:00
|
|
|
include ../Make.inc
|
|
|
|
|
2008-11-21 13:36:16 -07:00
|
|
|
all: install
|
|
|
|
|
|
|
|
DIRS=\
|
2009-06-09 00:22:56 -06:00
|
|
|
archive/tar\
|
2010-09-29 19:59:46 -06:00
|
|
|
archive/zip\
|
2009-10-13 15:37:48 -06:00
|
|
|
asn1\
|
2009-08-17 16:20:51 -06:00
|
|
|
big\
|
2009-05-05 18:05:39 -06:00
|
|
|
bufio\
|
2009-06-04 16:00:15 -06:00
|
|
|
bytes\
|
2010-04-05 23:10:27 -06:00
|
|
|
cmath\
|
2011-02-23 08:23:28 -07:00
|
|
|
compress/bzip2\
|
2009-06-06 22:56:04 -06:00
|
|
|
compress/flate\
|
|
|
|
compress/gzip\
|
2011-02-23 02:52:43 -07:00
|
|
|
compress/lzw \
|
2009-08-17 23:03:13 -06:00
|
|
|
compress/zlib\
|
2009-09-02 13:54:38 -06:00
|
|
|
container/heap\
|
2009-06-02 21:26:14 -06:00
|
|
|
container/list\
|
2009-07-28 18:52:30 -06:00
|
|
|
container/ring\
|
2009-05-05 18:24:01 -06:00
|
|
|
container/vector\
|
2011-02-01 09:02:48 -07:00
|
|
|
crypto\
|
2009-05-14 18:11:11 -06:00
|
|
|
crypto/aes\
|
2010-02-26 16:24:46 -07:00
|
|
|
crypto/blowfish\
|
2010-11-03 08:39:15 -06:00
|
|
|
crypto/cast5\
|
2010-12-15 09:49:55 -07:00
|
|
|
crypto/cipher\
|
2011-04-05 13:40:48 -06:00
|
|
|
crypto/des\
|
2011-01-25 10:25:53 -07:00
|
|
|
crypto/dsa\
|
2011-03-10 07:42:34 -07:00
|
|
|
crypto/ecdsa\
|
2010-11-12 12:55:32 -07:00
|
|
|
crypto/elliptic\
|
2009-05-23 14:53:36 -06:00
|
|
|
crypto/hmac\
|
2009-11-23 18:44:44 -07:00
|
|
|
crypto/md4\
|
2009-05-20 19:16:38 -06:00
|
|
|
crypto/md5\
|
2010-08-19 14:33:58 -06:00
|
|
|
crypto/ocsp\
|
2011-02-24 18:19:53 -07:00
|
|
|
crypto/openpgp\
|
|
|
|
crypto/openpgp/armor\
|
|
|
|
crypto/openpgp/error\
|
|
|
|
crypto/openpgp/packet\
|
|
|
|
crypto/openpgp/s2k\
|
2010-03-17 00:12:20 -06:00
|
|
|
crypto/rand\
|
2009-09-29 13:15:24 -06:00
|
|
|
crypto/rc4\
|
2010-03-08 19:12:36 -07:00
|
|
|
crypto/ripemd160\
|
2009-11-05 17:44:02 -07:00
|
|
|
crypto/rsa\
|
2009-05-20 19:16:38 -06:00
|
|
|
crypto/sha1\
|
2009-12-14 16:09:49 -07:00
|
|
|
crypto/sha256\
|
2010-03-08 18:00:04 -07:00
|
|
|
crypto/sha512\
|
2009-11-02 12:12:07 -07:00
|
|
|
crypto/subtle\
|
2009-11-05 17:44:02 -07:00
|
|
|
crypto/tls\
|
2011-01-11 18:51:35 -07:00
|
|
|
crypto/twofish\
|
2009-11-05 17:44:02 -07:00
|
|
|
crypto/x509\
|
2011-05-11 08:39:09 -06:00
|
|
|
crypto/x509/crl\
|
2009-12-09 01:06:20 -07:00
|
|
|
crypto/xtea\
|
2009-09-15 22:58:45 -06:00
|
|
|
debug/dwarf\
|
2009-09-18 12:50:24 -06:00
|
|
|
debug/macho\
|
2009-08-31 17:08:12 -06:00
|
|
|
debug/elf\
|
2009-09-02 13:03:33 -06:00
|
|
|
debug/gosym\
|
2010-11-01 15:52:26 -06:00
|
|
|
debug/pe\
|
2009-09-02 13:03:33 -06:00
|
|
|
debug/proc\
|
2009-07-13 11:10:56 -06:00
|
|
|
ebnf\
|
2009-10-20 14:00:16 -06:00
|
|
|
encoding/ascii85\
|
2011-01-20 10:51:15 -07:00
|
|
|
encoding/base32\
|
2009-10-20 14:00:16 -06:00
|
|
|
encoding/base64\
|
|
|
|
encoding/binary\
|
|
|
|
encoding/git85\
|
2009-11-03 13:47:06 -07:00
|
|
|
encoding/hex\
|
2009-10-21 18:53:50 -06:00
|
|
|
encoding/pem\
|
2009-05-05 18:05:39 -06:00
|
|
|
exec\
|
2009-10-14 17:55:05 -06:00
|
|
|
exp/datafmt\
|
2009-10-15 12:05:23 -06:00
|
|
|
exp/eval\
|
2011-06-04 22:27:38 -06:00
|
|
|
exp/gui\
|
|
|
|
exp/gui/x11\
|
2009-09-30 14:11:33 -06:00
|
|
|
expvar\
|
2009-05-05 18:05:39 -06:00
|
|
|
flag\
|
2008-11-21 13:36:16 -07:00
|
|
|
fmt\
|
2009-05-07 18:15:24 -06:00
|
|
|
go/ast\
|
2011-06-03 20:45:09 -06:00
|
|
|
go/build\
|
2009-05-07 18:15:24 -06:00
|
|
|
go/doc\
|
|
|
|
go/parser\
|
2009-06-15 17:23:16 -06:00
|
|
|
go/printer\
|
2009-05-07 18:15:24 -06:00
|
|
|
go/scanner\
|
|
|
|
go/token\
|
2010-08-26 15:36:13 -06:00
|
|
|
go/typechecker\
|
go/types: New Go type hierarchy implementation for AST.
This CL defines a new, more Go-like representation of
Go types (different structs for different types as
opposed to a single Type node). It also implements
an ast.Importer for object/archive files generated
by the gc compiler tool chain. Besides the individual
type structs, the main difference is the handling of
named types: In the old world, a named type had a
non-nil *Object pointer but otherwise looked no
different from other types. In this new model, named
types have their own representation types.Name. As
a result, resolving cycles is a bit simpler during
construction, at the cost of having to deal with
types.Name nodes explicitly later. It remains to be
seen if this is a good approach. Nevertheless, code
involving types reads more nicely and benefits from
full type checking. Also, the representation seems
to more closely match the spec wording.
Credits: The original version of the gc importer was
written by Evan Shaw (chickencha@gmail.com). The new
version in this CL is based largely on Evan's original
code but contains bug fixes, a few simplifications,
some restructuring, and was adjusted to use the
new type hierarchy. I have added a comprehensive test
that imports all packages found under $GOROOT/pkg (with
a 3s time-out to limit the run-time of the test). Run
gotest -v for details.
The original version of ExportData (exportdata.go) was
written by Russ Cox (rsc@golang.org). The current version
is returning the internal buffer positioned at the beginning
of the export data instead of printing the export data to
stdout.
With the new types package, the existing in-progress
typechecker package is deprecated. I will delete it
once all functionality has been brought over.
R=eds, rog, rsc
CC=golang-dev
https://golang.org/cl/4314054
2011-04-07 22:40:37 -06:00
|
|
|
go/types\
|
2009-07-03 13:54:59 -06:00
|
|
|
gob\
|
2009-05-20 19:16:38 -06:00
|
|
|
hash\
|
2009-05-07 18:15:24 -06:00
|
|
|
hash/adler32\
|
|
|
|
hash/crc32\
|
2010-03-12 18:38:18 -07:00
|
|
|
hash/crc64\
|
2011-03-07 09:11:21 -07:00
|
|
|
hash/fnv\
|
2010-08-10 00:08:21 -06:00
|
|
|
html\
|
2008-11-21 13:36:16 -07:00
|
|
|
http\
|
2011-03-04 11:55:47 -07:00
|
|
|
http/cgi\
|
2011-04-27 13:34:34 -06:00
|
|
|
http/fcgi\
|
2010-03-24 10:40:09 -06:00
|
|
|
http/pprof\
|
2011-03-04 11:55:47 -07:00
|
|
|
http/httptest\
|
2011-04-28 14:11:37 -06:00
|
|
|
http/spdy\
|
2009-08-26 22:51:03 -06:00
|
|
|
image\
|
2011-05-11 12:12:45 -06:00
|
|
|
image/bmp\
|
2011-06-04 22:27:38 -06:00
|
|
|
image/draw\
|
2011-05-07 23:57:42 -06:00
|
|
|
image/gif\
|
Basic image/jpeg decoder.
This is not a complete JPEG implementation (e.g. it does not handle
progressive JPEGs or restart markers), but I was able to take a photo
with my phone, and view the resultant JPEG in pure Go.
The decoder is simple, but slow. The Huffman decoder in particular
should be easily improvable, but optimization is left to future
changelists. Being able to inline functions in the inner loop should
also help performance.
The output is not pixel-for-pixel identical to libjpeg, although
identical behavior isn't necessarily a goal, since JPEG is a lossy
codec. There are at least two reasons for the discrepancy.
First, the inverse DCT algorithm used is the same as Plan9's
src/cmd/jpg, which has different rounding errors from libjpeg's
default IDCT implementation. Note that libjpeg actually has three
different IDCT implementations: one floating point, and two fixed
point. Out of those four, Plan9's seemed the simplest to understand,
partly because it has no #ifdef's or C macros.
Second, for 4:2:2 or 4:2:0 chroma sampling, this implementation does
nearest neighbor upsampling, compared to libjpeg's triangle filter
(e.g. see h2v1_fancy_upsample in jdsample.c).
The difference from the first reason is typically zero, but sometimes
1 (out of 256) in YCbCr space, or double that in RGB space. The
difference from the second reason can be as large as 8/256 in YCbCr
space, in regions of steep chroma gradients. Informal eyeballing
suggests that the net difference is typically imperceptible, though.
R=r
CC=golang-dev, rsc
https://golang.org/cl/164056
2009-12-16 16:32:17 -07:00
|
|
|
image/jpeg\
|
2009-09-10 22:33:44 -06:00
|
|
|
image/png\
|
2011-05-04 21:52:55 -06:00
|
|
|
image/tiff\
|
2011-04-12 06:32:03 -06:00
|
|
|
image/ycbcr\
|
2010-09-22 00:12:57 -06:00
|
|
|
index/suffixarray\
|
2008-11-25 10:41:58 -07:00
|
|
|
io\
|
2009-12-02 23:02:14 -07:00
|
|
|
io/ioutil\
|
2008-12-11 13:25:58 -07:00
|
|
|
json\
|
2009-05-05 18:05:39 -06:00
|
|
|
log\
|
2011-05-31 22:10:21 -06:00
|
|
|
mail\
|
2008-11-21 13:36:16 -07:00
|
|
|
math\
|
2010-02-09 21:47:45 -07:00
|
|
|
mime\
|
2010-07-14 18:26:14 -06:00
|
|
|
mime/multipart\
|
2008-11-21 13:36:16 -07:00
|
|
|
net\
|
2010-08-06 18:37:45 -06:00
|
|
|
net/dict\
|
|
|
|
net/textproto\
|
2010-05-05 16:17:26 -06:00
|
|
|
netchan\
|
2008-11-21 13:36:16 -07:00
|
|
|
os\
|
2009-12-15 19:21:29 -07:00
|
|
|
os/signal\
|
2011-04-22 10:30:30 -06:00
|
|
|
os/user\
|
2009-11-04 18:55:06 -07:00
|
|
|
patch\
|
2009-05-05 18:05:39 -06:00
|
|
|
path\
|
2011-03-06 15:33:23 -07:00
|
|
|
path/filepath\
|
2009-05-05 18:05:39 -06:00
|
|
|
rand\
|
2008-11-21 13:36:16 -07:00
|
|
|
reflect\
|
|
|
|
regexp\
|
2009-07-15 22:28:45 -06:00
|
|
|
rpc\
|
2010-04-27 14:51:58 -06:00
|
|
|
rpc/jsonrpc\
|
2009-05-18 19:42:47 -06:00
|
|
|
runtime\
|
2010-12-08 11:53:30 -07:00
|
|
|
runtime/cgo\
|
2011-01-19 13:28:38 -07:00
|
|
|
runtime/debug\
|
2010-03-24 10:40:09 -06:00
|
|
|
runtime/pprof\
|
2010-01-12 18:04:45 -07:00
|
|
|
scanner\
|
2010-10-13 20:07:28 -06:00
|
|
|
smtp\
|
2009-05-05 18:05:39 -06:00
|
|
|
sort\
|
2008-11-21 13:36:16 -07:00
|
|
|
strconv\
|
2009-05-05 18:05:39 -06:00
|
|
|
strings\
|
2008-12-04 13:51:36 -07:00
|
|
|
sync\
|
2011-02-25 12:29:36 -07:00
|
|
|
sync/atomic\
|
2009-05-18 19:42:47 -06:00
|
|
|
syscall\
|
2009-12-11 13:41:51 -07:00
|
|
|
syslog\
|
2008-11-21 14:05:09 -07:00
|
|
|
tabwriter\
|
2009-04-09 00:43:02 -06:00
|
|
|
template\
|
2009-05-05 18:05:39 -06:00
|
|
|
testing\
|
2009-05-18 14:31:56 -06:00
|
|
|
testing/iotest\
|
2009-10-29 19:34:44 -06:00
|
|
|
testing/quick\
|
2009-11-03 13:47:06 -07:00
|
|
|
testing/script\
|
2008-11-21 13:36:16 -07:00
|
|
|
time\
|
2010-10-11 13:40:13 -06:00
|
|
|
try\
|
2009-01-14 15:05:00 -07:00
|
|
|
unicode\
|
2010-03-16 19:44:37 -06:00
|
|
|
utf16\
|
2008-11-21 17:13:31 -07:00
|
|
|
utf8\
|
2009-11-29 15:22:44 -07:00
|
|
|
websocket\
|
2009-10-05 16:10:00 -06:00
|
|
|
xml\
|
2010-08-25 15:54:10 -06:00
|
|
|
../cmd/cgo\
|
|
|
|
../cmd/ebnflint\
|
|
|
|
../cmd/godoc\
|
2011-03-15 12:15:41 -06:00
|
|
|
../cmd/gofix\
|
2010-08-25 15:54:10 -06:00
|
|
|
../cmd/gofmt\
|
|
|
|
../cmd/goinstall\
|
2011-03-29 14:29:20 -06:00
|
|
|
../cmd/gotest\
|
|
|
|
../cmd/gotype\
|
2010-12-09 10:37:18 -07:00
|
|
|
../cmd/govet\
|
2010-08-25 15:54:10 -06:00
|
|
|
../cmd/goyacc\
|
|
|
|
../cmd/hgpatch\
|
2008-12-18 23:37:22 -07:00
|
|
|
|
2010-12-09 11:11:39 -07:00
|
|
|
ifeq ($(GOOS),linux)
|
|
|
|
DIRS+=\
|
|
|
|
os/inotify\
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
2011-03-27 21:39:42 -06:00
|
|
|
NOTEST+=\
|
2011-02-01 09:02:48 -07:00
|
|
|
crypto\
|
2011-02-24 18:19:53 -07:00
|
|
|
crypto/openpgp/error\
|
2009-09-02 13:03:33 -06:00
|
|
|
debug/proc\
|
2011-06-04 22:27:38 -06:00
|
|
|
exp/gui\
|
|
|
|
exp/gui/x11\
|
2009-08-30 20:21:32 -06:00
|
|
|
go/ast\
|
|
|
|
go/doc\
|
|
|
|
go/token\
|
|
|
|
hash\
|
2010-03-24 10:40:09 -06:00
|
|
|
http/pprof\
|
2011-03-04 11:55:47 -07:00
|
|
|
http/httptest\
|
2011-05-11 12:12:45 -06:00
|
|
|
image/bmp\
|
2011-05-07 23:57:42 -06:00
|
|
|
image/gif\
|
2010-08-06 18:37:45 -06:00
|
|
|
net/dict\
|
2009-08-30 20:21:32 -06:00
|
|
|
rand\
|
2010-12-08 11:53:30 -07:00
|
|
|
runtime/cgo\
|
2009-08-30 20:21:32 -06:00
|
|
|
syscall\
|
2010-10-28 17:54:24 -06:00
|
|
|
testing\
|
2009-08-30 20:21:32 -06:00
|
|
|
testing/iotest\
|
2010-10-11 13:40:13 -06:00
|
|
|
try\
|
2010-08-25 15:54:10 -06:00
|
|
|
../cmd/cgo\
|
|
|
|
../cmd/ebnflint\
|
|
|
|
../cmd/godoc\
|
2011-03-29 14:29:20 -06:00
|
|
|
../cmd/gotest\
|
2010-12-09 10:37:18 -07:00
|
|
|
../cmd/govet\
|
2010-08-25 15:54:10 -06:00
|
|
|
../cmd/goyacc\
|
|
|
|
../cmd/hgpatch\
|
2009-08-30 20:21:32 -06:00
|
|
|
|
2011-03-27 21:39:42 -06:00
|
|
|
NOBENCH+=\
|
2010-01-12 16:43:20 -07:00
|
|
|
container/vector\
|
|
|
|
|
2010-09-10 12:05:57 -06:00
|
|
|
# Disable tests that windows cannot run yet.
|
|
|
|
ifeq ($(GOOS),windows)
|
|
|
|
NOTEST+=os/signal # no signals
|
|
|
|
NOTEST+=syslog # no network
|
|
|
|
NOTEST+=time # no syscall.Kill, syscall.SIGCHLD for sleep tests
|
|
|
|
endif
|
|
|
|
|
2010-06-21 14:05:38 -06:00
|
|
|
TEST=\
|
|
|
|
$(filter-out $(NOTEST),$(DIRS))
|
|
|
|
|
|
|
|
BENCH=\
|
|
|
|
$(filter-out $(NOBENCH),$(TEST))
|
|
|
|
|
2009-05-05 18:05:39 -06:00
|
|
|
clean.dirs: $(addsuffix .clean, $(DIRS))
|
|
|
|
install.dirs: $(addsuffix .install, $(DIRS))
|
|
|
|
nuke.dirs: $(addsuffix .nuke, $(DIRS))
|
|
|
|
test.dirs: $(addsuffix .test, $(TEST))
|
2011-03-25 15:50:44 -06:00
|
|
|
testshort.dirs: $(addsuffix .testshort, $(TEST))
|
2010-01-12 16:43:20 -07:00
|
|
|
bench.dirs: $(addsuffix .bench, $(BENCH))
|
2008-11-21 17:13:31 -07:00
|
|
|
|
2008-11-21 13:36:16 -07:00
|
|
|
%.clean:
|
2011-02-18 16:49:46 -07:00
|
|
|
+$(MAKE) -C $* clean
|
2008-11-21 13:36:16 -07:00
|
|
|
|
2009-05-05 18:05:39 -06:00
|
|
|
%.install:
|
2011-04-06 13:06:28 -06:00
|
|
|
+@echo install $*
|
2011-04-13 14:24:57 -06:00
|
|
|
+@$(MAKE) -C $* install.clean >$*/build.out 2>&1 || (echo INSTALL FAIL $*; cat $*/build.out; exit 1)
|
2008-11-21 13:36:16 -07:00
|
|
|
|
2009-05-05 18:05:39 -06:00
|
|
|
%.nuke:
|
2011-02-18 16:49:46 -07:00
|
|
|
+$(MAKE) -C $* nuke
|
2008-11-21 13:36:16 -07:00
|
|
|
|
2009-05-05 18:05:39 -06:00
|
|
|
%.test:
|
2011-04-06 13:06:28 -06:00
|
|
|
+@echo test $*
|
2011-04-13 14:24:57 -06:00
|
|
|
+@$(MAKE) -C $* test.clean >$*/test.out 2>&1 || (echo TEST FAIL $*; cat $*/test.out; exit 1)
|
2008-11-21 13:36:16 -07:00
|
|
|
|
2011-03-25 15:50:44 -06:00
|
|
|
%.testshort:
|
2011-04-06 13:06:28 -06:00
|
|
|
+@echo test $*
|
2011-04-13 14:24:57 -06:00
|
|
|
+@$(MAKE) -C $* testshort.clean >$*/test.out 2>&1 || (echo TEST FAIL $*; cat $*/test.out; exit 1)
|
2011-03-25 15:50:44 -06:00
|
|
|
|
2010-01-12 16:43:20 -07:00
|
|
|
%.bench:
|
2011-02-18 16:49:46 -07:00
|
|
|
+$(MAKE) -C $* bench
|
2010-01-12 16:43:20 -07:00
|
|
|
|
2009-05-05 18:05:39 -06:00
|
|
|
clean: clean.dirs
|
2008-11-21 13:36:16 -07:00
|
|
|
|
2009-05-05 18:05:39 -06:00
|
|
|
install: install.dirs
|
2008-11-21 13:36:16 -07:00
|
|
|
|
2009-05-05 18:05:39 -06:00
|
|
|
test: test.dirs
|
2008-11-21 13:36:16 -07:00
|
|
|
|
2011-03-25 15:50:44 -06:00
|
|
|
testshort: testshort.dirs
|
|
|
|
|
2010-02-09 14:33:00 -07:00
|
|
|
bench: bench.dirs ../../test/garbage.bench
|
2010-01-12 16:43:20 -07:00
|
|
|
|
2009-05-05 18:05:39 -06:00
|
|
|
nuke: nuke.dirs
|
2009-11-23 18:32:51 -07:00
|
|
|
rm -rf "$(GOROOT)"/pkg/*
|
2008-11-21 17:13:31 -07:00
|
|
|
|
2009-05-18 19:42:47 -06:00
|
|
|
deps:
|
|
|
|
./deps.bash
|
2008-11-21 13:36:16 -07:00
|
|
|
|
2010-12-09 11:11:39 -07:00
|
|
|
echo-dirs:
|
|
|
|
@echo $(DIRS)
|
|
|
|
|
2009-11-24 22:07:05 -07:00
|
|
|
-include Make.deps
|
2010-08-25 15:54:10 -06:00
|
|
|
|
2010-12-08 11:53:30 -07:00
|
|
|
runtime/cgo.install: ../cmd/cgo.install
|