OSDN Git Service

Update Go library to last weekly.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 Oct 2011 23:57:58 +0000 (23:57 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 Oct 2011 23:57:58 +0000 (23:57 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180552 138bc75d-0d04-0410-961f-82ee72b054a4

537 files changed:
gcc/testsuite/go.test/test/chan/sieve2.go
gcc/testsuite/go.test/test/vectors.go [deleted file]
libgo/MERGE
libgo/Makefile.am
libgo/Makefile.in
libgo/go/archive/tar/common.go
libgo/go/archive/tar/reader.go
libgo/go/archive/tar/testdata/writer.tar
libgo/go/archive/tar/writer.go
libgo/go/archive/tar/writer_test.go
libgo/go/archive/zip/reader.go
libgo/go/archive/zip/reader_test.go
libgo/go/archive/zip/struct.go
libgo/go/archive/zip/writer.go
libgo/go/archive/zip/writer_test.go
libgo/go/asn1/asn1.go
libgo/go/asn1/asn1_test.go
libgo/go/asn1/marshal.go
libgo/go/big/int.go
libgo/go/big/int_test.go
libgo/go/big/nat.go
libgo/go/big/rat.go
libgo/go/big/rat_test.go
libgo/go/bufio/bufio.go
libgo/go/bufio/bufio_test.go
libgo/go/bytes/buffer.go
libgo/go/bytes/bytes.go
libgo/go/bytes/bytes_test.go
libgo/go/cmath/asin.go
libgo/go/cmath/sin.go
libgo/go/cmath/sqrt.go
libgo/go/cmath/tan.go
libgo/go/container/heap/heap_test.go
libgo/go/container/vector/defs.go [deleted file]
libgo/go/container/vector/intvector.go [deleted file]
libgo/go/container/vector/intvector_test.go [deleted file]
libgo/go/container/vector/nogen_test.go [deleted file]
libgo/go/container/vector/numbers_test.go [deleted file]
libgo/go/container/vector/stringvector.go [deleted file]
libgo/go/container/vector/stringvector_test.go [deleted file]
libgo/go/container/vector/vector.go [deleted file]
libgo/go/container/vector/vector_test.go [deleted file]
libgo/go/crypto/bcrypt/base64.go [new file with mode: 0644]
libgo/go/crypto/bcrypt/bcrypt.go [new file with mode: 0644]
libgo/go/crypto/bcrypt/bcrypt_test.go [new file with mode: 0644]
libgo/go/crypto/blowfish/block.go
libgo/go/crypto/blowfish/blowfish_test.go
libgo/go/crypto/blowfish/cipher.go
libgo/go/crypto/elliptic/elliptic_test.go
libgo/go/crypto/ocsp/ocsp_test.go
libgo/go/crypto/rand/rand_unix.go
libgo/go/crypto/tls/cipher_suites.go
libgo/go/crypto/tls/common.go
libgo/go/crypto/tls/conn.go
libgo/go/crypto/tls/conn_test.go
libgo/go/crypto/tls/handshake_client.go
libgo/go/crypto/tls/handshake_client_test.go
libgo/go/crypto/tls/handshake_messages.go
libgo/go/crypto/tls/handshake_messages_test.go
libgo/go/crypto/tls/handshake_server.go
libgo/go/crypto/tls/handshake_server_test.go
libgo/go/crypto/tls/key_agreement.go
libgo/go/crypto/tls/prf.go
libgo/go/crypto/tls/prf_test.go
libgo/go/crypto/tls/root_darwin.go [new file with mode: 0644]
libgo/go/crypto/tls/root_stub.go [new file with mode: 0644]
libgo/go/crypto/tls/root_test.go [new file with mode: 0644]
libgo/go/crypto/tls/root_unix.go [new file with mode: 0644]
libgo/go/crypto/tls/root_windows.go [new file with mode: 0644]
libgo/go/crypto/x509/cert_pool.go
libgo/go/crypto/x509/pkcs1.go [new file with mode: 0644]
libgo/go/crypto/x509/pkix/pkix.go
libgo/go/crypto/x509/verify_test.go
libgo/go/crypto/x509/x509.go
libgo/go/crypto/x509/x509_test.go
libgo/go/csv/reader.go
libgo/go/csv/reader_test.go
libgo/go/debug/dwarf/type.go
libgo/go/encoding/binary/binary.go
libgo/go/encoding/binary/varint.go [new file with mode: 0644]
libgo/go/encoding/binary/varint_test.go [new file with mode: 0644]
libgo/go/exec/exec.go
libgo/go/exec/exec_test.go
libgo/go/exec/lp_unix.go
libgo/go/exp/ebnf/ebnf.go [moved from libgo/go/ebnf/ebnf.go with 72% similarity]
libgo/go/exp/ebnf/ebnf_test.go [moved from libgo/go/ebnf/ebnf_test.go with 62% similarity]
libgo/go/exp/ebnf/parser.go [moved from libgo/go/ebnf/parser.go with 59% similarity]
libgo/go/exp/ebnflint/doc.go [new file with mode: 0644]
libgo/go/exp/ebnflint/ebnflint.go [new file with mode: 0644]
libgo/go/exp/gotype/doc.go [new file with mode: 0644]
libgo/go/exp/gotype/gotype.go [new file with mode: 0644]
libgo/go/exp/gotype/gotype_test.go [new file with mode: 0644]
libgo/go/exp/gotype/testdata/test1.go [new file with mode: 0644]
libgo/go/exp/gui/x11/conn.go
libgo/go/exp/norm/composition.go
libgo/go/exp/norm/composition_test.go
libgo/go/exp/norm/forminfo.go
libgo/go/exp/norm/input.go [new file with mode: 0644]
libgo/go/exp/norm/maketables.go
libgo/go/exp/norm/maketesttables.go
libgo/go/exp/norm/normalize.go
libgo/go/exp/norm/normalize_test.go [new file with mode: 0644]
libgo/go/exp/norm/normregtest.go [new file with mode: 0644]
libgo/go/exp/norm/readwriter.go [new file with mode: 0644]
libgo/go/exp/norm/readwriter_test.go [new file with mode: 0644]
libgo/go/exp/norm/tables.go
libgo/go/exp/norm/trie.go
libgo/go/exp/norm/trie_test.go
libgo/go/exp/norm/triedata_test.go
libgo/go/exp/norm/triegen.go
libgo/go/exp/spdy/read.go [moved from libgo/go/http/spdy/read.go with 98% similarity]
libgo/go/exp/spdy/spdy_test.go [moved from libgo/go/http/spdy/spdy_test.go with 100% similarity]
libgo/go/exp/spdy/types.go [moved from libgo/go/http/spdy/types.go with 100% similarity]
libgo/go/exp/spdy/write.go [moved from libgo/go/http/spdy/write.go with 100% similarity]
libgo/go/exp/sql/convert.go [new file with mode: 0644]
libgo/go/exp/sql/convert_test.go [new file with mode: 0644]
libgo/go/exp/sql/driver/driver.go [new file with mode: 0644]
libgo/go/exp/sql/driver/types.go [new file with mode: 0644]
libgo/go/exp/sql/fakedb_test.go [new file with mode: 0644]
libgo/go/exp/sql/sql.go [new file with mode: 0644]
libgo/go/exp/sql/sql_test.go [new file with mode: 0644]
libgo/go/exp/ssh/channel.go [new file with mode: 0644]
libgo/go/exp/ssh/common.go [new file with mode: 0644]
libgo/go/exp/ssh/doc.go [new file with mode: 0644]
libgo/go/exp/ssh/messages.go [new file with mode: 0644]
libgo/go/exp/ssh/messages_test.go [new file with mode: 0644]
libgo/go/exp/ssh/server.go [new file with mode: 0644]
libgo/go/exp/ssh/server_shell.go [new file with mode: 0644]
libgo/go/exp/ssh/server_shell_test.go [new file with mode: 0644]
libgo/go/exp/ssh/transport.go [new file with mode: 0644]
libgo/go/exp/ssh/transport_test.go [new file with mode: 0644]
libgo/go/exp/template/html/attr.go [new file with mode: 0644]
libgo/go/exp/template/html/clone.go [new file with mode: 0644]
libgo/go/exp/template/html/clone_test.go [new file with mode: 0644]
libgo/go/exp/template/html/content.go [new file with mode: 0644]
libgo/go/exp/template/html/content_test.go [new file with mode: 0644]
libgo/go/exp/template/html/context.go
libgo/go/exp/template/html/css.go [new file with mode: 0644]
libgo/go/exp/template/html/css_test.go [new file with mode: 0644]
libgo/go/exp/template/html/doc.go [new file with mode: 0644]
libgo/go/exp/template/html/error.go [new file with mode: 0644]
libgo/go/exp/template/html/escape.go
libgo/go/exp/template/html/escape_test.go
libgo/go/exp/template/html/html.go [new file with mode: 0644]
libgo/go/exp/template/html/html_test.go [new file with mode: 0644]
libgo/go/exp/template/html/js.go [new file with mode: 0644]
libgo/go/exp/template/html/js_test.go [new file with mode: 0644]
libgo/go/exp/template/html/transition.go [new file with mode: 0644]
libgo/go/exp/template/html/url.go [new file with mode: 0644]
libgo/go/exp/template/html/url_test.go [new file with mode: 0644]
libgo/go/exp/terminal/shell.go [new file with mode: 0644]
libgo/go/exp/terminal/shell_test.go [new file with mode: 0644]
libgo/go/exp/terminal/terminal.go [new file with mode: 0644]
libgo/go/exp/types/check.go [moved from libgo/go/go/types/check.go with 100% similarity]
libgo/go/exp/types/check_test.go [moved from libgo/go/go/types/check_test.go with 99% similarity]
libgo/go/exp/types/const.go [moved from libgo/go/go/types/const.go with 100% similarity]
libgo/go/exp/types/exportdata.go [moved from libgo/go/go/types/exportdata.go with 100% similarity]
libgo/go/exp/types/gcimporter.go [moved from libgo/go/go/types/gcimporter.go with 92% similarity]
libgo/go/exp/types/gcimporter_test.go [moved from libgo/go/go/types/gcimporter_test.go with 100% similarity]
libgo/go/exp/types/testdata/exports.go [moved from libgo/go/go/types/testdata/exports.go with 100% similarity]
libgo/go/exp/types/types.go [moved from libgo/go/go/types/types.go with 100% similarity]
libgo/go/exp/types/universe.go [moved from libgo/go/go/types/universe.go with 99% similarity]
libgo/go/exp/winfsnotify/winfsnotify.go [new file with mode: 0644]
libgo/go/exp/winfsnotify/winfsnotify_test.go [new file with mode: 0644]
libgo/go/exp/wingui/gui.go
libgo/go/exp/wingui/winapi.go
libgo/go/exp/wingui/zwinapi.go
libgo/go/flag/flag.go
libgo/go/flag/flag_test.go
libgo/go/fmt/doc.go
libgo/go/fmt/fmt_test.go
libgo/go/fmt/print.go
libgo/go/go/ast/filter.go
libgo/go/go/build/build_test.go
libgo/go/go/build/dir.go
libgo/go/go/build/pkgtest/pkgtest.go
libgo/go/go/build/pkgtest/sqrt_386_test.go [new file with mode: 0644]
libgo/go/go/build/pkgtest/sqrt_amd64_test.go [new file with mode: 0644]
libgo/go/go/build/pkgtest/sqrt_arm_test.go [new file with mode: 0644]
libgo/go/go/build/pkgtest/sqrt_test.go [new file with mode: 0644]
libgo/go/go/build/pkgtest/xsqrt_test.go [new file with mode: 0644]
libgo/go/go/build/syslist_test.go
libgo/go/go/doc/example.go [new file with mode: 0644]
libgo/go/go/parser/parser.go
libgo/go/go/parser/parser_test.go
libgo/go/go/printer/nodes.go
libgo/go/go/printer/printer.go
libgo/go/go/printer/printer_test.go
libgo/go/go/printer/testdata/declarations.golden
libgo/go/go/printer/testdata/declarations.input
libgo/go/go/scanner/scanner.go
libgo/go/go/scanner/scanner_test.go
libgo/go/go/token/position.go
libgo/go/go/token/serialize.go [new file with mode: 0644]
libgo/go/go/token/serialize_test.go [new file with mode: 0644]
libgo/go/go/typechecker/scope.go [deleted file]
libgo/go/go/typechecker/testdata/test0.src [deleted file]
libgo/go/go/typechecker/testdata/test1.src [deleted file]
libgo/go/go/typechecker/testdata/test3.src [deleted file]
libgo/go/go/typechecker/testdata/test4.src [deleted file]
libgo/go/go/typechecker/type.go [deleted file]
libgo/go/go/typechecker/typechecker.go [deleted file]
libgo/go/go/typechecker/typechecker_test.go [deleted file]
libgo/go/go/typechecker/universe.go [deleted file]
libgo/go/go/types/testdata/test0.src [deleted file]
libgo/go/gob/codec_test.go
libgo/go/gob/decode.go
libgo/go/gob/decoder.go
libgo/go/gob/doc.go
libgo/go/gob/encode.go
libgo/go/gob/encoder.go
libgo/go/gob/encoder_test.go
libgo/go/gob/gobencdec_test.go
libgo/go/gob/type.go
libgo/go/html/escape.go
libgo/go/html/parse.go
libgo/go/html/parse_test.go
libgo/go/html/render.go [new file with mode: 0644]
libgo/go/html/render_test.go [new file with mode: 0644]
libgo/go/html/token.go
libgo/go/html/token_test.go
libgo/go/http/cgi/child.go
libgo/go/http/cgi/child_test.go
libgo/go/http/cgi/host.go
libgo/go/http/cgi/host_test.go
libgo/go/http/chunked.go
libgo/go/http/client.go
libgo/go/http/client_test.go
libgo/go/http/cookie.go
libgo/go/http/cookie_test.go
libgo/go/http/dump.go
libgo/go/http/fcgi/child.go
libgo/go/http/fcgi/fcgi_test.go
libgo/go/http/filetransport.go [new file with mode: 0644]
libgo/go/http/filetransport_test.go [new file with mode: 0644]
libgo/go/http/fs.go
libgo/go/http/header.go
libgo/go/http/httptest/server.go
libgo/go/http/persist.go
libgo/go/http/readrequest_test.go
libgo/go/http/request.go
libgo/go/http/request_test.go
libgo/go/http/requestwrite_test.go
libgo/go/http/response.go
libgo/go/http/response_test.go
libgo/go/http/serve_test.go
libgo/go/http/server.go
libgo/go/http/transfer.go
libgo/go/http/transport.go
libgo/go/http/transport_test.go
libgo/go/http/transport_windows.go [new file with mode: 0644]
libgo/go/image/bmp/reader.go
libgo/go/image/color.go [deleted file]
libgo/go/image/color/color.go [new file with mode: 0644]
libgo/go/image/decode_test.go
libgo/go/image/draw/bench_test.go
libgo/go/image/draw/clip_test.go
libgo/go/image/draw/draw.go
libgo/go/image/draw/draw_test.go
libgo/go/image/gif/reader.go
libgo/go/image/image.go
libgo/go/image/image_test.go
libgo/go/image/jpeg/reader.go
libgo/go/image/jpeg/writer_test.go
libgo/go/image/names.go
libgo/go/image/png/reader.go
libgo/go/image/png/reader_test.go
libgo/go/image/png/testdata/invalid-crc32.png [new file with mode: 0644]
libgo/go/image/png/testdata/invalid-noend.png [new file with mode: 0644]
libgo/go/image/png/testdata/invalid-trunc.png [new file with mode: 0644]
libgo/go/image/png/testdata/invalid-zlib.png [new file with mode: 0644]
libgo/go/image/png/writer.go
libgo/go/image/png/writer_test.go
libgo/go/image/tiff/compress.go [new file with mode: 0644]
libgo/go/image/tiff/reader.go
libgo/go/image/tiff/reader_test.go
libgo/go/image/tiff/testdata/bw-deflate.tiff [new file with mode: 0644]
libgo/go/image/tiff/testdata/bw-packbits.tiff [new file with mode: 0644]
libgo/go/image/tiff/testdata/bw-uncompressed.tiff [new file with mode: 0644]
libgo/go/image/tiff/testdata/video-001-uncompressed.tiff [new file with mode: 0644]
libgo/go/image/ycbcr/ycbcr.go
libgo/go/index/suffixarray/qsufsort.go
libgo/go/index/suffixarray/suffixarray.go
libgo/go/index/suffixarray/suffixarray_test.go
libgo/go/io/io.go
libgo/go/io/io_test.go
libgo/go/io/ioutil/ioutil.go
libgo/go/json/decode.go
libgo/go/json/decode_test.go
libgo/go/json/encode.go
libgo/go/json/encode_test.go
libgo/go/json/indent.go
libgo/go/json/scanner_test.go
libgo/go/json/stream_test.go
libgo/go/mail/message_test.go
libgo/go/math/abs.go [moved from libgo/go/math/fabs.go with 60% similarity]
libgo/go/math/abs_decl.go [new file with mode: 0644]
libgo/go/math/all_test.go
libgo/go/math/bits.go
libgo/go/math/dim.go [moved from libgo/go/math/fdim.go with 57% similarity]
libgo/go/math/dim_decl.go [new file with mode: 0644]
libgo/go/math/gamma.go
libgo/go/math/jn.go
libgo/go/math/lgamma.go
libgo/go/math/mod.go [moved from libgo/go/math/fmod.go with 83% similarity]
libgo/go/math/mod_decl.go [new file with mode: 0644]
libgo/go/math/pow.go
libgo/go/math/pow10.go
libgo/go/math/remainder.go
libgo/go/mime/grammar.go
libgo/go/mime/mediatype.go
libgo/go/mime/mediatype_test.go
libgo/go/mime/multipart/formdata.go
libgo/go/mime/multipart/multipart.go
libgo/go/mime/multipart/writer.go
libgo/go/mime/type.go
libgo/go/mime/type_test.go [moved from libgo/go/mime/mime_test.go with 57% similarity]
libgo/go/net/cgo_bsd.go
libgo/go/net/cgo_stub.go
libgo/go/net/cgo_unix.go
libgo/go/net/dial.go
libgo/go/net/dnsclient_unix.go
libgo/go/net/dnsconfig.go
libgo/go/net/fd.go
libgo/go/net/fd_linux.go
libgo/go/net/fd_windows.go
libgo/go/net/file.go
libgo/go/net/file_test.go
libgo/go/net/interface.go
libgo/go/net/interface_bsd.go
libgo/go/net/interface_linux.go
libgo/go/net/interface_stub.go
libgo/go/net/interface_test.go
libgo/go/net/ip.go
libgo/go/net/ip_test.go
libgo/go/net/iprawsock_posix.go
libgo/go/net/ipsock_posix.go
libgo/go/net/lookup_plan9.go
libgo/go/net/lookup_test.go
libgo/go/net/lookup_unix.go
libgo/go/net/lookup_windows.go
libgo/go/net/multicast_test.go
libgo/go/net/net_test.go
libgo/go/net/newpollserver.go
libgo/go/net/parse.go
libgo/go/net/port.go
libgo/go/net/sendfile_stub.go
libgo/go/net/sendfile_windows.go
libgo/go/net/server_test.go
libgo/go/net/sock.go
libgo/go/net/sock_bsd.go
libgo/go/net/tcpsock_posix.go
libgo/go/net/textproto/header.go
libgo/go/net/textproto/pipeline.go
libgo/go/net/textproto/reader.go
libgo/go/net/textproto/reader_test.go
libgo/go/net/udpsock_plan9.go
libgo/go/net/udpsock_posix.go
libgo/go/net/unixsock_posix.go
libgo/go/old/netchan/common.go [moved from libgo/go/netchan/common.go with 100% similarity]
libgo/go/old/netchan/export.go [moved from libgo/go/netchan/export.go with 99% similarity]
libgo/go/old/netchan/import.go [moved from libgo/go/netchan/import.go with 99% similarity]
libgo/go/old/netchan/netchan_test.go [moved from libgo/go/netchan/netchan_test.go with 100% similarity]
libgo/go/old/regexp/all_test.go [moved from libgo/go/exp/regexp/all_test.go with 98% similarity]
libgo/go/old/regexp/find_test.go [moved from libgo/go/exp/regexp/find_test.go with 98% similarity]
libgo/go/old/regexp/regexp.go [moved from libgo/go/exp/regexp/regexp.go with 52% similarity]
libgo/go/old/template/template_test.go
libgo/go/os/dir_plan9.go
libgo/go/os/dir_unix.go
libgo/go/os/env.go
libgo/go/os/env_unix.go
libgo/go/os/error_plan9.go
libgo/go/os/error_posix.go
libgo/go/os/exec_posix.go
libgo/go/os/exec_unix.go
libgo/go/os/file_posix.go
libgo/go/os/file_unix.go
libgo/go/os/inotify/inotify_linux.go
libgo/go/os/os_test.go
libgo/go/os/path.go
libgo/go/os/path_unix.go
libgo/go/os/str.go
libgo/go/os/sys_bsd.go
libgo/go/os/user/lookup_stubs.go
libgo/go/os/user/lookup_unix.go
libgo/go/path/filepath/match.go
libgo/go/path/filepath/match_test.go
libgo/go/path/filepath/path.go
libgo/go/path/filepath/path_test.go
libgo/go/path/filepath/path_unix.go
libgo/go/path/filepath/path_windows.go
libgo/go/rand/rand_test.go
libgo/go/reflect/all_test.go
libgo/go/reflect/type.go
libgo/go/reflect/value.go
libgo/go/regexp/all_test.go
libgo/go/regexp/exec.go [moved from libgo/go/exp/regexp/exec.go with 75% similarity]
libgo/go/regexp/exec_test.go [new file with mode: 0644]
libgo/go/regexp/find_test.go
libgo/go/regexp/regexp.go
libgo/go/regexp/syntax/compile.go [moved from libgo/go/exp/regexp/syntax/compile.go with 84% similarity]
libgo/go/regexp/syntax/parse.go [moved from libgo/go/exp/regexp/syntax/parse.go with 91% similarity]
libgo/go/regexp/syntax/parse_test.go [moved from libgo/go/exp/regexp/syntax/parse_test.go with 62% similarity]
libgo/go/regexp/syntax/perl_groups.go [moved from libgo/go/exp/regexp/syntax/perl_groups.go with 100% similarity]
libgo/go/regexp/syntax/prog.go [moved from libgo/go/exp/regexp/syntax/prog.go with 71% similarity]
libgo/go/regexp/syntax/prog_test.go [moved from libgo/go/exp/regexp/syntax/prog_test.go with 70% similarity]
libgo/go/regexp/syntax/regexp.go [moved from libgo/go/exp/regexp/syntax/regexp.go with 92% similarity]
libgo/go/regexp/syntax/simplify.go [moved from libgo/go/exp/regexp/syntax/simplify.go with 100% similarity]
libgo/go/regexp/syntax/simplify_test.go [moved from libgo/go/exp/regexp/syntax/simplify_test.go with 94% similarity]
libgo/go/regexp/testdata/README [new file with mode: 0644]
libgo/go/regexp/testdata/basic.dat [new file with mode: 0644]
libgo/go/regexp/testdata/nullsubexpr.dat [new file with mode: 0644]
libgo/go/regexp/testdata/re2-search.txt [new file with mode: 0644]
libgo/go/regexp/testdata/repetition.dat [new file with mode: 0644]
libgo/go/regexp/testdata/testregex.c [new file with mode: 0644]
libgo/go/rpc/client.go
libgo/go/rpc/jsonrpc/client.go
libgo/go/rpc/jsonrpc/server.go
libgo/go/rpc/server.go
libgo/go/rpc/server_test.go
libgo/go/runtime/chan_test.go
libgo/go/runtime/extern.go
libgo/go/runtime/gc_test.go [new file with mode: 0644]
libgo/go/runtime/mfinal_test.go [new file with mode: 0644]
libgo/go/runtime/pprof/pprof_test.go
libgo/go/scanner/scanner.go
libgo/go/scanner/scanner_test.go
libgo/go/sort/example_test.go [new file with mode: 0644]
libgo/go/sort/export_test.go [new file with mode: 0644]
libgo/go/sort/sort.go
libgo/go/sort/sort_test.go
libgo/go/strconv/atof.go
libgo/go/strconv/atof_test.go
libgo/go/strconv/decimal.go
libgo/go/strconv/decimal_test.go
libgo/go/strconv/ftoa.go
libgo/go/strconv/quote.go
libgo/go/strconv/quote_test.go
libgo/go/strings/export_test.go [new file with mode: 0644]
libgo/go/strings/replace.go [new file with mode: 0644]
libgo/go/strings/replace_test.go [new file with mode: 0644]
libgo/go/strings/strings.go
libgo/go/strings/strings_test.go
libgo/go/sync/atomic/atomic.c
libgo/go/sync/atomic/atomic_test.go
libgo/go/sync/atomic/doc.go
libgo/go/syscall/exec_unix.go
libgo/go/syscall/libcall_linux.go
libgo/go/syscall/libcall_posix.go
libgo/go/syscall/lsf_linux.go
libgo/go/syscall/socket.go
libgo/go/syscall/socket_irix.go
libgo/go/syscall/socket_linux.go
libgo/go/syscall/socket_solaris.go
libgo/go/template/exec.go
libgo/go/template/exec_test.go
libgo/go/template/helper.go
libgo/go/template/parse.go
libgo/go/template/parse/lex.go
libgo/go/template/parse/lex_test.go
libgo/go/template/parse/node.go
libgo/go/template/parse/parse.go
libgo/go/template/parse/parse_test.go
libgo/go/template/parse/set.go
libgo/go/template/set.go
libgo/go/testing/example.go [new file with mode: 0644]
libgo/go/testing/testing.go
libgo/go/time/format.go
libgo/go/time/internal_test.go [new file with mode: 0644]
libgo/go/time/sleep_test.go
libgo/go/time/sys_plan9.go
libgo/go/time/sys_unix.go [new file with mode: 0644]
libgo/go/time/sys_windows.go [moved from libgo/go/time/sys_posix.go with 84% similarity]
libgo/go/time/time.go
libgo/go/time/time_test.go
libgo/go/time/zoneinfo_plan9.go
libgo/go/time/zoneinfo_posix.go
libgo/go/time/zoneinfo_unix.go
libgo/go/time/zoneinfo_windows.go
libgo/go/try/try.go [deleted file]
libgo/go/try/try_test.go [deleted file]
libgo/go/unicode/script_test.go
libgo/go/url/url.go
libgo/go/url/url_test.go
libgo/go/utf8/utf8.go
libgo/go/utf8/utf8_test.go
libgo/go/websocket/client.go
libgo/go/websocket/hixie.go [new file with mode: 0644]
libgo/go/websocket/hixie_test.go [new file with mode: 0644]
libgo/go/websocket/hybi.go [new file with mode: 0644]
libgo/go/websocket/hybi_test.go [new file with mode: 0644]
libgo/go/websocket/server.go
libgo/go/websocket/websocket.go
libgo/go/websocket/websocket_test.go
libgo/go/xml/marshal.go
libgo/go/xml/marshal_test.go
libgo/go/xml/read.go
libgo/go/xml/read_test.go
libgo/go/xml/xml.go
libgo/merge.sh
libgo/mksysinfo.sh
libgo/runtime/arch.h [new file with mode: 0644]
libgo/runtime/cpuprof.c
libgo/runtime/go-append.c
libgo/runtime/go-byte-array-to-string.c
libgo/runtime/go-go.c
libgo/runtime/go-int-array-to-string.c
libgo/runtime/go-int-to-string.c
libgo/runtime/go-main.c
libgo/runtime/go-make-slice.c
libgo/runtime/go-new.c
libgo/runtime/go-note.c
libgo/runtime/go-panic.c
libgo/runtime/go-semacquire.c
libgo/runtime/go-string-to-byte-array.c
libgo/runtime/go-string-to-int-array.c
libgo/runtime/go-strplus.c
libgo/runtime/go-strslice.c
libgo/runtime/goc2c.c
libgo/runtime/malloc.goc
libgo/runtime/malloc.h
libgo/runtime/mcache.c
libgo/runtime/mcentral.c
libgo/runtime/mem.c
libgo/runtime/mem_posix_memalign.c
libgo/runtime/mfinal.c
libgo/runtime/mfixalloc.c
libgo/runtime/mgc0.c
libgo/runtime/mheap.c
libgo/runtime/mprof.goc
libgo/runtime/msize.c
libgo/runtime/proc.c
libgo/runtime/runtime.h
libgo/runtime/sigqueue.goc
libgo/runtime/thread.c
libgo/runtime/yield.c [new file with mode: 0644]
libgo/testsuite/gotest

index 7f2ed91..9a7ab15 100644 (file)
@@ -13,7 +13,6 @@ package main
 import (
        "container/heap"
        "container/ring"
-       "container/vector"
 )
 
 // Return a chan of odd numbers, starting from 5.
@@ -47,13 +46,28 @@ type PeekCh struct {
        ch   chan int
 }
 
-// Heap of PeekCh, sorting by head values.
-type PeekChHeap struct {
-       *vector.Vector
-}
+// Heap of PeekCh, sorting by head values, satisfies Heap interface.
+type PeekChHeap []*PeekCh
 
 func (h *PeekChHeap) Less(i, j int) bool {
-       return h.At(i).(*PeekCh).head < h.At(j).(*PeekCh).head
+       return (*h)[i].head < (*h)[j].head
+}
+
+func (h *PeekChHeap) Swap(i, j int) {
+       (*h)[i], (*h)[j] = (*h)[j], (*h)[i]
+}
+
+func (h *PeekChHeap) Len() int {
+       return len(*h)
+}
+
+func (h *PeekChHeap) Pop() (v interface{}) {
+       *h, v = (*h)[:h.Len()-1], (*h)[h.Len()-1]
+       return
+}
+
+func (h *PeekChHeap) Push(v interface{}) {
+       *h = append(*h, v.(*PeekCh))
 }
 
 // Return a channel to serve as a sending proxy to 'out'.
@@ -108,26 +122,26 @@ func Sieve() chan int {
 
        // Merge channels of multiples of 'primes' into 'composites'.
        go func() {
-               h := &PeekChHeap{new(vector.Vector)}
+               var h PeekChHeap
                min := 15
                for {
                        m := multiples(<-primes)
                        head := <-m
                        for min < head {
                                composites <- min
-                               minchan := heap.Pop(h).(*PeekCh)
+                               minchan := heap.Pop(&h).(*PeekCh)
                                min = minchan.head
                                minchan.head = <-minchan.ch
-                               heap.Push(h, minchan)
+                               heap.Push(&h, minchan)
                        }
                        for min == head {
-                               minchan := heap.Pop(h).(*PeekCh)
+                               minchan := heap.Pop(&h).(*PeekCh)
                                min = minchan.head
                                minchan.head = <-minchan.ch
-                               heap.Push(h, minchan)
+                               heap.Push(&h, minchan)
                        }
                        composites <- head
-                       heap.Push(h, &PeekCh{<-m, m})
+                       heap.Push(&h, &PeekCh{<-m, m})
                }
        }()
 
diff --git a/gcc/testsuite/go.test/test/vectors.go b/gcc/testsuite/go.test/test/vectors.go
deleted file mode 100644 (file)
index ed5905d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-// $G $F.go && $L $F.$A && ./$A.out
-
-// 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.
-
-package main
-
-import "container/vector"
-
-
-type S struct {
-       val int
-}
-
-
-func (p *S) Init(val int) *S {
-       p.val = val
-       return p
-}
-
-
-func test0() {
-       v := new(vector.Vector)
-       if v.Len() != 0 {
-               print("len = ", v.Len(), "\n")
-               panic("fail")
-       }
-}
-
-
-func test1() {
-       var a [1000]*S
-       for i := 0; i < len(a); i++ {
-               a[i] = new(S).Init(i)
-       }
-
-       v := new(vector.Vector)
-       for i := 0; i < len(a); i++ {
-               v.Insert(0, a[i])
-               if v.Len() != i+1 {
-                       print("len = ", v.Len(), "\n")
-                       panic("fail")
-               }
-       }
-
-       for i := 0; i < v.Len(); i++ {
-               x := v.At(i).(*S)
-               if x.val != v.Len()-i-1 {
-                       print("expected ", i, ", found ", x.val, "\n")
-                       panic("fail")
-               }
-       }
-
-       for v.Len() > 10 {
-               v.Delete(10)
-       }
-}
-
-
-func main() {
-       test0()
-       test1()
-}
index 8ad9d1e..8ba17de 100644 (file)
@@ -1,4 +1,4 @@
-c1702f36df03
+6d7136d74b65
 
 The first line of this file holds the Mercurial revision number of the
 last merge done from the master library sources.
index ce0fe83..e3b33a8 100644 (file)
@@ -107,7 +107,6 @@ toolexeclibgo_DATA = \
        cmath.gox \
        crypto.gox \
        csv.gox \
-       ebnf.gox \
        exec.gox \
        expvar.gox \
        flag.gox \
@@ -124,7 +123,6 @@ toolexeclibgo_DATA = \
        mail.gox \
        mime.gox \
        net.gox \
-       netchan.gox \
        os.gox \
        patch.gox \
        path.gox \
@@ -145,7 +143,6 @@ toolexeclibgo_DATA = \
        template.gox \
        testing.gox \
        time.gox \
-       try.gox \
        unicode.gox \
        url.gox \
        utf16.gox \
@@ -173,13 +170,13 @@ toolexeclibgocontainerdir = $(toolexeclibgodir)/container
 toolexeclibgocontainer_DATA = \
        container/heap.gox \
        container/list.gox \
-       container/ring.gox \
-       container/vector.gox
+       container/ring.gox
 
 toolexeclibgocryptodir = $(toolexeclibgodir)/crypto
 
 toolexeclibgocrypto_DATA = \
        crypto/aes.gox \
+       crypto/bcrypt.gox \
        crypto/blowfish.gox \
        crypto/cast5.gox \
        crypto/cipher.gox \
@@ -242,19 +239,24 @@ toolexeclibgoencoding_DATA = \
 toolexeclibgoexpdir = $(toolexeclibgodir)/exp
 
 toolexeclibgoexp_DATA = \
+       exp/ebnf.gox \
        exp/gui.gox \
        exp/norm.gox \
-       exp/regexp.gox
+       exp/spdy.gox \
+       exp/sql.gox \
+       exp/ssh.gox \
+       exp/terminal.gox \
+       exp/types.gox
 
 toolexeclibgoexpguidir = $(toolexeclibgoexpdir)/gui
 
 toolexeclibgoexpgui_DATA = \
        exp/gui/x11.gox
 
-toolexeclibgoexpregexpdir = $(toolexeclibgoexpdir)/regexp
+toolexeclibgoexpsqldir = $(toolexeclibgoexpdir)/sql
 
-toolexeclibgoexpregexp_DATA = \
-       exp/regexp/syntax.gox
+toolexeclibgoexpsql_DATA = \
+       exp/sql/driver.gox
 
 toolexeclibgoexptemplatedir = $(toolexeclibgoexpdir)/template
 
@@ -270,9 +272,7 @@ toolexeclibgogo_DATA = \
        go/parser.gox \
        go/printer.gox \
        go/scanner.gox \
-       go/token.gox \
-       go/typechecker.gox \
-       go/types.gox
+       go/token.gox
 
 toolexeclibgohashdir = $(toolexeclibgodir)/hash
 
@@ -288,13 +288,13 @@ toolexeclibgohttp_DATA = \
        http/cgi.gox \
        http/fcgi.gox \
        http/httptest.gox \
-       http/pprof.gox \
-       http/spdy.gox
+       http/pprof.gox
 
 toolexeclibgoimagedir = $(toolexeclibgodir)/image
 
 toolexeclibgoimage_DATA = \
        image/bmp.gox \
+       image/color.gox \
        image/draw.gox \
        image/gif.gox \
        image/jpeg.gox \
@@ -326,6 +326,8 @@ toolexeclibgonet_DATA = \
 toolexeclibgoolddir = $(toolexeclibgodir)/old
 
 toolexeclibgoold_DATA = \
+       old/netchan.gox \
+       old/regexp.gox \
        old/template.gox
 
 toolexeclibgoosdir = $(toolexeclibgodir)/os
@@ -347,6 +349,11 @@ toolexeclibgopathdir = $(toolexeclibgodir)/path
 toolexeclibgopath_DATA = \
        path/filepath.gox
 
+toolexeclibgoregexpdir = $(toolexeclibgodir)/regexp
+
+toolexeclibgoregexp_DATA = \
+       regexp/syntax.gox
+
 toolexeclibgorpcdir = $(toolexeclibgodir)/rpc
 
 toolexeclibgorpc_DATA = \
@@ -479,6 +486,7 @@ runtime_files = \
        runtime/msize.c \
        runtime/proc.c \
        runtime/thread.c \
+       runtime/yield.c \
        $(rtems_task_variable_add_file) \
        chan.c \
        iface.c \
@@ -559,10 +567,6 @@ go_csv_files = \
        go/csv/reader.go \
        go/csv/writer.go
 
-go_ebnf_files = \
-       go/ebnf/ebnf.go \
-       go/ebnf/parser.go
-
 go_exec_files = \
        go/exec/exec.go \
        go/exec/lp_unix.go
@@ -598,6 +602,7 @@ go_html_files = \
        go/html/escape.go \
        go/html/node.go \
        go/html/parse.go \
+       go/html/render.go \
        go/html/token.go
 
 go_http_files = \
@@ -605,6 +610,7 @@ go_http_files = \
        go/http/client.go \
        go/http/cookie.go \
        go/http/dump.go \
+       go/http/filetransport.go \
        go/http/fs.go \
        go/http/header.go \
        go/http/lex.go \
@@ -619,7 +625,6 @@ go_http_files = \
        go/http/transport.go
 
 go_image_files = \
-       go/image/color.go \
        go/image/format.go \
        go/image/geom.go \
        go/image/image.go \
@@ -642,6 +647,7 @@ go_log_files = \
        go/log/log.go
 
 go_math_files = \
+       go/math/abs.go \
        go/math/acosh.go \
        go/math/asin.go \
        go/math/asinh.go \
@@ -652,15 +658,13 @@ go_math_files = \
        go/math/cbrt.go \
        go/math/const.go \
        go/math/copysign.go \
+       go/math/dim.go \
        go/math/erf.go \
        go/math/exp.go \
        go/math/exp_port.go \
        go/math/exp2.go \
        go/math/expm1.go \
-       go/math/fabs.go \
-       go/math/fdim.go \
        go/math/floor.go \
-       go/math/fmod.go \
        go/math/frexp.go \
        go/math/gamma.go \
        go/math/hypot.go \
@@ -674,6 +678,7 @@ go_math_files = \
        go/math/log1p.go \
        go/math/log10.go \
        go/math/logb.go \
+       go/math/mod.go \
        go/math/modf.go \
        go/math/nextafter.go \
        go/math/pow.go \
@@ -777,11 +782,6 @@ go_net_files = \
        go/net/unixsock.go \
        go/net/unixsock_posix.go
 
-go_netchan_files = \
-       go/netchan/common.go \
-       go/netchan/export.go \
-       go/netchan/import.go
-
 if LIBGO_IS_SOLARIS
 if LIBGO_IS_386
 go_os_dir_file = go/os/dir_largefile.go
@@ -865,6 +865,7 @@ go_reflect_files = \
        go/reflect/value.go
 
 go_regexp_files = \
+       go/regexp/exec.go \
        go/regexp/regexp.go
 
 go_rpc_files = \
@@ -915,6 +916,7 @@ go_strconv_files = \
 
 go_strings_files = \
        go/strings/reader.go \
+       go/strings/replace.go \
        go/strings/strings.go
 
 go_sync_files = \
@@ -953,21 +955,19 @@ go_template_files = \
 
 go_testing_files = \
        go/testing/benchmark.go \
+       go/testing/example.go \
        go/testing/testing.go
 
 go_time_files = \
        go/time/format.go \
        go/time/sleep.go \
        go/time/sys.go \
-       go/time/sys_posix.go \
+       go/time/sys_unix.go \
        go/time/tick.go \
        go/time/time.go \
        go/time/zoneinfo_posix.go \
        go/time/zoneinfo_unix.go
 
-go_try_files = \
-       go/try/try.go
-
 go_unicode_files = \
        go/unicode/casetables.go \
        go/unicode/digit.go \
@@ -987,6 +987,8 @@ go_utf8_files = \
 
 go_websocket_files = \
        go/websocket/client.go \
+       go/websocket/hixie.go \
+       go/websocket/hybi.go \
        go/websocket/server.go \
        go/websocket/websocket.go
 
@@ -1041,16 +1043,13 @@ go_container_list_files = \
 go_container_ring_files = \
        go/container/ring/ring.go
 
-go_container_vector_files = \
-       go/container/vector/defs.go \
-       go/container/vector/intvector.go \
-       go/container/vector/stringvector.go \
-       go/container/vector/vector.go
-
 go_crypto_aes_files = \
        go/crypto/aes/block.go \
        go/crypto/aes/cipher.go \
        go/crypto/aes/const.go
+go_crypto_bcrypt_files = \
+       go/crypto/bcrypt/base64.go \
+       go/crypto/bcrypt/bcrypt.go
 go_crypto_blowfish_files = \
        go/crypto/blowfish/block.go \
        go/crypto/blowfish/const.go \
@@ -1123,11 +1122,13 @@ go_crypto_tls_files = \
        go/crypto/tls/handshake_server.go \
        go/crypto/tls/key_agreement.go \
        go/crypto/tls/prf.go \
+       go/crypto/tls/root_unix.go \
        go/crypto/tls/tls.go
 go_crypto_twofish_files = \
        go/crypto/twofish/twofish.go
 go_crypto_x509_files = \
        go/crypto/x509/cert_pool.go \
+       go/crypto/x509/pkcs1.go \
        go/crypto/x509/verify.go \
        go/crypto/x509/x509.go
 go_crypto_xtea_files = \
@@ -1187,7 +1188,8 @@ go_encoding_base32_files = \
 go_encoding_base64_files = \
        go/encoding/base64/base64.go
 go_encoding_binary_files = \
-       go/encoding/binary/binary.go
+       go/encoding/binary/binary.go \
+       go/encoding/binary/varint.go
 go_encoding_git85_files = \
        go/encoding/git85/git.go
 go_encoding_hex_files = \
@@ -1195,33 +1197,66 @@ go_encoding_hex_files = \
 go_encoding_pem_files = \
        go/encoding/pem/pem.go
 
+go_exp_ebnf_files = \
+       go/exp/ebnf/ebnf.go \
+       go/exp/ebnf/parser.go
 go_exp_gui_files = \
        go/exp/gui/gui.go
 go_exp_norm_files = \
        go/exp/norm/composition.go \
        go/exp/norm/forminfo.go \
+       go/exp/norm/input.go \
        go/exp/norm/normalize.go \
+       go/exp/norm/readwriter.go \
        go/exp/norm/tables.go \
        go/exp/norm/trie.go
-go_exp_regexp_files = \
-       go/exp/regexp/exec.go \
-       go/exp/regexp/regexp.go
+go_exp_spdy_files = \
+       go/exp/spdy/read.go \
+       go/exp/spdy/types.go \
+       go/exp/spdy/write.go
+go_exp_sql_files = \
+       go/exp/sql/convert.go \
+       go/exp/sql/sql.go
+go_exp_ssh_files = \
+       go/exp/ssh/channel.go \
+       go/exp/ssh/common.go \
+       go/exp/ssh/doc.go \
+       go/exp/ssh/messages.go \
+       go/exp/ssh/server.go \
+       go/exp/ssh/server_shell.go \
+       go/exp/ssh/transport.go
+go_exp_terminal_files = \
+       go/exp/terminal/shell.go \
+       go/exp/terminal/terminal.go
+go_exp_types_files = \
+       go/exp/types/check.go \
+       go/exp/types/const.go \
+       go/exp/types/exportdata.go \
+       go/exp/types/gcimporter.go \
+       go/exp/types/types.go \
+       go/exp/types/universe.go
 
 go_exp_gui_x11_files = \
        go/exp/gui/x11/auth.go \
        go/exp/gui/x11/conn.go
 
+go_exp_sql_driver_files = \
+       go/exp/sql/driver/driver.go \
+       go/exp/sql/driver/types.go
+
 go_exp_template_html_files = \
+       go/exp/template/html/attr.go \
+       go/exp/template/html/clone.go \
+       go/exp/template/html/content.go \
        go/exp/template/html/context.go \
-       go/exp/template/html/escape.go
-
-go_exp_regexp_syntax_files = \
-       go/exp/regexp/syntax/compile.go \
-       go/exp/regexp/syntax/parse.go \
-       go/exp/regexp/syntax/perl_groups.go \
-       go/exp/regexp/syntax/prog.go \
-       go/exp/regexp/syntax/regexp.go \
-       go/exp/regexp/syntax/simplify.go
+       go/exp/template/html/css.go \
+       go/exp/template/html/doc.go \
+       go/exp/template/html/error.go \
+       go/exp/template/html/escape.go \
+       go/exp/template/html/html.go \
+       go/exp/template/html/js.go \
+       go/exp/template/html/transition.go \
+       go/exp/template/html/url.go
 
 go_go_ast_files = \
        go/go/ast/ast.go \
@@ -1237,7 +1272,8 @@ go_go_build_files = \
        syslist.go
 go_go_doc_files = \
        go/go/doc/comment.go \
-       go/go/doc/doc.go
+       go/go/doc/doc.go \
+       go/go/doc/example.go
 go_go_parser_files = \
        go/go/parser/interface.go \
        go/go/parser/parser.go
@@ -1249,19 +1285,8 @@ go_go_scanner_files = \
        go/go/scanner/scanner.go
 go_go_token_files = \
        go/go/token/position.go \
+       go/go/token/serialize.go \
        go/go/token/token.go
-go_go_typechecker_files = \
-       go/go/typechecker/scope.go \
-       go/go/typechecker/type.go \
-       go/go/typechecker/typechecker.go \
-       go/go/typechecker/universe.go
-go_go_types_files = \
-       go/go/types/check.go \
-       go/go/types/const.go \
-       go/go/types/exportdata.go \
-       go/go/types/gcimporter.go \
-       go/go/types/types.go \
-       go/go/types/universe.go
 
 go_hash_adler32_files = \
        go/hash/adler32/adler32.go
@@ -1284,14 +1309,13 @@ go_http_httptest_files = \
        go/http/httptest/server.go
 go_http_pprof_files = \
        go/http/pprof/pprof.go
-go_http_spdy_files = \
-       go/http/spdy/read.go \
-       go/http/spdy/types.go \
-       go/http/spdy/write.go
 
 go_image_bmp_files = \
        go/image/bmp/reader.go
 
+go_image_color_files = \
+       go/image/color/color.go
+
 go_image_draw_files = \
        go/image/draw/draw.go
 
@@ -1311,6 +1335,7 @@ go_image_png_files = \
 
 go_image_tiff_files = \
        go/image/tiff/buffer.go \
+       go/image/tiff/compress.go \
        go/image/tiff/consts.go \
        go/image/tiff/reader.go
 
@@ -1340,6 +1365,12 @@ go_net_textproto_files = \
        go/net/textproto/textproto.go \
        go/net/textproto/writer.go
 
+go_old_netchan_files = \
+       go/old/netchan/common.go \
+       go/old/netchan/export.go \
+       go/old/netchan/import.go
+go_old_regexp_files = \
+       go/old/regexp/regexp.go
 go_old_template_files = \
        go/old/template/doc.go \
        go/old/template/execute.go \
@@ -1361,6 +1392,14 @@ go_path_filepath_files = \
        go/path/filepath/path.go \
        go/path/filepath/path_unix.go
 
+go_regexp_syntax_files = \
+       go/regexp/syntax/compile.go \
+       go/regexp/syntax/parse.go \
+       go/regexp/syntax/perl_groups.go \
+       go/regexp/syntax/prog.go \
+       go/regexp/syntax/regexp.go \
+       go/regexp/syntax/simplify.go
+
 go_rpc_jsonrpc_files = \
        go/rpc/jsonrpc/client.go \
        go/rpc/jsonrpc/server.go
@@ -1559,7 +1598,6 @@ libgo_go_objs = \
        cmath/cmath.lo \
        crypto/crypto.lo \
        csv/csv.lo \
-       ebnf/ebnf.lo \
        exec/exec.lo \
        expvar/expvar.lo \
        flag/flag.lo \
@@ -1576,7 +1614,6 @@ libgo_go_objs = \
        mail/mail.lo \
        mime/mime.lo \
        net/net.lo \
-       netchan/netchan.lo \
        os/os.lo \
        patch/patch.lo \
        path/path.lo \
@@ -1596,7 +1633,6 @@ libgo_go_objs = \
        tabwriter/tabwriter.lo \
        template/template.lo \
        time/time.lo \
-       try/try.lo \
        unicode/unicode.lo \
        url/url.lo \
        utf16/utf16.lo \
@@ -1613,8 +1649,8 @@ libgo_go_objs = \
        container/heap.lo \
        container/list.lo \
        container/ring.lo \
-       container/vector.lo \
        crypto/aes.lo \
+       crypto/bcrypt.lo \
        crypto/blowfish.lo \
        crypto/cast5.lo \
        crypto/cipher.lo \
@@ -1657,11 +1693,16 @@ libgo_go_objs = \
        encoding/git85.lo \
        encoding/hex.lo \
        encoding/pem.lo \
+       exp/ebnf.lo \
        exp/gui.lo \
        exp/norm.lo \
-       exp/regexp.lo \
+       exp/spdy.lo \
+       exp/sql.lo \
+       exp/ssh.lo \
+       exp/terminal.lo \
+       exp/types.lo \
        exp/gui/x11.lo \
-       exp/regexp/syntax.lo \
+       exp/sql/driver.lo \
        exp/template/html.lo \
        go/ast.lo \
        go/build.lo \
@@ -1670,8 +1711,6 @@ libgo_go_objs = \
        go/printer.lo \
        go/scanner.lo \
        go/token.lo \
-       go/typechecker.lo \
-       go/types.lo \
        hash/adler32.lo \
        hash/crc32.lo \
        hash/crc64.lo \
@@ -1680,8 +1719,8 @@ libgo_go_objs = \
        http/fcgi.lo \
        http/httptest.lo \
        http/pprof.lo \
-       http/spdy.lo \
        image/bmp.lo \
+       image/color.lo \
        image/draw.lo \
        image/gif.lo \
        image/jpeg.lo \
@@ -1693,11 +1732,14 @@ libgo_go_objs = \
        mime/multipart.lo \
        net/dict.lo \
        net/textproto.lo \
+       old/netchan.lo \
+       old/regexp.lo \
        old/template.lo \
        $(os_lib_inotify_lo) \
        os/user.lo \
        os/signal.lo \
        path/filepath.lo \
+       regexp/syntax.lo \
        rpc/jsonrpc.lo \
        runtime/debug.lo \
        runtime/pprof.lo \
@@ -1853,13 +1895,6 @@ csv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: csv/check
 
-ebnf/ebnf.lo: $(go_ebnf_files) container/vector.gox go/scanner.gox \
-               go/token.gox os.gox strconv.gox unicode.gox utf8.gox
-       $(BUILDPACKAGE)
-ebnf/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: ebnf/check
-
 exec/exec.lo: $(go_exec_files) bytes.gox io.gox os.gox strconv.gox \
                strings.gox syscall.gox
        $(BUILDPACKAGE)
@@ -1881,7 +1916,7 @@ flag/check: $(CHECK_DEPS)
 .PHONY: flag/check
 
 fmt/fmt.lo: $(go_fmt_files) bytes.gox io.gox math.gox os.gox reflect.gox \
-               strconv.gox strings.gox unicode.gox utf8.gox
+               strconv.gox strings.gox sync.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 fmt/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -1901,8 +1936,8 @@ hash/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/check
 
-html/html.lo: $(go_html_files) bytes.gox io.gox os.gox strconv.gox strings.gox \
-               utf8.gox
+html/html.lo: $(go_html_files) bufio.gox bytes.gox fmt.gox io.gox os.gox \
+               strconv.gox strings.gox utf8.gox
        $(BUILDPACKAGE)
 html/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -1919,7 +1954,8 @@ http/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: http/check
 
-image/image.lo: $(go_image_files) bufio.gox io.gox os.gox strconv.gox
+image/image.lo: $(go_image_files) bufio.gox image/color.gox io.gox os.gox \
+               strconv.gox
        $(BUILDPACKAGE)
 image/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -1975,13 +2011,6 @@ net/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/check
 
-netchan/netchan.lo: $(go_netchan_files) gob.gox io.gox log.gox net.gox os.gox \
-               reflect.gox strconv.gox sync.gox time.gox
-       $(BUILDPACKAGE)
-netchan/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: netchan/check
-
 os/os.lo: $(go_os_files) runtime.gox sync.gox syscall.gox
        $(BUILDPACKAGE)
 os/check: $(CHECK_DEPS)
@@ -2019,8 +2048,8 @@ reflect/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: reflect/check
 
-regexp/regexp.lo: $(go_regexp_files) bytes.gox io.gox os.gox strings.gox \
-               utf8.gox
+regexp/regexp.lo: $(go_regexp_files) bytes.gox io.gox os.gox \
+               regexp/syntax.gox strconv.gox strings.gox sync.gox utf8.gox
        $(BUILDPACKAGE)
 regexp/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -2067,7 +2096,7 @@ strconv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: strconv/check
 
-strings/strings.lo: $(go_strings_files) os.gox unicode.gox utf8.gox
+strings/strings.lo: $(go_strings_files) io.gox os.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 strings/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -2102,8 +2131,9 @@ template/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: template/check
 
-testing/testing.lo: $(go_testing_files) flag.gox fmt.gox os.gox regexp.gox \
-               runtime.gox runtime/pprof.gox strings.gox strconv.gox time.gox
+testing/testing.lo: $(go_testing_files) bytes.gox flag.gox fmt.gox io.gox \
+               os.gox regexp.gox runtime.gox runtime/pprof.gox strings.gox \
+               strconv.gox time.gox
        $(BUILDPACKAGE)
 testing/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -2116,12 +2146,6 @@ time/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: time/check
 
-try/try.lo: $(go_try_files) fmt.gox io.gox os.gox reflect.gox unicode.gox
-       $(BUILDPACKAGE)
-try/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: try/check
-
 unicode/unicode.lo: $(go_unicode_files)
        $(BUILDPACKAGE)
 unicode/check: $(CHECK_DEPS)
@@ -2147,8 +2171,10 @@ utf8/check: $(CHECK_DEPS)
 .PHONY: utf8/check
 
 websocket/websocket.lo: $(go_websocket_files) bufio.gox bytes.gox \
-               crypto/md5.gox crypto/tls.gox encoding/binary.gox fmt.gox \
-               http.gox io.gox net.gox os.gox rand.gox strings.gox url.gox
+               crypto/md5.gox crypto/rand.gox crypto/sha1.gox crypto/tls.gox \
+               encoding/base64.gox encoding/binary.gox fmt.gox http.gox \
+               io.gox io/ioutil.gox json.gox net.gox os.gox rand.gox \
+               strings.gox strconv.gox sync.gox url.gox
        $(BUILDPACKAGE)
 websocket/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -2237,13 +2263,6 @@ container/ring/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: container/ring/check
 
-container/vector.lo: $(go_container_vector_files)
-       $(BUILDPACKAGE)
-container/vector/check: $(CHECK_DEPS)
-       @$(MKDIR_P) container/vector
-       @$(CHECK)
-.PHONY: container/vector/check
-
 crypto/aes.lo: $(go_crypto_aes_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/aes/check: $(CHECK_DEPS)
@@ -2251,6 +2270,15 @@ crypto/aes/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/aes/check
 
+crypto/bcrypt.lo: $(go_crypto_bcrypt_files) crypto/blowfish.gox \
+               crypto/rand.gox crypto/subtle.gox encoding/base64.gox \
+               fmt.gox io.gox os.gox strconv.gox
+       $(BUILDPACKAGE)
+crypto/bcrypt/check: $(CHECK_DEPS)
+       @$(MKDIR_P) crypto/bcrypt
+       @$(CHECK)
+.PHONY: crypto/bcrypt/check
+
 crypto/blowfish.lo: $(go_crypto_blowfish_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/blowfish/check: $(CHECK_DEPS)
@@ -2403,12 +2431,12 @@ crypto/subtle/check: $(CHECK_DEPS)
 .PHONY: crypto/subtle/check
 
 crypto/tls.lo: $(go_crypto_tls_files) big.gox bytes.gox crypto.gox \
-               crypto/aes.gox crypto/cipher.gox crypto/elliptic.gox \
-               crypto/hmac.gox crypto/md5.gox crypto/rand.gox crypto/rc4.gox \
-               crypto/rsa.gox crypto/sha1.gox crypto/subtle.gox \
-               crypto/x509.gox crypto/x509/pkix.gox encoding/pem.gox \
-               hash.gox io.gox io/ioutil.gox net.gox os.gox strconv.gox \
-               strings.gox sync.gox time.gox
+               crypto/aes.gox crypto/cipher.gox crypto/des.gox \
+               crypto/elliptic.gox crypto/hmac.gox crypto/md5.gox \
+               crypto/rand.gox crypto/rc4.gox crypto/rsa.gox crypto/sha1.gox \
+               crypto/subtle.gox crypto/x509.gox crypto/x509/pkix.gox \
+               encoding/pem.gox hash.gox io.gox io/ioutil.gox net.gox os.gox \
+               strconv.gox strings.gox sync.gox time.gox
        $(BUILDPACKAGE)
 crypto/tls/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/tls
@@ -2583,6 +2611,14 @@ encoding/pem/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/pem/check
 
+exp/ebnf.lo: $(go_exp_ebnf_files) go/scanner.gox go/token.gox os.gox \
+               strconv.gox unicode.gox utf8.gox
+       $(BUILDPACKAGE)
+exp/ebnf/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/ebnf
+       @$(CHECK)
+.PHONY: exp/ebnf/check
+
 exp/gui.lo: $(go_exp_gui_files) image.gox image/draw.gox os.gox
        $(BUILDPACKAGE)
 exp/gui/check: $(CHECK_DEPS)
@@ -2590,20 +2626,55 @@ exp/gui/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: exp/gui/check
 
-exp/norm.lo: $(go_exp_norm_files) utf8.gox
+exp/norm.lo: $(go_exp_norm_files) io.gox os.gox utf8.gox
        $(BUILDPACKAGE)
 exp/norm/check: $(CHECK_DEPS)
        @$(MKDIR_P) exp/norm
        @$(CHECK)
 .PHONY: exp/norm/check
 
-exp/regexp.lo: $(go_exp_regexp_files) bytes.gox exp/regexp/syntax.gox io.gox \
-               os.gox strings.gox sync.gox utf8.gox
+exp/spdy.lo: $(go_exp_spdy_files) bytes.gox compress/zlib.gox \
+               encoding/binary.gox http.gox io.gox os.gox strings.gox
+       $(BUILDPACKAGE)
+exp/spdy/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/spdy
+       @$(CHECK)
+.PHONY: exp/spdy/check
+
+exp/sql.lo: $(go_exp_sql_files) exp/sql/driver.gox fmt.gox os.gox reflect.gox \
+               runtime.gox strconv.gox sync.gox
+       $(BUILDPACKAGE)
+exp/sql/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/sql
+       @$(CHECK)
+.PHONY: exp/sql/check
+
+exp/ssh.lo: $(go_exp_ssh_files) big.gox bufio.gox bytes.gox crypto.gox \
+               crypto/aes.gox crypto/cipher.gox crypto/hmac.gox \
+               crypto/rand.gox crypto/rsa.gox crypto/sha1.gox \
+               crypto/subtle.gox crypto/x509.gox encoding/pem.gox hash.gox \
+               io.gox net.gox os.gox reflect.gox strconv.gox sync.gox
+       $(BUILDPACKAGE)
+exp/ssh/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/ssh
+       @$(CHECK)
+.PHONY: exp/ssh/check
+
+exp/terminal.lo: $(go_exp_terminal_files) io.gox os.gox syscall.gox
+       $(BUILDPACKAGE)
+exp/terminal/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/terminal
+       @$(CHECK)
+.PHONY: exp/terminal/check
+
+exp/types.lo: $(go_exp_types_files) big.gox bufio.gox fmt.gox go/ast.gox \
+               go/token.gox io.gox os.gox path/filepath.gox runtime.gox \
+               scanner.gox sort.gox strconv.gox strings.gox
        $(BUILDPACKAGE)
-exp/regexp/check: $(CHECK_DEPS)
-       @$(MKDIR_P) exp/regexp
+exp/types/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/types
        @$(CHECK)
-.PHONY: exp/regexp/check
+.PHONY: exp/types/check
 
 exp/gui/x11.lo: $(go_exp_gui_x11_files) bufio.gox exp/gui.gox image.gox \
                image/draw.gox io.gox log.gox net.gox os.gox strconv.gox \
@@ -2614,15 +2685,17 @@ exp/gui/x11/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: exp/gui/x11/check
 
-exp/regexp/syntax.lo: $(go_exp_regexp_syntax_files) bytes.gox os.gox sort.gox strconv.gox strings.gox unicode.gox utf8.gox
+exp/sql/driver.lo: $(go_exp_sql_driver_files) fmt.gox os.gox reflect.gox \
+               strconv.gox
        $(BUILDPACKAGE)
-exp/regexp/syntax/check: $(CHECK_DEPS)
-       @$(MKDIR_P) exp/regexp/syntax
+exp/sql/driver/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/sql/driver
        @$(CHECK)
-.PHONY: exp/regexp/syntax/check
+.PHONY: exp/sql/driver/check
 
-exp/template/html.lo: $(go_exp_template_html_files) fmt.gox template.gox \
-               template/parse.gox
+exp/template/html.lo: $(go_exp_template_html_files) bytes.gox fmt.gox \
+               html.gox json.gox os.gox strings.gox template.gox \
+               template/parse.gox unicode.gox utf8.gox 
        $(BUILDPACKAGE)
 exp/template/html/check: $(CHECK_DEPS)
        @$(MKDIR_P) exp/template/html
@@ -2637,9 +2710,10 @@ go/ast/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/ast/check
 
-go/build.lo: $(go_go_build_files) bytes.gox exec.gox fmt.gox go/parser.gox \
-               go/token.gox log.gox os.gox path/filepath.gox regexp.gox \
-               runtime.gox strconv.gox strings.gox runtime.gox
+go/build.lo: $(go_go_build_files) bytes.gox exec.gox fmt.gox go/ast.gox \
+               go/doc.gox go/parser.gox go/token.gox io/ioutil.gox log.gox \
+               os.gox path.gox path/filepath.gox regexp.gox runtime.gox \
+               sort.gox strconv.gox strings.gox runtime.gox unicode.gox
        $(BUILDPACKAGE)
 go/build/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/build
@@ -2656,7 +2730,7 @@ s-syslist: Makefile
        $(STAMP) $@
 
 go/doc.lo: $(go_go_doc_files) go/ast.gox go/token.gox io.gox regexp.gox \
-               sort.gox strings.gox template.gox
+               sort.gox strings.gox template.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 go/doc/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/doc
@@ -2674,7 +2748,7 @@ go/parser/check: $(CHECK_DEPS)
 
 go/printer.lo: $(go_go_printer_files) bytes.gox fmt.gox go/ast.gox \
                go/token.gox io.gox os.gox path/filepath.gox reflect.gox \
-               runtime.gox strings.gox tabwriter.gox
+               strings.gox tabwriter.gox
        $(BUILDPACKAGE)
 go/printer/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/printer
@@ -2690,30 +2764,14 @@ go/scanner/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/scanner/check
 
-go/token.lo: $(go_go_token_files) fmt.gox strconv.gox
+go/token.lo: $(go_go_token_files) fmt.gox gob.gox io.gox os.gox sort.gox \
+               strconv.gox sync.gox
        $(BUILDPACKAGE)
 go/token/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/token
        @$(CHECK)
 .PHONY: go/token/check
 
-go/typechecker.lo: $(go_go_typechecker_files) fmt.gox go/ast.gox go/token.gox \
-               go/scanner.gox os.gox
-       $(BUILDPACKAGE)
-go/typechecker/check: $(CHECK_DEPS)
-       @$(MKDIR_P) go/typechecker
-       @$(CHECK)
-.PHONY: go/typechecker/check
-
-go/types.lo: $(go_go_types_files) big.gox bufio.gox fmt.gox go/ast.gox \
-               go/token.gox io.gox os.gox path/filepath.gox runtime.gox \
-               scanner.gox sort.gox strconv.gox strings.gox
-       $(BUILDPACKAGE)
-go/types/check: $(CHECK_DEPS)
-       @$(MKDIR_P) go/types
-       @$(CHECK)
-.PHONY: go/types/check
-
 hash/adler32.lo: $(go_hash_adler32_files) hash.gox os.gox
        $(BUILDPACKAGE)
 hash/adler32/check: $(CHECK_DEPS)
@@ -2777,23 +2835,21 @@ http/pprof/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: http/pprof/check
 
-http/spdy.lo: $(go_http_spdy_files) bytes.gox compress/zlib.gox \
-               encoding/binary.gox http.gox io.gox os.gox strconv.gox \
-               strings.gox sync.gox
-       $(BUILDPACKAGE)
-http/spdy/check: $(CHECK_DEPS)
-       @$(MKDIR_P) http/spdy
-       @$(CHECK)
-.PHONY: http/spdy/check
-
-image/bmp.lo: $(go_image_bmp_files) image.gox io.gox os.gox
+image/bmp.lo: $(go_image_bmp_files) image.gox image/color.gox io.gox os.gox
        $(BUILDPACKAGE)
 image/bmp/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/bmp
        @$(CHECK)
 .PHONY: image/bmp/check
 
-image/draw.lo: $(go_image_draw_files) image.gox image/ycbcr.gox
+image/color.lo: $(go_image_color_files)
+       $(BUILDPACKAGE)
+image/color/check: $(CHECK_DEPS)
+       @$(MKDIR_P) image/color
+       @$(CHECK)
+.PHONY: image/color/check
+
+image/draw.lo: $(go_image_draw_files) image.gox image/color.gox image/ycbcr.gox
        $(BUILDPACKAGE)
 image/draw/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/draw
@@ -2801,46 +2857,48 @@ image/draw/check: $(CHECK_DEPS)
 .PHONY: image/draw/check
 
 image/gif.lo: $(go_image_gif_files) bufio.gox compress/lzw.gox fmt.gox \
-               image.gox io.gox os.gox
+               image.gox image/color.gox io.gox os.gox
        $(BUILDPACKAGE)
 image/gif/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/gif
        @$(CHECK)
 .PHONY: image/gif/check
 
-image/jpeg.lo: $(go_image_jpeg_files) bufio.gox image.gox image/ycbcr.gox \
-               io.gox os.gox
+image/jpeg.lo: $(go_image_jpeg_files) bufio.gox image.gox image/color.gox \
+               image/ycbcr.gox io.gox os.gox
        $(BUILDPACKAGE)
 image/jpeg/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/jpeg
        @$(CHECK)
 .PHONY: image/jpeg/check
 
-image/png.lo: $(go_image_png_files) bufio.gox compress/zlib.gox fmt.gox \
-               hash.gox hash/crc32.gox image.gox io.gox os.gox strconv.gox
+image/png.lo: $(go_image_png_files) bufio.gox compress/zlib.gox \
+               encoding/binary.gox fmt.gox hash.gox hash/crc32.gox image.gox \
+               image/color.gox io.gox os.gox strconv.gox
        $(BUILDPACKAGE)
 image/png/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/png
        @$(CHECK)
 .PHONY: image/png/check
 
-image/tiff.lo: $(go_image_tiff_files) compress/lzw.gox compress/zlib.gox \
-               encoding/binary.gox image.gox io.gox io/ioutil.gox os.gox
+image/tiff.lo: $(go_image_tiff_files) bufio.gox compress/lzw.gox \
+               compress/zlib.gox encoding/binary.gox image.gox \
+               image/color.gox io.gox io/ioutil.gox os.gox
        $(BUILDPACKAGE)
 image/tiff/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/tiff
        @$(CHECK)
 .PHONY: image/tiff/check
 
-image/ycbcr.lo: $(go_image_ycbcr_files) image.gox
+image/ycbcr.lo: $(go_image_ycbcr_files) image.gox image/color.gox
        $(BUILDPACKAGE)
 image/ycbcr/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/ycbcr
        @$(CHECK)
 .PHONY: image/ycbcr/check
 
-index/suffixarray.lo: $(go_index_suffixarray_files) bytes.gox regexp.gox \
-               sort.gox
+index/suffixarray.lo: $(go_index_suffixarray_files) bytes.gox \
+               encoding/binary.gox io.gox os.gox regexp.gox sort.gox
        $(BUILDPACKAGE)
 index/suffixarray/check: $(CHECK_DEPS)
        @$(MKDIR_P) index/suffixarray
@@ -2869,13 +2927,30 @@ net/dict.lo: $(go_net_dict_files) net/textproto.gox os.gox strconv.gox \
        $(BUILDPACKAGE)
 
 net/textproto.lo: $(go_net_textproto_files) bufio.gox bytes.gox fmt.gox \
-               io.gox io/ioutil.gox net.gox os.gox strconv.gox sync.gox
+               io.gox io/ioutil.gox net.gox os.gox strings.gox strconv.gox \
+               sync.gox
        $(BUILDPACKAGE)
 net/textproto/check: $(CHECK_DEPS)
        @$(MKDIR_P) net/textproto
        @$(CHECK)
 .PHONY: net/textproto/check
 
+old/netchan.lo: $(go_old_netchan_files) gob.gox io.gox log.gox net.gox os.gox \
+               reflect.gox strconv.gox sync.gox time.gox
+       $(BUILDPACKAGE)
+old/netchan/check: $(CHECK_DEPS)
+       @$(MKDIR_P) old/netchan
+       @$(CHECK)
+.PHONY: old/netchan/check
+
+old/regexp.lo: $(go_old_regexp_files) bytes.gox io.gox os.gox strings.gox \
+               utf8.gox
+       $(BUILDPACKAGE)
+old/regexp/check: $(CHECK_DEPS)
+       @$(MKDIR_P) old/regexp
+       @$(CHECK)
+.PHONY: old/regexp/check
+
 old/template.lo: $(go_old_template_files) bytes.gox fmt.gox io.gox \
                io/ioutil.gox os.gox reflect.gox strconv.gox strings.gox \
                unicode.gox utf8.gox
@@ -2915,6 +2990,14 @@ path/filepath/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: path/filepath/check
 
+regexp/syntax.lo: $(go_regexp_syntax_files) bytes.gox os.gox sort.gox \
+               strconv.gox strings.gox unicode.gox utf8.gox
+       $(BUILDPACKAGE)
+regexp/syntax/check: $(CHECK_DEPS)
+       @$(MKDIR_P) regexp/syntax
+       @$(CHECK)
+.PHONY: regexp/syntax/check
+
 rpc/jsonrpc.lo: $(go_rpc_jsonrpc_files) fmt.gox io.gox json.gox net.gox \
                os.gox rpc.gox sync.gox
        $(BUILDPACKAGE)
@@ -3005,8 +3088,6 @@ crypto.gox: crypto/crypto.lo
        $(BUILDGOX)
 csv.gox: csv/csv.lo
        $(BUILDGOX)
-ebnf.gox: ebnf/ebnf.lo
-       $(BUILDGOX)
 exec.gox: exec/exec.lo
        $(BUILDGOX)
 expvar.gox: expvar/expvar.lo
@@ -3039,8 +3120,6 @@ mime.gox: mime/mime.lo
        $(BUILDGOX)
 net.gox: net/net.lo
        $(BUILDGOX)
-netchan.gox: netchan/netchan.lo
-       $(BUILDGOX)
 os.gox: os/os.lo
        $(BUILDGOX)
 patch.gox: patch/patch.lo
@@ -3081,8 +3160,6 @@ testing.gox: testing/testing.lo
        $(BUILDGOX)
 time.gox: time/time.lo
        $(BUILDGOX)
-try.gox: try/try.lo
-       $(BUILDGOX)
 unicode.gox: unicode/unicode.lo
        $(BUILDGOX)
 url.gox: url/url.lo
@@ -3118,11 +3195,11 @@ container/list.gox: container/list.lo
        $(BUILDGOX)
 container/ring.gox: container/ring.lo
        $(BUILDGOX)
-container/vector.gox: container/vector.lo
-       $(BUILDGOX)
 
 crypto/aes.gox: crypto/aes.lo
        $(BUILDGOX)
+crypto/bcrypt.gox: crypto/bcrypt.lo
+       $(BUILDGOX)
 crypto/blowfish.gox: crypto/blowfish.lo
        $(BUILDGOX)
 crypto/cast5.gox: crypto/cast5.lo
@@ -3212,17 +3289,27 @@ encoding/hex.gox: encoding/hex.lo
 encoding/pem.gox: encoding/pem.lo
        $(BUILDGOX)
 
+exp/ebnf.gox: exp/ebnf.lo
+       $(BUILDGOX)
 exp/gui.gox: exp/gui.lo
        $(BUILDGOX)
 exp/norm.gox: exp/norm.lo
        $(BUILDGOX)
-exp/regexp.gox: exp/regexp.lo
+exp/spdy.gox: exp/spdy.lo
+       $(BUILDGOX)
+exp/sql.gox: exp/sql.lo
+       $(BUILDGOX)
+exp/ssh.gox: exp/ssh.lo
+       $(BUILDGOX)
+exp/terminal.gox: exp/terminal.lo
+       $(BUILDGOX)
+exp/types.gox: exp/types.lo
        $(BUILDGOX)
 
 exp/gui/x11.gox: exp/gui/x11.lo
        $(BUILDGOX)
 
-exp/regexp/syntax.gox: exp/regexp/syntax.lo
+exp/sql/driver.gox: exp/sql/driver.lo
        $(BUILDGOX)
 
 exp/template/html.gox: exp/template/html.lo
@@ -3242,10 +3329,6 @@ go/scanner.gox: go/scanner.lo
        $(BUILDGOX)
 go/token.gox: go/token.lo
        $(BUILDGOX)
-go/typechecker.gox: go/typechecker.lo
-       $(BUILDGOX)
-go/types.gox: go/types.lo
-       $(BUILDGOX)
 
 hash/adler32.gox: hash/adler32.lo
        $(BUILDGOX)
@@ -3264,11 +3347,11 @@ http/httptest.gox: http/httptest.lo
        $(BUILDGOX)
 http/pprof.gox: http/pprof.lo
        $(BUILDGOX)
-http/spdy.gox: http/spdy.lo
-       $(BUILDGOX)
 
 image/bmp.gox: image/bmp.lo
        $(BUILDGOX)
+image/color.gox: image/color.lo
+       $(BUILDGOX)
 image/draw.gox: image/draw.lo
        $(BUILDGOX)
 image/gif.gox: image/gif.lo
@@ -3296,6 +3379,10 @@ net/dict.gox: net/dict.lo
 net/textproto.gox: net/textproto.lo
        $(BUILDGOX)
 
+old/netchan.gox: old/netchan.lo
+       $(BUILDGOX)
+old/regexp.gox: old/regexp.lo
+       $(BUILDGOX)
 old/template.gox: old/template.lo
        $(BUILDGOX)
 
@@ -3309,6 +3396,9 @@ os/signal.gox: os/signal.lo
 path/filepath.gox: path/filepath.lo
        $(BUILDGOX)
 
+regexp/syntax.gox: regexp/syntax.lo
+       $(BUILDGOX)
+
 rpc/jsonrpc.gox: rpc/jsonrpc.lo
        $(BUILDGOX)
 
@@ -3344,7 +3434,6 @@ TEST_PACKAGES = \
        bytes/check \
        cmath/check \
        csv/check \
-       ebnf/check \
        exec/check \
        expvar/check \
        flag/check \
@@ -3360,7 +3449,6 @@ TEST_PACKAGES = \
        mail/check \
        mime/check \
        net/check \
-       netchan/check \
        os/check \
        patch/check \
        path/check \
@@ -3379,7 +3467,6 @@ TEST_PACKAGES = \
        tabwriter/check \
        template/check \
        time/check \
-       try/check \
        unicode/check \
        url/check \
        utf16/check \
@@ -3396,8 +3483,8 @@ TEST_PACKAGES = \
        container/heap/check \
        container/list/check \
        container/ring/check \
-       container/vector/check \
        crypto/aes/check \
+       crypto/bcrypt/check \
        crypto/blowfish/check \
        crypto/cast5/check \
        crypto/cipher/check \
@@ -3437,9 +3524,12 @@ TEST_PACKAGES = \
        encoding/git85/check \
        encoding/hex/check \
        encoding/pem/check \
+       exp/ebnf/check \
        exp/norm/check \
-       exp/regexp/check \
-       exp/regexp/syntax/check \
+       exp/spdy/check \
+       exp/sql/check \
+       exp/ssh/check \
+       exp/terminal/check \
        exp/template/html/check \
        go/ast/check \
        $(go_build_check_omitted_since_it_calls_6g) \
@@ -3447,7 +3537,6 @@ TEST_PACKAGES = \
        go/printer/check \
        go/scanner/check \
        go/token/check \
-       go/typechecker/check \
        $(go_types_check_omitted_since_it_calls_6g) \
        hash/adler32/check \
        hash/crc32/check \
@@ -3455,7 +3544,6 @@ TEST_PACKAGES = \
        hash/fnv/check \
        http/cgi/check \
        http/fcgi/check \
-       http/spdy/check \
        image/draw/check \
        image/jpeg/check \
        image/png/check \
@@ -3465,11 +3553,14 @@ TEST_PACKAGES = \
        io/ioutil/check \
        mime/multipart/check \
        net/textproto/check \
+       old/netchan/check \
+       old/regexp/check \
        old/template/check \
        $(os_inotify_check) \
        os/user/check \
        os/signal/check \
        path/filepath/check \
+       regexp/syntax/check \
        rpc/jsonrpc/check \
        sync/atomic/check \
        template/parse/check \
index e18d242..05223a6 100644 (file)
@@ -103,7 +103,7 @@ am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
        "$(DESTDIR)$(toolexeclibgoencodingdir)" \
        "$(DESTDIR)$(toolexeclibgoexpdir)" \
        "$(DESTDIR)$(toolexeclibgoexpguidir)" \
-       "$(DESTDIR)$(toolexeclibgoexpregexpdir)" \
+       "$(DESTDIR)$(toolexeclibgoexpsqldir)" \
        "$(DESTDIR)$(toolexeclibgoexptemplatedir)" \
        "$(DESTDIR)$(toolexeclibgogodir)" \
        "$(DESTDIR)$(toolexeclibgohashdir)" \
@@ -116,6 +116,7 @@ am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
        "$(DESTDIR)$(toolexeclibgoolddir)" \
        "$(DESTDIR)$(toolexeclibgoosdir)" \
        "$(DESTDIR)$(toolexeclibgopathdir)" \
+       "$(DESTDIR)$(toolexeclibgoregexpdir)" \
        "$(DESTDIR)$(toolexeclibgorpcdir)" \
        "$(DESTDIR)$(toolexeclibgoruntimedir)" \
        "$(DESTDIR)$(toolexeclibgosyncdir)" \
@@ -131,22 +132,21 @@ LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = asn1/asn1.lo big/big.lo bufio/bufio.lo \
        bytes/bytes.lo bytes/index.lo cmath/cmath.lo crypto/crypto.lo \
-       csv/csv.lo ebnf/ebnf.lo exec/exec.lo expvar/expvar.lo \
-       flag/flag.lo fmt/fmt.lo gob/gob.lo hash/hash.lo html/html.lo \
-       http/http.lo image/image.lo io/io.lo json/json.lo log/log.lo \
-       math/math.lo mail/mail.lo mime/mime.lo net/net.lo \
-       netchan/netchan.lo os/os.lo patch/patch.lo path/path.lo \
-       rand/rand.lo reflect/reflect.lo regexp/regexp.lo rpc/rpc.lo \
-       runtime/runtime.lo scanner/scanner.lo smtp/smtp.lo \
+       csv/csv.lo exec/exec.lo expvar/expvar.lo flag/flag.lo \
+       fmt/fmt.lo gob/gob.lo hash/hash.lo html/html.lo http/http.lo \
+       image/image.lo io/io.lo json/json.lo log/log.lo math/math.lo \
+       mail/mail.lo mime/mime.lo net/net.lo os/os.lo patch/patch.lo \
+       path/path.lo rand/rand.lo reflect/reflect.lo regexp/regexp.lo \
+       rpc/rpc.lo runtime/runtime.lo scanner/scanner.lo smtp/smtp.lo \
        sort/sort.lo strconv/strconv.lo strings/strings.lo \
        sync/sync.lo syslog/syslog.lo syslog/syslog_c.lo \
        tabwriter/tabwriter.lo template/template.lo time/time.lo \
-       try/try.lo unicode/unicode.lo url/url.lo utf16/utf16.lo \
-       utf8/utf8.lo websocket/websocket.lo xml/xml.lo archive/tar.lo \
+       unicode/unicode.lo url/url.lo utf16/utf16.lo utf8/utf8.lo \
+       websocket/websocket.lo xml/xml.lo archive/tar.lo \
        archive/zip.lo compress/bzip2.lo compress/flate.lo \
        compress/gzip.lo compress/lzw.lo compress/zlib.lo \
        container/heap.lo container/list.lo container/ring.lo \
-       container/vector.lo crypto/aes.lo crypto/blowfish.lo \
+       crypto/aes.lo crypto/bcrypt.lo crypto/blowfish.lo \
        crypto/cast5.lo crypto/cipher.lo crypto/des.lo crypto/dsa.lo \
        crypto/ecdsa.lo crypto/elliptic.lo crypto/hmac.lo \
        crypto/md4.lo crypto/md5.lo crypto/ocsp.lo crypto/openpgp.lo \
@@ -159,22 +159,23 @@ am__DEPENDENCIES_2 = asn1/asn1.lo big/big.lo bufio/bufio.lo \
        crypto/x509/pkix.lo debug/dwarf.lo debug/elf.lo debug/gosym.lo \
        debug/macho.lo debug/pe.lo encoding/ascii85.lo \
        encoding/base32.lo encoding/base64.lo encoding/binary.lo \
-       encoding/git85.lo encoding/hex.lo encoding/pem.lo exp/gui.lo \
-       exp/norm.lo exp/regexp.lo exp/gui/x11.lo exp/regexp/syntax.lo \
+       encoding/git85.lo encoding/hex.lo encoding/pem.lo exp/ebnf.lo \
+       exp/gui.lo exp/norm.lo exp/spdy.lo exp/sql.lo exp/ssh.lo \
+       exp/terminal.lo exp/types.lo exp/gui/x11.lo exp/sql/driver.lo \
        exp/template/html.lo go/ast.lo go/build.lo go/doc.lo \
        go/parser.lo go/printer.lo go/scanner.lo go/token.lo \
-       go/typechecker.lo go/types.lo hash/adler32.lo hash/crc32.lo \
-       hash/crc64.lo hash/fnv.lo http/cgi.lo http/fcgi.lo \
-       http/httptest.lo http/pprof.lo http/spdy.lo image/bmp.lo \
-       image/draw.lo image/gif.lo image/jpeg.lo image/png.lo \
-       image/tiff.lo image/ycbcr.lo index/suffixarray.lo io/ioutil.lo \
-       mime/multipart.lo net/dict.lo net/textproto.lo old/template.lo \
-       $(am__DEPENDENCIES_1) os/user.lo os/signal.lo path/filepath.lo \
-       rpc/jsonrpc.lo runtime/debug.lo runtime/pprof.lo \
-       sync/atomic.lo sync/atomic_c.lo syscall/syscall.lo \
-       syscall/errno.lo syscall/wait.lo template/parse.lo \
-       testing/testing.lo testing/iotest.lo testing/quick.lo \
-       testing/script.lo
+       hash/adler32.lo hash/crc32.lo hash/crc64.lo hash/fnv.lo \
+       http/cgi.lo http/fcgi.lo http/httptest.lo http/pprof.lo \
+       image/bmp.lo image/color.lo image/draw.lo image/gif.lo \
+       image/jpeg.lo image/png.lo image/tiff.lo image/ycbcr.lo \
+       index/suffixarray.lo io/ioutil.lo mime/multipart.lo \
+       net/dict.lo net/textproto.lo old/netchan.lo old/regexp.lo \
+       old/template.lo $(am__DEPENDENCIES_1) os/user.lo os/signal.lo \
+       path/filepath.lo regexp/syntax.lo rpc/jsonrpc.lo \
+       runtime/debug.lo runtime/pprof.lo sync/atomic.lo \
+       sync/atomic_c.lo syscall/syscall.lo syscall/errno.lo \
+       syscall/wait.lo template/parse.lo testing/testing.lo \
+       testing/iotest.lo testing/quick.lo testing/script.lo
 libgo_la_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
@@ -221,8 +222,8 @@ am__libgo_la_SOURCES_DIST = runtime/go-append.c runtime/go-assert.c \
        runtime/mem_posix_memalign.c runtime/mem.c runtime/mfinal.c \
        runtime/mfixalloc.c runtime/mgc0.c runtime/mheap.c \
        runtime/msize.c runtime/proc.c runtime/thread.c \
-       runtime/rtems-task-variable-add.c chan.c iface.c malloc.c \
-       map.c mprof.c reflect.c sigqueue.c string.c
+       runtime/yield.c runtime/rtems-task-variable-add.c chan.c \
+       iface.c malloc.c map.c mprof.c reflect.c sigqueue.c string.c
 @HAVE_SYS_MMAN_H_FALSE@am__objects_1 = mem_posix_memalign.lo
 @HAVE_SYS_MMAN_H_TRUE@am__objects_1 = mem.lo
 @LIBGO_IS_RTEMS_TRUE@am__objects_2 = rtems-task-variable-add.lo
@@ -253,9 +254,9 @@ am__objects_3 = go-append.lo go-assert.lo go-assert-interface.lo \
        go-unreflect.lo go-unsafe-new.lo go-unsafe-newarray.lo \
        go-unsafe-pointer.lo go-unwind.lo cpuprof.lo mcache.lo \
        mcentral.lo $(am__objects_1) mfinal.lo mfixalloc.lo mgc0.lo \
-       mheap.lo msize.lo proc.lo thread.lo $(am__objects_2) chan.lo \
-       iface.lo malloc.lo map.lo mprof.lo reflect.lo sigqueue.lo \
-       string.lo
+       mheap.lo msize.lo proc.lo thread.lo yield.lo $(am__objects_2) \
+       chan.lo iface.lo malloc.lo map.lo mprof.lo reflect.lo \
+       sigqueue.lo string.lo
 am_libgo_la_OBJECTS = $(am__objects_3)
 libgo_la_OBJECTS = $(am_libgo_la_OBJECTS)
 libgo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -294,16 +295,16 @@ DATA = $(toolexeclibgo_DATA) $(toolexeclibgoarchive_DATA) \
        $(toolexeclibgocrypto_DATA) $(toolexeclibgocryptoopenpgp_DATA) \
        $(toolexeclibgocryptox509_DATA) $(toolexeclibgodebug_DATA) \
        $(toolexeclibgoencoding_DATA) $(toolexeclibgoexp_DATA) \
-       $(toolexeclibgoexpgui_DATA) $(toolexeclibgoexpregexp_DATA) \
+       $(toolexeclibgoexpgui_DATA) $(toolexeclibgoexpsql_DATA) \
        $(toolexeclibgoexptemplate_DATA) $(toolexeclibgogo_DATA) \
        $(toolexeclibgohash_DATA) $(toolexeclibgohttp_DATA) \
        $(toolexeclibgoimage_DATA) $(toolexeclibgoindex_DATA) \
        $(toolexeclibgoio_DATA) $(toolexeclibgomime_DATA) \
        $(toolexeclibgonet_DATA) $(toolexeclibgoold_DATA) \
        $(toolexeclibgoos_DATA) $(toolexeclibgopath_DATA) \
-       $(toolexeclibgorpc_DATA) $(toolexeclibgoruntime_DATA) \
-       $(toolexeclibgosync_DATA) $(toolexeclibgotemplate_DATA) \
-       $(toolexeclibgotesting_DATA)
+       $(toolexeclibgoregexp_DATA) $(toolexeclibgorpc_DATA) \
+       $(toolexeclibgoruntime_DATA) $(toolexeclibgosync_DATA) \
+       $(toolexeclibgotemplate_DATA) $(toolexeclibgotesting_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -575,7 +576,6 @@ toolexeclibgo_DATA = \
        cmath.gox \
        crypto.gox \
        csv.gox \
-       ebnf.gox \
        exec.gox \
        expvar.gox \
        flag.gox \
@@ -592,7 +592,6 @@ toolexeclibgo_DATA = \
        mail.gox \
        mime.gox \
        net.gox \
-       netchan.gox \
        os.gox \
        patch.gox \
        path.gox \
@@ -613,7 +612,6 @@ toolexeclibgo_DATA = \
        template.gox \
        testing.gox \
        time.gox \
-       try.gox \
        unicode.gox \
        url.gox \
        utf16.gox \
@@ -638,12 +636,12 @@ toolexeclibgocontainerdir = $(toolexeclibgodir)/container
 toolexeclibgocontainer_DATA = \
        container/heap.gox \
        container/list.gox \
-       container/ring.gox \
-       container/vector.gox
+       container/ring.gox
 
 toolexeclibgocryptodir = $(toolexeclibgodir)/crypto
 toolexeclibgocrypto_DATA = \
        crypto/aes.gox \
+       crypto/bcrypt.gox \
        crypto/blowfish.gox \
        crypto/cast5.gox \
        crypto/cipher.gox \
@@ -701,17 +699,22 @@ toolexeclibgoencoding_DATA = \
 
 toolexeclibgoexpdir = $(toolexeclibgodir)/exp
 toolexeclibgoexp_DATA = \
+       exp/ebnf.gox \
        exp/gui.gox \
        exp/norm.gox \
-       exp/regexp.gox
+       exp/spdy.gox \
+       exp/sql.gox \
+       exp/ssh.gox \
+       exp/terminal.gox \
+       exp/types.gox
 
 toolexeclibgoexpguidir = $(toolexeclibgoexpdir)/gui
 toolexeclibgoexpgui_DATA = \
        exp/gui/x11.gox
 
-toolexeclibgoexpregexpdir = $(toolexeclibgoexpdir)/regexp
-toolexeclibgoexpregexp_DATA = \
-       exp/regexp/syntax.gox
+toolexeclibgoexpsqldir = $(toolexeclibgoexpdir)/sql
+toolexeclibgoexpsql_DATA = \
+       exp/sql/driver.gox
 
 toolexeclibgoexptemplatedir = $(toolexeclibgoexpdir)/template
 toolexeclibgoexptemplate_DATA = \
@@ -725,9 +728,7 @@ toolexeclibgogo_DATA = \
        go/parser.gox \
        go/printer.gox \
        go/scanner.gox \
-       go/token.gox \
-       go/typechecker.gox \
-       go/types.gox
+       go/token.gox
 
 toolexeclibgohashdir = $(toolexeclibgodir)/hash
 toolexeclibgohash_DATA = \
@@ -741,12 +742,12 @@ toolexeclibgohttp_DATA = \
        http/cgi.gox \
        http/fcgi.gox \
        http/httptest.gox \
-       http/pprof.gox \
-       http/spdy.gox
+       http/pprof.gox
 
 toolexeclibgoimagedir = $(toolexeclibgodir)/image
 toolexeclibgoimage_DATA = \
        image/bmp.gox \
+       image/color.gox \
        image/draw.gox \
        image/gif.gox \
        image/jpeg.gox \
@@ -773,6 +774,8 @@ toolexeclibgonet_DATA = \
 
 toolexeclibgoolddir = $(toolexeclibgodir)/old
 toolexeclibgoold_DATA = \
+       old/netchan.gox \
+       old/regexp.gox \
        old/template.gox
 
 toolexeclibgoosdir = $(toolexeclibgodir)/os
@@ -789,6 +792,10 @@ toolexeclibgopathdir = $(toolexeclibgodir)/path
 toolexeclibgopath_DATA = \
        path/filepath.gox
 
+toolexeclibgoregexpdir = $(toolexeclibgodir)/regexp
+toolexeclibgoregexp_DATA = \
+       regexp/syntax.gox
+
 toolexeclibgorpcdir = $(toolexeclibgodir)/rpc
 toolexeclibgorpc_DATA = \
        rpc/jsonrpc.gox
@@ -908,6 +915,7 @@ runtime_files = \
        runtime/msize.c \
        runtime/proc.c \
        runtime/thread.c \
+       runtime/yield.c \
        $(rtems_task_variable_add_file) \
        chan.c \
        iface.c \
@@ -963,10 +971,6 @@ go_csv_files = \
        go/csv/reader.go \
        go/csv/writer.go
 
-go_ebnf_files = \
-       go/ebnf/ebnf.go \
-       go/ebnf/parser.go
-
 go_exec_files = \
        go/exec/exec.go \
        go/exec/lp_unix.go
@@ -1002,6 +1006,7 @@ go_html_files = \
        go/html/escape.go \
        go/html/node.go \
        go/html/parse.go \
+       go/html/render.go \
        go/html/token.go
 
 go_http_files = \
@@ -1009,6 +1014,7 @@ go_http_files = \
        go/http/client.go \
        go/http/cookie.go \
        go/http/dump.go \
+       go/http/filetransport.go \
        go/http/fs.go \
        go/http/header.go \
        go/http/lex.go \
@@ -1023,7 +1029,6 @@ go_http_files = \
        go/http/transport.go
 
 go_image_files = \
-       go/image/color.go \
        go/image/format.go \
        go/image/geom.go \
        go/image/image.go \
@@ -1046,6 +1051,7 @@ go_log_files = \
        go/log/log.go
 
 go_math_files = \
+       go/math/abs.go \
        go/math/acosh.go \
        go/math/asin.go \
        go/math/asinh.go \
@@ -1056,15 +1062,13 @@ go_math_files = \
        go/math/cbrt.go \
        go/math/const.go \
        go/math/copysign.go \
+       go/math/dim.go \
        go/math/erf.go \
        go/math/exp.go \
        go/math/exp_port.go \
        go/math/exp2.go \
        go/math/expm1.go \
-       go/math/fabs.go \
-       go/math/fdim.go \
        go/math/floor.go \
-       go/math/fmod.go \
        go/math/frexp.go \
        go/math/gamma.go \
        go/math/hypot.go \
@@ -1078,6 +1082,7 @@ go_math_files = \
        go/math/log1p.go \
        go/math/log10.go \
        go/math/logb.go \
+       go/math/mod.go \
        go/math/modf.go \
        go/math/nextafter.go \
        go/math/pow.go \
@@ -1156,11 +1161,6 @@ go_net_files = \
        go/net/unixsock.go \
        go/net/unixsock_posix.go
 
-go_netchan_files = \
-       go/netchan/common.go \
-       go/netchan/export.go \
-       go/netchan/import.go
-
 @LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@go_os_dir_file = go/os/dir_regfile.go
 @LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@go_os_dir_file = go/os/dir_largefile.go
 @LIBGO_IS_386_TRUE@@LIBGO_IS_SOLARIS_TRUE@go_os_dir_file = go/os/dir_largefile.go
@@ -1218,6 +1218,7 @@ go_reflect_files = \
        go/reflect/value.go
 
 go_regexp_files = \
+       go/regexp/exec.go \
        go/regexp/regexp.go
 
 go_rpc_files = \
@@ -1257,6 +1258,7 @@ go_strconv_files = \
 
 go_strings_files = \
        go/strings/reader.go \
+       go/strings/replace.go \
        go/strings/strings.go
 
 go_sync_files = \
@@ -1289,21 +1291,19 @@ go_template_files = \
 
 go_testing_files = \
        go/testing/benchmark.go \
+       go/testing/example.go \
        go/testing/testing.go
 
 go_time_files = \
        go/time/format.go \
        go/time/sleep.go \
        go/time/sys.go \
-       go/time/sys_posix.go \
+       go/time/sys_unix.go \
        go/time/tick.go \
        go/time/time.go \
        go/time/zoneinfo_posix.go \
        go/time/zoneinfo_unix.go
 
-go_try_files = \
-       go/try/try.go
-
 go_unicode_files = \
        go/unicode/casetables.go \
        go/unicode/digit.go \
@@ -1323,6 +1323,8 @@ go_utf8_files = \
 
 go_websocket_files = \
        go/websocket/client.go \
+       go/websocket/hixie.go \
+       go/websocket/hybi.go \
        go/websocket/server.go \
        go/websocket/websocket.go
 
@@ -1377,17 +1379,15 @@ go_container_list_files = \
 go_container_ring_files = \
        go/container/ring/ring.go
 
-go_container_vector_files = \
-       go/container/vector/defs.go \
-       go/container/vector/intvector.go \
-       go/container/vector/stringvector.go \
-       go/container/vector/vector.go
-
 go_crypto_aes_files = \
        go/crypto/aes/block.go \
        go/crypto/aes/cipher.go \
        go/crypto/aes/const.go
 
+go_crypto_bcrypt_files = \
+       go/crypto/bcrypt/base64.go \
+       go/crypto/bcrypt/bcrypt.go
+
 go_crypto_blowfish_files = \
        go/crypto/blowfish/block.go \
        go/crypto/blowfish/const.go \
@@ -1480,6 +1480,7 @@ go_crypto_tls_files = \
        go/crypto/tls/handshake_server.go \
        go/crypto/tls/key_agreement.go \
        go/crypto/tls/prf.go \
+       go/crypto/tls/root_unix.go \
        go/crypto/tls/tls.go
 
 go_crypto_twofish_files = \
@@ -1487,6 +1488,7 @@ go_crypto_twofish_files = \
 
 go_crypto_x509_files = \
        go/crypto/x509/cert_pool.go \
+       go/crypto/x509/pkcs1.go \
        go/crypto/x509/verify.go \
        go/crypto/x509/x509.go
 
@@ -1558,7 +1560,8 @@ go_encoding_base64_files = \
        go/encoding/base64/base64.go
 
 go_encoding_binary_files = \
-       go/encoding/binary/binary.go
+       go/encoding/binary/binary.go \
+       go/encoding/binary/varint.go
 
 go_encoding_git85_files = \
        go/encoding/git85/git.go
@@ -1569,35 +1572,73 @@ go_encoding_hex_files = \
 go_encoding_pem_files = \
        go/encoding/pem/pem.go
 
+go_exp_ebnf_files = \
+       go/exp/ebnf/ebnf.go \
+       go/exp/ebnf/parser.go
+
 go_exp_gui_files = \
        go/exp/gui/gui.go
 
 go_exp_norm_files = \
        go/exp/norm/composition.go \
        go/exp/norm/forminfo.go \
+       go/exp/norm/input.go \
        go/exp/norm/normalize.go \
+       go/exp/norm/readwriter.go \
        go/exp/norm/tables.go \
        go/exp/norm/trie.go
 
-go_exp_regexp_files = \
-       go/exp/regexp/exec.go \
-       go/exp/regexp/regexp.go
+go_exp_spdy_files = \
+       go/exp/spdy/read.go \
+       go/exp/spdy/types.go \
+       go/exp/spdy/write.go
+
+go_exp_sql_files = \
+       go/exp/sql/convert.go \
+       go/exp/sql/sql.go
+
+go_exp_ssh_files = \
+       go/exp/ssh/channel.go \
+       go/exp/ssh/common.go \
+       go/exp/ssh/doc.go \
+       go/exp/ssh/messages.go \
+       go/exp/ssh/server.go \
+       go/exp/ssh/server_shell.go \
+       go/exp/ssh/transport.go
+
+go_exp_terminal_files = \
+       go/exp/terminal/shell.go \
+       go/exp/terminal/terminal.go
+
+go_exp_types_files = \
+       go/exp/types/check.go \
+       go/exp/types/const.go \
+       go/exp/types/exportdata.go \
+       go/exp/types/gcimporter.go \
+       go/exp/types/types.go \
+       go/exp/types/universe.go
 
 go_exp_gui_x11_files = \
        go/exp/gui/x11/auth.go \
        go/exp/gui/x11/conn.go
 
+go_exp_sql_driver_files = \
+       go/exp/sql/driver/driver.go \
+       go/exp/sql/driver/types.go
+
 go_exp_template_html_files = \
+       go/exp/template/html/attr.go \
+       go/exp/template/html/clone.go \
+       go/exp/template/html/content.go \
        go/exp/template/html/context.go \
-       go/exp/template/html/escape.go
-
-go_exp_regexp_syntax_files = \
-       go/exp/regexp/syntax/compile.go \
-       go/exp/regexp/syntax/parse.go \
-       go/exp/regexp/syntax/perl_groups.go \
-       go/exp/regexp/syntax/prog.go \
-       go/exp/regexp/syntax/regexp.go \
-       go/exp/regexp/syntax/simplify.go
+       go/exp/template/html/css.go \
+       go/exp/template/html/doc.go \
+       go/exp/template/html/error.go \
+       go/exp/template/html/escape.go \
+       go/exp/template/html/html.go \
+       go/exp/template/html/js.go \
+       go/exp/template/html/transition.go \
+       go/exp/template/html/url.go
 
 go_go_ast_files = \
        go/go/ast/ast.go \
@@ -1615,7 +1656,8 @@ go_go_build_files = \
 
 go_go_doc_files = \
        go/go/doc/comment.go \
-       go/go/doc/doc.go
+       go/go/doc/doc.go \
+       go/go/doc/example.go
 
 go_go_parser_files = \
        go/go/parser/interface.go \
@@ -1631,22 +1673,9 @@ go_go_scanner_files = \
 
 go_go_token_files = \
        go/go/token/position.go \
+       go/go/token/serialize.go \
        go/go/token/token.go
 
-go_go_typechecker_files = \
-       go/go/typechecker/scope.go \
-       go/go/typechecker/type.go \
-       go/go/typechecker/typechecker.go \
-       go/go/typechecker/universe.go
-
-go_go_types_files = \
-       go/go/types/check.go \
-       go/go/types/const.go \
-       go/go/types/exportdata.go \
-       go/go/types/gcimporter.go \
-       go/go/types/types.go \
-       go/go/types/universe.go
-
 go_hash_adler32_files = \
        go/hash/adler32/adler32.go
 
@@ -1675,14 +1704,12 @@ go_http_httptest_files = \
 go_http_pprof_files = \
        go/http/pprof/pprof.go
 
-go_http_spdy_files = \
-       go/http/spdy/read.go \
-       go/http/spdy/types.go \
-       go/http/spdy/write.go
-
 go_image_bmp_files = \
        go/image/bmp/reader.go
 
+go_image_color_files = \
+       go/image/color/color.go
+
 go_image_draw_files = \
        go/image/draw/draw.go
 
@@ -1702,6 +1729,7 @@ go_image_png_files = \
 
 go_image_tiff_files = \
        go/image/tiff/buffer.go \
+       go/image/tiff/compress.go \
        go/image/tiff/consts.go \
        go/image/tiff/reader.go
 
@@ -1731,6 +1759,14 @@ go_net_textproto_files = \
        go/net/textproto/textproto.go \
        go/net/textproto/writer.go
 
+go_old_netchan_files = \
+       go/old/netchan/common.go \
+       go/old/netchan/export.go \
+       go/old/netchan/import.go
+
+go_old_regexp_files = \
+       go/old/regexp/regexp.go
+
 go_old_template_files = \
        go/old/template/doc.go \
        go/old/template/execute.go \
@@ -1752,6 +1788,14 @@ go_path_filepath_files = \
        go/path/filepath/path.go \
        go/path/filepath/path_unix.go
 
+go_regexp_syntax_files = \
+       go/regexp/syntax/compile.go \
+       go/regexp/syntax/parse.go \
+       go/regexp/syntax/perl_groups.go \
+       go/regexp/syntax/prog.go \
+       go/regexp/syntax/regexp.go \
+       go/regexp/syntax/simplify.go
+
 go_rpc_jsonrpc_files = \
        go/rpc/jsonrpc/client.go \
        go/rpc/jsonrpc/server.go
@@ -1878,7 +1922,6 @@ libgo_go_objs = \
        cmath/cmath.lo \
        crypto/crypto.lo \
        csv/csv.lo \
-       ebnf/ebnf.lo \
        exec/exec.lo \
        expvar/expvar.lo \
        flag/flag.lo \
@@ -1895,7 +1938,6 @@ libgo_go_objs = \
        mail/mail.lo \
        mime/mime.lo \
        net/net.lo \
-       netchan/netchan.lo \
        os/os.lo \
        patch/patch.lo \
        path/path.lo \
@@ -1915,7 +1957,6 @@ libgo_go_objs = \
        tabwriter/tabwriter.lo \
        template/template.lo \
        time/time.lo \
-       try/try.lo \
        unicode/unicode.lo \
        url/url.lo \
        utf16/utf16.lo \
@@ -1932,8 +1973,8 @@ libgo_go_objs = \
        container/heap.lo \
        container/list.lo \
        container/ring.lo \
-       container/vector.lo \
        crypto/aes.lo \
+       crypto/bcrypt.lo \
        crypto/blowfish.lo \
        crypto/cast5.lo \
        crypto/cipher.lo \
@@ -1976,11 +2017,16 @@ libgo_go_objs = \
        encoding/git85.lo \
        encoding/hex.lo \
        encoding/pem.lo \
+       exp/ebnf.lo \
        exp/gui.lo \
        exp/norm.lo \
-       exp/regexp.lo \
+       exp/spdy.lo \
+       exp/sql.lo \
+       exp/ssh.lo \
+       exp/terminal.lo \
+       exp/types.lo \
        exp/gui/x11.lo \
-       exp/regexp/syntax.lo \
+       exp/sql/driver.lo \
        exp/template/html.lo \
        go/ast.lo \
        go/build.lo \
@@ -1989,8 +2035,6 @@ libgo_go_objs = \
        go/printer.lo \
        go/scanner.lo \
        go/token.lo \
-       go/typechecker.lo \
-       go/types.lo \
        hash/adler32.lo \
        hash/crc32.lo \
        hash/crc64.lo \
@@ -1999,8 +2043,8 @@ libgo_go_objs = \
        http/fcgi.lo \
        http/httptest.lo \
        http/pprof.lo \
-       http/spdy.lo \
        image/bmp.lo \
+       image/color.lo \
        image/draw.lo \
        image/gif.lo \
        image/jpeg.lo \
@@ -2012,11 +2056,14 @@ libgo_go_objs = \
        mime/multipart.lo \
        net/dict.lo \
        net/textproto.lo \
+       old/netchan.lo \
+       old/regexp.lo \
        old/template.lo \
        $(os_lib_inotify_lo) \
        os/user.lo \
        os/signal.lo \
        path/filepath.lo \
+       regexp/syntax.lo \
        rpc/jsonrpc.lo \
        runtime/debug.lo \
        runtime/pprof.lo \
@@ -2135,7 +2182,6 @@ TEST_PACKAGES = \
        bytes/check \
        cmath/check \
        csv/check \
-       ebnf/check \
        exec/check \
        expvar/check \
        flag/check \
@@ -2151,7 +2197,6 @@ TEST_PACKAGES = \
        mail/check \
        mime/check \
        net/check \
-       netchan/check \
        os/check \
        patch/check \
        path/check \
@@ -2170,7 +2215,6 @@ TEST_PACKAGES = \
        tabwriter/check \
        template/check \
        time/check \
-       try/check \
        unicode/check \
        url/check \
        utf16/check \
@@ -2187,8 +2231,8 @@ TEST_PACKAGES = \
        container/heap/check \
        container/list/check \
        container/ring/check \
-       container/vector/check \
        crypto/aes/check \
+       crypto/bcrypt/check \
        crypto/blowfish/check \
        crypto/cast5/check \
        crypto/cipher/check \
@@ -2228,9 +2272,12 @@ TEST_PACKAGES = \
        encoding/git85/check \
        encoding/hex/check \
        encoding/pem/check \
+       exp/ebnf/check \
        exp/norm/check \
-       exp/regexp/check \
-       exp/regexp/syntax/check \
+       exp/spdy/check \
+       exp/sql/check \
+       exp/ssh/check \
+       exp/terminal/check \
        exp/template/html/check \
        go/ast/check \
        $(go_build_check_omitted_since_it_calls_6g) \
@@ -2238,7 +2285,6 @@ TEST_PACKAGES = \
        go/printer/check \
        go/scanner/check \
        go/token/check \
-       go/typechecker/check \
        $(go_types_check_omitted_since_it_calls_6g) \
        hash/adler32/check \
        hash/crc32/check \
@@ -2246,7 +2292,6 @@ TEST_PACKAGES = \
        hash/fnv/check \
        http/cgi/check \
        http/fcgi/check \
-       http/spdy/check \
        image/draw/check \
        image/jpeg/check \
        image/png/check \
@@ -2256,11 +2301,14 @@ TEST_PACKAGES = \
        io/ioutil/check \
        mime/multipart/check \
        net/textproto/check \
+       old/netchan/check \
+       old/regexp/check \
        old/template/check \
        $(os_inotify_check) \
        os/user/check \
        os/signal/check \
        path/filepath/check \
+       regexp/syntax/check \
        rpc/jsonrpc/check \
        sync/atomic/check \
        template/parse/check \
@@ -2503,6 +2551,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigqueue.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/string.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yield.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -3183,6 +3232,13 @@ thread.lo: runtime/thread.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o thread.lo `test -f 'runtime/thread.c' || echo '$(srcdir)/'`runtime/thread.c
 
+yield.lo: runtime/yield.c
+@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yield.lo -MD -MP -MF $(DEPDIR)/yield.Tpo -c -o yield.lo `test -f 'runtime/yield.c' || echo '$(srcdir)/'`runtime/yield.c
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/yield.Tpo $(DEPDIR)/yield.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='runtime/yield.c' object='yield.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yield.lo `test -f 'runtime/yield.c' || echo '$(srcdir)/'`runtime/yield.c
+
 rtems-task-variable-add.lo: runtime/rtems-task-variable-add.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rtems-task-variable-add.lo -MD -MP -MF $(DEPDIR)/rtems-task-variable-add.Tpo -c -o rtems-task-variable-add.lo `test -f 'runtime/rtems-task-variable-add.c' || echo '$(srcdir)/'`runtime/rtems-task-variable-add.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/rtems-task-variable-add.Tpo $(DEPDIR)/rtems-task-variable-add.Plo
@@ -3435,26 +3491,26 @@ uninstall-toolexeclibgoexpguiDATA:
        test -n "$$files" || exit 0; \
        echo " ( cd '$(DESTDIR)$(toolexeclibgoexpguidir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(toolexeclibgoexpguidir)" && rm -f $$files
-install-toolexeclibgoexpregexpDATA: $(toolexeclibgoexpregexp_DATA)
+install-toolexeclibgoexpsqlDATA: $(toolexeclibgoexpsql_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(toolexeclibgoexpregexpdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexpregexpdir)"
-       @list='$(toolexeclibgoexpregexp_DATA)'; test -n "$(toolexeclibgoexpregexpdir)" || list=; \
+       test -z "$(toolexeclibgoexpsqldir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexpsqldir)"
+       @list='$(toolexeclibgoexpsql_DATA)'; test -n "$(toolexeclibgoexpsqldir)" || list=; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
        done | $(am__base_list) | \
        while read files; do \
-         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoexpregexpdir)'"; \
-         $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoexpregexpdir)" || exit $$?; \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoexpsqldir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoexpsqldir)" || exit $$?; \
        done
 
-uninstall-toolexeclibgoexpregexpDATA:
+uninstall-toolexeclibgoexpsqlDATA:
        @$(NORMAL_UNINSTALL)
-       @list='$(toolexeclibgoexpregexp_DATA)'; test -n "$(toolexeclibgoexpregexpdir)" || list=; \
+       @list='$(toolexeclibgoexpsql_DATA)'; test -n "$(toolexeclibgoexpsqldir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
        test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(toolexeclibgoexpregexpdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(toolexeclibgoexpregexpdir)" && rm -f $$files
+       echo " ( cd '$(DESTDIR)$(toolexeclibgoexpsqldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(toolexeclibgoexpsqldir)" && rm -f $$files
 install-toolexeclibgoexptemplateDATA: $(toolexeclibgoexptemplate_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(toolexeclibgoexptemplatedir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexptemplatedir)"
@@ -3695,6 +3751,26 @@ uninstall-toolexeclibgopathDATA:
        test -n "$$files" || exit 0; \
        echo " ( cd '$(DESTDIR)$(toolexeclibgopathdir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(toolexeclibgopathdir)" && rm -f $$files
+install-toolexeclibgoregexpDATA: $(toolexeclibgoregexp_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(toolexeclibgoregexpdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoregexpdir)"
+       @list='$(toolexeclibgoregexp_DATA)'; test -n "$(toolexeclibgoregexpdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoregexpdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoregexpdir)" || exit $$?; \
+       done
+
+uninstall-toolexeclibgoregexpDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(toolexeclibgoregexp_DATA)'; test -n "$(toolexeclibgoregexpdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(toolexeclibgoregexpdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(toolexeclibgoregexpdir)" && rm -f $$files
 install-toolexeclibgorpcDATA: $(toolexeclibgorpc_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(toolexeclibgorpcdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgorpcdir)"
@@ -4112,7 +4188,7 @@ all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) all-multi $(DATA) \
                config.h
 installdirs: installdirs-recursive
 installdirs-am:
-       for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibgodir)" "$(DESTDIR)$(toolexeclibgoarchivedir)" "$(DESTDIR)$(toolexeclibgocompressdir)" "$(DESTDIR)$(toolexeclibgocontainerdir)" "$(DESTDIR)$(toolexeclibgocryptodir)" "$(DESTDIR)$(toolexeclibgocryptoopenpgpdir)" "$(DESTDIR)$(toolexeclibgocryptox509dir)" "$(DESTDIR)$(toolexeclibgodebugdir)" "$(DESTDIR)$(toolexeclibgoencodingdir)" "$(DESTDIR)$(toolexeclibgoexpdir)" "$(DESTDIR)$(toolexeclibgoexpguidir)" "$(DESTDIR)$(toolexeclibgoexpregexpdir)" "$(DESTDIR)$(toolexeclibgoexptemplatedir)" "$(DESTDIR)$(toolexeclibgogodir)" "$(DESTDIR)$(toolexeclibgohashdir)" "$(DESTDIR)$(toolexeclibgohttpdir)" "$(DESTDIR)$(toolexeclibgoimagedir)" "$(DESTDIR)$(toolexeclibgoindexdir)" "$(DESTDIR)$(toolexeclibgoiodir)" "$(DESTDIR)$(toolexeclibgomimedir)" "$(DESTDIR)$(toolexeclibgonetdir)" "$(DESTDIR)$(toolexeclibgoolddir)" "$(DESTDIR)$(toolexeclibgoosdir)" "$(DESTDIR)$(toolexeclibgopathdir)" "$(DESTDIR)$(toolexeclibgorpcdir)" "$(DESTDIR)$(toolexeclibgoruntimedir)" "$(DESTDIR)$(toolexeclibgosyncdir)" "$(DESTDIR)$(toolexeclibgotemplatedir)" "$(DESTDIR)$(toolexeclibgotestingdir)"; do \
+       for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibgodir)" "$(DESTDIR)$(toolexeclibgoarchivedir)" "$(DESTDIR)$(toolexeclibgocompressdir)" "$(DESTDIR)$(toolexeclibgocontainerdir)" "$(DESTDIR)$(toolexeclibgocryptodir)" "$(DESTDIR)$(toolexeclibgocryptoopenpgpdir)" "$(DESTDIR)$(toolexeclibgocryptox509dir)" "$(DESTDIR)$(toolexeclibgodebugdir)" "$(DESTDIR)$(toolexeclibgoencodingdir)" "$(DESTDIR)$(toolexeclibgoexpdir)" "$(DESTDIR)$(toolexeclibgoexpguidir)" "$(DESTDIR)$(toolexeclibgoexpsqldir)" "$(DESTDIR)$(toolexeclibgoexptemplatedir)" "$(DESTDIR)$(toolexeclibgogodir)" "$(DESTDIR)$(toolexeclibgohashdir)" "$(DESTDIR)$(toolexeclibgohttpdir)" "$(DESTDIR)$(toolexeclibgoimagedir)" "$(DESTDIR)$(toolexeclibgoindexdir)" "$(DESTDIR)$(toolexeclibgoiodir)" "$(DESTDIR)$(toolexeclibgomimedir)" "$(DESTDIR)$(toolexeclibgonetdir)" "$(DESTDIR)$(toolexeclibgoolddir)" "$(DESTDIR)$(toolexeclibgoosdir)" "$(DESTDIR)$(toolexeclibgopathdir)" "$(DESTDIR)$(toolexeclibgoregexpdir)" "$(DESTDIR)$(toolexeclibgorpcdir)" "$(DESTDIR)$(toolexeclibgoruntimedir)" "$(DESTDIR)$(toolexeclibgosyncdir)" "$(DESTDIR)$(toolexeclibgotemplatedir)" "$(DESTDIR)$(toolexeclibgotestingdir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-recursive
@@ -4183,15 +4259,16 @@ install-exec-am: install-multi install-toolexeclibLIBRARIES \
        install-toolexeclibgodebugDATA \
        install-toolexeclibgoencodingDATA install-toolexeclibgoexpDATA \
        install-toolexeclibgoexpguiDATA \
-       install-toolexeclibgoexpregexpDATA \
+       install-toolexeclibgoexpsqlDATA \
        install-toolexeclibgoexptemplateDATA \
        install-toolexeclibgogoDATA install-toolexeclibgohashDATA \
        install-toolexeclibgohttpDATA install-toolexeclibgoimageDATA \
        install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \
        install-toolexeclibgomimeDATA install-toolexeclibgonetDATA \
        install-toolexeclibgooldDATA install-toolexeclibgoosDATA \
-       install-toolexeclibgopathDATA install-toolexeclibgorpcDATA \
-       install-toolexeclibgoruntimeDATA install-toolexeclibgosyncDATA \
+       install-toolexeclibgopathDATA install-toolexeclibgoregexpDATA \
+       install-toolexeclibgorpcDATA install-toolexeclibgoruntimeDATA \
+       install-toolexeclibgosyncDATA \
        install-toolexeclibgotemplateDATA \
        install-toolexeclibgotestingDATA
 
@@ -4247,7 +4324,7 @@ uninstall-am: uninstall-toolexeclibLIBRARIES \
        uninstall-toolexeclibgoencodingDATA \
        uninstall-toolexeclibgoexpDATA \
        uninstall-toolexeclibgoexpguiDATA \
-       uninstall-toolexeclibgoexpregexpDATA \
+       uninstall-toolexeclibgoexpsqlDATA \
        uninstall-toolexeclibgoexptemplateDATA \
        uninstall-toolexeclibgogoDATA uninstall-toolexeclibgohashDATA \
        uninstall-toolexeclibgohttpDATA \
@@ -4255,7 +4332,9 @@ uninstall-am: uninstall-toolexeclibLIBRARIES \
        uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \
        uninstall-toolexeclibgomimeDATA uninstall-toolexeclibgonetDATA \
        uninstall-toolexeclibgooldDATA uninstall-toolexeclibgoosDATA \
-       uninstall-toolexeclibgopathDATA uninstall-toolexeclibgorpcDATA \
+       uninstall-toolexeclibgopathDATA \
+       uninstall-toolexeclibgoregexpDATA \
+       uninstall-toolexeclibgorpcDATA \
        uninstall-toolexeclibgoruntimeDATA \
        uninstall-toolexeclibgosyncDATA \
        uninstall-toolexeclibgotemplateDATA \
@@ -4290,15 +4369,16 @@ uninstall-am: uninstall-toolexeclibLIBRARIES \
        install-toolexeclibgodebugDATA \
        install-toolexeclibgoencodingDATA install-toolexeclibgoexpDATA \
        install-toolexeclibgoexpguiDATA \
-       install-toolexeclibgoexpregexpDATA \
+       install-toolexeclibgoexpsqlDATA \
        install-toolexeclibgoexptemplateDATA \
        install-toolexeclibgogoDATA install-toolexeclibgohashDATA \
        install-toolexeclibgohttpDATA install-toolexeclibgoimageDATA \
        install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \
        install-toolexeclibgomimeDATA install-toolexeclibgonetDATA \
        install-toolexeclibgooldDATA install-toolexeclibgoosDATA \
-       install-toolexeclibgopathDATA install-toolexeclibgorpcDATA \
-       install-toolexeclibgoruntimeDATA install-toolexeclibgosyncDATA \
+       install-toolexeclibgopathDATA install-toolexeclibgoregexpDATA \
+       install-toolexeclibgorpcDATA install-toolexeclibgoruntimeDATA \
+       install-toolexeclibgosyncDATA \
        install-toolexeclibgotemplateDATA \
        install-toolexeclibgotestingDATA installcheck installcheck-am \
        installdirs installdirs-am maintainer-clean \
@@ -4318,7 +4398,7 @@ uninstall-am: uninstall-toolexeclibLIBRARIES \
        uninstall-toolexeclibgoencodingDATA \
        uninstall-toolexeclibgoexpDATA \
        uninstall-toolexeclibgoexpguiDATA \
-       uninstall-toolexeclibgoexpregexpDATA \
+       uninstall-toolexeclibgoexpsqlDATA \
        uninstall-toolexeclibgoexptemplateDATA \
        uninstall-toolexeclibgogoDATA uninstall-toolexeclibgohashDATA \
        uninstall-toolexeclibgohttpDATA \
@@ -4326,7 +4406,9 @@ uninstall-am: uninstall-toolexeclibLIBRARIES \
        uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \
        uninstall-toolexeclibgomimeDATA uninstall-toolexeclibgonetDATA \
        uninstall-toolexeclibgooldDATA uninstall-toolexeclibgoosDATA \
-       uninstall-toolexeclibgopathDATA uninstall-toolexeclibgorpcDATA \
+       uninstall-toolexeclibgopathDATA \
+       uninstall-toolexeclibgoregexpDATA \
+       uninstall-toolexeclibgorpcDATA \
        uninstall-toolexeclibgoruntimeDATA \
        uninstall-toolexeclibgosyncDATA \
        uninstall-toolexeclibgotemplateDATA \
@@ -4440,13 +4522,6 @@ csv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: csv/check
 
-ebnf/ebnf.lo: $(go_ebnf_files) container/vector.gox go/scanner.gox \
-               go/token.gox os.gox strconv.gox unicode.gox utf8.gox
-       $(BUILDPACKAGE)
-ebnf/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: ebnf/check
-
 exec/exec.lo: $(go_exec_files) bytes.gox io.gox os.gox strconv.gox \
                strings.gox syscall.gox
        $(BUILDPACKAGE)
@@ -4468,7 +4543,7 @@ flag/check: $(CHECK_DEPS)
 .PHONY: flag/check
 
 fmt/fmt.lo: $(go_fmt_files) bytes.gox io.gox math.gox os.gox reflect.gox \
-               strconv.gox strings.gox unicode.gox utf8.gox
+               strconv.gox strings.gox sync.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 fmt/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -4488,8 +4563,8 @@ hash/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: hash/check
 
-html/html.lo: $(go_html_files) bytes.gox io.gox os.gox strconv.gox strings.gox \
-               utf8.gox
+html/html.lo: $(go_html_files) bufio.gox bytes.gox fmt.gox io.gox os.gox \
+               strconv.gox strings.gox utf8.gox
        $(BUILDPACKAGE)
 html/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -4506,7 +4581,8 @@ http/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: http/check
 
-image/image.lo: $(go_image_files) bufio.gox io.gox os.gox strconv.gox
+image/image.lo: $(go_image_files) bufio.gox image/color.gox io.gox os.gox \
+               strconv.gox
        $(BUILDPACKAGE)
 image/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -4562,13 +4638,6 @@ net/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: net/check
 
-netchan/netchan.lo: $(go_netchan_files) gob.gox io.gox log.gox net.gox os.gox \
-               reflect.gox strconv.gox sync.gox time.gox
-       $(BUILDPACKAGE)
-netchan/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: netchan/check
-
 os/os.lo: $(go_os_files) runtime.gox sync.gox syscall.gox
        $(BUILDPACKAGE)
 os/check: $(CHECK_DEPS)
@@ -4606,8 +4675,8 @@ reflect/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: reflect/check
 
-regexp/regexp.lo: $(go_regexp_files) bytes.gox io.gox os.gox strings.gox \
-               utf8.gox
+regexp/regexp.lo: $(go_regexp_files) bytes.gox io.gox os.gox \
+               regexp/syntax.gox strconv.gox strings.gox sync.gox utf8.gox
        $(BUILDPACKAGE)
 regexp/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -4654,7 +4723,7 @@ strconv/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: strconv/check
 
-strings/strings.lo: $(go_strings_files) os.gox unicode.gox utf8.gox
+strings/strings.lo: $(go_strings_files) io.gox os.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 strings/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -4689,8 +4758,9 @@ template/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: template/check
 
-testing/testing.lo: $(go_testing_files) flag.gox fmt.gox os.gox regexp.gox \
-               runtime.gox runtime/pprof.gox strings.gox strconv.gox time.gox
+testing/testing.lo: $(go_testing_files) bytes.gox flag.gox fmt.gox io.gox \
+               os.gox regexp.gox runtime.gox runtime/pprof.gox strings.gox \
+               strconv.gox time.gox
        $(BUILDPACKAGE)
 testing/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -4703,12 +4773,6 @@ time/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: time/check
 
-try/try.lo: $(go_try_files) fmt.gox io.gox os.gox reflect.gox unicode.gox
-       $(BUILDPACKAGE)
-try/check: $(CHECK_DEPS)
-       @$(CHECK)
-.PHONY: try/check
-
 unicode/unicode.lo: $(go_unicode_files)
        $(BUILDPACKAGE)
 unicode/check: $(CHECK_DEPS)
@@ -4734,8 +4798,10 @@ utf8/check: $(CHECK_DEPS)
 .PHONY: utf8/check
 
 websocket/websocket.lo: $(go_websocket_files) bufio.gox bytes.gox \
-               crypto/md5.gox crypto/tls.gox encoding/binary.gox fmt.gox \
-               http.gox io.gox net.gox os.gox rand.gox strings.gox url.gox
+               crypto/md5.gox crypto/rand.gox crypto/sha1.gox crypto/tls.gox \
+               encoding/base64.gox encoding/binary.gox fmt.gox http.gox \
+               io.gox io/ioutil.gox json.gox net.gox os.gox rand.gox \
+               strings.gox strconv.gox sync.gox url.gox
        $(BUILDPACKAGE)
 websocket/check: $(CHECK_DEPS)
        @$(CHECK)
@@ -4824,13 +4890,6 @@ container/ring/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: container/ring/check
 
-container/vector.lo: $(go_container_vector_files)
-       $(BUILDPACKAGE)
-container/vector/check: $(CHECK_DEPS)
-       @$(MKDIR_P) container/vector
-       @$(CHECK)
-.PHONY: container/vector/check
-
 crypto/aes.lo: $(go_crypto_aes_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/aes/check: $(CHECK_DEPS)
@@ -4838,6 +4897,15 @@ crypto/aes/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: crypto/aes/check
 
+crypto/bcrypt.lo: $(go_crypto_bcrypt_files) crypto/blowfish.gox \
+               crypto/rand.gox crypto/subtle.gox encoding/base64.gox \
+               fmt.gox io.gox os.gox strconv.gox
+       $(BUILDPACKAGE)
+crypto/bcrypt/check: $(CHECK_DEPS)
+       @$(MKDIR_P) crypto/bcrypt
+       @$(CHECK)
+.PHONY: crypto/bcrypt/check
+
 crypto/blowfish.lo: $(go_crypto_blowfish_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/blowfish/check: $(CHECK_DEPS)
@@ -4990,12 +5058,12 @@ crypto/subtle/check: $(CHECK_DEPS)
 .PHONY: crypto/subtle/check
 
 crypto/tls.lo: $(go_crypto_tls_files) big.gox bytes.gox crypto.gox \
-               crypto/aes.gox crypto/cipher.gox crypto/elliptic.gox \
-               crypto/hmac.gox crypto/md5.gox crypto/rand.gox crypto/rc4.gox \
-               crypto/rsa.gox crypto/sha1.gox crypto/subtle.gox \
-               crypto/x509.gox crypto/x509/pkix.gox encoding/pem.gox \
-               hash.gox io.gox io/ioutil.gox net.gox os.gox strconv.gox \
-               strings.gox sync.gox time.gox
+               crypto/aes.gox crypto/cipher.gox crypto/des.gox \
+               crypto/elliptic.gox crypto/hmac.gox crypto/md5.gox \
+               crypto/rand.gox crypto/rc4.gox crypto/rsa.gox crypto/sha1.gox \
+               crypto/subtle.gox crypto/x509.gox crypto/x509/pkix.gox \
+               encoding/pem.gox hash.gox io.gox io/ioutil.gox net.gox os.gox \
+               strconv.gox strings.gox sync.gox time.gox
        $(BUILDPACKAGE)
 crypto/tls/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/tls
@@ -5170,6 +5238,14 @@ encoding/pem/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: encoding/pem/check
 
+exp/ebnf.lo: $(go_exp_ebnf_files) go/scanner.gox go/token.gox os.gox \
+               strconv.gox unicode.gox utf8.gox
+       $(BUILDPACKAGE)
+exp/ebnf/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/ebnf
+       @$(CHECK)
+.PHONY: exp/ebnf/check
+
 exp/gui.lo: $(go_exp_gui_files) image.gox image/draw.gox os.gox
        $(BUILDPACKAGE)
 exp/gui/check: $(CHECK_DEPS)
@@ -5177,20 +5253,55 @@ exp/gui/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: exp/gui/check
 
-exp/norm.lo: $(go_exp_norm_files) utf8.gox
+exp/norm.lo: $(go_exp_norm_files) io.gox os.gox utf8.gox
        $(BUILDPACKAGE)
 exp/norm/check: $(CHECK_DEPS)
        @$(MKDIR_P) exp/norm
        @$(CHECK)
 .PHONY: exp/norm/check
 
-exp/regexp.lo: $(go_exp_regexp_files) bytes.gox exp/regexp/syntax.gox io.gox \
-               os.gox strings.gox sync.gox utf8.gox
+exp/spdy.lo: $(go_exp_spdy_files) bytes.gox compress/zlib.gox \
+               encoding/binary.gox http.gox io.gox os.gox strings.gox
+       $(BUILDPACKAGE)
+exp/spdy/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/spdy
+       @$(CHECK)
+.PHONY: exp/spdy/check
+
+exp/sql.lo: $(go_exp_sql_files) exp/sql/driver.gox fmt.gox os.gox reflect.gox \
+               runtime.gox strconv.gox sync.gox
+       $(BUILDPACKAGE)
+exp/sql/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/sql
+       @$(CHECK)
+.PHONY: exp/sql/check
+
+exp/ssh.lo: $(go_exp_ssh_files) big.gox bufio.gox bytes.gox crypto.gox \
+               crypto/aes.gox crypto/cipher.gox crypto/hmac.gox \
+               crypto/rand.gox crypto/rsa.gox crypto/sha1.gox \
+               crypto/subtle.gox crypto/x509.gox encoding/pem.gox hash.gox \
+               io.gox net.gox os.gox reflect.gox strconv.gox sync.gox
+       $(BUILDPACKAGE)
+exp/ssh/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/ssh
+       @$(CHECK)
+.PHONY: exp/ssh/check
+
+exp/terminal.lo: $(go_exp_terminal_files) io.gox os.gox syscall.gox
        $(BUILDPACKAGE)
-exp/regexp/check: $(CHECK_DEPS)
-       @$(MKDIR_P) exp/regexp
+exp/terminal/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/terminal
        @$(CHECK)
-.PHONY: exp/regexp/check
+.PHONY: exp/terminal/check
+
+exp/types.lo: $(go_exp_types_files) big.gox bufio.gox fmt.gox go/ast.gox \
+               go/token.gox io.gox os.gox path/filepath.gox runtime.gox \
+               scanner.gox sort.gox strconv.gox strings.gox
+       $(BUILDPACKAGE)
+exp/types/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/types
+       @$(CHECK)
+.PHONY: exp/types/check
 
 exp/gui/x11.lo: $(go_exp_gui_x11_files) bufio.gox exp/gui.gox image.gox \
                image/draw.gox io.gox log.gox net.gox os.gox strconv.gox \
@@ -5201,15 +5312,17 @@ exp/gui/x11/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: exp/gui/x11/check
 
-exp/regexp/syntax.lo: $(go_exp_regexp_syntax_files) bytes.gox os.gox sort.gox strconv.gox strings.gox unicode.gox utf8.gox
+exp/sql/driver.lo: $(go_exp_sql_driver_files) fmt.gox os.gox reflect.gox \
+               strconv.gox
        $(BUILDPACKAGE)
-exp/regexp/syntax/check: $(CHECK_DEPS)
-       @$(MKDIR_P) exp/regexp/syntax
+exp/sql/driver/check: $(CHECK_DEPS)
+       @$(MKDIR_P) exp/sql/driver
        @$(CHECK)
-.PHONY: exp/regexp/syntax/check
+.PHONY: exp/sql/driver/check
 
-exp/template/html.lo: $(go_exp_template_html_files) fmt.gox template.gox \
-               template/parse.gox
+exp/template/html.lo: $(go_exp_template_html_files) bytes.gox fmt.gox \
+               html.gox json.gox os.gox strings.gox template.gox \
+               template/parse.gox unicode.gox utf8.gox 
        $(BUILDPACKAGE)
 exp/template/html/check: $(CHECK_DEPS)
        @$(MKDIR_P) exp/template/html
@@ -5224,9 +5337,10 @@ go/ast/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/ast/check
 
-go/build.lo: $(go_go_build_files) bytes.gox exec.gox fmt.gox go/parser.gox \
-               go/token.gox log.gox os.gox path/filepath.gox regexp.gox \
-               runtime.gox strconv.gox strings.gox runtime.gox
+go/build.lo: $(go_go_build_files) bytes.gox exec.gox fmt.gox go/ast.gox \
+               go/doc.gox go/parser.gox go/token.gox io/ioutil.gox log.gox \
+               os.gox path.gox path/filepath.gox regexp.gox runtime.gox \
+               sort.gox strconv.gox strings.gox runtime.gox unicode.gox
        $(BUILDPACKAGE)
 go/build/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/build
@@ -5243,7 +5357,7 @@ s-syslist: Makefile
        $(STAMP) $@
 
 go/doc.lo: $(go_go_doc_files) go/ast.gox go/token.gox io.gox regexp.gox \
-               sort.gox strings.gox template.gox
+               sort.gox strings.gox template.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 go/doc/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/doc
@@ -5261,7 +5375,7 @@ go/parser/check: $(CHECK_DEPS)
 
 go/printer.lo: $(go_go_printer_files) bytes.gox fmt.gox go/ast.gox \
                go/token.gox io.gox os.gox path/filepath.gox reflect.gox \
-               runtime.gox strings.gox tabwriter.gox
+               strings.gox tabwriter.gox
        $(BUILDPACKAGE)
 go/printer/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/printer
@@ -5277,30 +5391,14 @@ go/scanner/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: go/scanner/check
 
-go/token.lo: $(go_go_token_files) fmt.gox strconv.gox
+go/token.lo: $(go_go_token_files) fmt.gox gob.gox io.gox os.gox sort.gox \
+               strconv.gox sync.gox
        $(BUILDPACKAGE)
 go/token/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/token
        @$(CHECK)
 .PHONY: go/token/check
 
-go/typechecker.lo: $(go_go_typechecker_files) fmt.gox go/ast.gox go/token.gox \
-               go/scanner.gox os.gox
-       $(BUILDPACKAGE)
-go/typechecker/check: $(CHECK_DEPS)
-       @$(MKDIR_P) go/typechecker
-       @$(CHECK)
-.PHONY: go/typechecker/check
-
-go/types.lo: $(go_go_types_files) big.gox bufio.gox fmt.gox go/ast.gox \
-               go/token.gox io.gox os.gox path/filepath.gox runtime.gox \
-               scanner.gox sort.gox strconv.gox strings.gox
-       $(BUILDPACKAGE)
-go/types/check: $(CHECK_DEPS)
-       @$(MKDIR_P) go/types
-       @$(CHECK)
-.PHONY: go/types/check
-
 hash/adler32.lo: $(go_hash_adler32_files) hash.gox os.gox
        $(BUILDPACKAGE)
 hash/adler32/check: $(CHECK_DEPS)
@@ -5364,23 +5462,21 @@ http/pprof/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: http/pprof/check
 
-http/spdy.lo: $(go_http_spdy_files) bytes.gox compress/zlib.gox \
-               encoding/binary.gox http.gox io.gox os.gox strconv.gox \
-               strings.gox sync.gox
-       $(BUILDPACKAGE)
-http/spdy/check: $(CHECK_DEPS)
-       @$(MKDIR_P) http/spdy
-       @$(CHECK)
-.PHONY: http/spdy/check
-
-image/bmp.lo: $(go_image_bmp_files) image.gox io.gox os.gox
+image/bmp.lo: $(go_image_bmp_files) image.gox image/color.gox io.gox os.gox
        $(BUILDPACKAGE)
 image/bmp/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/bmp
        @$(CHECK)
 .PHONY: image/bmp/check
 
-image/draw.lo: $(go_image_draw_files) image.gox image/ycbcr.gox
+image/color.lo: $(go_image_color_files)
+       $(BUILDPACKAGE)
+image/color/check: $(CHECK_DEPS)
+       @$(MKDIR_P) image/color
+       @$(CHECK)
+.PHONY: image/color/check
+
+image/draw.lo: $(go_image_draw_files) image.gox image/color.gox image/ycbcr.gox
        $(BUILDPACKAGE)
 image/draw/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/draw
@@ -5388,46 +5484,48 @@ image/draw/check: $(CHECK_DEPS)
 .PHONY: image/draw/check
 
 image/gif.lo: $(go_image_gif_files) bufio.gox compress/lzw.gox fmt.gox \
-               image.gox io.gox os.gox
+               image.gox image/color.gox io.gox os.gox
        $(BUILDPACKAGE)
 image/gif/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/gif
        @$(CHECK)
 .PHONY: image/gif/check
 
-image/jpeg.lo: $(go_image_jpeg_files) bufio.gox image.gox image/ycbcr.gox \
-               io.gox os.gox
+image/jpeg.lo: $(go_image_jpeg_files) bufio.gox image.gox image/color.gox \
+               image/ycbcr.gox io.gox os.gox
        $(BUILDPACKAGE)
 image/jpeg/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/jpeg
        @$(CHECK)
 .PHONY: image/jpeg/check
 
-image/png.lo: $(go_image_png_files) bufio.gox compress/zlib.gox fmt.gox \
-               hash.gox hash/crc32.gox image.gox io.gox os.gox strconv.gox
+image/png.lo: $(go_image_png_files) bufio.gox compress/zlib.gox \
+               encoding/binary.gox fmt.gox hash.gox hash/crc32.gox image.gox \
+               image/color.gox io.gox os.gox strconv.gox
        $(BUILDPACKAGE)
 image/png/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/png
        @$(CHECK)
 .PHONY: image/png/check
 
-image/tiff.lo: $(go_image_tiff_files) compress/lzw.gox compress/zlib.gox \
-               encoding/binary.gox image.gox io.gox io/ioutil.gox os.gox
+image/tiff.lo: $(go_image_tiff_files) bufio.gox compress/lzw.gox \
+               compress/zlib.gox encoding/binary.gox image.gox \
+               image/color.gox io.gox io/ioutil.gox os.gox
        $(BUILDPACKAGE)
 image/tiff/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/tiff
        @$(CHECK)
 .PHONY: image/tiff/check
 
-image/ycbcr.lo: $(go_image_ycbcr_files) image.gox
+image/ycbcr.lo: $(go_image_ycbcr_files) image.gox image/color.gox
        $(BUILDPACKAGE)
 image/ycbcr/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/ycbcr
        @$(CHECK)
 .PHONY: image/ycbcr/check
 
-index/suffixarray.lo: $(go_index_suffixarray_files) bytes.gox regexp.gox \
-               sort.gox
+index/suffixarray.lo: $(go_index_suffixarray_files) bytes.gox \
+               encoding/binary.gox io.gox os.gox regexp.gox sort.gox
        $(BUILDPACKAGE)
 index/suffixarray/check: $(CHECK_DEPS)
        @$(MKDIR_P) index/suffixarray
@@ -5456,13 +5554,30 @@ net/dict.lo: $(go_net_dict_files) net/textproto.gox os.gox strconv.gox \
        $(BUILDPACKAGE)
 
 net/textproto.lo: $(go_net_textproto_files) bufio.gox bytes.gox fmt.gox \
-               io.gox io/ioutil.gox net.gox os.gox strconv.gox sync.gox
+               io.gox io/ioutil.gox net.gox os.gox strings.gox strconv.gox \
+               sync.gox
        $(BUILDPACKAGE)
 net/textproto/check: $(CHECK_DEPS)
        @$(MKDIR_P) net/textproto
        @$(CHECK)
 .PHONY: net/textproto/check
 
+old/netchan.lo: $(go_old_netchan_files) gob.gox io.gox log.gox net.gox os.gox \
+               reflect.gox strconv.gox sync.gox time.gox
+       $(BUILDPACKAGE)
+old/netchan/check: $(CHECK_DEPS)
+       @$(MKDIR_P) old/netchan
+       @$(CHECK)
+.PHONY: old/netchan/check
+
+old/regexp.lo: $(go_old_regexp_files) bytes.gox io.gox os.gox strings.gox \
+               utf8.gox
+       $(BUILDPACKAGE)
+old/regexp/check: $(CHECK_DEPS)
+       @$(MKDIR_P) old/regexp
+       @$(CHECK)
+.PHONY: old/regexp/check
+
 old/template.lo: $(go_old_template_files) bytes.gox fmt.gox io.gox \
                io/ioutil.gox os.gox reflect.gox strconv.gox strings.gox \
                unicode.gox utf8.gox
@@ -5502,6 +5617,14 @@ path/filepath/check: $(CHECK_DEPS)
        @$(CHECK)
 .PHONY: path/filepath/check
 
+regexp/syntax.lo: $(go_regexp_syntax_files) bytes.gox os.gox sort.gox \
+               strconv.gox strings.gox unicode.gox utf8.gox
+       $(BUILDPACKAGE)
+regexp/syntax/check: $(CHECK_DEPS)
+       @$(MKDIR_P) regexp/syntax
+       @$(CHECK)
+.PHONY: regexp/syntax/check
+
 rpc/jsonrpc.lo: $(go_rpc_jsonrpc_files) fmt.gox io.gox json.gox net.gox \
                os.gox rpc.gox sync.gox
        $(BUILDPACKAGE)
@@ -5587,8 +5710,6 @@ crypto.gox: crypto/crypto.lo
        $(BUILDGOX)
 csv.gox: csv/csv.lo
        $(BUILDGOX)
-ebnf.gox: ebnf/ebnf.lo
-       $(BUILDGOX)
 exec.gox: exec/exec.lo
        $(BUILDGOX)
 expvar.gox: expvar/expvar.lo
@@ -5621,8 +5742,6 @@ mime.gox: mime/mime.lo
        $(BUILDGOX)
 net.gox: net/net.lo
        $(BUILDGOX)
-netchan.gox: netchan/netchan.lo
-       $(BUILDGOX)
 os.gox: os/os.lo
        $(BUILDGOX)
 patch.gox: patch/patch.lo
@@ -5663,8 +5782,6 @@ testing.gox: testing/testing.lo
        $(BUILDGOX)
 time.gox: time/time.lo
        $(BUILDGOX)
-try.gox: try/try.lo
-       $(BUILDGOX)
 unicode.gox: unicode/unicode.lo
        $(BUILDGOX)
 url.gox: url/url.lo
@@ -5700,11 +5817,11 @@ container/list.gox: container/list.lo
        $(BUILDGOX)
 container/ring.gox: container/ring.lo
        $(BUILDGOX)
-container/vector.gox: container/vector.lo
-       $(BUILDGOX)
 
 crypto/aes.gox: crypto/aes.lo
        $(BUILDGOX)
+crypto/bcrypt.gox: crypto/bcrypt.lo
+       $(BUILDGOX)
 crypto/blowfish.gox: crypto/blowfish.lo
        $(BUILDGOX)
 crypto/cast5.gox: crypto/cast5.lo
@@ -5794,17 +5911,27 @@ encoding/hex.gox: encoding/hex.lo
 encoding/pem.gox: encoding/pem.lo
        $(BUILDGOX)
 
+exp/ebnf.gox: exp/ebnf.lo
+       $(BUILDGOX)
 exp/gui.gox: exp/gui.lo
        $(BUILDGOX)
 exp/norm.gox: exp/norm.lo
        $(BUILDGOX)
-exp/regexp.gox: exp/regexp.lo
+exp/spdy.gox: exp/spdy.lo
+       $(BUILDGOX)
+exp/sql.gox: exp/sql.lo
+       $(BUILDGOX)
+exp/ssh.gox: exp/ssh.lo
+       $(BUILDGOX)
+exp/terminal.gox: exp/terminal.lo
+       $(BUILDGOX)
+exp/types.gox: exp/types.lo
        $(BUILDGOX)
 
 exp/gui/x11.gox: exp/gui/x11.lo
        $(BUILDGOX)
 
-exp/regexp/syntax.gox: exp/regexp/syntax.lo
+exp/sql/driver.gox: exp/sql/driver.lo
        $(BUILDGOX)
 
 exp/template/html.gox: exp/template/html.lo
@@ -5824,10 +5951,6 @@ go/scanner.gox: go/scanner.lo
        $(BUILDGOX)
 go/token.gox: go/token.lo
        $(BUILDGOX)
-go/typechecker.gox: go/typechecker.lo
-       $(BUILDGOX)
-go/types.gox: go/types.lo
-       $(BUILDGOX)
 
 hash/adler32.gox: hash/adler32.lo
        $(BUILDGOX)
@@ -5846,11 +5969,11 @@ http/httptest.gox: http/httptest.lo
        $(BUILDGOX)
 http/pprof.gox: http/pprof.lo
        $(BUILDGOX)
-http/spdy.gox: http/spdy.lo
-       $(BUILDGOX)
 
 image/bmp.gox: image/bmp.lo
        $(BUILDGOX)
+image/color.gox: image/color.lo
+       $(BUILDGOX)
 image/draw.gox: image/draw.lo
        $(BUILDGOX)
 image/gif.gox: image/gif.lo
@@ -5878,6 +6001,10 @@ net/dict.gox: net/dict.lo
 net/textproto.gox: net/textproto.lo
        $(BUILDGOX)
 
+old/netchan.gox: old/netchan.lo
+       $(BUILDGOX)
+old/regexp.gox: old/regexp.lo
+       $(BUILDGOX)
 old/template.gox: old/template.lo
        $(BUILDGOX)
 
@@ -5891,6 +6018,9 @@ os/signal.gox: os/signal.lo
 path/filepath.gox: path/filepath.lo
        $(BUILDGOX)
 
+regexp/syntax.gox: regexp/syntax.lo
+       $(BUILDGOX)
+
 rpc/jsonrpc.gox: rpc/jsonrpc.lo
        $(BUILDGOX)
 
index 5288587..6735508 100644 (file)
@@ -15,36 +15,37 @@ const (
        blockSize = 512
 
        // Types
-       TypeReg           = '0'
-       TypeRegA          = '\x00'
-       TypeLink          = '1'
-       TypeSymlink       = '2'
-       TypeChar          = '3'
-       TypeBlock         = '4'
-       TypeDir           = '5'
-       TypeFifo          = '6'
-       TypeCont          = '7'
-       TypeXHeader       = 'x'
-       TypeXGlobalHeader = 'g'
+       TypeReg           = '0'    // regular file.
+       TypeRegA          = '\x00' // regular file.
+       TypeLink          = '1'    // hard link.
+       TypeSymlink       = '2'    // symbolic link.
+       TypeChar          = '3'    // character device node.
+       TypeBlock         = '4'    // block device node.
+       TypeDir           = '5'    // directory.
+       TypeFifo          = '6'    // fifo node.
+       TypeCont          = '7'    // reserved.
+       TypeXHeader       = 'x'    // extended header.
+       TypeXGlobalHeader = 'g'    // global extended header.
 )
 
 // A Header represents a single header in a tar archive.
 // Some fields may not be populated.
 type Header struct {
-       Name     string
-       Mode     int64
-       Uid      int
-       Gid      int
-       Size     int64
-       Mtime    int64
-       Typeflag byte
-       Linkname string
-       Uname    string
-       Gname    string
-       Devmajor int64
-       Devminor int64
-       Atime    int64
-       Ctime    int64
+       Name     string // name of header file entry.
+       Mode     int64  // permission and mode bits.
+       Uid      int    // user id of owner.
+       Gid      int    // group id of owner.
+       Size     int64  // length in bytes.
+       Mtime    int64  // modified time; seconds since epoch.
+       Typeflag byte   // type of header entry.
+       Linkname string // target name of link.
+       Uname    string // user name of owner.
+       Gname    string // group name of owner.
+       Devmajor int64  // major number of character or block device.
+       Devminor int64  // minor number of character or block device.
+       Atime    int64  // access time; seconds since epoch.
+       Ctime    int64  // status change time; seconds since epoch.
+
 }
 
 var zeroBlock = make([]byte, blockSize)
index 45d95c3..12de2ad 100644 (file)
@@ -94,7 +94,7 @@ func (tr *Reader) skipUnread() {
                        return
                }
        }
-       _, tr.err = io.Copyn(ioutil.Discard, tr.r, nr)
+       _, tr.err = io.CopyN(ioutil.Discard, tr.r, nr)
 }
 
 func (tr *Reader) verifyChecksum(header []byte) bool {
index 0358f91..e6d816a 100644 (file)
Binary files a/libgo/go/archive/tar/testdata/writer.tar and b/libgo/go/archive/tar/testdata/writer.tar differ
index 8673bad..c6ce224 100644 (file)
@@ -134,7 +134,7 @@ func (tw *Writer) WriteHeader(hdr *Header) os.Error {
        tw.numeric(s.next(12), hdr.Mtime)      // 136:148
        s.next(8)                              // chksum (148:156)
        s.next(1)[0] = hdr.Typeflag            // 156:157
-       s.next(100)                            // linkname (157:257)
+       tw.cString(s.next(100), hdr.Linkname)  // linkname (157:257)
        copy(s.next(8), []byte("ustar\x0000")) // 257:265
        tw.cString(s.next(32), hdr.Uname)      // 265:297
        tw.cString(s.next(32), hdr.Gname)      // 297:329
index 838cb7e..6cc9386 100644 (file)
@@ -24,6 +24,10 @@ type writerTest struct {
 }
 
 var writerTests = []*writerTest{
+       // The writer test file was produced with this command:
+       // tar (GNU tar) 1.26
+       //   ln -s small.txt link.txt
+       //   tar -b 1 --format=ustar -c -f writer.tar small.txt small2.txt link.txt
        &writerTest{
                file: "testdata/writer.tar",
                entries: []*writerTestEntry{
@@ -55,6 +59,21 @@ var writerTests = []*writerTest{
                                },
                                contents: "Google.com\n",
                        },
+                       &writerTestEntry{
+                               header: &Header{
+                                       Name:     "link.txt",
+                                       Mode:     0777,
+                                       Uid:      1000,
+                                       Gid:      1000,
+                                       Size:     0,
+                                       Mtime:    1314603082,
+                                       Typeflag: '2',
+                                       Linkname: "small.txt",
+                                       Uname:    "strings",
+                                       Gname:    "strings",
+                               },
+                               // no contents
+                       },
                },
        },
        // The truncated test file was produced using these commands:
index f92f929..b0a5599 100644 (file)
@@ -238,7 +238,7 @@ func readDirectoryHeader(f *File, r io.Reader) os.Error {
        commentLen := int(c.Uint16(b[32:34]))
        // startDiskNumber := c.Uint16(b[34:36])    // Unused
        // internalAttributes := c.Uint16(b[36:38]) // Unused
-       // externalAttributes := c.Uint32(b[38:42]) // Unused
+       f.ExternalAttrs = c.Uint32(b[38:42])
        f.headerOffset = int64(c.Uint32(b[42:46]))
        d := make([]byte, filenameLen+extraLen+commentLen)
        if _, err := io.ReadFull(r, d); err != nil {
index fd5fed2..3b7b0dc 100644 (file)
@@ -26,6 +26,7 @@ type ZipTestFile struct {
        Content []byte // if blank, will attempt to compare against File
        File    string // name of file to compare to (relative to testdata/)
        Mtime   string // modified time in format "mm-dd-yy hh:mm:ss"
+       Mode    uint32
 }
 
 // Caution: The Mtime values found for the test files should correspond to
@@ -47,11 +48,13 @@ var tests = []ZipTest{
                                Name:    "test.txt",
                                Content: []byte("This is a test text file.\n"),
                                Mtime:   "09-05-10 12:12:02",
+                               Mode:    0x81a4,
                        },
                        {
                                Name:  "gophercolor16x16.png",
                                File:  "gophercolor16x16.png",
                                Mtime: "09-05-10 15:52:58",
+                               Mode:  0x81a4,
                        },
                },
        },
@@ -162,6 +165,8 @@ func readTestFile(t *testing.T, ft ZipTestFile, f *File) {
                t.Errorf("%s: mtime=%s (%d); want %s (%d)", f.Name, time.SecondsToUTC(got), got, mtime, want)
        }
 
+       testFileMode(t, f, ft.Mode)
+
        size0 := f.UncompressedSize
 
        var b bytes.Buffer
@@ -203,6 +208,19 @@ func readTestFile(t *testing.T, ft ZipTestFile, f *File) {
        }
 }
 
+func testFileMode(t *testing.T, f *File, want uint32) {
+       mode, err := f.Mode()
+       if want == 0 {
+               if err == nil {
+                       t.Errorf("%s mode: got %v, want none", f.Name, mode)
+               }
+       } else if err != nil {
+               t.Errorf("%s mode: %s", f.Name, err)
+       } else if mode != want {
+               t.Errorf("%s mode: want 0x%x, got 0x%x", f.Name, want, mode)
+       }
+}
+
 func TestInvalidFiles(t *testing.T) {
        const size = 1024 * 70 // 70kb
        b := make([]byte, size)
index 1d6e70f..a32de5a 100644 (file)
@@ -28,6 +28,9 @@ const (
        directoryHeaderLen       = 46 // + filename + extra + comment
        directoryEndLen          = 22 // + comment
        dataDescriptorLen        = 12
+
+       // Constants for the first byte in CreatorVersion
+       creatorUnix = 3
 )
 
 type FileHeader struct {
@@ -42,6 +45,7 @@ type FileHeader struct {
        CompressedSize   uint32
        UncompressedSize uint32
        Extra            []byte
+       ExternalAttrs    uint32 // Meaning depends on CreatorVersion
        Comment          string
 }
 
@@ -89,3 +93,18 @@ func (h *FileHeader) Mtime_ns() int64 {
        t := msDosTimeToTime(h.ModifiedDate, h.ModifiedTime)
        return t.Seconds() * 1e9
 }
+
+// Mode returns the permission and mode bits for the FileHeader.
+// An error is returned in case the information is not available.
+func (h *FileHeader) Mode() (mode uint32, err os.Error) {
+       if h.CreatorVersion>>8 == creatorUnix {
+               return h.ExternalAttrs >> 16, nil
+       }
+       return 0, os.NewError("file mode not available")
+}
+
+// SetMode changes the permission and mode bits for the FileHeader.
+func (h *FileHeader) SetMode(mode uint32) {
+       h.CreatorVersion = h.CreatorVersion&0xff | creatorUnix<<8
+       h.ExternalAttrs = mode << 16
+}
index 2065b06..3a6dc38 100644 (file)
@@ -69,7 +69,7 @@ func (w *Writer) Close() (err os.Error) {
                write(w, uint16(len(h.Comment)))
                write(w, uint16(0)) // disk number start
                write(w, uint16(0)) // internal file attributes
-               write(w, uint32(0)) // external file attributes
+               write(w, h.ExternalAttrs)
                write(w, h.offset)
                writeBytes(w, []byte(h.Name))
                writeBytes(w, h.Extra)
@@ -115,7 +115,7 @@ func (w *Writer) CreateHeader(fh *FileHeader) (io.Writer, os.Error) {
        }
 
        fh.Flags |= 0x8 // we will write a data descriptor
-       fh.CreatorVersion = 0x14
+       fh.CreatorVersion = fh.CreatorVersion&0xff00 | 0x14
        fh.ReaderVersion = 0x14
 
        fw := &fileWriter{
index eb2a80c..b562f84 100644 (file)
@@ -13,19 +13,45 @@ import (
 
 // TODO(adg): a more sophisticated test suite
 
-const testString = "Rabbits, guinea pigs, gophers, marsupial rats, and quolls."
+type WriteTest struct {
+       Name   string
+       Data   []byte
+       Method uint16
+       Mode   uint32
+}
+
+var writeTests = []WriteTest{
+       WriteTest{
+               Name:   "foo",
+               Data:   []byte("Rabbits, guinea pigs, gophers, marsupial rats, and quolls."),
+               Method: Store,
+       },
+       WriteTest{
+               Name:   "bar",
+               Data:   nil, // large data set in the test
+               Method: Deflate,
+               Mode:   0x81ed,
+       },
+}
 
 func TestWriter(t *testing.T) {
        largeData := make([]byte, 1<<17)
        for i := range largeData {
                largeData[i] = byte(rand.Int())
        }
+       writeTests[1].Data = largeData
+       defer func() {
+               writeTests[1].Data = nil
+       }()
 
        // write a zip file
        buf := new(bytes.Buffer)
        w := NewWriter(buf)
-       testCreate(t, w, "foo", []byte(testString), Store)
-       testCreate(t, w, "bar", largeData, Deflate)
+
+       for _, wt := range writeTests {
+               testCreate(t, w, &wt)
+       }
+
        if err := w.Close(); err != nil {
                t.Fatal(err)
        }
@@ -35,26 +61,34 @@ func TestWriter(t *testing.T) {
        if err != nil {
                t.Fatal(err)
        }
-       testReadFile(t, r.File[0], []byte(testString))
-       testReadFile(t, r.File[1], largeData)
+       for i, wt := range writeTests {
+               testReadFile(t, r.File[i], &wt)
+       }
 }
 
-func testCreate(t *testing.T, w *Writer, name string, data []byte, method uint16) {
+func testCreate(t *testing.T, w *Writer, wt *WriteTest) {
        header := &FileHeader{
-               Name:   name,
-               Method: method,
+               Name:   wt.Name,
+               Method: wt.Method,
+       }
+       if wt.Mode != 0 {
+               header.SetMode(wt.Mode)
        }
        f, err := w.CreateHeader(header)
        if err != nil {
                t.Fatal(err)
        }
-       _, err = f.Write(data)
+       _, err = f.Write(wt.Data)
        if err != nil {
                t.Fatal(err)
        }
 }
 
-func testReadFile(t *testing.T, f *File, data []byte) {
+func testReadFile(t *testing.T, f *File, wt *WriteTest) {
+       if f.Name != wt.Name {
+               t.Fatalf("File name: got %q, want %q", f.Name, wt.Name)
+       }
+       testFileMode(t, f, wt.Mode)
        rc, err := f.Open()
        if err != nil {
                t.Fatal("opening:", err)
@@ -67,7 +101,7 @@ func testReadFile(t *testing.T, f *File, data []byte) {
        if err != nil {
                t.Fatal("closing:", err)
        }
-       if !bytes.Equal(b, data) {
-               t.Errorf("File contents %q, want %q", b, data)
+       if !bytes.Equal(b, wt.Data) {
+               t.Errorf("File contents %q, want %q", b, wt.Data)
        }
 }
index 39b676b..e7bd62e 100644 (file)
@@ -516,6 +516,8 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                                result, err = parseIA5String(innerBytes)
                        case tagT61String:
                                result, err = parseT61String(innerBytes)
+                       case tagUTF8String:
+                               result, err = parseUTF8String(innerBytes)
                        case tagInteger:
                                result, err = parseInt64(innerBytes)
                        case tagBitString:
index 9f48f7b..1c529bd 100644 (file)
@@ -206,10 +206,10 @@ type timeTest struct {
 }
 
 var utcTestData = []timeTest{
-       {"910506164540-0700", true, &time.Time{1991, 05, 06, 16, 45, 40, 0, 0, -7 * 60 * 60, ""}},
-       {"910506164540+0730", true, &time.Time{1991, 05, 06, 16, 45, 40, 0, 0, 7*60*60 + 30*60, ""}},
-       {"910506234540Z", true, &time.Time{1991, 05, 06, 23, 45, 40, 0, 0, 0, "UTC"}},
-       {"9105062345Z", true, &time.Time{1991, 05, 06, 23, 45, 0, 0, 0, 0, "UTC"}},
+       {"910506164540-0700", true, &time.Time{1991, 05, 06, 16, 45, 40, 0, -7 * 60 * 60, ""}},
+       {"910506164540+0730", true, &time.Time{1991, 05, 06, 16, 45, 40, 0, 7*60*60 + 30*60, ""}},
+       {"910506234540Z", true, &time.Time{1991, 05, 06, 23, 45, 40, 0, 0, "UTC"}},
+       {"9105062345Z", true, &time.Time{1991, 05, 06, 23, 45, 0, 0, 0, "UTC"}},
        {"a10506234540Z", false, nil},
        {"91a506234540Z", false, nil},
        {"9105a6234540Z", false, nil},
@@ -235,10 +235,10 @@ func TestUTCTime(t *testing.T) {
 }
 
 var generalizedTimeTestData = []timeTest{
-       {"20100102030405Z", true, &time.Time{2010, 01, 02, 03, 04, 05, 0, 0, 0, "UTC"}},
+       {"20100102030405Z", true, &time.Time{2010, 01, 02, 03, 04, 05, 0, 0, "UTC"}},
        {"20100102030405", false, nil},
-       {"20100102030405+0607", true, &time.Time{2010, 01, 02, 03, 04, 05, 0, 0, 6*60*60 + 7*60, ""}},
-       {"20100102030405-0607", true, &time.Time{2010, 01, 02, 03, 04, 05, 0, 0, -6*60*60 - 7*60, ""}},
+       {"20100102030405+0607", true, &time.Time{2010, 01, 02, 03, 04, 05, 0, 6*60*60 + 7*60, ""}},
+       {"20100102030405-0607", true, &time.Time{2010, 01, 02, 03, 04, 05, 0, -6*60*60 - 7*60, ""}},
 }
 
 func TestGeneralizedTime(t *testing.T) {
@@ -475,7 +475,7 @@ var derEncodedSelfSignedCert = Certificate{
                        RelativeDistinguishedNameSET{AttributeTypeAndValue{Type: ObjectIdentifier{2, 5, 4, 3}, Value: "false.example.com"}},
                        RelativeDistinguishedNameSET{AttributeTypeAndValue{Type: ObjectIdentifier{1, 2, 840, 113549, 1, 9, 1}, Value: "false@example.com"}},
                },
-               Validity: Validity{NotBefore: &time.Time{Year: 2009, Month: 10, Day: 8, Hour: 0, Minute: 25, Second: 53, Weekday: 0, ZoneOffset: 0, Zone: "UTC"}, NotAfter: &time.Time{Year: 2010, Month: 10, Day: 8, Hour: 0, Minute: 25, Second: 53, Weekday: 0, ZoneOffset: 0, Zone: "UTC"}},
+               Validity: Validity{NotBefore: &time.Time{Year: 2009, Month: 10, Day: 8, Hour: 0, Minute: 25, Second: 53, ZoneOffset: 0, Zone: "UTC"}, NotAfter: &time.Time{Year: 2010, Month: 10, Day: 8, Hour: 0, Minute: 25, Second: 53, ZoneOffset: 0, Zone: "UTC"}},
                Subject: RDNSequence{
                        RelativeDistinguishedNameSET{AttributeTypeAndValue{Type: ObjectIdentifier{2, 5, 4, 6}, Value: "XX"}},
                        RelativeDistinguishedNameSET{AttributeTypeAndValue{Type: ObjectIdentifier{2, 5, 4, 8}, Value: "Some-State"}},
index d7eb63b..6d1f78b 100644 (file)
@@ -464,11 +464,15 @@ func marshalField(out *forkableWriter, v reflect.Value, params fieldParameters)
 
        if v.Type() == rawValueType {
                rv := v.Interface().(RawValue)
-               err = marshalTagAndLength(out, tagAndLength{rv.Class, rv.Tag, len(rv.Bytes), rv.IsCompound})
-               if err != nil {
-                       return
+               if len(rv.FullBytes) != 0 {
+                       _, err = out.Write(rv.FullBytes)
+               } else {
+                       err = marshalTagAndLength(out, tagAndLength{rv.Class, rv.Tag, len(rv.Bytes), rv.IsCompound})
+                       if err != nil {
+                               return
+                       }
+                       _, err = out.Write(rv.Bytes)
                }
-               _, err = out.Write(rv.Bytes)
                return
        }
 
index 701b697..9e1d1ae 100644 (file)
@@ -163,7 +163,7 @@ func (z *Int) Binomial(n, k int64) *Int {
 
 // Quo sets z to the quotient x/y for y != 0 and returns z.
 // If y == 0, a division-by-zero run-time panic occurs.
-// See QuoRem for more details.
+// Quo implements truncated division (like Go); see QuoRem for more details.
 func (z *Int) Quo(x, y *Int) *Int {
        z.abs, _ = z.abs.div(nil, x.abs, y.abs)
        z.neg = len(z.abs) > 0 && x.neg != y.neg // 0 has no sign
@@ -172,7 +172,7 @@ func (z *Int) Quo(x, y *Int) *Int {
 
 // Rem sets z to the remainder x%y for y != 0 and returns z.
 // If y == 0, a division-by-zero run-time panic occurs.
-// See QuoRem for more details.
+// Rem implements truncated modulus (like Go); see QuoRem for more details.
 func (z *Int) Rem(x, y *Int) *Int {
        _, z.abs = nat(nil).div(z.abs, x.abs, y.abs)
        z.neg = len(z.abs) > 0 && x.neg // 0 has no sign
@@ -198,7 +198,7 @@ func (z *Int) QuoRem(x, y, r *Int) (*Int, *Int) {
 
 // Div sets z to the quotient x/y for y != 0 and returns z.
 // If y == 0, a division-by-zero run-time panic occurs.
-// See DivMod for more details.
+// Div implements Euclidean division (unlike Go); see DivMod for more details.
 func (z *Int) Div(x, y *Int) *Int {
        y_neg := y.neg // z may be an alias for y
        var r Int
@@ -215,7 +215,7 @@ func (z *Int) Div(x, y *Int) *Int {
 
 // Mod sets z to the modulus x%y for y != 0 and returns z.
 // If y == 0, a division-by-zero run-time panic occurs.
-// See DivMod for more details.
+// Mod implements Euclidean modulus (unlike Go); see DivMod for more details.
 func (z *Int) Mod(x, y *Int) *Int {
        y0 := y // save y
        if z == y || alias(z.abs, y.abs) {
index 03446d6..b2e1692 100644 (file)
@@ -301,6 +301,9 @@ func TestGetString(t *testing.T) {
 func TestSetString(t *testing.T) {
        tmp := new(Int)
        for i, test := range stringTests {
+               // initialize to a non-zero value so that issues with parsing
+               // 0 are detected
+               tmp.SetInt64(1234567890)
                n1, ok1 := new(Int).SetString(test.in, test.base)
                n2, ok2 := tmp.SetString(test.in, test.base)
                expected := NewInt(test.val)
index be3aff2..33d6bb1 100644 (file)
@@ -646,7 +646,7 @@ func (z nat) scan(r io.RuneScanner, base int) (nat, int, os.Error) {
                                        }
                                }
                        case os.EOF:
-                               return z, 10, nil
+                               return z.make(0), 10, nil
                        default:
                                return z, 10, err
                        }
index 327b9bd..f435e63 100644 (file)
@@ -27,9 +27,13 @@ func NewRat(a, b int64) *Rat {
 
 // SetFrac sets z to a/b and returns z.
 func (z *Rat) SetFrac(a, b *Int) *Rat {
-       z.a.Set(a)
        z.a.neg = a.neg != b.neg
-       z.b = z.b.set(b.abs)
+       babs := b.abs
+       if &z.a == b || alias(z.a.abs, babs) {
+               babs = nat(nil).set(babs) // make a copy
+       }
+       z.a.abs = z.a.abs.set(a.abs)
+       z.b = z.b.set(babs)
        return z.norm()
 }
 
index dbc5bb6..a2b9055 100644 (file)
@@ -330,3 +330,43 @@ func TestRatGobEncoding(t *testing.T) {
                }
        }
 }
+
+func TestIssue2379(t *testing.T) {
+       // 1) no aliasing
+       q := NewRat(3, 2)
+       x := new(Rat)
+       x.SetFrac(NewInt(3), NewInt(2))
+       if x.Cmp(q) != 0 {
+               t.Errorf("1) got %s want %s", x, q)
+       }
+
+       // 2) aliasing of numerator
+       x = NewRat(2, 3)
+       x.SetFrac(NewInt(3), x.Num())
+       if x.Cmp(q) != 0 {
+               t.Errorf("2) got %s want %s", x, q)
+       }
+
+       // 3) aliasing of denominator
+       x = NewRat(2, 3)
+       x.SetFrac(x.Denom(), NewInt(2))
+       if x.Cmp(q) != 0 {
+               t.Errorf("3) got %s want %s", x, q)
+       }
+
+       // 4) aliasing of numerator and denominator
+       x = NewRat(2, 3)
+       x.SetFrac(x.Denom(), x.Num())
+       if x.Cmp(q) != 0 {
+               t.Errorf("4) got %s want %s", x, q)
+       }
+
+       // 5) numerator and denominator are the same
+       q = NewRat(1, 1)
+       x = new(Rat)
+       n := NewInt(7)
+       x.SetFrac(n, n)
+       if x.Cmp(q) != 0 {
+               t.Errorf("5) got %s want %s", x, q)
+       }
+}
index 727ebfd..2ea7af3 100644 (file)
@@ -54,11 +54,11 @@ type Reader struct {
 }
 
 // NewReaderSize creates a new Reader whose buffer has the specified size,
-// which must be greater than zero.  If the argument io.Reader is already a
+// which must be greater than one.  If the argument io.Reader is already a
 // Reader with large enough size, it returns the underlying Reader.
 // It returns the Reader and any error.
 func NewReaderSize(rd io.Reader, size int) (*Reader, os.Error) {
-       if size <= 0 {
+       if size <= 1 {
                return nil, BufSizeError(size)
        }
        // Is it already a Reader?
@@ -298,6 +298,17 @@ func (b *Reader) ReadSlice(delim byte) (line []byte, err os.Error) {
 func (b *Reader) ReadLine() (line []byte, isPrefix bool, err os.Error) {
        line, err = b.ReadSlice('\n')
        if err == ErrBufferFull {
+               // Handle the case where "\r\n" straddles the buffer.
+               if len(line) > 0 && line[len(line)-1] == '\r' {
+                       // Put the '\r' back on buf and drop it from line.
+                       // Let the next call to ReadLine check for "\r\n".
+                       if b.r == 0 {
+                               // should be unreachable
+                               panic("bufio: tried to rewind past start of buffer")
+                       }
+                       b.r--
+                       line = line[:len(line)-1]
+               }
                return line, true, nil
        }
 
@@ -307,10 +318,11 @@ func (b *Reader) ReadLine() (line []byte, isPrefix bool, err os.Error) {
        err = nil
 
        if line[len(line)-1] == '\n' {
-               line = line[:len(line)-1]
-       }
-       if len(line) > 0 && line[len(line)-1] == '\r' {
-               line = line[:len(line)-1]
+               drop := 1
+               if len(line) > 1 && line[len(line)-2] == '\r' {
+                       drop = 2
+               }
+               line = line[:len(line)-drop]
        }
        return
 }
index 82c73d3..38213ff 100644 (file)
@@ -137,7 +137,7 @@ var bufreaders = []bufReader{
 }
 
 var bufsizes = []int{
-       1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+       2, 3, 4, 5, 6, 7, 8, 9, 10,
        23, 32, 46, 64, 93, 128, 1024, 4096,
 }
 
@@ -697,3 +697,71 @@ func TestLinesAfterRead(t *testing.T) {
                t.Errorf("expected EOF from ReadLine, got '%s' %t %s", line, isPrefix, err)
        }
 }
+
+type readLineResult struct {
+       line     []byte
+       isPrefix bool
+       err      os.Error
+}
+
+var readLineNewlinesTests = []struct {
+       input   string
+       bufSize int
+       expect  []readLineResult
+}{
+       {"h\r\nb\r\n", 2, []readLineResult{
+               {[]byte("h"), true, nil},
+               {nil, false, nil},
+               {[]byte("b"), true, nil},
+               {nil, false, nil},
+               {nil, false, os.EOF},
+       }},
+       {"hello\r\nworld\r\n", 6, []readLineResult{
+               {[]byte("hello"), true, nil},
+               {nil, false, nil},
+               {[]byte("world"), true, nil},
+               {nil, false, nil},
+               {nil, false, os.EOF},
+       }},
+       {"hello\rworld\r", 6, []readLineResult{
+               {[]byte("hello"), true, nil},
+               {[]byte("\rworld"), true, nil},
+               {[]byte("\r"), false, nil},
+               {nil, false, os.EOF},
+       }},
+       {"h\ri\r\n\r", 2, []readLineResult{
+               {[]byte("h"), true, nil},
+               {[]byte("\ri"), true, nil},
+               {nil, false, nil},
+               {[]byte("\r"), false, nil},
+               {nil, false, os.EOF},
+       }},
+}
+
+func TestReadLineNewlines(t *testing.T) {
+       for _, e := range readLineNewlinesTests {
+               testReadLineNewlines(t, e.input, e.bufSize, e.expect)
+       }
+}
+
+func testReadLineNewlines(t *testing.T, input string, bufSize int, expect []readLineResult) {
+       b, err := NewReaderSize(strings.NewReader(input), bufSize)
+       if err != nil {
+               t.Fatal(err)
+       }
+       for i, e := range expect {
+               line, isPrefix, err := b.ReadLine()
+               if bytes.Compare(line, e.line) != 0 {
+                       t.Errorf("%q call %d, line == %q, want %q", input, i, line, e.line)
+                       return
+               }
+               if isPrefix != e.isPrefix {
+                       t.Errorf("%q call %d, isPrefix == %v, want %v", input, i, isPrefix, e.isPrefix)
+                       return
+               }
+               if err != e.err {
+                       t.Errorf("%q call %d, err == %v, want %v", input, i, err, e.err)
+                       return
+               }
+       }
+}
index 5de8610..975031b 100644 (file)
@@ -336,13 +336,18 @@ func (b *Buffer) ReadString(delim byte) (line string, err os.Error) {
 
 // NewBuffer creates and initializes a new Buffer using buf as its initial
 // contents.  It is intended to prepare a Buffer to read existing data.  It
-// can also be used to size the internal buffer for writing.  To do that,
+// can also be used to size the internal buffer for writing. To do that,
 // buf should have the desired capacity but a length of zero.
+//
+// In most cases, new(Buffer) (or just declaring a Buffer variable) is
+// preferable to NewBuffer.  In particular, passing a non-empty buf to
+// NewBuffer and then writing to the Buffer will overwrite buf, not append to
+// it.
 func NewBuffer(buf []byte) *Buffer { return &Buffer{buf: buf} }
 
 // NewBufferString creates and initializes a new Buffer using string s as its
 // initial contents.  It is intended to prepare a buffer to read an existing
-// string.
+// string.  See the warnings about NewBuffer; similar issues apply here.
 func NewBufferString(s string) *Buffer {
        return &Buffer{buf: []byte(s)}
 }
index 5119fce..2fb4569 100644 (file)
@@ -572,13 +572,18 @@ func Runes(s []byte) []int {
 // non-overlapping instances of old replaced by new.
 // If n < 0, there is no limit on the number of replacements.
 func Replace(s, old, new []byte, n int) []byte {
-       if n == 0 {
-               return s // avoid allocation
-       }
-       // Compute number of replacements.
-       if m := Count(s, old); m == 0 {
-               return s // avoid allocation
-       } else if n <= 0 || m < n {
+       m := 0
+       if n != 0 {
+               // Compute number of replacements.
+               m = Count(s, old)
+       }
+       if m == 0 {
+               // Nothing to do. Just copy.
+               t := make([]byte, len(s))
+               copy(t, s)
+               return t
+       }
+       if n < 0 || m < n {
                n = m
        }
 
@@ -603,3 +608,58 @@ func Replace(s, old, new []byte, n int) []byte {
        w += copy(t[w:], s[start:])
        return t[0:w]
 }
+
+// EqualFold reports whether s and t, interpreted as UTF-8 strings,
+// are equal under Unicode case-folding.
+func EqualFold(s, t []byte) bool {
+       for len(s) != 0 && len(t) != 0 {
+               // Extract first rune from each.
+               var sr, tr int
+               if s[0] < utf8.RuneSelf {
+                       sr, s = int(s[0]), s[1:]
+               } else {
+                       r, size := utf8.DecodeRune(s)
+                       sr, s = r, s[size:]
+               }
+               if t[0] < utf8.RuneSelf {
+                       tr, t = int(t[0]), t[1:]
+               } else {
+                       r, size := utf8.DecodeRune(t)
+                       tr, t = r, t[size:]
+               }
+
+               // If they match, keep going; if not, return false.
+
+               // Easy case.
+               if tr == sr {
+                       continue
+               }
+
+               // Make sr < tr to simplify what follows.
+               if tr < sr {
+                       tr, sr = sr, tr
+               }
+               // Fast check for ASCII.
+               if tr < utf8.RuneSelf && 'A' <= sr && sr <= 'Z' {
+                       // ASCII, and sr is upper case.  tr must be lower case.
+                       if tr == sr+'a'-'A' {
+                               continue
+                       }
+                       return false
+               }
+
+               // General case.  SimpleFold(x) returns the next equivalent rune > x
+               // or wraps around to smaller values.
+               r := unicode.SimpleFold(sr)
+               for r != sr && r < tr {
+                       r = unicode.SimpleFold(r)
+               }
+               if r == tr {
+                       continue
+               }
+               return false
+       }
+
+       // One string is empty.  Are both?
+       return len(s) == len(t)
+}
index 9444358..ce3f37e 100644 (file)
@@ -829,9 +829,15 @@ var ReplaceTests = []ReplaceTest{
 
 func TestReplace(t *testing.T) {
        for _, tt := range ReplaceTests {
-               if s := string(Replace([]byte(tt.in), []byte(tt.old), []byte(tt.new), tt.n)); s != tt.out {
+               in := append([]byte(tt.in), "<spare>"...)
+               in = in[:len(tt.in)]
+               out := Replace(in, []byte(tt.old), []byte(tt.new), tt.n)
+               if s := string(out); s != tt.out {
                        t.Errorf("Replace(%q, %q, %q, %d) = %q, want %q", tt.in, tt.old, tt.new, tt.n, s, tt.out)
                }
+               if cap(in) == cap(out) && &in[:1][0] == &out[:1][0] {
+                       t.Errorf("Replace(%q, %q, %q, %d) didn't copy", tt.in, tt.old, tt.new, tt.n)
+               }
        }
 }
 
@@ -856,3 +862,31 @@ func TestTitle(t *testing.T) {
                }
        }
 }
+
+var EqualFoldTests = []struct {
+       s, t string
+       out  bool
+}{
+       {"abc", "abc", true},
+       {"ABcd", "ABcd", true},
+       {"123abc", "123ABC", true},
+       {"αβδ", "ΑΒΔ", true},
+       {"abc", "xyz", false},
+       {"abc", "XYZ", false},
+       {"abcdefghijk", "abcdefghijX", false},
+       {"abcdefghijk", "abcdefghij\u212A", true},
+       {"abcdefghijK", "abcdefghij\u212A", true},
+       {"abcdefghijkz", "abcdefghij\u212Ay", false},
+       {"abcdefghijKz", "abcdefghij\u212Ay", false},
+}
+
+func TestEqualFold(t *testing.T) {
+       for _, tt := range EqualFoldTests {
+               if out := EqualFold([]byte(tt.s), []byte(tt.t)); out != tt.out {
+                       t.Errorf("EqualFold(%#q, %#q) = %v, want %v", tt.s, tt.t, out, tt.out)
+               }
+               if out := EqualFold([]byte(tt.t), []byte(tt.s)); out != tt.out {
+                       t.Errorf("EqualFold(%#q, %#q) = %v, want %v", tt.t, tt.s, out, tt.out)
+               }
+       }
+}
index d6a3ca4..01ce80a 100644 (file)
@@ -50,7 +50,7 @@ import "math"
 // Asin returns the inverse sine of x.
 func Asin(x complex128) complex128 {
        if imag(x) == 0 {
-               if math.Fabs(real(x)) > 1 {
+               if math.Abs(real(x)) > 1 {
                        return complex(math.Pi/2, 0) // DOMAIN error
                }
                return complex(math.Asin(real(x)), 0)
@@ -67,7 +67,7 @@ func Asin(x complex128) complex128 {
 func Asinh(x complex128) complex128 {
        // TODO check range
        if imag(x) == 0 {
-               if math.Fabs(real(x)) > 1 {
+               if math.Abs(real(x)) > 1 {
                        return complex(math.Pi/2, 0) // DOMAIN error
                }
                return complex(math.Asinh(real(x)), 0)
index 8900ecd..486b717 100644 (file)
@@ -122,7 +122,7 @@ func Cosh(x complex128) complex128 {
 
 // calculate sinh and cosh
 func sinhcosh(x float64) (sh, ch float64) {
-       if math.Fabs(x) <= 0.5 {
+       if math.Abs(x) <= 0.5 {
                return math.Sinh(x), math.Cosh(x)
        }
        e := math.Exp(x)
index e77a9b9..4e7e805 100644 (file)
@@ -76,7 +76,7 @@ func Sqrt(x complex128) complex128 {
        b := imag(x)
        var scale float64
        // Rescale to avoid internal overflow or underflow.
-       if math.Fabs(a) > 4 || math.Fabs(b) > 4 {
+       if math.Abs(a) > 4 || math.Abs(b) > 4 {
                a *= 0.25
                b *= 0.25
                scale = 2
@@ -89,11 +89,11 @@ func Sqrt(x complex128) complex128 {
        var t float64
        if a > 0 {
                t = math.Sqrt(0.5*r + 0.5*a)
-               r = scale * math.Fabs((0.5*b)/t)
+               r = scale * math.Abs((0.5*b)/t)
                t *= scale
        } else {
                r = math.Sqrt(0.5*r - 0.5*a)
-               t = scale * math.Fabs((0.5*b)/r)
+               t = scale * math.Abs((0.5*b)/r)
                r *= scale
        }
        if b < 0 {
index 94b5175..67dc22a 100644 (file)
@@ -58,7 +58,7 @@ import "math"
 // Tan returns the tangent of x.
 func Tan(x complex128) complex128 {
        d := math.Cos(2*real(x)) + math.Cosh(2*imag(x))
-       if math.Fabs(d) < 0.25 {
+       if math.Abs(d) < 0.25 {
                d = tanSeries(x)
        }
        if d == 0 {
@@ -109,8 +109,8 @@ func reducePi(x float64) float64 {
 // Taylor series expansion for cosh(2y) - cos(2x)
 func tanSeries(z complex128) float64 {
        const MACHEP = 1.0 / (1 << 53)
-       x := math.Fabs(2 * real(z))
-       y := math.Fabs(2 * imag(z))
+       x := math.Abs(2 * real(z))
+       y := math.Abs(2 * imag(z))
        x = reducePi(x)
        x = x * x
        y = y * y
@@ -139,7 +139,7 @@ func tanSeries(z complex128) float64 {
                t = y2 - x2
                t /= f
                d += t
-               if math.Fabs(t/d) <= MACHEP {
+               if math.Abs(t/d) <= MACHEP {
                        break
                }
        }
@@ -174,7 +174,7 @@ func tanSeries(z complex128) float64 {
 // Cot returns the cotangent of x.
 func Cot(x complex128) complex128 {
        d := math.Cosh(2*imag(x)) - math.Cos(2*real(x))
-       if math.Fabs(d) < 0.25 {
+       if math.Abs(d) < 0.25 {
                d = tanSeries(x)
        }
        if d == 0 {
index c5c1f76..6625e3a 100644 (file)
@@ -6,32 +6,46 @@ package heap_test
 
 import (
        "testing"
-       "container/vector"
        . "container/heap"
 )
 
-type myHeap struct {
-       // A vector.Vector implements sort.Interface except for Less,
-       // and it implements Push and Pop as required for heap.Interface.
-       vector.Vector
+type myHeap []int
+
+func (h *myHeap) Less(i, j int) bool {
+       return (*h)[i] < (*h)[j]
+}
+
+func (h *myHeap) Swap(i, j int) {
+       (*h)[i], (*h)[j] = (*h)[j], (*h)[i]
+}
+
+func (h *myHeap) Len() int {
+       return len(*h)
+}
+
+func (h *myHeap) Pop() (v interface{}) {
+       *h, v = (*h)[:h.Len()-1], (*h)[h.Len()-1]
+       return
 }
 
-func (h *myHeap) Less(i, j int) bool { return h.At(i).(int) < h.At(j).(int) }
+func (h *myHeap) Push(v interface{}) {
+       *h = append(*h, v.(int))
+}
 
-func (h *myHeap) verify(t *testing.T, i int) {
+func (h myHeap) verify(t *testing.T, i int) {
        n := h.Len()
        j1 := 2*i + 1
        j2 := 2*i + 2
        if j1 < n {
                if h.Less(j1, i) {
-                       t.Errorf("heap invariant invalidated [%d] = %d > [%d] = %d", i, h.At(i), j1, h.At(j1))
+                       t.Errorf("heap invariant invalidated [%d] = %d > [%d] = %d", i, h[i], j1, h[j1])
                        return
                }
                h.verify(t, j1)
        }
        if j2 < n {
                if h.Less(j2, i) {
-                       t.Errorf("heap invariant invalidated [%d] = %d > [%d] = %d", i, h.At(i), j1, h.At(j2))
+                       t.Errorf("heap invariant invalidated [%d] = %d > [%d] = %d", i, h[i], j1, h[j2])
                        return
                }
                h.verify(t, j2)
diff --git a/libgo/go/container/vector/defs.go b/libgo/go/container/vector/defs.go
deleted file mode 100644 (file)
index 6d6b2ac..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// 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.
-
-// Package vector implements containers for managing sequences of elements.
-// Vectors grow and shrink dynamically as necessary.
-package vector
-
-// Vector is a container for numbered sequences of elements of type interface{}.
-// A vector's length and capacity adjusts automatically as necessary.
-// The zero value for Vector is an empty vector ready to use.
-type Vector []interface{}
-
-// IntVector is a container for numbered sequences of elements of type int.
-// A vector's length and capacity adjusts automatically as necessary.
-// The zero value for IntVector is an empty vector ready to use.
-type IntVector []int
-
-// StringVector is a container for numbered sequences of elements of type string.
-// A vector's length and capacity adjusts automatically as necessary.
-// The zero value for StringVector is an empty vector ready to use.
-type StringVector []string
-
-// Initial underlying array size
-const initialSize = 8
-
-// Partial sort.Interface support
-
-// LessInterface provides partial support of the sort.Interface.
-type LessInterface interface {
-       Less(y interface{}) bool
-}
-
-// Less returns a boolean denoting whether the i'th element is less than the j'th element.
-func (p *Vector) Less(i, j int) bool { return (*p)[i].(LessInterface).Less((*p)[j]) }
-
-// sort.Interface support
-
-// Less returns a boolean denoting whether the i'th element is less than the j'th element.
-func (p *IntVector) Less(i, j int) bool { return (*p)[i] < (*p)[j] }
-
-// Less returns a boolean denoting whether the i'th element is less than the j'th element.
-func (p *StringVector) Less(i, j int) bool { return (*p)[i] < (*p)[j] }
diff --git a/libgo/go/container/vector/intvector.go b/libgo/go/container/vector/intvector.go
deleted file mode 100644 (file)
index aa88cfe..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-// 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.
-
-// CAUTION: If this file is not vector.go, it was generated
-// automatically from vector.go - DO NOT EDIT in that case!
-
-package vector
-
-func (p *IntVector) realloc(length, capacity int) (b []int) {
-       if capacity < initialSize {
-               capacity = initialSize
-       }
-       if capacity < length {
-               capacity = length
-       }
-       b = make(IntVector, length, capacity)
-       copy(b, *p)
-       *p = b
-       return
-}
-
-// Insert n elements at position i.
-func (p *IntVector) Expand(i, n int) {
-       a := *p
-
-       // make sure we have enough space
-       len0 := len(a)
-       len1 := len0 + n
-       if len1 <= cap(a) {
-               // enough space - just expand
-               a = a[0:len1]
-       } else {
-               // not enough space - double capacity
-               capb := cap(a) * 2
-               if capb < len1 {
-                       // still not enough - use required length
-                       capb = len1
-               }
-               // capb >= len1
-               a = p.realloc(len1, capb)
-       }
-
-       // make a hole
-       for j := len0 - 1; j >= i; j-- {
-               a[j+n] = a[j]
-       }
-
-       *p = a
-}
-
-// Insert n elements at the end of a vector.
-func (p *IntVector) Extend(n int) { p.Expand(len(*p), n) }
-
-// Resize changes the length and capacity of a vector.
-// If the new length is shorter than the current length, Resize discards
-// trailing elements. If the new length is longer than the current length,
-// Resize adds the respective zero values for the additional elements. The capacity
-// parameter is ignored unless the new length or capacity is longer than the current
-// capacity. The resized vector's capacity may be larger than the requested capacity.
-func (p *IntVector) Resize(length, capacity int) *IntVector {
-       a := *p
-
-       if length > cap(a) || capacity > cap(a) {
-               // not enough space or larger capacity requested explicitly
-               a = p.realloc(length, capacity)
-       } else if length < len(a) {
-               // clear trailing elements
-               for i := range a[length:] {
-                       var zero int
-                       a[length+i] = zero
-               }
-       }
-
-       *p = a[0:length]
-       return p
-}
-
-// Len returns the number of elements in the vector.
-// Same as len(*p).
-func (p *IntVector) Len() int { return len(*p) }
-
-// Cap returns the capacity of the vector; that is, the
-// maximum length the vector can grow without resizing.
-// Same as cap(*p).
-func (p *IntVector) Cap() int { return cap(*p) }
-
-// At returns the i'th element of the vector.
-func (p *IntVector) At(i int) int { return (*p)[i] }
-
-// Set sets the i'th element of the vector to value x.
-func (p *IntVector) Set(i int, x int) { (*p)[i] = x }
-
-// Last returns the element in the vector of highest index.
-func (p *IntVector) Last() int { return (*p)[len(*p)-1] }
-
-// Copy makes a copy of the vector and returns it.
-func (p *IntVector) Copy() IntVector {
-       arr := make(IntVector, len(*p))
-       copy(arr, *p)
-       return arr
-}
-
-// Insert inserts into the vector an element of value x before
-// the current element at index i.
-func (p *IntVector) Insert(i int, x int) {
-       p.Expand(i, 1)
-       (*p)[i] = x
-}
-
-// Delete deletes the i'th element of the vector.  The gap is closed so the old
-// element at index i+1 has index i afterwards.
-func (p *IntVector) Delete(i int) {
-       a := *p
-       n := len(a)
-
-       copy(a[i:n-1], a[i+1:n])
-       var zero int
-       a[n-1] = zero // support GC, zero out entry
-       *p = a[0 : n-1]
-}
-
-// InsertVector inserts into the vector the contents of the vector
-// x such that the 0th element of x appears at index i after insertion.
-func (p *IntVector) InsertVector(i int, x *IntVector) {
-       b := *x
-
-       p.Expand(i, len(b))
-       copy((*p)[i:i+len(b)], b)
-}
-
-// Cut deletes elements i through j-1, inclusive.
-func (p *IntVector) Cut(i, j int) {
-       a := *p
-       n := len(a)
-       m := n - (j - i)
-
-       copy(a[i:m], a[j:n])
-       for k := m; k < n; k++ { //TODO(bflm) don't zero out the elements unless it's a Vector.
-               var zero int
-               a[k] = zero // support GC, zero out entries
-       }
-
-       *p = a[0:m]
-}
-
-// Slice returns a new sub-vector by slicing the old one to extract slice [i:j].
-// The elements are copied. The original vector is unchanged.
-func (p *IntVector) Slice(i, j int) *IntVector {
-       var s IntVector
-       s.realloc(j-i, 0) // will fail in Init() if j < i
-       copy(s, (*p)[i:j])
-       return &s
-}
-
-// Convenience wrappers
-
-// Push appends x to the end of the vector.
-func (p *IntVector) Push(x int) { p.Insert(len(*p), x) }
-
-// Pop deletes the last element of the vector.
-func (p *IntVector) Pop() int {
-       a := *p
-
-       i := len(a) - 1
-       x := a[i]
-       var zero int
-       a[i] = zero // support GC, zero out entry
-       *p = a[0:i]
-       return x
-}
-
-// AppendVector appends the entire vector x to the end of this vector.
-func (p *IntVector) AppendVector(x *IntVector) { p.InsertVector(len(*p), x) }
-
-// Swap exchanges the elements at indexes i and j.
-func (p *IntVector) Swap(i, j int) {
-       a := *p
-       a[i], a[j] = a[j], a[i]
-}
-
-// Do calls function f for each element of the vector, in order.
-// The behavior of Do is undefined if f changes *p.
-func (p *IntVector) Do(f func(elem int)) {
-       for _, e := range *p {
-               f(e)
-       }
-}
diff --git a/libgo/go/container/vector/intvector_test.go b/libgo/go/container/vector/intvector_test.go
deleted file mode 100644 (file)
index b825af9..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-// 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.
-
-// CAUTION: If this file is not vector_test.go, it was generated
-// automatically from vector_test.go - DO NOT EDIT in that case!
-
-package vector
-
-import "testing"
-
-func TestIntZeroLen(t *testing.T) {
-       a := new(IntVector)
-       if a.Len() != 0 {
-               t.Errorf("%T: B1) expected 0, got %d", a, a.Len())
-       }
-       if len(*a) != 0 {
-               t.Errorf("%T: B2) expected 0, got %d", a, len(*a))
-       }
-       var b IntVector
-       if b.Len() != 0 {
-               t.Errorf("%T: B3) expected 0, got %d", b, b.Len())
-       }
-       if len(b) != 0 {
-               t.Errorf("%T: B4) expected 0, got %d", b, len(b))
-       }
-}
-
-func TestIntResize(t *testing.T) {
-       var a IntVector
-       checkSize(t, &a, 0, 0)
-       checkSize(t, a.Resize(0, 5), 0, 5)
-       checkSize(t, a.Resize(1, 0), 1, 5)
-       checkSize(t, a.Resize(10, 0), 10, 10)
-       checkSize(t, a.Resize(5, 0), 5, 10)
-       checkSize(t, a.Resize(3, 8), 3, 10)
-       checkSize(t, a.Resize(0, 100), 0, 100)
-       checkSize(t, a.Resize(11, 100), 11, 100)
-}
-
-func TestIntResize2(t *testing.T) {
-       var a IntVector
-       checkSize(t, &a, 0, 0)
-       a.Push(int2IntValue(1))
-       a.Push(int2IntValue(2))
-       a.Push(int2IntValue(3))
-       a.Push(int2IntValue(4))
-       checkSize(t, &a, 4, 4)
-       checkSize(t, a.Resize(10, 0), 10, 10)
-       for i := 4; i < a.Len(); i++ {
-               if a.At(i) != intzero {
-                       t.Errorf("%T: expected a.At(%d) == %v; found %v!", a, i, intzero, a.At(i))
-               }
-       }
-       for i := 4; i < len(a); i++ {
-               if a[i] != intzero {
-                       t.Errorf("%T: expected a[%d] == %v; found %v", a, i, intzero, a[i])
-               }
-       }
-}
-
-func checkIntZero(t *testing.T, a *IntVector, i int) {
-       for j := 0; j < i; j++ {
-               if a.At(j) == intzero {
-                       t.Errorf("%T: 1 expected a.At(%d) == %d; found %v", a, j, j, a.At(j))
-               }
-               if (*a)[j] == intzero {
-                       t.Errorf("%T: 2 expected (*a)[%d] == %d; found %v", a, j, j, (*a)[j])
-               }
-       }
-       for ; i < a.Len(); i++ {
-               if a.At(i) != intzero {
-                       t.Errorf("%T: 3 expected a.At(%d) == %v; found %v", a, i, intzero, a.At(i))
-               }
-               if (*a)[i] != intzero {
-                       t.Errorf("%T: 4 expected (*a)[%d] == %v; found %v", a, i, intzero, (*a)[i])
-               }
-       }
-}
-
-func TestIntTrailingElements(t *testing.T) {
-       var a IntVector
-       for i := 0; i < 10; i++ {
-               a.Push(int2IntValue(i + 1))
-       }
-       checkIntZero(t, &a, 10)
-       checkSize(t, &a, 10, 16)
-       checkSize(t, a.Resize(5, 0), 5, 16)
-       checkSize(t, a.Resize(10, 0), 10, 16)
-       checkIntZero(t, &a, 5)
-}
-
-func TestIntAccess(t *testing.T) {
-       const n = 100
-       var a IntVector
-       a.Resize(n, 0)
-       for i := 0; i < n; i++ {
-               a.Set(i, int2IntValue(val(i)))
-       }
-       for i := 0; i < n; i++ {
-               if elem2IntValue(a.At(i)) != int2IntValue(val(i)) {
-                       t.Error(i)
-               }
-       }
-       var b IntVector
-       b.Resize(n, 0)
-       for i := 0; i < n; i++ {
-               b[i] = int2IntValue(val(i))
-       }
-       for i := 0; i < n; i++ {
-               if elem2IntValue(b[i]) != int2IntValue(val(i)) {
-                       t.Error(i)
-               }
-       }
-}
-
-func TestIntInsertDeleteClear(t *testing.T) {
-       const n = 100
-       var a IntVector
-
-       for i := 0; i < n; i++ {
-               if a.Len() != i {
-                       t.Errorf("%T: A) wrong Len() %d (expected %d)", a, a.Len(), i)
-               }
-               if len(a) != i {
-                       t.Errorf("%T: A) wrong len() %d (expected %d)", a, len(a), i)
-               }
-               a.Insert(0, int2IntValue(val(i)))
-               if elem2IntValue(a.Last()) != int2IntValue(val(0)) {
-                       t.Errorf("%T: B", a)
-               }
-       }
-       for i := n - 1; i >= 0; i-- {
-               if elem2IntValue(a.Last()) != int2IntValue(val(0)) {
-                       t.Errorf("%T: C", a)
-               }
-               if elem2IntValue(a.At(0)) != int2IntValue(val(i)) {
-                       t.Errorf("%T: D", a)
-               }
-               if elem2IntValue(a[0]) != int2IntValue(val(i)) {
-                       t.Errorf("%T: D2", a)
-               }
-               a.Delete(0)
-               if a.Len() != i {
-                       t.Errorf("%T: E) wrong Len() %d (expected %d)", a, a.Len(), i)
-               }
-               if len(a) != i {
-                       t.Errorf("%T: E) wrong len() %d (expected %d)", a, len(a), i)
-               }
-       }
-
-       if a.Len() != 0 {
-               t.Errorf("%T: F) wrong Len() %d (expected 0)", a, a.Len())
-       }
-       if len(a) != 0 {
-               t.Errorf("%T: F) wrong len() %d (expected 0)", a, len(a))
-       }
-       for i := 0; i < n; i++ {
-               a.Push(int2IntValue(val(i)))
-               if a.Len() != i+1 {
-                       t.Errorf("%T: G) wrong Len() %d (expected %d)", a, a.Len(), i+1)
-               }
-               if len(a) != i+1 {
-                       t.Errorf("%T: G) wrong len() %d (expected %d)", a, len(a), i+1)
-               }
-               if elem2IntValue(a.Last()) != int2IntValue(val(i)) {
-                       t.Errorf("%T: H", a)
-               }
-       }
-       a.Resize(0, 0)
-       if a.Len() != 0 {
-               t.Errorf("%T: I wrong Len() %d (expected 0)", a, a.Len())
-       }
-       if len(a) != 0 {
-               t.Errorf("%T: I wrong len() %d (expected 0)", a, len(a))
-       }
-
-       const m = 5
-       for j := 0; j < m; j++ {
-               a.Push(int2IntValue(j))
-               for i := 0; i < n; i++ {
-                       x := val(i)
-                       a.Push(int2IntValue(x))
-                       if elem2IntValue(a.Pop()) != int2IntValue(x) {
-                               t.Errorf("%T: J", a)
-                       }
-                       if a.Len() != j+1 {
-                               t.Errorf("%T: K) wrong Len() %d (expected %d)", a, a.Len(), j+1)
-                       }
-                       if len(a) != j+1 {
-                               t.Errorf("%T: K) wrong len() %d (expected %d)", a, len(a), j+1)
-                       }
-               }
-       }
-       if a.Len() != m {
-               t.Errorf("%T: L) wrong Len() %d (expected %d)", a, a.Len(), m)
-       }
-       if len(a) != m {
-               t.Errorf("%T: L) wrong len() %d (expected %d)", a, len(a), m)
-       }
-}
-
-func verify_sliceInt(t *testing.T, x *IntVector, elt, i, j int) {
-       for k := i; k < j; k++ {
-               if elem2IntValue(x.At(k)) != int2IntValue(elt) {
-                       t.Errorf("%T: M) wrong [%d] element %v (expected %v)", x, k, elem2IntValue(x.At(k)), int2IntValue(elt))
-               }
-       }
-
-       s := x.Slice(i, j)
-       for k, n := 0, j-i; k < n; k++ {
-               if elem2IntValue(s.At(k)) != int2IntValue(elt) {
-                       t.Errorf("%T: N) wrong [%d] element %v (expected %v)", x, k, elem2IntValue(x.At(k)), int2IntValue(elt))
-               }
-       }
-}
-
-func verify_patternInt(t *testing.T, x *IntVector, a, b, c int) {
-       n := a + b + c
-       if x.Len() != n {
-               t.Errorf("%T: O) wrong Len() %d (expected %d)", x, x.Len(), n)
-       }
-       if len(*x) != n {
-               t.Errorf("%T: O) wrong len() %d (expected %d)", x, len(*x), n)
-       }
-       verify_sliceInt(t, x, 0, 0, a)
-       verify_sliceInt(t, x, 1, a, a+b)
-       verify_sliceInt(t, x, 0, a+b, n)
-}
-
-func make_vectorInt(elt, len int) *IntVector {
-       x := new(IntVector).Resize(len, 0)
-       for i := 0; i < len; i++ {
-               x.Set(i, int2IntValue(elt))
-       }
-       return x
-}
-
-func TestIntInsertVector(t *testing.T) {
-       // 1
-       a := make_vectorInt(0, 0)
-       b := make_vectorInt(1, 10)
-       a.InsertVector(0, b)
-       verify_patternInt(t, a, 0, 10, 0)
-       // 2
-       a = make_vectorInt(0, 10)
-       b = make_vectorInt(1, 0)
-       a.InsertVector(5, b)
-       verify_patternInt(t, a, 5, 0, 5)
-       // 3
-       a = make_vectorInt(0, 10)
-       b = make_vectorInt(1, 3)
-       a.InsertVector(3, b)
-       verify_patternInt(t, a, 3, 3, 7)
-       // 4
-       a = make_vectorInt(0, 10)
-       b = make_vectorInt(1, 1000)
-       a.InsertVector(8, b)
-       verify_patternInt(t, a, 8, 1000, 2)
-}
-
-func TestIntDo(t *testing.T) {
-       const n = 25
-       const salt = 17
-       a := new(IntVector).Resize(n, 0)
-       for i := 0; i < n; i++ {
-               a.Set(i, int2IntValue(salt*i))
-       }
-       count := 0
-       a.Do(func(e int) {
-               i := intf2IntValue(e)
-               if i != int2IntValue(count*salt) {
-                       t.Error(tname(a), "value at", count, "should be", count*salt, "not", i)
-               }
-               count++
-       })
-       if count != n {
-               t.Error(tname(a), "should visit", n, "values; did visit", count)
-       }
-
-       b := new(IntVector).Resize(n, 0)
-       for i := 0; i < n; i++ {
-               (*b)[i] = int2IntValue(salt * i)
-       }
-       count = 0
-       b.Do(func(e int) {
-               i := intf2IntValue(e)
-               if i != int2IntValue(count*salt) {
-                       t.Error(tname(b), "b) value at", count, "should be", count*salt, "not", i)
-               }
-               count++
-       })
-       if count != n {
-               t.Error(tname(b), "b) should visit", n, "values; did visit", count)
-       }
-
-       var c IntVector
-       c.Resize(n, 0)
-       for i := 0; i < n; i++ {
-               c[i] = int2IntValue(salt * i)
-       }
-       count = 0
-       c.Do(func(e int) {
-               i := intf2IntValue(e)
-               if i != int2IntValue(count*salt) {
-                       t.Error(tname(c), "c) value at", count, "should be", count*salt, "not", i)
-               }
-               count++
-       })
-       if count != n {
-               t.Error(tname(c), "c) should visit", n, "values; did visit", count)
-       }
-
-}
-
-func TestIntVectorCopy(t *testing.T) {
-       // verify Copy() returns a copy, not simply a slice of the original vector
-       const Len = 10
-       var src IntVector
-       for i := 0; i < Len; i++ {
-               src.Push(int2IntValue(i * i))
-       }
-       dest := src.Copy()
-       for i := 0; i < Len; i++ {
-               src[i] = int2IntValue(-1)
-               v := elem2IntValue(dest[i])
-               if v != int2IntValue(i*i) {
-                       t.Error(tname(src), "expected", i*i, "got", v)
-               }
-       }
-}
diff --git a/libgo/go/container/vector/nogen_test.go b/libgo/go/container/vector/nogen_test.go
deleted file mode 100644 (file)
index 7b6a259..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// 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.
-
-package vector
-
-import (
-       "fmt"
-       "sort"
-       "testing"
-)
-
-var (
-       zero    interface{}
-       intzero int
-       strzero string
-)
-
-func int2Value(x int) int       { return x }
-func int2IntValue(x int) int    { return x }
-func int2StrValue(x int) string { return string(x) }
-
-func elem2Value(x interface{}) int  { return x.(int) }
-func elem2IntValue(x int) int       { return x }
-func elem2StrValue(x string) string { return x }
-
-func intf2Value(x interface{}) int       { return x.(int) }
-func intf2IntValue(x interface{}) int    { return x.(int) }
-func intf2StrValue(x interface{}) string { return x.(string) }
-
-type VectorInterface interface {
-       Len() int
-       Cap() int
-}
-
-func checkSize(t *testing.T, v VectorInterface, len, cap int) {
-       if v.Len() != len {
-               t.Errorf("%T expected len = %d; found %d", v, len, v.Len())
-       }
-       if v.Cap() < cap {
-               t.Errorf("%T expected cap >= %d; found %d", v, cap, v.Cap())
-       }
-}
-
-func val(i int) int { return i*991 - 1234 }
-
-func TestSorting(t *testing.T) {
-       const n = 100
-
-       a := new(IntVector).Resize(n, 0)
-       for i := n - 1; i >= 0; i-- {
-               a.Set(i, n-1-i)
-       }
-       if sort.IsSorted(a) {
-               t.Error("int vector not sorted")
-       }
-
-       b := new(StringVector).Resize(n, 0)
-       for i := n - 1; i >= 0; i-- {
-               b.Set(i, fmt.Sprint(n-1-i))
-       }
-       if sort.IsSorted(b) {
-               t.Error("string vector not sorted")
-       }
-}
-
-func tname(x interface{}) string { return fmt.Sprintf("%T: ", x) }
diff --git a/libgo/go/container/vector/numbers_test.go b/libgo/go/container/vector/numbers_test.go
deleted file mode 100644 (file)
index abe01a8..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-// 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.
-
-package vector
-
-import (
-       "fmt"
-       "runtime"
-       "strings"
-       "testing"
-)
-
-const memTestN = 1000000
-
-func s(n uint64) string {
-       str := fmt.Sprintf("%d", n)
-       lens := len(str)
-       a := make([]string, (lens+2)/3)
-       start := lens
-       for i := range a {
-               start -= 3
-               if start < 0 {
-                       start = 0
-               }
-               a[len(a)-i-1] = str[start:lens]
-               lens -= 3
-       }
-       return strings.Join(a, " ")
-}
-
-func TestVectorNums(t *testing.T) {
-       if testing.Short() {
-               return
-       }
-       var v Vector
-       c := int(0)
-       runtime.GC()
-       m0 := runtime.MemStats
-       v.Resize(memTestN, memTestN)
-       for i := 0; i < memTestN; i++ {
-               v.Set(i, c)
-       }
-       runtime.GC()
-       m := runtime.MemStats
-       v.Resize(0, 0)
-       runtime.GC()
-       n := m.Alloc - m0.Alloc
-       t.Logf("%T.Push(%#v), n = %s: Alloc/n = %.2f\n", v, c, s(memTestN), float64(n)/memTestN)
-}
-
-func TestIntVectorNums(t *testing.T) {
-       if testing.Short() {
-               return
-       }
-       var v IntVector
-       c := int(0)
-       runtime.GC()
-       m0 := runtime.MemStats
-       v.Resize(memTestN, memTestN)
-       for i := 0; i < memTestN; i++ {
-               v.Set(i, c)
-       }
-       runtime.GC()
-       m := runtime.MemStats
-       v.Resize(0, 0)
-       runtime.GC()
-       n := m.Alloc - m0.Alloc
-       t.Logf("%T.Push(%#v), n = %s: Alloc/n = %.2f\n", v, c, s(memTestN), float64(n)/memTestN)
-}
-
-func TestStringVectorNums(t *testing.T) {
-       if testing.Short() {
-               return
-       }
-       var v StringVector
-       c := ""
-       runtime.GC()
-       m0 := runtime.MemStats
-       v.Resize(memTestN, memTestN)
-       for i := 0; i < memTestN; i++ {
-               v.Set(i, c)
-       }
-       runtime.GC()
-       m := runtime.MemStats
-       v.Resize(0, 0)
-       runtime.GC()
-       n := m.Alloc - m0.Alloc
-       t.Logf("%T.Push(%#v), n = %s: Alloc/n = %.2f\n", v, c, s(memTestN), float64(n)/memTestN)
-}
-
-func BenchmarkVectorNums(b *testing.B) {
-       c := int(0)
-       var v Vector
-       b.StopTimer()
-       runtime.GC()
-       b.StartTimer()
-       for i := 0; i < b.N; i++ {
-               v.Push(c)
-       }
-}
-
-func BenchmarkIntVectorNums(b *testing.B) {
-       c := int(0)
-       var v IntVector
-       b.StopTimer()
-       runtime.GC()
-       b.StartTimer()
-       for i := 0; i < b.N; i++ {
-               v.Push(c)
-       }
-}
-
-func BenchmarkStringVectorNums(b *testing.B) {
-       c := ""
-       var v StringVector
-       b.StopTimer()
-       runtime.GC()
-       b.StartTimer()
-       for i := 0; i < b.N; i++ {
-               v.Push(c)
-       }
-}
diff --git a/libgo/go/container/vector/stringvector.go b/libgo/go/container/vector/stringvector.go
deleted file mode 100644 (file)
index dc81f06..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-// 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.
-
-// CAUTION: If this file is not vector.go, it was generated
-// automatically from vector.go - DO NOT EDIT in that case!
-
-package vector
-
-func (p *StringVector) realloc(length, capacity int) (b []string) {
-       if capacity < initialSize {
-               capacity = initialSize
-       }
-       if capacity < length {
-               capacity = length
-       }
-       b = make(StringVector, length, capacity)
-       copy(b, *p)
-       *p = b
-       return
-}
-
-// Insert n elements at position i.
-func (p *StringVector) Expand(i, n int) {
-       a := *p
-
-       // make sure we have enough space
-       len0 := len(a)
-       len1 := len0 + n
-       if len1 <= cap(a) {
-               // enough space - just expand
-               a = a[0:len1]
-       } else {
-               // not enough space - double capacity
-               capb := cap(a) * 2
-               if capb < len1 {
-                       // still not enough - use required length
-                       capb = len1
-               }
-               // capb >=