Skip to content

Instantly share code, notes, and snippets.

@CGMossa
Last active August 18, 2020 09:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CGMossa/dbdd887a7ace8552bb7d68cb5d26aeef to your computer and use it in GitHub Desktop.
Save CGMossa/dbdd887a7ace8552bb7d68cb5d26aeef to your computer and use it in GitHub Desktop.
Rama cont model implemented in Rust
[package]
name = "agent_based_trading_julia"
version = "0.1.0"
authors = ["cgmossa <cgmossa@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rand = {version = "0.7.3", features = ["small_rng"]}
rand_distr = "0.2.2"
[dev-dependencies]
criterion = "0.3"
[[bench]]
name = "cont_run"
harness = false
// resides in benches/cont_run.rs
//
use agent_based_trading_julia::agent_simulation::cont_run;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
pub fn criterion_benchmark(c: &mut Criterion) {
c.bench_function("cont_run default", |b| {
b.iter(|| {
black_box(cont_run(
black_box(10_000),
black_box(10_000),
black_box(0.05),
black_box(0.1),
))
})
});
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);
using Random
using StatsBase
function cont_run(time=10000, n=10000, λ=0.05, q=0.1)
r = zeros(time)
θ = zeros(n)
pchange = zeros(n)
for t = 1:time
ε = randn()
if ε > 0
r[t] = sum(<(ε), θ) / (λ * n)
else
r[t] = -sum(<(-ε), θ) / (λ * n)
end
θ .= ifelse.(rand!(pchange) .< q, abs(r[t]), θ)
end
return kurtosis(r)
end
// resides in src/lib.rs
use rand::prelude::SmallRng;
use rand::{thread_rng, Rng, SeedableRng};
pub fn cont_run(time: usize, n: usize, lambda: f64, q: f64) -> f64 {
let mut theta = vec![0.; n];
let n = n as f64;
let mut eps_sampler = SmallRng::from_rng(thread_rng())
.unwrap()
.sample_iter(rand_distr::StandardNormal);
let mut pchange_sampler = SmallRng::from_rng(thread_rng())
.unwrap()
.sample_iter(rand::distributions::Uniform::new_inclusive(0., 1.));
let r = std::iter::repeat_with(move || {
let eps: f64 = eps_sampler.next().unwrap();
let r_t = if eps > 0. {
theta.iter().filter(|&&x| eps > x).count() as f64 / (lambda * n)
} else {
-(theta.iter().filter(|&&x| -eps > x).count() as f64) / (lambda * n)
};
theta
.iter_mut()
.filter(|_| pchange_sampler.next().unwrap() < q)
.for_each(|x| {
*x = r_t.abs();
});
r_t
});
let r = r.take(time).collect::<Vec<_>>();
kurtosis(r)
}
fn kurtosis(x: Vec<f64>) -> f64 {
let n = x.len() as f64;
let mean_x = x.iter().sum::<f64>() / n;
let x = x.iter().copied().map(|x| x - mean_x);
let r: f64 = n * x.clone().map(|x| x.clone().powi(4)).sum::<f64>()
/ (x.map(|x| x.powi(2)).sum::<f64>().powi(2));
r * (1. - 1. / n).powi(2) - 3.
}
@ambiso
Copy link

ambiso commented Jul 17, 2020

I've started linking with dSFMT which is the SSE2 backed Mersenne Twister library that Julia uses.
It's about 3 times faster than SmallRng for doubles between 0 and 1.

The integration is very likely faulty, the C API isn't easy to use correctly and I don't know how to represent the struct in Rust correctly:
https://github.com/ambiso/agent_based_trading_julia/blob/dev/src/lib.rs#L34-L37

You can view it here:
https://github.com/ambiso/agent_based_trading_julia

and benchmark it like this (if you want use cross language LTO):

RUSTFLAGS="-C target-cpu=native -Clinker-plugin-lto -Clinker=clang -Clink-arg=-fuse-ld=lld" cargo bench --bench cont_run

Unfortunately I can only shave off around 60ms this way, not the expected 160ms.

Edit: ran it again and I'm down to 101ms which is slightly faster than the Julia version.
Thermals are quite unstable on this system.

@CGMossa
Copy link
Author

CGMossa commented Jul 17, 2020

Thanks. I tried to just cargo build this repository of yours and it didn't work at all.
I am as usual having an absolute terrible time linking with a C-library.
I have cygwin toolchain as being dominant, but I cannot seem to figure out how to install clang or lld-linker or whatever is needed
for this on Cygwin. Googling it is not yielding the right instructions.

I've included my terminal outputs. Maybe you can spot what is going on here. I'm beyond angry that
linking to C is just such a terrible experience.

As a side, I found this dsfmt-rs it is a rust port of the prng you said is Julias.
I'm sure the C-library you linked to is definitely faster, it being SIMD and SSE2.

C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> with-env [RUSTFLAGS "-C target-cpu=native -Clinker-pluerror: with-env requires the block to run once the variable is set parameterun}
  ┌─ shell:1:1

1 │ with-env [RUSTFLAGS "-C target-cpu=native -Clinker-plugin-lto -Clinker=clang -Clink-arg=-fuse-ld=lld"]{ cargo bench --bench cont_run}
  │ ^^^^^^^^ requires the block to run once the variable is set parameter

C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> with-env [RUSTFLAGS "-C target-cpu=native -Clinker-plugin-lto -Clinker=clang -Clink-arg=-fuse-ld=lld"] {cargo bench --bench cont_run}
   Compiling autocfg v1.0.0
   Compiling getrandom v0.1.14
   Compiling cfg-if v0.1.10
   Compiling libc v0.2.72
   Compiling lazy_static v1.4.0
   Compiling winapi-x86_64-pc-windows-gnu v0.4.0
   Compiling maybe-uninit v2.0.0
   Compiling serde v1.0.114
error: linking with `clang` failed: exit code: 1
  |
  = note: "clang" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-Wl,-plugin-opt=O3" "-Wl,-plugin-opt=mcpu=skylake" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\winapi-x86_64-pc-windows-gnu-329a922918786afd\\build_script_build-329a922918786afd.build_script_build.ewy1n52d-cgu.0.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\winapi-x86_64-pc-windows-gnu-329a922918786afd\\build_script_build-329a922918786afd.exe" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\winapi-x86_64-pc-windows-gnu-329a922918786afd\\build_script_build-329a922918786afd.2wgox3bl2y6l1tj6.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,--start-group" "-Wl,-Bstatic" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-f6ddc2b51f56e49d.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-c8c699cf7a2259fe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-804b6e34a5071c77.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-5ee70c2d51217fc3.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace-d36beb702f78e641.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-63445e64b2a0bebe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-d389febb313758d8.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-fcd1e50248d40ede.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-84fc53a314348433.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1ad3f59fd06393e6.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-c50bc6448b31dcad.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-3d83751a0e1d450f.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-da31dbc665bd5a5d.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-lws2_32" "-luserenv" "-fuse-ld=lld" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: lld-link: warning: ignoring unknown argument '--nxcompat', did you mean '-nxcompat'
          lld-link: warning: ignoring unknown argument '-plugin-opt=O3'
          lld-link: warning: ignoring unknown argument '-plugin-opt=mcpu=skylake'
          lld-link: warning: ignoring unknown argument '--gc-sections'
          lld-link: warning: ignoring unknown argument '--start-group'
          lld-link: warning: ignoring unknown argument '-Bstatic'
          lld-link: warning: ignoring unknown argument '--end-group'
          lld-link: warning: ignoring unknown argument '-Bdynamic'
          lld-link: error: could not open 'mingwex.lib': no such file or directory
          lld-link: error: could not open 'mingw32.lib': no such file or directory
          lld-link: error: could not open 'gcc_eh.lib': no such file or directory
          lld-link: error: could not open ':libpthread.a.lib': no such file or directory
          lld-link: error: could not open 'gcc.lib': no such file or directory
          clang: error: linker command failed with exit code 1 (use -v to see invocation)


error: linking with `clang` failed: exit code: 1
  |
  = note: "clang" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-Wl,-plugin-opt=O3" "-Wl,-plugin-opt=mcpu=skylake" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\getrandom-b25af47b6dcb658c\\build_script_build-b25af47b6dcb658c.build_script_build.6xphws3v-cgu.0.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\getrandom-b25af47b6dcb658c\\build_script_build-b25af47b6dcb658c.exe" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\getrandom-b25af47b6dcb658c\\build_script_build-b25af47b6dcb658c.5gn51u3bqm3yh9rq.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,--start-group" "-Wl,-Bstatic" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-f6ddc2b51f56e49d.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-c8c699cf7a2259fe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-804b6e34a5071c77.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-5ee70c2d51217fc3.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace-d36beb702f78e641.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-63445e64b2a0bebe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-d389febb313758d8.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-fcd1e50248d40ede.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-84fc53a314348433.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1ad3f59fd06393e6.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-c50bc6448b31dcad.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-3d83751a0e1d450f.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-da31dbc665bd5a5d.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-lws2_32" "-luserenv" "-fuse-ld=lld" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: lld-link: warning: ignoring unknown argument '--nxcompat', did you mean '-nxcompat'
          lld-link: warning: ignoring unknown argument '-plugin-opt=O3'
          lld-link: warning: ignoring unknown argument '-plugin-opt=mcpu=skylake'
          lld-link: warning: ignoring unknown argument '--gc-sections'
          lld-link: warning: ignoring unknown argument '--start-group'
          lld-link: warning: ignoring unknown argument '-Bstatic'
          lld-link: warning: ignoring unknown argument '--end-group'
          lld-link: warning: ignoring unknown argument '-Bdynamic'
          lld-link: error: could not open 'mingwex.lib': no such file or directory
          lld-link: error: could not open 'mingw32.lib': no such file or directory
          lld-link: error: could not open 'gcc_eh.lib': no such file or directory
          lld-link: error: could not open ':libpthread.a.lib': no such file or directory
          lld-link: error: could not open 'gcc.lib': no such file or directory
          clang: error: linker command failed with exit code 1 (use -v to see invocation)


error: linking with `clang` failed: exit code: 1
  |
  = note: "clang" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-Wl,-plugin-opt=O3" "-Wl,-plugin-opt=mcpu=skylake" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\libc-ecd8077698df3908\\build_script_build-ecd8077698df3908.build_script_build.4rxkh3uq-cgu.0.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\libc-ecd8077698df3908\\build_script_build-ecd8077698df3908.exe" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\libc-ecd8077698df3908\\build_script_build-ecd8077698df3908.132mo5k1u5uxgtrb.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,--start-group" "-Wl,-Bstatic" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-f6ddc2b51f56e49d.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-c8c699cf7a2259fe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-804b6e34a5071c77.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-5ee70c2d51217fc3.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace-d36beb702f78e641.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-63445e64b2a0bebe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-d389febb313758d8.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-fcd1e50248d40ede.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-84fc53a314348433.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1ad3f59fd06393e6.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-c50bc6448b31dcad.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-3d83751a0e1d450f.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-da31dbc665bd5a5d.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-lws2_32" "-luserenv" "-fuse-ld=lld" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: lld-link: warning: ignoring unknown argument '--nxcompat', did you mean '-nxcompat'
          lld-link: warning: ignoring unknown argument '-plugin-opt=O3'
          lld-link: warning: ignoring unknown argument '-plugin-opt=mcpu=skylake'
          lld-link: warning: ignoring unknown argument '--gc-sections'
          lld-link: warning: ignoring unknown argument '--start-group'
          lld-link: warning: ignoring unknown argument '-Bstatic'
          lld-link: warning: ignoring unknown argument '--end-group'
          lld-link: warning: ignoring unknown argument '-Bdynamic'
          lld-link: error: could not open 'mingwex.lib': no such file or directory
          lld-link: error: could not open 'mingw32.lib': no such file or directory
          lld-link: error: could not open 'gcc_eh.lib': no such file or directory
          lld-link: error: could not open ':libpthread.a.lib': no such file or directory
          lld-link: error: could not open 'gcc.lib': no such file or directory
          clang: error: linker command failed with exit code 1 (use -v to see invocation)


error: aborting due to previous error

error: aborting due to previous error

error: aborting due to previous error

error: could not compile `getrandom`.

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: linking with `clang` failed: exit code: 1
  |
  = note: "clang" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-Wl,-plugin-opt=O3" "-Wl,-plugin-opt=mcpu=skylake" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\maybe-uninit-bba1a7a8011dad67\\build_script_build-bba1a7a8011dad67.build_script_build.568t1tx3-cgu.0.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\maybe-uninit-bba1a7a8011dad67\\build_script_build-bba1a7a8011dad67.exe" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\maybe-uninit-bba1a7a8011dad67\\build_script_build-bba1a7a8011dad67.24otgyv0bnfmzkd.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,--start-group" "-Wl,-Bstatic" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-f6ddc2b51f56e49d.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-c8c699cf7a2259fe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-804b6e34a5071c77.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-5ee70c2d51217fc3.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace-d36beb702f78e641.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-63445e64b2a0bebe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-d389febb313758d8.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-fcd1e50248d40ede.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-84fc53a314348433.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1ad3f59fd06393e6.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-c50bc6448b31dcad.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-3d83751a0e1d450f.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-da31dbc665bd5a5d.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-lws2_32" "-luserenv" "-fuse-ld=lld" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: lld-link: warning: ignoring unknown argument '--nxcompat', did you mean '-nxcompat'
          lld-link: warning: ignoring unknown argument '-plugin-opt=O3'
          lld-link: warning: ignoring unknown argument '-plugin-opt=mcpu=skylake'
          lld-link: warning: ignoring unknown argument '--gc-sections'
          lld-link: warning: ignoring unknown argument '--start-group'
          lld-link: warning: ignoring unknown argument '-Bstatic'
          lld-link: warning: ignoring unknown argument '--end-group'
          lld-link: warning: ignoring unknown argument '-Bdynamic'
          lld-link: error: could not open 'mingwex.lib': no such file or directory
          lld-link: error: could not open 'mingw32.lib': no such file or directory
          lld-link: error: could not open 'gcc_eh.lib': no such file or directory
          lld-link: error: could not open ':libpthread.a.lib': no such file or directory
          lld-link: error: could not open 'gcc.lib': no such file or directory
          clang: error: linker command failed with exit code 1 (use -v to see invocation)


error: aborting due to previous error

error: linking with `clang` failed: exit code: 1
  |
  = note: "clang" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-Wl,-plugin-opt=O3" "-Wl,-plugin-opt=mcpu=skylake" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\serde-def47282002b7809\\build_script_build-def47282002b7809.build_script_build.4u0y7q44-cgu.0.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\serde-def47282002b7809\\build_script_build-def47282002b7809.exe" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\serde-def47282002b7809\\build_script_build-def47282002b7809.49c2y0gy1fro7bwi.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,--start-group" "-Wl,-Bstatic" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-f6ddc2b51f56e49d.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-c8c699cf7a2259fe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-804b6e34a5071c77.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-5ee70c2d51217fc3.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace-d36beb702f78e641.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-63445e64b2a0bebe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-d389febb313758d8.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-fcd1e50248d40ede.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-84fc53a314348433.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1ad3f59fd06393e6.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-c50bc6448b31dcad.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-3d83751a0e1d450f.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-da31dbc665bd5a5d.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-lws2_32" "-luserenv" "-fuse-ld=lld" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: lld-link: warning: ignoring unknown argument '--nxcompat', did you mean '-nxcompat'
          lld-link: warning: ignoring unknown argument '-plugin-opt=O3'
          lld-link: warning: ignoring unknown argument '-plugin-opt=mcpu=skylake'
          lld-link: warning: ignoring unknown argument '--gc-sections'
          lld-link: warning: ignoring unknown argument '--start-group'
          lld-link: warning: ignoring unknown argument '-Bstatic'
          lld-link: warning: ignoring unknown argument '--end-group'
          lld-link: warning: ignoring unknown argument '-Bdynamic'
          lld-link: error: could not open 'mingwex.lib': no such file or directory
          lld-link: error: could not open 'mingw32.lib': no such file or directory
          lld-link: error: could not open 'gcc_eh.lib': no such file or directory
          lld-link: error: could not open ':libpthread.a.lib': no such file or directory
          lld-link: error: could not open 'gcc.lib': no such file or directory
          clang: error: linker command failed with exit code 1 (use -v to see invocation)


error: aborting due to previous error

error: build failed
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> cargo bench --bench cont_run
   Compiling autocfg v1.0.0
   Compiling getrandom v0.1.14
   Compiling cfg-if v0.1.10
   Compiling libc v0.2.72
   Compiling lazy_static v1.4.0
   Compiling winapi-x86_64-pc-windows-gnu v0.4.0
   Compiling serde v1.0.114
   Compiling maybe-uninit v2.0.0
   Compiling winapi v0.3.9
   Compiling semver-parser v0.7.0
   Compiling memchr v2.3.3
   Compiling ryu v1.0.5
   Compiling byteorder v1.3.4
   Compiling proc-macro2 v1.0.18
   Compiling cc v1.0.58
   Compiling scopeguard v1.1.0
   Compiling rayon-core v1.7.1
   Compiling ppv-lite86 v0.2.8
   Compiling unicode-xid v0.2.1
   Compiling either v1.5.3
   Compiling itoa v0.4.6
   Compiling syn v1.0.34
   Compiling bitflags v1.2.1
   Compiling serde_json v1.0.56
   Compiling serde_derive v1.0.114
   Compiling unicode-width v0.1.8
   Compiling half v1.6.0
   Compiling regex-syntax v0.6.18
   Compiling oorandom v11.1.2
   Compiling crossbeam-utils v0.7.2
   Compiling memoffset v0.5.5
   Compiling crossbeam-epoch v0.8.2
   Compiling num-traits v0.2.12
   Compiling rayon v1.3.1
   Compiling semver v0.9.0
   Compiling itertools v0.9.0
   Compiling textwrap v0.11.0
   Compiling rand_core v0.5.1
   Compiling rustc_version v0.2.3
   Compiling num_cpus v1.13.0
   Compiling csv-core v0.1.10
   Compiling regex-automata v0.1.9
   Compiling clap v2.33.1
   Compiling rand_pcg v0.2.1
   Compiling rand_chacha v0.2.2
   Compiling agent_based_trading_julia v0.1.0 (C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2)
   Compiling cast v0.2.3
   Compiling quote v1.0.7
   Compiling crossbeam-queue v0.2.3
   Compiling bstr v0.2.13
   Compiling serde_cbor v0.11.1
   Compiling regex v1.3.9
   Compiling plotters v0.2.15
   Compiling rand v0.7.3
   Compiling winapi-util v0.1.5
   Compiling atty v0.2.14
   Compiling crossbeam-deque v0.7.3
   Compiling csv v1.1.3
   Compiling tinytemplate v1.1.0
   Compiling rand_distr v0.2.2
   Compiling same-file v1.0.6
   Compiling criterion-plot v0.4.3
   Compiling walkdir v2.3.1
warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\build\agent_based_trading_julia-c1d41dcaf9eb64b3\out\vendor/MT/dSFMT.o: plugin needed to handle lto object
warning: unused imports: `Duration`, `Instant`
 --> src\lib.rs:4:17
  |
4 | use std::time::{Duration, Instant};
  |                 ^^^^^^^^  ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: 1 warning emitted

warning: unused imports: `Duration`, `Instant`
 --> src\lib.rs:4:17
  |
4 | use std::time::{Duration, Instant};
  |                 ^^^^^^^^  ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: 1 warning emitted

warning: unused imports: `FRNG`, `dSFMT`
 --> src\main.rs:1:43
  |
1 | use agent_based_trading_julia::{cont_run, FRNG, dSFMT};
  |                                           ^^^^  ^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.agent_based_trading_julia-11ba40c1ad7e42c1.agent_based_trading_julia.7vqtulll-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.agent_based_trading_julia.9ljpoiz2-cgu.0.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.alloc-c50bc6448b31dcad.alloc.1utll8sy-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.backtrace-d36beb702f78e641.backtrace.e7apnlc7-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.backtrace_sys-63445e64b2a0bebe.backtrace_sys.dcci9q8u-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.cfg_if-24f36a685f9e75c7.cfg_if.5qp9vxq5-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.cfg_if-84fc53a314348433.cfg_if.44o9i9t0-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.core-da31dbc665bd5a5d.core.e3v0s7q9-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.getrandom-5b4767b9568e5eae.getrandom.f02rfax0-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.hashbrown-804b6e34a5071c77.hashbrown.8byt5pax-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.libc-1ad3f59fd06393e6.libc.2t5eke9a-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.libc-59a51f89abd2689b.libc.7dprwx50-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.panic_abort-c8302c1b3b739e22.panic_abort.12nubbff-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.ppv_lite86-8c6e667628c3f227.ppv_lite86.3stzo69y-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand-cb04f6e99f1a99fe.rand.8sfr3i6n-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand_chacha-e6c66207078622ac.rand_chacha.d8z9mf33-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand_core-ab4922ea0352f31d.rand_core.2j02y8zi-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand_distr-0804efdc8fc37b81.rand_distr.aq5mlksg-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand_pcg-6e8b6d8f8290d8a7.rand_pcg.177bwclj-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rustc_demangle-d389febb313758d8.rustc_demangle.73vqpawc-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rustc_std_workspace_alloc-5ee70c2d51217fc3.rustc_std_workspace_alloc.25rivnnb-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rustc_std_workspace_core-3d83751a0e1d450f.rustc_std_workspace_core.azg8rcbc-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.std-f6ddc2b51f56e49d.std.bhzgpfb1-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.unwind-fcd1e50248d40ede.unwind.n0lj41ok-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.wr94we8n35wgmyt.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.exe" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\agent_based_trading_julia-c1d41dcaf9eb64b3\\out" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\tpb398\\AppData\\Local\\Temp\\rustc4lkUsw\\libagent_based_trading_julia-11ba40c1ad7e42c1.rlib" "-Wl,--start-group" "C:\\Users\\tpb398\\AppData\\Local\\Temp\\rustc4lkUsw\\libbacktrace_sys-63445e64b2a0bebe.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-ladvapi32" "-lws2_32" "-luserenv" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\agent_based_trading_julia-a79965b3a9b14ebd.agent_based_trading_julia-11ba40c1ad7e42c1.agent_based_trading_julia.7vqtulll-cgu.0.rcgu.o.rcgu.o:agent_based_tradin:(.text+0x28c): undefined reference to `dsfmt_init_gen_rand'
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\agent_based_trading_julia-a79965b3a9b14ebd.agent_based_trading_julia-11ba40c1ad7e42c1.agent_based_trading_julia.7vqtulll-cgu.0.rcgu.o.rcgu.o:agent_based_tradin:(.text+0xaec): undefined reference to `dsfmt_fill_array_open_close'


error: aborting due to previous error; 1 warning emitted

The following warnings were emitted during compilation:

warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\build\agent_based_trading_julia-c1d41dcaf9eb64b3\out\vendor/MT/dSFMT.o: plugin needed to handle lto object

error: could not compile `agent_based_trading_julia`.

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)>
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> cargo bench --bench cont_run --verbose
       Fresh autocfg v1.0.0
       Fresh lazy_static v1.4.0
       Fresh cfg-if v0.1.10
       Fresh semver-parser v0.7.0
       Fresh scopeguard v1.1.0
       Fresh cc v1.0.58
       Fresh unicode-xid v0.2.1
       Fresh ppv-lite86 v0.2.8
       Fresh itoa v0.4.6
       Fresh either v1.5.3
       Fresh unicode-width v0.1.8
       Fresh regex-syntax v0.6.18
       Fresh half v1.6.0
       Fresh oorandom v11.1.2
       Fresh semver v0.9.0
       Fresh textwrap v0.11.0
       Fresh itertools v0.9.0
       Fresh regex v1.3.9
       Fresh getrandom v0.1.14
       Fresh libc v0.2.72
       Fresh maybe-uninit v2.0.0
       Fresh serde v1.0.114
       Fresh winapi-x86_64-pc-windows-gnu v0.4.0
       Fresh rustc_version v0.2.3
       Fresh memchr v2.3.3
       Fresh ryu v1.0.5
       Fresh proc-macro2 v1.0.18
       Fresh byteorder v1.3.4
       Fresh bitflags v1.2.1
       Fresh crossbeam-utils v0.7.2
warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\build\agent_based_trading_julia-c1d41dcaf9eb64b3\out\vendor/MT/dSFMT.o: plugin needed to handle lto object
       Fresh rand_core v0.5.1
       Fresh num_cpus v1.13.0
       Fresh memoffset v0.5.5
       Fresh num-traits v0.2.12
       Fresh serde_cbor v0.11.1
       Fresh winapi v0.3.9
       Fresh quote v1.0.7
       Fresh serde_json v1.0.56
       Fresh csv-core v0.1.10
       Fresh regex-automata v0.1.9
       Fresh clap v2.33.1
       Fresh crossbeam-epoch v0.8.2
       Fresh rand_pcg v0.2.1
       Fresh crossbeam-queue v0.2.3
       Fresh rand_chacha v0.2.2
       Fresh plotters v0.2.15
       Fresh winapi-util v0.1.5
       Fresh syn v1.0.34
       Fresh atty v0.2.14
       Fresh tinytemplate v1.1.0
       Fresh bstr v0.2.13
       Fresh crossbeam-deque v0.7.3
       Fresh rand v0.7.3
       Fresh cast v0.2.3
       Fresh same-file v1.0.6
       Fresh serde_derive v1.0.114
       Fresh rayon-core v1.7.1
       Fresh csv v1.1.3
       Fresh rand_distr v0.2.2
       Fresh walkdir v2.3.1
       Fresh criterion-plot v0.4.3
       Fresh rayon v1.3.1
warning: unused imports: `Duration`, `Instant`
 --> src\lib.rs:4:17
  |
4 | use std::time::{Duration, Instant};
  |                 ^^^^^^^^  ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: 1 warning emitted

   Compiling agent_based_trading_julia v0.1.0 (C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2)
warning: unused imports: `Duration`, `Instant`
 --> src\lib.rs:4:17
  |
4 | use std::time::{Duration, Instant};
  |                 ^^^^^^^^  ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: 1 warning emitted

   Compiling criterion v0.3.3
     Running `C:\Users\tpb398\.cargo\bin\sccache rustc --crate-name agent_based_trading_julia --edition=2018 src\main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C panic=abort -C lto=thin -C codegen-units=1 -C metadata=a79965b3a9b14ebd -C extra-filename=-a79965b3a9b14ebd --out-dir C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps -L dependency=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps --extern agent_based_trading_julia=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libagent_based_trading_julia-11ba40c1ad7e42c1.rlib --extern libc=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\liblibc-59a51f89abd2689b.rlib --extern rand=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\librand-cb04f6e99f1a99fe.rlib --extern rand_distr=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\librand_distr-0804efdc8fc37b81.rlib -Ctarget-cpu=native -L native=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\build\agent_based_trading_julia-c1d41dcaf9eb64b3\out`
     Running `C:\Users\tpb398\.cargo\bin\sccache rustc --crate-name criterion --edition=2018 C:\Users\tpb398\.cargo\registry\src\github.com-1ecc6299db9ec823\criterion-0.3.3\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -Cembed-bitcode=no -C codegen-units=1 --cfg "feature=\"default\"" -C metadata=e63313c4da433ba4 -C extra-filename=-e63313c4da433ba4 --out-dir C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps -L dependency=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps --extern atty=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libatty-354edc848e6673f0.rmeta --extern cast=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libcast-f20e66d43354430e.rmeta --extern clap=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libclap-d0e014ffdb16b7f4.rmeta --extern criterion_plot=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libcriterion_plot-3287b1b3763a2cd2.rmeta --extern csv=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libcsv-83e62ef763180835.rmeta --extern itertools=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libitertools-40c075a458f33de8.rmeta --extern lazy_static=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\liblazy_static-429296a19bfbfc70.rmeta --extern num_traits=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libnum_traits-975fd3ed50905b91.rmeta --extern oorandom=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\liboorandom-4d92649a17787323.rmeta --extern plotters=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libplotters-c341c783479b3a59.rmeta --extern rayon=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\librayon-0cf55d3b91f695c4.rmeta --extern regex=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libregex-3aafce1530780c9c.rmeta --extern serde=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libserde-1c69515b38514fa5.rmeta --extern serde_cbor=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libserde_cbor-f4e3eec68e9d4585.rmeta --extern serde_derive=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\serde_derive-305e2d9df7528bf3.dll --extern serde_json=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libserde_json-a826ed87191f1b7e.rmeta --extern tinytemplate=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libtinytemplate-8889efa780a4f3b1.rmeta --extern walkdir=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libwalkdir-93b68d717b27a196.rmeta --cap-lints allow -Ctarget-cpu=native -L native=C:\Users\tpb398\.cargo\registry\src\github.com-1ecc6299db9ec823\winapi-x86_64-pc-windows-gnu-0.4.0\lib`
warning: unused imports: `FRNG`, `dSFMT`
 --> src\main.rs:1:43
  |
1 | use agent_based_trading_julia::{cont_run, FRNG, dSFMT};
  |                                           ^^^^  ^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.agent_based_trading_julia-11ba40c1ad7e42c1.agent_based_trading_julia.7vqtulll-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.agent_based_trading_julia.9ljpoiz2-cgu.0.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.alloc-c50bc6448b31dcad.alloc.1utll8sy-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.backtrace-d36beb702f78e641.backtrace.e7apnlc7-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.backtrace_sys-63445e64b2a0bebe.backtrace_sys.dcci9q8u-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.cfg_if-24f36a685f9e75c7.cfg_if.5qp9vxq5-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.cfg_if-84fc53a314348433.cfg_if.44o9i9t0-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.core-da31dbc665bd5a5d.core.e3v0s7q9-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.getrandom-5b4767b9568e5eae.getrandom.f02rfax0-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.hashbrown-804b6e34a5071c77.hashbrown.8byt5pax-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.libc-1ad3f59fd06393e6.libc.2t5eke9a-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.libc-59a51f89abd2689b.libc.7dprwx50-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.panic_abort-c8302c1b3b739e22.panic_abort.12nubbff-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.ppv_lite86-8c6e667628c3f227.ppv_lite86.3stzo69y-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand-cb04f6e99f1a99fe.rand.8sfr3i6n-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand_chacha-e6c66207078622ac.rand_chacha.d8z9mf33-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand_core-ab4922ea0352f31d.rand_core.2j02y8zi-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand_distr-0804efdc8fc37b81.rand_distr.aq5mlksg-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rand_pcg-6e8b6d8f8290d8a7.rand_pcg.177bwclj-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rustc_demangle-d389febb313758d8.rustc_demangle.73vqpawc-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rustc_std_workspace_alloc-5ee70c2d51217fc3.rustc_std_workspace_alloc.25rivnnb-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.rustc_std_workspace_core-3d83751a0e1d450f.rustc_std_workspace_core.azg8rcbc-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.std-f6ddc2b51f56e49d.std.bhzgpfb1-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.unwind-fcd1e50248d40ede.unwind.n0lj41ok-cgu.0.rcgu.o.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.wr94we8n35wgmyt.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps\\agent_based_trading_julia-a79965b3a9b14ebd.exe" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\deps" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\release\\build\\agent_based_trading_julia-c1d41dcaf9eb64b3\\out" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\tpb398\\AppData\\Local\\Temp\\rustckONgDh\\libagent_based_trading_julia-11ba40c1ad7e42c1.rlib" "-Wl,--start-group" "C:\\Users\\tpb398\\AppData\\Local\\Temp\\rustckONgDh\\libbacktrace_sys-63445e64b2a0bebe.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-ladvapi32" "-lws2_32" "-luserenv" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\agent_based_trading_julia-a79965b3a9b14ebd.agent_based_trading_julia-11ba40c1ad7e42c1.agent_based_trading_julia.7vqtulll-cgu.0.rcgu.o.rcgu.o:agent_based_tradin:(.text+0x28c): undefined reference to `dsfmt_init_gen_rand'
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\agent_based_trading_julia-a79965b3a9b14ebd.agent_based_trading_julia-11ba40c1ad7e42c1.agent_based_trading_julia.7vqtulll-cgu.0.rcgu.o.rcgu.o:agent_based_tradin:(.text+0xaec): undefined reference to `dsfmt_fill_array_open_close'


error: aborting due to previous error; 1 warning emitted

The following warnings were emitted during compilation:

warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\build\agent_based_trading_julia-c1d41dcaf9eb64b3\out\vendor/MT/dSFMT.o: plugin needed to handle lto object

error: could not compile `agent_based_trading_julia`.

Caused by:
  process didn't exit successfully: `C:\Users\tpb398\.cargo\bin\sccache rustc --crate-name agent_based_trading_julia --edition=2018 src\main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C panic=abort -C lto=thin -C codegen-units=1 -C metadata=a79965b3a9b14ebd -C extra-filename=-a79965b3a9b14ebd --out-dir C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps -L dependency=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps --extern agent_based_trading_julia=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\libagent_based_trading_julia-11ba40c1ad7e42c1.rlib --extern libc=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\liblibc-59a51f89abd2689b.rlib --extern rand=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\librand-cb04f6e99f1a99fe.rlib --extern rand_distr=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\deps\librand_distr-0804efdc8fc37b81.rlib -Ctarget-cpu=native -L native=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\release\build\agent_based_trading_julia-c1d41dcaf9eb64b3\out` (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: build failed
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> cargo build
   Compiling getrandom v0.1.14
   Compiling cfg-if v0.1.10
   Compiling ppv-lite86 v0.2.8
   Compiling libc v0.2.72
   Compiling cc v1.0.58
   Compiling agent_based_trading_julia v0.1.0 (C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2)
   Compiling rand_core v0.5.1
   Compiling rand_chacha v0.2.2
   Compiling rand_pcg v0.2.1
   Compiling rand v0.7.3
   Compiling rand_distr v0.2.2
warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-c7c971513a966800\out\vendor/MT/dSFMT.o: plugin needed to handle lto object
warning: unused imports: `Duration`, `Instant`
 --> src\lib.rs:4:17
  |
4 | use std::time::{Duration, Instant};
  |                 ^^^^^^^^  ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: 1 warning emitted

warning: unused imports: `FRNG`, `dSFMT`
 --> src\main.rs:1:43
  |
1 | use agent_based_trading_julia::{cont_run, FRNG, dSFMT};
  |                                           ^^^^  ^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.1fhn0f8379rtuf93.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.1hr3x72fi4y3hrmi.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.1mrtrtt13tbmv7qj.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.1qx4qwpkbl8zo7c9.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.2l04o6kn3n2c2xcw.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.30ybxrxakdtd7w6h.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.3jijctav0323fsj.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.4294pw7a652f267e.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.4c32cn7e8rj5g0dh.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.4uw3vc4rni68tbri.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.5daz62fuq78zg3h5.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.6rg2qy3aacdu79n.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.g9giux19sjuh4lh.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.l5r579ea6y3znu1.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.exe" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.3vlt8946o914zmb6.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\build\\agent_based_trading_julia-c7c971513a966800\\out" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libagent_based_trading_julia-48e6937695352531.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_distr-4a08c73acf9ee9d5.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\liblibc-8cca0ffda9606217.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand-81d3010c7c7d34aa.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_pcg-d1e7bcf4ad3b9213.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_chacha-8d4392c2b228585b.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libppv_lite86-58a373ff605a367d.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_core-18ddcc3398aab439.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libgetrandom-93e2be4a18850530.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libcfg_if-99f774c48669d5d6.rlib" "-Wl,--start-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-f6ddc2b51f56e49d.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-c8c699cf7a2259fe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-804b6e34a5071c77.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-5ee70c2d51217fc3.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace-d36beb702f78e641.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-63445e64b2a0bebe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-d389febb313758d8.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-fcd1e50248d40ede.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-84fc53a314348433.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1ad3f59fd06393e6.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-c50bc6448b31dcad.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-3d83751a0e1d450f.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-da31dbc665bd5a5d.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-ladvapi32" "-lws2_32" "-luserenv" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\libagent_based_trading_julia-48e6937695352531.rlib(agent_based_trading_julia-48e6937695352531.4dh1dx7wd07m7fmk.rcgu.o): In function `agent_based_trading_julia::dSFMT::new::hec55ed4cec675ffc':
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2/src/lib.rs:49: undefined reference to `dsfmt_init_gen_rand'
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\libagent_based_trading_julia-48e6937695352531.rlib(agent_based_trading_julia-48e6937695352531.4dh1dx7wd07m7fmk.rcgu.o): In function `agent_based_trading_julia::dSFMT::fill::h7daccc70c83c448c':
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2/src/lib.rs:56: undefined reference to `dsfmt_fill_array_open_close'


error: aborting due to previous error; 1 warning emitted

The following warnings were emitted during compilation:

warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-c7c971513a966800\out\vendor/MT/dSFMT.o: plugin needed to handle lto object

error: could not compile `agent_based_trading_julia`.

To learn more, run the command again with --verbose.
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> cargo build --v
error: Found argument '--v' which wasn't expected, or isn't valid in this context

USAGE:
    cargo.exe build [OPTIONS]

For more information try --help
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> cargo build --help
cargo.exe-build
Compile a local package and all of its dependencies

USAGE:
    cargo.exe build [OPTIONS]

OPTIONS:
    -q, --quiet                                      No output printed to stdout
    -p, --package <SPEC>...                          Package to build (see `cargo help pkgid`)
        --all                                        Alias for --workspace (deprecated)
        --workspace                                  Build all packages in the workspace
        --exclude <SPEC>...                          Exclude packages from the build
    -j, --jobs <N>                                   Number of parallel jobs, defaults to # of CPUs
        --lib                                        Build only this package's library
        --bin <NAME>...                              Build only the specified binary
        --bins                                       Build all binaries
        --example <NAME>...                          Build only the specified example
        --examples                                   Build all examples
        --test <NAME>...                             Build only the specified test target
        --tests                                      Build all tests
        --bench <NAME>...                            Build only the specified bench target
        --benches                                    Build all benches
        --all-targets                                Build all targets
        --release                                    Build artifacts in release mode, with optimizations
        --profile <PROFILE-NAME>                     Build artifacts with the specified profile
        --features <FEATURES>...                     Space or comma separated list of features to activate
        --all-features                               Activate all available features
        --no-default-features                        Do not activate the `default` feature
        --target <Build for the target triple>...    TRIPLE
        --target-dir <DIRECTORY>                     Directory for all generated artifacts
        --out-dir <PATH>                             Copy final artifacts to this directory (unstable)
        --manifest-path <PATH>                       Path to Cargo.toml
        --message-format <FMT>...                    Error format
        --build-plan                                 Output the build plan in JSON (unstable)
    -v, --verbose                                    Use verbose output (-vv very verbose/build.rs output)
        --color <WHEN>                               Coloring: auto, always, never
        --frozen                                     Require Cargo.lock and cache are up to date
        --locked                                     Require Cargo.lock is up to date
        --offline                                    Run without accessing the network
    -Z <FLAG>...
            Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details

    -h, --help                                       Prints help information

All packages in the workspace are built if the `--workspace` flag is supplied. The
`--workspace` flag is automatically assumed for a virtual manifest.
Note that `--exclude` has to be specified in conjunction with the `--workspace` flag.

Compilation can be configured via the use of profiles which are configured in
the manifest. The default profile for this command is `dev`, but passing
the --release flag will use the `release` profile instead.
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> cargo build -vv
       Fresh cfg-if v0.1.10
       Fresh ppv-lite86 v0.2.8
       Fresh cc v1.0.58
       Fresh getrandom v0.1.14
       Fresh libc v0.2.72
       Fresh rand_core v0.5.1
warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-c7c971513a966800\out\vendor/MT/dSFMT.o: plugin needed to handle lto object
       Fresh rand_chacha v0.2.2
       Fresh rand_pcg v0.2.1
       Fresh rand v0.7.3
       Fresh rand_distr v0.2.2
warning: unused imports: `Duration`, `Instant`
 --> src\lib.rs:4:17
  |
4 | use std::time::{Duration, Instant};
  |                 ^^^^^^^^  ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: 1 warning emitted

   Compiling agent_based_trading_julia v0.1.0 (C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2)
     Running `set CARGO=\\?\C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\bin\cargo.exe&& set CARGO_BIN_NAME=agent_based_trading_julia&& set CARGO_CRATE_NAME=agent_based_trading_julia&& set CARGO_MANIFEST_DIR=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2&& set CARGO_PKG_AUTHORS="cgmossa <cgmossa@gmail.com>"&& set CARGO_PKG_DESCRIPTION=&& set CARGO_PKG_HOMEPAGE=&& set CARGO_PKG_LICENSE=&& set CARGO_PKG_LICENSE_FILE=&& set CARGO_PKG_NAME=agent_based_trading_julia&& set CARGO_PKG_REPOSITORY=&& set CARGO_PKG_VERSION=0.1.0&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MINOR=1&& set CARGO_PKG_VERSION_PATCH=0&& set CARGO_PKG_VERSION_PRE=&& set OUT_DIR=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-c7c971513a966800\out&& set PATH="C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps;C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\bin;C:\Users\tpb398\.cargo\bin;C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Users\tpb398\AppData\Local\JuliaPro-1.4.2-1\Julia-1.4.2\bin;C:\Users\tpb398\Downloads\cygwin64\bin;C:\Program Files\ImageMagick-7.0.9-Q16;C:\tools\miniconda3;C:\tools\miniconda3\Library\mingw-w64\bin;C:\tools\miniconda3\Library\usr\bin;C:\tools\miniconda3\Library\bin;C:\tools\miniconda3\Scripts;C:\Perl64\site\bin;C:\Perl64\bin;C:\Rtools\bin;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\PDFtk\bin\;C:\Program Files\SourceGear\Common\DiffMerge\;C:\Program Files\LLVM\bin;C:\Program Files\TortoiseHg\;C:\Program Files\CMake\bin;C:\Program Files\nodejs\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\Program Files (x86)\Yarn\bin\;C:\HashiCorp\Vagrant\bin;C:\Program Files\Java\jre7\bin;C:\Program Files\gnuplot\bin;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft Office\Office16;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\Git\cmd;C:\Users\tpb398\AppData\Local\JuliaPro-1.4.2-1\Julia-1.4.2\bin;C:\Users\tpb398\Downloads\cygwin64\bin;C:\Users\tpb398\scoop\shims;C:\Users\tpb398\.cargo\bin;C:\Users\tpb398\AppData\Local\Microsoft\WindowsApps;C:\Users\tpb398\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1.3\bin;C:\tools\msys64;C:\Users\tpb398\AppData\Local\GitHubDesktop\bin;C:\Program Files\Mercurial\;C:\Users\tpb398\AppData\Roaming\npm;C:\Users\tpb398\AppData\Local\Yarn\bin;C:\Program Files\Oracle\VirtualBox;C:\bin\scala-2.11.4\bin;C:\Program Files\JetBrains\CLion 2019.3.3\bin;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.2\bin;;C:\Users\tpb398\AppData\Roaming\cabal\bin;C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.8.2\bin;C:\Users\tpb398\AppData\Roaming\local\bin;C:\Program Files\GIMP 2\bin;C:\Program Files (x86)\Microsoft Office\Office16;C:\Users\tpb398\AppData\Local\Pandoc\;"&& C:\Users\tpb398\.cargo\bin\sccache rustc --crate-name agent_based_trading_julia --edition=2018 src\main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=45e6f354fab7cdca -C extra-filename=-45e6f354fab7cdca --out-dir C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps -C incremental=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\incremental -L dependency=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps --extern agent_based_trading_julia=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\libagent_based_trading_julia-48e6937695352531.rlib --extern libc=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\liblibc-8cca0ffda9606217.rlib --extern rand=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\librand-81d3010c7c7d34aa.rlib --extern rand_distr=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\librand_distr-4a08c73acf9ee9d5.rlib -Ctarget-cpu=native -L native=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-c7c971513a966800\out`
warning: unused imports: `FRNG`, `dSFMT`
 --> src\main.rs:1:43
  |
1 | use agent_based_trading_julia::{cont_run, FRNG, dSFMT};
  |                                           ^^^^  ^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-m64" "-nostartfiles" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.1fhn0f8379rtuf93.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.1hr3x72fi4y3hrmi.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.1mrtrtt13tbmv7qj.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.1qx4qwpkbl8zo7c9.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.2l04o6kn3n2c2xcw.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.30ybxrxakdtd7w6h.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.3jijctav0323fsj.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.4294pw7a652f267e.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.4c32cn7e8rj5g0dh.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.4uw3vc4rni68tbri.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.5daz62fuq78zg3h5.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.6rg2qy3aacdu79n.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.g9giux19sjuh4lh.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.l5r579ea6y3znu1.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.exe" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-45e6f354fab7cdca.3vlt8946o914zmb6.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\build\\agent_based_trading_julia-c7c971513a966800\\out" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libagent_based_trading_julia-48e6937695352531.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_distr-4a08c73acf9ee9d5.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\liblibc-8cca0ffda9606217.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand-81d3010c7c7d34aa.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_pcg-d1e7bcf4ad3b9213.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_chacha-8d4392c2b228585b.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libppv_lite86-58a373ff605a367d.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_core-18ddcc3398aab439.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libgetrandom-93e2be4a18850530.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libcfg_if-99f774c48669d5d6.rlib" "-Wl,--start-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-f6ddc2b51f56e49d.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-c8c699cf7a2259fe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-804b6e34a5071c77.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-5ee70c2d51217fc3.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace-d36beb702f78e641.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-63445e64b2a0bebe.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-d389febb313758d8.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-fcd1e50248d40ede.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-84fc53a314348433.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-1ad3f59fd06393e6.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-c50bc6448b31dcad.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-3d83751a0e1d450f.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-da31dbc665bd5a5d.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-f50ccdc02ac3f2e7.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-ladvapi32" "-lws2_32" "-luserenv" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\libagent_based_trading_julia-48e6937695352531.rlib(agent_based_trading_julia-48e6937695352531.4dh1dx7wd07m7fmk.rcgu.o): In function `agent_based_trading_julia::dSFMT::new::hec55ed4cec675ffc':
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2/src/lib.rs:49: undefined reference to `dsfmt_init_gen_rand'
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\libagent_based_trading_julia-48e6937695352531.rlib(agent_based_trading_julia-48e6937695352531.4dh1dx7wd07m7fmk.rcgu.o): In function `agent_based_trading_julia::dSFMT::fill::h7daccc70c83c448c':
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2/src/lib.rs:56: undefined reference to `dsfmt_fill_array_open_close'


error: aborting due to previous error; 1 warning emitted

The following warnings were emitted during compilation:

warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-c7c971513a966800\out\vendor/MT/dSFMT.o: plugin needed to handle lto object

error: could not compile `agent_based_trading_julia`.

Caused by:
  process didn't exit successfully: `set CARGO=\\?\C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\bin\cargo.exe&& set CARGO_BIN_NAME=agent_based_trading_julia&& set CARGO_CRATE_NAME=agent_based_trading_julia&& set CARGO_MANIFEST_DIR=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2&& set CARGO_PKG_AUTHORS="cgmossa <cgmossa@gmail.com>"&& set CARGO_PKG_DESCRIPTION=&& set CARGO_PKG_HOMEPAGE=&& set CARGO_PKG_LICENSE=&& set CARGO_PKG_LICENSE_FILE=&& set CARGO_PKG_NAME=agent_based_trading_julia&& set CARGO_PKG_REPOSITORY=&& set CARGO_PKG_VERSION=0.1.0&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MINOR=1&& set CARGO_PKG_VERSION_PATCH=0&& set CARGO_PKG_VERSION_PRE=&& set OUT_DIR=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-c7c971513a966800\out&& set PATH="C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps;C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\bin;C:\Users\tpb398\.cargo\bin;C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-gnu\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Users\tpb398\AppData\Local\JuliaPro-1.4.2-1\Julia-1.4.2\bin;C:\Users\tpb398\Downloads\cygwin64\bin;C:\Program Files\ImageMagick-7.0.9-Q16;C:\tools\miniconda3;C:\tools\miniconda3\Library\mingw-w64\bin;C:\tools\miniconda3\Library\usr\bin;C:\tools\miniconda3\Library\bin;C:\tools\miniconda3\Scripts;C:\Perl64\site\bin;C:\Perl64\bin;C:\Rtools\bin;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\PDFtk\bin\;C:\Program Files\SourceGear\Common\DiffMerge\;C:\Program Files\LLVM\bin;C:\Program Files\TortoiseHg\;C:\Program Files\CMake\bin;C:\Program Files\nodejs\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\Program Files (x86)\Yarn\bin\;C:\HashiCorp\Vagrant\bin;C:\Program Files\Java\jre7\bin;C:\Program Files\gnuplot\bin;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft Office\Office16;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\Git\cmd;C:\Users\tpb398\AppData\Local\JuliaPro-1.4.2-1\Julia-1.4.2\bin;C:\Users\tpb398\Downloads\cygwin64\bin;C:\Users\tpb398\scoop\shims;C:\Users\tpb398\.cargo\bin;C:\Users\tpb398\AppData\Local\Microsoft\WindowsApps;C:\Users\tpb398\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1.3\bin;C:\tools\msys64;C:\Users\tpb398\AppData\Local\GitHubDesktop\bin;C:\Program Files\Mercurial\;C:\Users\tpb398\AppData\Roaming\npm;C:\Users\tpb398\AppData\Local\Yarn\bin;C:\Program Files\Oracle\VirtualBox;C:\bin\scala-2.11.4\bin;C:\Program Files\JetBrains\CLion 2019.3.3\bin;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.2\bin;;C:\Users\tpb398\AppData\Roaming\cabal\bin;C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.8.2\bin;C:\Users\tpb398\AppData\Roaming\local\bin;C:\Program Files\GIMP 2\bin;C:\Program Files (x86)\Microsoft Office\Office16;C:\Users\tpb398\AppData\Local\Pandoc\;"&& C:\Users\tpb398\.cargo\bin\sccache rustc --crate-name agent_based_trading_julia --edition=2018 src\main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=45e6f354fab7cdca -C extra-filename=-45e6f354fab7cdca --out-dir C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps -C incremental=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\incremental -L dependency=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps --extern agent_based_trading_julia=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\libagent_based_trading_julia-48e6937695352531.rlib --extern libc=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\liblibc-8cca0ffda9606217.rlib --extern rand=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\librand-81d3010c7c7d34aa.rlib --extern rand_distr=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\librand_distr-4a08c73acf9ee9d5.rlib -Ctarget-cpu=native -L native=C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-c7c971513a966800\out` (exit code: 1)
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)>  error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1error: linking with `x86_64-w64-mingw32-gcc` failed: e
xit code: 1
error: Command not found
  ┌─ shell:1:2

1 │  error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  │  ^^^^^^ command not found

C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)> rustup run stable-gnu cargo build
   Compiling getrandom v0.1.14
   Compiling cfg-if v0.1.10
   Compiling ppv-lite86 v0.2.8
   Compiling cc v1.0.58
   Compiling libc v0.2.72
   Compiling agent_based_trading_julia v0.1.0 (C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2)
   Compiling rand_core v0.5.1
   Compiling rand_pcg v0.2.1
   Compiling rand_chacha v0.2.2
   Compiling rand v0.7.3
   Compiling rand_distr v0.2.2
warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-0dc50abaf747717d\out\vendor/MT/dSFMT.o: plugin needed to handle lto object
warning: unused imports: `Duration`, `Instant`
 --> src\lib.rs:4:17
  |
4 | use std::time::{Duration, Instant};
  |                 ^^^^^^^^  ^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: 1 warning emitted

warning: unused imports: `FRNG`, `dSFMT`
 --> src\main.rs:1:43
  |
1 | use agent_based_trading_julia::{cont_run, FRNG, dSFMT};
  |                                           ^^^^  ^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--nxcompat" "-nostdlib" "-m64" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\crt2.o" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.175m6ihkq3gfevnx.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.1776o4kng1xiy0dt.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.216lbjh6tuzfnmyp.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.2ms86ku8ezo4begf.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.35lcknnz3ifcvaev.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.38jf58rfhrt4fn64.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.3a1p0dkgzk4i59j4.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.3na984f3s3p1fs2e.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.40s6xbdjm4k9o6w8.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.4mpxzdnza52c7kg4.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.4xal4yv32bdlfuql.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.4xfyf67uitihr8we.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.4yv6ukosv4c0g6t3.rcgu.o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.53fbgl31lbaeuhr4.rcgu.o" "-o" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.exe" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\agent_based_trading_julia-58b686f9830fae85.1o45x62fu6hgx5nu.rcgu.o" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps" "-L" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\build\\agent_based_trading_julia-0dc50abaf747717d\\out" "-L" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libagent_based_trading_julia-51e128e03c9524c0.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_distr-3286da8b499fd79b.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\liblibc-820ea27bd4e4d22e.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand-f7595e6dbd0a7e51.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_pcg-a25f57c8a3c92b75.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_chacha-0619462aab8ab8cf.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libppv_lite86-dc7a8f001990536b.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\librand_core-29c3a2129db92df7.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libgetrandom-60ce90fab31a9998.rlib" "C:\\Users\\tpb398\\Documents\\GitHub\\agent_based_trading_julia2\\target\\debug\\deps\\libcfg_if-cf58d0d3cd0e6fed.rlib" "-Wl,--start-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-447f0e6919e87703.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-6691a7d28fd5ead6.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-ee4714732ebaf9a3.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-e062de0dbb254b6a.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace-2bc81dc380687e4b.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libbacktrace_sys-53b5dac028b62d7c.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-cb491f3ffc25ac52.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-9499c77410f0cb84.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-cb2a1962c04b6646.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-c582a1654a681be9.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-2285fe2f7f9a72ec.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-1a51942af531248c.rlib" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-d7ecf429ccc8dc70.rlib" "-Wl,--end-group" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-4fc9e886634acec6.rlib" "-Wl,-Bdynamic" "-ladvapi32" "-ladvapi32" "-lws2_32" "-luserenv" "-lmingwex" "-lmingw32" "-lmsvcrt" "-lmsvcrt" "-luser32" "-lkernel32" "-lgcc_eh" "-l:libpthread.a" "-lgcc" "-lmsvcrt" "-lkernel32" "C:\\Users\\tpb398\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\libagent_based_trading_julia-51e128e03c9524c0.rlib(agent_based_trading_julia-51e128e03c9524c0.glo77gdco5by8gf.rcgu.o): In function `agent_based_trading_julia::dSFMT::new::h5cbf04ef52d8e1b8':
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2/src/lib.rs:49: undefined reference to `dsfmt_init_gen_rand'
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\deps\libagent_based_trading_julia-51e128e03c9524c0.rlib(agent_based_trading_julia-51e128e03c9524c0.glo77gdco5by8gf.rcgu.o): In function `agent_based_trading_julia::dSFMT::fill::hd058431a20e4cf00':
          C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2/src/lib.rs:56: undefined reference to `dsfmt_fill_array_open_close'


error: aborting due to previous error; 1 warning emitted

The following warnings were emitted during compilation:

warning: In file included from vendor/MT/dSFMT-params.h:4,
warning:                  from vendor/MT/dSFMT.c:17:
warning: vendor/MT/dSFMT.h:46:4: warning: #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937." [-Wcpp]
warning:    46 |   #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
warning:       |    ^~~~~~~
warning: /usr/bin/ar: C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2\target\debug\build\agent_based_trading_julia-0dc50abaf747717d\out\vendor/MT/dSFMT.o: plugin needed to handle lto object

error: could not compile `agent_based_trading_julia`.

To learn more, run the command again with --verbose.
C:\Users\tpb398\Documents\GitHub\agent_based_trading_julia2(dev)>

@ambiso
Copy link

ambiso commented Jul 19, 2020

Unfortunately I can't use msvc or have a windows system available, I guess I'll stick with perf annotate and flamegraphs.

I've tried using the XorShift generator, which is supposedly a lot faster than MT, but to no avail. It seems the optimized implementation is just really good.
The https://docs.rs/xorshift/0.1.3/xorshift/ is really old and uses a really old version of the rand crate but seems fairly solid otherwise.

I also found out that there's also experimental SIMD support in the rand crate gated behind the simd_support feature.
Here's a really interesting discussion regarding SIMD PRNGs and SIMD distributions.
rust-random/rand#377
However it seems non-trivial to use, since you have to explicitly use the packed_simd types.

Here is a list of SIMD PRNGs: https://github.com/TheIronBorn/simd_prngs (linked in the discussion).
I've made an absolutely horrible implementation using this in-development crate and it comes in at 15us for 10k random f64.
While 2x faster than the previous Rust only implementation, this is 2.4x slower than dSFMT.

@ambiso
Copy link

ambiso commented Jul 19, 2020

I've added you to the repo in case you'd like to make any further changes.

I think from here it would be neat if SIMD RNGs could proceed in rust to a state where it's easy to use (and hard to misuse) them.
For example, I don't think there is a convenience function to generate an array of f64s while making use of SIMD.
This is non-trivial when the number of elements in the array aren't divisible by the number of elements in the SIMD array or the array isn't aligned properly.

Additionally, there's still a performance gap to fill with the RNG.
In fact, it should run faster than the Mersenne Twister, since it's a lot simpler.

@ambiso
Copy link

ambiso commented Jul 19, 2020

Now talking about alignment, I noticed that my use of the SIMD RNG wasn't correct - I was using the write_aligned function but the allocation wasn't aligned the way it needed to be.
We're now down to 10.9us for Rust only when using write_to_slice_unaligned.
This probably can be optimized by writing the first few f64s using a scalar implementation and then using SIMD on the aligned regions.

@CGMossa
Copy link
Author

CGMossa commented Jul 19, 2020

I figured out that writing .compiler("clang") in the build.rs will force me to use clang, which is the c-compiler I suspect you used. The specific flag -flto is not defined for gcc or cl (msvc c-compiler). But somehow cl had no problem.

I am running the benchmarks now. Just FYI, the rand-crate has xorshift implemented. I'll try to get it in and see.

Are there any known deficiencies with mersienne twister?

@ambiso
Copy link

ambiso commented Jul 19, 2020

Right, I always set CC=clang, sorry I didn't communicate that.

That sounds better, but I don't think it has SIMD support?

Mersenne Twister typically comes with a very large state size, and still has some statistical deficiencies. There's a paper summarizing a few arguments against it https://arxiv.org/pdf/1910.06437.

@CGMossa
Copy link
Author

CGMossa commented Aug 18, 2020

Just for completion sake: Julia 1.5v didn't improve the benchmark results at all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment