Regarding the example presented by Google software engineer Will Deacon on the presentation Uh-oh; it's I/O ordering
[source
]
CPU0 CPU1
a: WRITE_ONCE(*x, 1); c: WRITE_ONCE(*y, 1);
b: foo = READ_ONCE(*y); d: bar = READ_ONCE(*x);
That inspire me to do some experiments regarding I/O ordering and related memory model, then this respository comes.
- opam
- herdtools7
Before install herdtools7
, we need install opam
first
$ sudo apt install opam
$ opam init
$ eval `opam config env`
When you see message below, please wait...
=-=- Updating package repositories =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[default] synchronized from https://opam.ocaml.org/1.2.2
When you see message below, use y
Do you want OPAM to modify ~/.profile and ~/.ocamlinit?
(default is 'no', use 'f' to name a file other than ~/.profile)
$ opam switch --all
$ opam update
$ opam upgrade
$ opam install herdtools7