Skip to content

ArgParse modifies global random state? #121

@veddox

Description

@veddox

I've just noticed that calling parse_args() changes the state of the GLOBAL_RNG:

julia> using ArgParse, Random

julia> Random.seed!(1)
TaskLocalRNG()

julia> rand()
0.07336635446929285 # <- expected value when seeding the GLOBAL_RNG with 1

julia> Random.seed!(1)
TaskLocalRNG()

julia> s = ArgParseSettings()
ArgParseSettings(
  ...
  )

julia> rand()
0.07336635446929285 # <- this is still correct

julia> Random.seed!(1)
TaskLocalRNG()

julia> parse_args(s)
Dict{String, Any}()

julia> rand()
0.6702639583444937     # <- not the expected value

Is there a reason for this? Since ArgParse doesn't even import Random, I don't understand why this happens, but it's giving me some problems with my own code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions