Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
go
Commits
7aa758df
Commit
7aa758df
authored
Feb 02, 2011
by
Andrew Gerrand
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
release.2011-02-01
R=rsc CC=golang-dev
https://golang.org/cl/4119050
parent
1fa41734
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
160 additions
and
16 deletions
+160
-16
.hgtags
.hgtags
+0
-1
doc/devel/release.html
doc/devel/release.html
+160
-15
No files found.
.hgtags
View file @
7aa758df
...
@@ -48,4 +48,3 @@ f7e692dc29b02fba8e5d59b967880a347b53607c release.2010-12-02
...
@@ -48,4 +48,3 @@ f7e692dc29b02fba8e5d59b967880a347b53607c release.2010-12-02
514c7ba501a1dd74d69ea2d0a2b4116802ada2b5 release.2011-01-12
514c7ba501a1dd74d69ea2d0a2b4116802ada2b5 release.2011-01-12
72f9cb714f08b98c6a65ab2f2256fad6bb16967a release.2011-01-19
72f9cb714f08b98c6a65ab2f2256fad6bb16967a release.2011-01-19
d8ba80011a986470a54e5262ec125105aa4adc34 release.2011-01-20
d8ba80011a986470a54e5262ec125105aa4adc34 release.2011-01-20
d8ba80011a986470a54e5262ec125105aa4adc34 release
doc/devel/release.html
View file @
7aa758df
...
@@ -5,6 +5,151 @@
...
@@ -5,6 +5,151 @@
<p>
This page summarizes the changes between tagged releases of Go.
<p>
This page summarizes the changes between tagged releases of Go.
For full details, see the
<a
href=
"http://code.google.com/p/go/source/list"
>
Mercurial change log
</a>
.
</p>
For full details, see the
<a
href=
"http://code.google.com/p/go/source/list"
>
Mercurial change log
</a>
.
</p>
<h3
id=
"2011-02-01"
>
2011-02-01
</h3>
<pre>
This release includes significant changes to channel operations and minor
changes to the log package. Your code will require modification if it uses
channels in non-blocking communications or the log package's Exit functions.
Non-blocking channel operations have been removed from the language.
The equivalent operations have always been possible using a select statement
with a default clause. If a default clause is present in a select, that clause
will execute (only) if no other is ready, which allows one to avoid blocking on
a communication.
For example, the old non-blocking send operation,
if ch
<-
v
{
//
sent
}
else
{
//
not
sent
}
should
be
rewritten
as
,
select
{
case
ch
<
-
v:
//
sent
default:
//
not
sent
}
Similarly
,
this
receive
,
v
,
ok
:=
<-ch
if
ok
{
//
received
}
else
{
//
not
received
}
should
be
rewritten
as
,
select
{
case
v
:=
<-ch:
//
received
default:
//
not
received
}
This
change
is
a
prelude
to
redefining
the
'
comma-ok
'
syntax
for
a
receive
.
In
a
later
release
,
a
receive
expression
will
return
the
received
value
and
an
optional
boolean
indicating
whether
the
channel
has
been
closed
.
These
changes
are
being
made
in
two
stages
to
prevent
this
semantic
change
from
silently
breaking
code
that
uses
'
comma-ok
'
with
receives
.
There
are
no
plans
to
have
a
boolean
expression
form
for
sends
.
Sends
to
a
closed
channel
will
panic
immediately
.
Previously
,
an
unspecified
number
of
sends
would
fail
silently
before
causing
a
panic
.
The
log
package
'
s
Exit
,
Exitf
,
and
Exitln
functions
have
been
renamed
Fatal
,
Fatalf
,
and
Fatalln
respectively
.
This
brings
them
in
line
with
the
naming
of
the
testing
package
.
The
port
to
the
"
tiny
"
operating
system
has
been
removed
.
It
is
unmaintained
and
untested
.
It
was
a
toy
to
show
that
Go
can
run
on
raw
hardware
and
it
served
its
purpose
.
The
source
code
will
of
course
remain
in
the
repository
history
,
so
it
could
be
brought
back
if
needed
later
.
This
release
also
changes
some
of
the
internal
structure
of
the
memory
allocator
in
preparation
for
other
garbage
collector
changes
.
If
you
run
into
problems
,
please
let
us
know
.
There
is
one
known
issue
that
we
are
aware
of
but
have
not
debugged
yet:
http:
//
code
.
google
.
com
/
p
/
go
/
issues
/
detail
?
id=
1464&.
Other
changes
in
this
release:
*
5l:
document
-F
,
force
it
on
old
ARMs
(
software
floating
point
emulation
)
*
6g:
fix
registerization
of
temporaries
(
thanks
Eoghan
Sherry
),
fix
uint64
(
uintptr
(
unsafe
.
Pointer
(&
x
))).
*
6l:
Relocate
CMOV*
instructions
(
thanks
Gustavo
Niemeyer
),
windows
/
amd64
port
(
thanks
Wei
Guangjing
).
*
8l:
add
PE
dynexport
,
emit
DWARF
in
Windows
PE
,
and
code
generation
fixes
(
thanks
Wei
Guangjing
).
*
bufio:
make
Flush
a
no-op
when
the
buffer
is
empty
.
*
bytes:
Add
Buffer
.
ReadBytes
,
Buffer
.
ReadString
(
thanks
Evan
Shaw
).
*
cc:
mode
to
generate
go-code
for
types
and
variables
.
*
cgo:
define
CGO_CFLAGS
and
CGO_LDFLAGS
in
Go
files
(
thanks
Gustavo
Niemeyer
),
windows
/
386
port
(
thanks
Wei
Guangjing
).
*
codereview:
fix
windows
(
thanks
Hector
Chu
),
handle
file
patterns
better
,
more
ASCII
vs
.
Unicode
nonsense
.
*
crypto
/
dsa:
add
support
for
DSA
.
*
crypto
/
openpgp:
add
s2k
.
*
crypto
/
rand:
use
defer
to
unlock
mutex
(
thanks
Anschel
Schaffer-Cohen
).
*
crypto
/
rsa:
correct
docstring
for
SignPKCS1v15
.
*
crypto:
add
package
,
a
common
place
to
store
identifiers
for
hash
functions
.
*
doc
/
codelab
/
wiki:
update
to
work
with
template
changes
,
add
to
run
.
bash
.
*
doc
/
spec:
clarify
address
operators
.
*
ebnflint:
exit
with
non-zero
status
on
error
.
*
encoding
/
base32:
new
package
(
thanks
Miek
Gieben
).
*
encoding
/
line:
make
it
an
io
.
Reader
too
.
*
exec:
use
custom
error
for
LookPath
(
thanks
Gustavo
Niemeyer
).
*
fmt
/
doc:
define
width
and
precision
for
strings
.
*
gc:
clearer
error
for
struct =
=
struct
,
fix
send
precedence
,
handle
invalid
name
in
type
switch
,
special
case
code
for
single-op
blocking
and
non-blocking
selects
.
*
go
/
scanner:
fix
build
(
adjust
scanner
EOF
linecount
).
*
gob:
better
debugging
,
commentary
,
make
nested
interfaces
work
,
report
an
error
when
encoding
a
non-empty
struct
with
no
public
fields
.
*
godoc:
full
text
index
for
whitelisted
non-Go
files
,
show
line
numbers
for
non-go
files
(
bug
fix
).
*
gofmt
-r:
match
(...)
arguments
may
be
nil
;
add
missing
guards
.
*
govet:
add
Panic
to
the
list
of
functions
.
*
http:
add
host
patterns
(
thanks
Jose
Luis
V
á
zquez
Gonz
á
lez
),
follow
relative
redirect
in
Get
.
*
json:
handle
capital
floating
point
exponent
(
1E100
)
(
thanks
Pieter
Droogendijk
).
*
ld:
add
-I
option
to
set
ELF
interpreter
,
more
robust
decoding
of
reflection
type
info
in
generating
dwarf
.
*
lib9:
update
to
Unicode
6
.
0
.
0
.
*
make
.
bash:
stricter
selinux
test
(
don
'
t
complain
unless
it
is
enabled
).
*
misc
/
vim:
Import
/
Drop
commands
(
thanks
Gustavo
Niemeyer
),
set
'
syntax
sync
'
to
a
large
value
(
thanks
Yasuhiro
Matsumoto
).
*
net:
fix
race
condition
in
test
,
return
cname
in
LookupHost
.
*
netchan:
avoid
race
condition
in
test
,
fixed
documentation
for
import
(
thanks
Anschel
Schaffer-Cohen
).
*
os:
add
ETIMEDOUT
(
thanks
Albert
Strasheim
).
*
runtime:
generate
Go
defs
for
C
types
,
implementation
of
callback
functions
for
windows
(
thanks
Alex
Brainman
),
make
Walk
web
browser
example
work
(
thanks
Hector
Chu
),
make
select
fairer
,
prefer
fixed
stack
allocator
over
general
memory
allocator
,
simpler
heap
map
,
memory
allocation
.
*
scanner:
fix
Position
returned
by
Scan
,
Pos
,
don
'
t
read
ahead
in
Init
.
*
suffixarray:
use
binary
search
for
both
ends
of
Lookup
(
thanks
Eric
Eisner
).
*
syscall:
add
missing
network
interface
constants
(
thanks
Mikio
Hara
).
*
template:
treat
map
keys
as
zero
,
not
non-existent
(
thanks
Roger
Peppe
).
*
time:
allow
cancelling
of
After
events
(
thanks
Roger
Peppe
),
support
Solaris
zoneinfo
directory
.
*
token
/
position:
added
SetLinesForContent
.
*
unicode:
update
to
unicode
6
.
0
.
0
.
*
unsafe:
add
missing
case
to
doc
for
Pointer
.
</
pre
>
<h3
id=
"2011-01-20"
>
2011-01-20
</h3>
<h3
id=
"2011-01-20"
>
2011-01-20
</h3>
<pre>
<pre>
...
@@ -26,7 +171,7 @@ The 5g (ARM) compiler now has registerization enabled. If you discover it
...
@@ -26,7 +171,7 @@ The 5g (ARM) compiler now has registerization enabled. If you discover it
causes bugs, use 5g -N to disable the registerizer and please let us know.
causes bugs, use 5g -N to disable the registerizer and please let us know.
The xml package now allows the extraction of nested XML tags by specifying
The xml package now allows the extraction of nested XML tags by specifying
struct tags of the form
“parent>child”
. See the XML documentation for an
struct tags of the form
"parent>child"
. See the XML documentation for an
example: http://golang.org/pkg/xml/
example: http://golang.org/pkg/xml/
* 5a, 5l, 6a, 6l, 8a, 8l: handle out of memory, large allocations (thanks Jeff R. Allen).
* 5a, 5l, 6a, 6l, 8a, 8l: handle out of memory, large allocations (thanks Jeff R. Allen).
...
@@ -60,7 +205,7 @@ example: http://golang.org/pkg/xml/
...
@@ -60,7 +205,7 @@ example: http://golang.org/pkg/xml/
avoid nil dereference if /etc/services can't be opened (thanks Corey Thomasson),
avoid nil dereference if /etc/services can't be opened (thanks Corey Thomasson),
implement windows timeout (thanks Wei Guangjing).
implement windows timeout (thanks Wei Guangjing).
* netchan: do not block sends; implement flow control (thanks Roger Peppe).
* netchan: do not block sends; implement flow control (thanks Roger Peppe).
* regexp: reject bare
‘?’
. (thanks Ben Lynn)
* regexp: reject bare
'?'
. (thanks Ben Lynn)
* runtime/cgo: don't define crosscall2 in dummy _cgo_main.c.
* runtime/cgo: don't define crosscall2 in dummy _cgo_main.c.
* runtime/debug: new package for printing stack traces from a running goroutine.
* runtime/debug: new package for printing stack traces from a running goroutine.
* runtime: add per-pause gc stats,
* runtime: add per-pause gc stats,
...
@@ -187,16 +332,16 @@ outstanding cgo issues were resolved.
...
@@ -187,16 +332,16 @@ outstanding cgo issues were resolved.
<pre>
<pre>
Package crypto/cipher has been started, to replace crypto/block.
Package crypto/cipher has been started, to replace crypto/block.
As part of the changes, rc4.Cipher
’
s XORKeyStream method signature has changed from
As part of the changes, rc4.Cipher
'
s XORKeyStream method signature has changed from
XORKeyStream(buf []byte)
XORKeyStream(buf []byte)
to
to
XORKeyStream(dst, src []byte)
XORKeyStream(dst, src []byte)
to implement the cipher.Stream interface. If you use crypto/block, you
’
ll need
to implement the cipher.Stream interface. If you use crypto/block, you
'
ll need
to switch to crypto/cipher once it is complete.
to switch to crypto/cipher once it is complete.
Package smtp
’
s StartTLS now takes a *tls.Config argument.
Package smtp
'
s StartTLS now takes a *tls.Config argument.
Package reflect
’
s ArrayCopy has been renamed to Copy. There are new functions
Package reflect
'
s ArrayCopy has been renamed to Copy. There are new functions
Append and AppendSlice.
Append and AppendSlice.
The print/println bootstrapping functions now write to standard error.
The print/println bootstrapping functions now write to standard error.
...
@@ -330,7 +475,7 @@ will fail to compile rather than behave erroneously.
...
@@ -330,7 +475,7 @@ will fail to compile rather than behave erroneously.
The bytes package has changed. Its Add and AddByte functions have been removed,
The bytes package has changed. Its Add and AddByte functions have been removed,
as their functionality is provided by the recently-introduced built-in function
as their functionality is provided by the recently-introduced built-in function
“append”
. Any code that uses them will need to be changed:
"append"
. Any code that uses them will need to be changed:
s = bytes.Add(s, b) -> s = append(s, b...)
s = bytes.Add(s, b) -> s = append(s, b...)
s = bytes.AddByte(b, c) -> s = append(s, b)
s = bytes.AddByte(b, c) -> s = append(s, b)
s = bytes.Add(nil, c) -> append([]byte(nil), c)
s = bytes.Add(nil, c) -> append([]byte(nil), c)
...
@@ -355,8 +500,8 @@ or
...
@@ -355,8 +500,8 @@ or
and the fields are passed as successive arguments to the formatter,
and the fields are passed as successive arguments to the formatter,
by analogy to fmt.Print.
by analogy to fmt.Print.
The utf8 package has changed. The order of EncodeRune
’
s arguments has been
The utf8 package has changed. The order of EncodeRune
'
s arguments has been
reversed to satisfy the convention of
“destination first”
.
reversed to satisfy the convention of
"destination first"
.
Any code that uses EncodeRune will need to be updated.
Any code that uses EncodeRune will need to be updated.
Other changes:
Other changes:
...
@@ -494,12 +639,12 @@ to address both of these deficiencies.
...
@@ -494,12 +639,12 @@ to address both of these deficiencies.
The syntax for arrays, slices, and maps of composite literals has been
The syntax for arrays, slices, and maps of composite literals has been
simplified. Within a composite literal of array, slice, or map type, elements
simplified. Within a composite literal of array, slice, or map type, elements
that are themselves composite literals may elide the type if it is identical to
that are themselves composite literals may elide the type if it is identical to
the outer literal
’
s element type. For example, these expressions:
the outer literal
'
s element type. For example, these expressions:
[][]int{[]int{1, 2, 3}, []int{4, 5}}
[][]int{[]int{1, 2, 3}, []int{4, 5}}
map[string]Point{
“x”: Point{1.5, -3.5}, “y”
: Point{0, 0}}
map[string]Point{
"x": Point{1.5, -3.5}, "y"
: Point{0, 0}}
can be simplified to:
can be simplified to:
[][]int{{1, 2, 3}, {4, 5}}
[][]int{{1, 2, 3}, {4, 5}}
map[string]Point{
“x”: {1.5, -3.5}, “y”
: {0, 0}}
map[string]Point{
"x": {1.5, -3.5}, "y"
: {0, 0}}
Gofmt can make these simplifications mechanically when invoked with the
Gofmt can make these simplifications mechanically when invoked with the
new -s flag.
new -s flag.
...
@@ -515,8 +660,8 @@ The gob package can now encode and decode interface values containing types
...
@@ -515,8 +660,8 @@ The gob package can now encode and decode interface values containing types
registered
ahead
of
time
with
the
new
Register
function
.
These
changes
required
registered
ahead
of
time
with
the
new
Register
function
.
These
changes
required
a
backwards-incompatible
change
to
the
wire
format
.
Data
written
with
the
old
a
backwards-incompatible
change
to
the
wire
format
.
Data
written
with
the
old
version
of
the
package
will
not
be
readable
with
the
new
one
,
and
vice
versa
.
version
of
the
package
will
not
be
readable
with
the
new
one
,
and
vice
versa
.
(
Steps
were
made
in
this
change
to
make
sure
this
doesn
’
t
happen
again
.)
(
Steps
were
made
in
this
change
to
make
sure
this
doesn
'
t
happen
again
.)
We
don
’
t
know
of
anyone
using
gobs
to
create
permanent
data
,
but
if
you
do
this
We
don
'
t
know
of
anyone
using
gobs
to
create
permanent
data
,
but
if
you
do
this
and
need
help
converting
,
please
let
us
know
,
and
do
not
update
to
this
release
and
need
help
converting
,
please
let
us
know
,
and
do
not
update
to
this
release
yet
.
We
will
help
you
convert
your
data
.
yet
.
We
will
help
you
convert
your
data
.
...
@@ -612,7 +757,7 @@ For full details, see the change description:
...
@@ -612,7 +757,7 @@ For full details, see the change description:
The language change is that uses of pointers to interface values no longer
The language change is that uses of pointers to interface values no longer
automatically dereference the pointer. A pointer to an interface value is more
automatically dereference the pointer. A pointer to an interface value is more
often a beginner
’
s bug than correct code.
often a beginner
'
s bug than correct code.
The package exp/iterable has been removed. It was an interesting experiment,
The package exp/iterable has been removed. It was an interesting experiment,
but it encourages writing inefficient code and has outlived its utility.
but it encourages writing inefficient code and has outlived its utility.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment