tempfile.nim icon indicating copy to clipboard operation
tempfile.nim copied to clipboard

importing tempfile breaks expected behaviour of std / random

Open pietroppeter opened this issue 2 years ago • 7 comments
trafficstars

module random from stdlib requires a call to randomize in order to have random results that change at every call. Indeed the following:

import std / random
echo rand(100)

produces always the same number when run again (on my machine: 3).

If tempfile is imported instead the behaviour changes, since indeed tempfile calls randomize in its global space. so the following:

import std / random
import tempfile
echo rand(100)

will produce always different numbers.

Is it necessary to have this randomize call or could it be removed (or hidden behind the switch and documented this behaviour)?

Btw, I have been happily using tempfile as a dependency in nimib since its beginning, thanks for creating this!

pietroppeter avatar Apr 01 '23 16:04 pietroppeter

please consider this module is deprecated since tempfiles module added to Nim standard library https://nim-lang.github.io/Nim/tempfiles.html

ba0f3 avatar Apr 02 '23 03:04 ba0f3

Ok we will switch to temp files from stdlib. Should I make a Pr to add this deprecation notice to the readme?

pietroppeter avatar Apr 02 '23 06:04 pietroppeter

I will do it soon, and remove it from Nimble directory too. Thank you!

ba0f3 avatar Apr 02 '23 06:04 ba0f3

Well if you can wait to remove it from nimble until we make the fix on our side... otherwise it will break anyone trying to install nimib :)

pietroppeter avatar Apr 02 '23 07:04 pietroppeter

Ofcourse I can wait :)

ba0f3 avatar Apr 02 '23 07:04 ba0f3

And there might be other libraries depending on it, maybe you could add a deprecation notice to appear when the library is installed/used and remove from nimble after a deprecation period?

pietroppeter avatar Apr 02 '23 07:04 pietroppeter

its ok, so I will archive this project only.

ba0f3 avatar Apr 02 '23 09:04 ba0f3