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.2When 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