<p dir="auto">by <strong>yoann.gini</strong>:</p>
<pre class="notranslate">What steps will reproduce the problem?
1. Get an vanilla OS X system with Xcode
2. Run Xcode from you session and accept the license like anyone do
3. Try to install Go from go1.1.2.darwin-amd64.pkg

What is the expected output?
Install should success without any problems

What do you see instead?
Install failed, when looking at the install log, it's because of the xcode license who
haven't been accepted from the root account, which is absolutely unusual. 

Which operating system are you using?
OS X 10.8.4

Which version are you using?  (run 'go version')
go version go1.1.2 darwin/amd64

Please provide any additional information below.
Using root account is something we never do on OS X, even as software developer.</pre>
<p dir="auto">Attachments:</p>
<ol dir="auto">
<li><a href="https://storage.googleapis.com/go-attachment/6256/0/install.log" rel="nofollow">install.log</a> (9879 bytes)</li>
</ol>
<p dir="auto">by <strong>benjamin.heatwole</strong>:</p>
<pre class="notranslate">$GOOS = linux
$GOARCH = amd64
hg identify = f7e1cbc5ce28 tip

Code demonstrating the problem:

func main() {
    var min float32 = math.MinFloat32
    var minPlusOne float32 = min + 1.0
    var negOne float32 = -1.0
    var zero float32 = 0.0
    var one float32 = 1.0
    
    // All these should be true, but only the comparison with a positive number works
    fmt.Println("Testing comparisons using math.MinFloat32 ... ")
    fmt.Printf("%v &gt; %v = %v\n", negOne, min, negOne &gt; min)
    fmt.Printf("%v &gt; %v = %v\n", zero, min, zero &gt; min)
    fmt.Printf("%v &gt; %v = %v\n", one, min, one &gt; min)
    fmt.Println()
    
    // Adding one to MinFloat32 doesn't help
    fmt.Println("Testing comparisons using math.MinFloat32 + 1 ... ")
    fmt.Printf("%v &gt; %v = %v\n", negOne, minPlusOne, negOne &gt; minPlusOne)
    fmt.Printf("%v &gt; %v = %v\n", zero, minPlusOne, zero &gt; minPlusOne)
    fmt.Printf("%v &gt; %v = %v\n", one, minPlusOne, one &gt; minPlusOne)
    fmt.Println()
    
    // Using another small value works
    var small float32 = -999999.0
    fmt.Println("Testing comparisons using -999999.0 ... ")
    fmt.Printf("%v &gt; %v = %v\n", negOne, small, negOne &gt; small)
    fmt.Printf("%v &gt; %v = %v\n", zero, small, zero &gt; small)
    fmt.Printf("%v &gt; %v = %v\n", one, small, one &gt; small)
    fmt.Println()
    
    // One final test
    fmt.Println("Testing 0 == MinFloat32 ... ")
    fmt.Printf("%v == %v = %v\n", zero, min, zero == min)
}


Output is:

Testing comparisons using math.MinFloat32 ...
-1 &gt; 1e-45 = false
0 &gt; 1e-45 = false
1 &gt; 1e-45 = true

Testing comparisons using math.MinFloat32 + 1 ...
-1 &gt; 1 = false
0 &gt; 1 = false
1 &gt; 1 = false

Testing comparisons using -999999.0 ...
-1 &gt; -999999 = true
0 &gt; -999999 = true
1 &gt; -999999 = true

Testing 0 == MinFloat32 ... 
0 == 1e-45 = false

As you can see from the tests, MinFloat32 is being printed as "1e-45" but
internally its treating the 
value as "0" in some cases (the second test with MinFloat32+1 prints as
"1"), but not in others (the 
last test of 0 == MinFloat32 is false).

I'm not sure entirely what's going on, but something is goofy.</pre>