>
> But I don't think it is because Windows is so much faster than Linux
>
 
Yeah... :) I was exploring all cases.


 and/or the way the time package implemented is different between Windows 
> and Linux


Could this be considered a possible Go bug and would it worth opening an 
issue on Github?


On Friday, May 4, 2018 at 10:57:46 PM UTC+3, speter wrote:
>
> So on Linux it's working as expected. In the playground time is "virtual"; 
> the start time is fixed and it doesn't progress unless you explicitly Sleep 
> -- because you don't Sleep in your program, time.Now() returns the same 
> time on both invocation.
>
> So the only slightly surprising part is that on Windows, time as measured 
> by time.Now() doesn't progress between the two statements. But I don't 
> think it is because Windows is so much faster than Linux. :) I'd guess this 
> is because the way Windows manages time is different from how Linux manages 
> it, and/or the way the time package implemented is different between 
> Windows and Linux. The result of the cross-platform differences seems to be 
> less precision on Windows -- at least in this specific scenario.
>
> Peter
>  
>
> On Fri, May 4, 2018 at 9:33 PM, Andrei Avram <andrei.a...@gmail.com 
> <javascript:>> wrote:
>
>> Peter and Ian, you are both wright regarding the printing. Still, on 
>> Linux I have different values than on Go Playground.
>>
>> Regarding the speed, Peter, do you think that on Windows the two calls 
>> just run faster every time?
>>
>> On Friday, May 4, 2018 at 9:07:15 PM UTC+3, speter wrote:
>>>
>>> b is slightly less than 3 because there is a bit of time between the two 
>>> calls to time.Now().
>>>
>>> If you substitute this:
>>>         fmt.Printf("input: %20.18f\n", b)
>>>
>>> you get something like
>>> input: 2.999999965553350911
>>>
>>> HTH
>>> Peter
>>>
>>> On Fri, May 4, 2018 at 7:26 PM, Andrei Avram <andrei.a...@gmail.com> 
>>> wrote:
>>>
>>>> Hello everyone,
>>>>
>>>> Today I ran into a situation that is strange to me. I ran the following 
>>>> code on two Linux machines (go run floor.go), on two Windows ones, and on 
>>>> Go Playground.
>>>>
>>>> package main
>>>>
>>>> import (
>>>> "time"
>>>> "math"
>>>> )
>>>>
>>>> func main() {
>>>> datetime := time.Now().Add(time.Hour * 24 * 7 * 4 * 12 * 3)
>>>> seconds := -1 * int(time.Now().Sub(datetime).Seconds())
>>>> a := 29030400
>>>> b := float64(seconds) / float64(a)
>>>>
>>>> println("input:", b)
>>>> println("floor:", math.Floor(b))
>>>> }
>>>>
>>>> On Linux the output is:
>>>>
>>>> input: +3.000000e+000
>>>> floor: *+2.000000e+000*
>>>>
>>>> On Windows and Playground:
>>>>
>>>> input: +3.000000e+000
>>>> floor: *+3.000000e+000*
>>>>
>>>> As you can see, on Linux the floor value of float value 3 is rounded 
>>>> down to 2, while on Windows/Playground it's 3.
>>>>
>>>> The code was ran with Go 1.10 and 1.10.2.
>>>>
>>>> The system details of one of the Linux machines, as reported by "go 
>>>> bug":
>>>>
>>>> go version go1.10.2 linux/amd64
>>>> GOARCH="amd64"
>>>> GOBIN=""
>>>> GOCACHE="/home/msd/.cache/go-build"
>>>> GOEXE=""
>>>> GOHOSTARCH="amd64"
>>>> GOHOSTOS="linux"
>>>> GOOS="linux"
>>>> GOPATH="/home/msd/go/"
>>>> GORACE=""
>>>> GOROOT="/usr/local/go"
>>>> GOTMPDIR=""
>>>> GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
>>>> GCCGO="gccgo"
>>>> CC="gcc"
>>>> CXX="g++"
>>>> CGO_ENABLED="1"
>>>> CGO_CFLAGS="-g -O2"
>>>> CGO_CPPFLAGS=""
>>>> CGO_CXXFLAGS="-g -O2"
>>>> CGO_FFLAGS="-g -O2"
>>>> CGO_LDFLAGS="-g -O2"
>>>> PKG_CONFIG="pkg-config"
>>>> GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 
>>>> -fdebug-prefix-map=/tmp/go-build304261270=/tmp/go-build 
>>>> -gno-record-gcc-switches"
>>>> GOROOT/bin/go version: go version go1.10.2 linux/amd64
>>>> GOROOT/bin/go tool compile -V: compile version go1.10.2
>>>> uname -sr: Linux 4.13.0-37-generic
>>>> Distributor ID: Ubuntu
>>>> Description: Ubuntu 16.04.4 LTS
>>>> Release: 16.04
>>>> Codename: xenial
>>>> /lib/x86_64-linux-gnu/libc.so.6: GNU C Library (Ubuntu GLIBC 
>>>> 2.23-0ubuntu10) stable release version 2.23, by Roland McGrath et al.
>>>> gdb --version: GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
>>>>
>>>>
>>>> Is there something I miss or could this be an issue?
>>>>
>>>> Thanks,
>>>> Andrei
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "golang-nuts" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to golang-nuts...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to