• bmeurer@chromium.org's avatar
    Introduce a RandonNumberGenerator class. Refactor the random/private_random... · eb381b94
    bmeurer@chromium.org authored
    Introduce a RandonNumberGenerator class. Refactor the random/private_random uses in Isolate/Context.
    
    The RandomNumberGenerator is a pseudorandom number generator
    with 48-bit state. It is properly seeded using either
    
    (1) the --random-seed if specified, or
    (2) the entropy_source function if configured, or
    (3) /dev/urandom if available, or
    (4) falls back to Time and TimeTicks based seeding.
    
    Each Isolate now contains a RandomNumberGenerator, which replaces
    the previous private_random_seed.
    
    Every native context still has its own random_seed. But this random
    seed is now properly initialized during bootstrapping,
    instead of on-demand initialization. This will allow us to cleanup
    and speedup the HRandom implementation quite a lot (this is delayed
    for a followup CL)!
    
    Also stop messing with the system rand()/random(), which should
    not be done from a library anyway! We probably re-seeded the
    libc rand()/random() after the application (i.e. Chrome) already
    seeded it (with better entropy than what we used).
    
    Another followup CL will replace the use of the per-isolate
    random number generator for the address randomization and
    thereby get rid of the Isolate::UncheckedCurrent() usage in
    the platform code.
    
    TEST=cctest/test-random-number-generator,cctest/test-random
    R=mstarzinger@chromium.org
    
    Review URL: https://codereview.chromium.org/23548024
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    eb381b94
Name
Last commit
Last update
..
blink_tests Loading commit data...
gcmole Loading commit data...
generate_shim_headers Loading commit data...
gyp Loading commit data...
oom_dump Loading commit data...
perf_tests Loading commit data...
profviz Loading commit data...
testrunner Loading commit data...
v8.xcodeproj Loading commit data...
visual_studio Loading commit data...
SourceMap.js Loading commit data...
android-build.sh Loading commit data...
android-ll-prof.sh Loading commit data...
android-run.py Loading commit data...
android-sync.sh Loading commit data...
bash-completion.sh Loading commit data...
check-static-initializers.sh Loading commit data...
codemap.js Loading commit data...
common-includes.sh Loading commit data...
consarray.js Loading commit data...
csvparser.js Loading commit data...
disasm.py Loading commit data...
freebsd-tick-processor Loading commit data...
fuzz-harness.sh Loading commit data...
gc-nvp-trace-processor.py Loading commit data...
gdb-v8-support.py Loading commit data...
gen-postmortem-metadata.py Loading commit data...
generate-ten-powers.scm Loading commit data...
grokdump.py Loading commit data...
js2c.py Loading commit data...
jsmin.py Loading commit data...
linux-tick-processor Loading commit data...
ll_prof.py Loading commit data...
logreader.js Loading commit data...
mac-nm Loading commit data...
mac-tick-processor Loading commit data...
merge-to-branch.sh Loading commit data...
mingw-generate-makefiles.sh Loading commit data...
nacl-run.py Loading commit data...
plot-timer-events Loading commit data...
presubmit.py Loading commit data...
process-heap-prof.py Loading commit data...
profile.js Loading commit data...
profile_view.js Loading commit data...
push-to-trunk.sh Loading commit data...
run-deopt-fuzzer.py Loading commit data...
run-llprof.sh Loading commit data...
run-tests.py Loading commit data...
run-valgrind.py Loading commit data...
splaytree.js Loading commit data...
stats-viewer.py Loading commit data...
status-file-converter.py Loading commit data...
test-server.py Loading commit data...
tick-processor.html Loading commit data...
tickprocessor-driver.js Loading commit data...
tickprocessor.js Loading commit data...
v8-info.sh Loading commit data...
v8-rolls.sh Loading commit data...
v8heapconst.py Loading commit data...
v8heapconst.py.tmpl Loading commit data...
windows-tick-processor.bat Loading commit data...