Skip to content

Commit 2b52b85

Browse files
authored
Adding info about turning off BinaryBuilder for the binding (#220)
Now that we have enabled using the binary builder, that is the default option. We need to turn it off when building Julia and building the binding from source.
1 parent 78dba23 commit 2b52b85

File tree

3 files changed

+119
-113
lines changed

3 files changed

+119
-113
lines changed

.github/scripts/Make.user

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
FORCE_ASSERTIONS=1
22
LLVM_ASSERTIONS=1
3+
USE_BINARYBUILDER_MMTK_JULIA=0

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,12 @@ Make sure you have the prerequisites for building [MMTk](https://github.com/mmtk
4848

4949
To build Julia with MMTk using the version built in the previous step, first ensure you have the prerequisites for building [Julia](https://github.com/JuliaLang/julia/blob/master/doc/src/devdocs/build/build.md#required-build-tools-and-external-libraries).
5050

51-
Next create a `Make.user` file in the top-level directory of the Julia repository consisting of the line `MMTK_PLAN=Immix`.
51+
Next create a `Make.user` file in the top-level directory of the Julia repository consisting of the lines:
52+
53+
```
54+
MMTK_PLAN=Immix
55+
USE_BINARYBUILDER_MMTK_JULIA=0
56+
```
5257

5358
Finally, if you have not done it already, set the following environment variable:
5459

mmtk/src/julia_types.rs

Lines changed: 112 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ pub struct _jl_value_t {
254254
_unused: [u8; 0],
255255
}
256256
pub type sig_atomic_t = __sig_atomic_t;
257+
pub type jl_value_t = _jl_value_t;
257258
#[repr(C)]
258259
#[repr(align(8))]
259260
pub struct MMTkMutatorContext {
@@ -613,7 +614,89 @@ const _: () = {
613614
["Offset of field: _jl_tls_states_t::engine_nqueued"]
614615
[::std::mem::offset_of!(_jl_tls_states_t, engine_nqueued) - 2552usize];
615616
};
616-
pub type jl_value_t = _jl_value_t;
617+
pub type jl_function_t = jl_value_t;
618+
pub type jl_timing_block_t = _jl_timing_block_t;
619+
pub type jl_excstack_t = _jl_excstack_t;
620+
pub type jl_handler_t = _jl_handler_t;
621+
#[repr(C)]
622+
pub struct _jl_task_t {
623+
pub next: *mut jl_value_t,
624+
pub queue: *mut jl_value_t,
625+
pub tls: *mut jl_value_t,
626+
pub donenotify: *mut jl_value_t,
627+
pub result: *mut jl_value_t,
628+
pub scope: *mut jl_value_t,
629+
pub start: *mut jl_function_t,
630+
pub _state: std_atomic<u8>,
631+
pub sticky: u8,
632+
pub priority: u16,
633+
pub _isexception: std_atomic<u8>,
634+
pub pad0: [u8; 3usize],
635+
pub rngState: [u64; 5usize],
636+
pub metrics_enabled: u8,
637+
pub pad1: [u8; 3usize],
638+
pub first_enqueued_at: std_atomic<u64>,
639+
pub last_started_running_at: std_atomic<u64>,
640+
pub running_time_ns: std_atomic<u64>,
641+
pub finished_at: std_atomic<u64>,
642+
pub tid: std_atomic<i16>,
643+
pub threadpoolid: i8,
644+
pub reentrant_timing: u8,
645+
pub gcstack: *mut jl_gcframe_t,
646+
pub world_age: usize,
647+
pub ptls: jl_ptls_t,
648+
pub excstack: *mut jl_excstack_t,
649+
pub eh: *mut jl_handler_t,
650+
pub ctx: jl_ucontext_t,
651+
}
652+
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
653+
const _: () = {
654+
["Size of _jl_task_t"][::std::mem::size_of::<_jl_task_t>() - 224usize];
655+
["Alignment of _jl_task_t"][::std::mem::align_of::<_jl_task_t>() - 8usize];
656+
["Offset of field: _jl_task_t::next"][::std::mem::offset_of!(_jl_task_t, next) - 0usize];
657+
["Offset of field: _jl_task_t::queue"][::std::mem::offset_of!(_jl_task_t, queue) - 8usize];
658+
["Offset of field: _jl_task_t::tls"][::std::mem::offset_of!(_jl_task_t, tls) - 16usize];
659+
["Offset of field: _jl_task_t::donenotify"]
660+
[::std::mem::offset_of!(_jl_task_t, donenotify) - 24usize];
661+
["Offset of field: _jl_task_t::result"][::std::mem::offset_of!(_jl_task_t, result) - 32usize];
662+
["Offset of field: _jl_task_t::scope"][::std::mem::offset_of!(_jl_task_t, scope) - 40usize];
663+
["Offset of field: _jl_task_t::start"][::std::mem::offset_of!(_jl_task_t, start) - 48usize];
664+
["Offset of field: _jl_task_t::_state"][::std::mem::offset_of!(_jl_task_t, _state) - 56usize];
665+
["Offset of field: _jl_task_t::sticky"][::std::mem::offset_of!(_jl_task_t, sticky) - 57usize];
666+
["Offset of field: _jl_task_t::priority"]
667+
[::std::mem::offset_of!(_jl_task_t, priority) - 58usize];
668+
["Offset of field: _jl_task_t::_isexception"]
669+
[::std::mem::offset_of!(_jl_task_t, _isexception) - 60usize];
670+
["Offset of field: _jl_task_t::pad0"][::std::mem::offset_of!(_jl_task_t, pad0) - 61usize];
671+
["Offset of field: _jl_task_t::rngState"]
672+
[::std::mem::offset_of!(_jl_task_t, rngState) - 64usize];
673+
["Offset of field: _jl_task_t::metrics_enabled"]
674+
[::std::mem::offset_of!(_jl_task_t, metrics_enabled) - 104usize];
675+
["Offset of field: _jl_task_t::pad1"][::std::mem::offset_of!(_jl_task_t, pad1) - 105usize];
676+
["Offset of field: _jl_task_t::first_enqueued_at"]
677+
[::std::mem::offset_of!(_jl_task_t, first_enqueued_at) - 112usize];
678+
["Offset of field: _jl_task_t::last_started_running_at"]
679+
[::std::mem::offset_of!(_jl_task_t, last_started_running_at) - 120usize];
680+
["Offset of field: _jl_task_t::running_time_ns"]
681+
[::std::mem::offset_of!(_jl_task_t, running_time_ns) - 128usize];
682+
["Offset of field: _jl_task_t::finished_at"]
683+
[::std::mem::offset_of!(_jl_task_t, finished_at) - 136usize];
684+
["Offset of field: _jl_task_t::tid"][::std::mem::offset_of!(_jl_task_t, tid) - 144usize];
685+
["Offset of field: _jl_task_t::threadpoolid"]
686+
[::std::mem::offset_of!(_jl_task_t, threadpoolid) - 146usize];
687+
["Offset of field: _jl_task_t::reentrant_timing"]
688+
[::std::mem::offset_of!(_jl_task_t, reentrant_timing) - 147usize];
689+
["Offset of field: _jl_task_t::gcstack"]
690+
[::std::mem::offset_of!(_jl_task_t, gcstack) - 152usize];
691+
["Offset of field: _jl_task_t::world_age"]
692+
[::std::mem::offset_of!(_jl_task_t, world_age) - 160usize];
693+
["Offset of field: _jl_task_t::ptls"][::std::mem::offset_of!(_jl_task_t, ptls) - 168usize];
694+
["Offset of field: _jl_task_t::excstack"]
695+
[::std::mem::offset_of!(_jl_task_t, excstack) - 176usize];
696+
["Offset of field: _jl_task_t::eh"][::std::mem::offset_of!(_jl_task_t, eh) - 184usize];
697+
["Offset of field: _jl_task_t::ctx"][::std::mem::offset_of!(_jl_task_t, ctx) - 192usize];
698+
};
699+
pub type jl_task_t = _jl_task_t;
617700
#[repr(C)]
618701
#[derive(Debug, Copy, Clone)]
619702
pub struct _jl_taggedvalue_bits {
@@ -890,7 +973,6 @@ const _: () = {
890973
["Offset of field: jl_array_t::dimsize"][::std::mem::offset_of!(jl_array_t, dimsize) - 16usize];
891974
};
892975
pub type jl_typemap_t = jl_value_t;
893-
pub type jl_function_t = jl_value_t;
894976
#[repr(C)]
895977
#[derive(Debug, Copy, Clone)]
896978
pub struct jl_typename_t {
@@ -2031,8 +2113,6 @@ const _: () = {
20312113
[::std::mem::offset_of!(_jl_gcframe_t, nroots) - 0usize];
20322114
["Offset of field: _jl_gcframe_t::prev"][::std::mem::offset_of!(_jl_gcframe_t, prev) - 8usize];
20332115
};
2034-
pub type jl_timing_block_t = _jl_timing_block_t;
2035-
pub type jl_excstack_t = _jl_excstack_t;
20362116
#[repr(C)]
20372117
#[derive(Debug, Copy, Clone)]
20382118
pub struct _jl_handler_t {
@@ -2069,86 +2149,6 @@ const _: () = {
20692149
["Offset of field: _jl_handler_t::world_age"]
20702150
[::std::mem::offset_of!(_jl_handler_t, world_age) - 256usize];
20712151
};
2072-
pub type jl_handler_t = _jl_handler_t;
2073-
#[repr(C)]
2074-
pub struct _jl_task_t {
2075-
pub next: *mut jl_value_t,
2076-
pub queue: *mut jl_value_t,
2077-
pub tls: *mut jl_value_t,
2078-
pub donenotify: *mut jl_value_t,
2079-
pub result: *mut jl_value_t,
2080-
pub scope: *mut jl_value_t,
2081-
pub start: *mut jl_function_t,
2082-
pub _state: std_atomic<u8>,
2083-
pub sticky: u8,
2084-
pub priority: u16,
2085-
pub _isexception: std_atomic<u8>,
2086-
pub pad0: [u8; 3usize],
2087-
pub rngState: [u64; 5usize],
2088-
pub metrics_enabled: u8,
2089-
pub pad1: [u8; 3usize],
2090-
pub first_enqueued_at: std_atomic<u64>,
2091-
pub last_started_running_at: std_atomic<u64>,
2092-
pub running_time_ns: std_atomic<u64>,
2093-
pub finished_at: std_atomic<u64>,
2094-
pub tid: std_atomic<i16>,
2095-
pub threadpoolid: i8,
2096-
pub reentrant_timing: u8,
2097-
pub gcstack: *mut jl_gcframe_t,
2098-
pub world_age: usize,
2099-
pub ptls: jl_ptls_t,
2100-
pub excstack: *mut jl_excstack_t,
2101-
pub eh: *mut jl_handler_t,
2102-
pub ctx: jl_ucontext_t,
2103-
}
2104-
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2105-
const _: () = {
2106-
["Size of _jl_task_t"][::std::mem::size_of::<_jl_task_t>() - 224usize];
2107-
["Alignment of _jl_task_t"][::std::mem::align_of::<_jl_task_t>() - 8usize];
2108-
["Offset of field: _jl_task_t::next"][::std::mem::offset_of!(_jl_task_t, next) - 0usize];
2109-
["Offset of field: _jl_task_t::queue"][::std::mem::offset_of!(_jl_task_t, queue) - 8usize];
2110-
["Offset of field: _jl_task_t::tls"][::std::mem::offset_of!(_jl_task_t, tls) - 16usize];
2111-
["Offset of field: _jl_task_t::donenotify"]
2112-
[::std::mem::offset_of!(_jl_task_t, donenotify) - 24usize];
2113-
["Offset of field: _jl_task_t::result"][::std::mem::offset_of!(_jl_task_t, result) - 32usize];
2114-
["Offset of field: _jl_task_t::scope"][::std::mem::offset_of!(_jl_task_t, scope) - 40usize];
2115-
["Offset of field: _jl_task_t::start"][::std::mem::offset_of!(_jl_task_t, start) - 48usize];
2116-
["Offset of field: _jl_task_t::_state"][::std::mem::offset_of!(_jl_task_t, _state) - 56usize];
2117-
["Offset of field: _jl_task_t::sticky"][::std::mem::offset_of!(_jl_task_t, sticky) - 57usize];
2118-
["Offset of field: _jl_task_t::priority"]
2119-
[::std::mem::offset_of!(_jl_task_t, priority) - 58usize];
2120-
["Offset of field: _jl_task_t::_isexception"]
2121-
[::std::mem::offset_of!(_jl_task_t, _isexception) - 60usize];
2122-
["Offset of field: _jl_task_t::pad0"][::std::mem::offset_of!(_jl_task_t, pad0) - 61usize];
2123-
["Offset of field: _jl_task_t::rngState"]
2124-
[::std::mem::offset_of!(_jl_task_t, rngState) - 64usize];
2125-
["Offset of field: _jl_task_t::metrics_enabled"]
2126-
[::std::mem::offset_of!(_jl_task_t, metrics_enabled) - 104usize];
2127-
["Offset of field: _jl_task_t::pad1"][::std::mem::offset_of!(_jl_task_t, pad1) - 105usize];
2128-
["Offset of field: _jl_task_t::first_enqueued_at"]
2129-
[::std::mem::offset_of!(_jl_task_t, first_enqueued_at) - 112usize];
2130-
["Offset of field: _jl_task_t::last_started_running_at"]
2131-
[::std::mem::offset_of!(_jl_task_t, last_started_running_at) - 120usize];
2132-
["Offset of field: _jl_task_t::running_time_ns"]
2133-
[::std::mem::offset_of!(_jl_task_t, running_time_ns) - 128usize];
2134-
["Offset of field: _jl_task_t::finished_at"]
2135-
[::std::mem::offset_of!(_jl_task_t, finished_at) - 136usize];
2136-
["Offset of field: _jl_task_t::tid"][::std::mem::offset_of!(_jl_task_t, tid) - 144usize];
2137-
["Offset of field: _jl_task_t::threadpoolid"]
2138-
[::std::mem::offset_of!(_jl_task_t, threadpoolid) - 146usize];
2139-
["Offset of field: _jl_task_t::reentrant_timing"]
2140-
[::std::mem::offset_of!(_jl_task_t, reentrant_timing) - 147usize];
2141-
["Offset of field: _jl_task_t::gcstack"]
2142-
[::std::mem::offset_of!(_jl_task_t, gcstack) - 152usize];
2143-
["Offset of field: _jl_task_t::world_age"]
2144-
[::std::mem::offset_of!(_jl_task_t, world_age) - 160usize];
2145-
["Offset of field: _jl_task_t::ptls"][::std::mem::offset_of!(_jl_task_t, ptls) - 168usize];
2146-
["Offset of field: _jl_task_t::excstack"]
2147-
[::std::mem::offset_of!(_jl_task_t, excstack) - 176usize];
2148-
["Offset of field: _jl_task_t::eh"][::std::mem::offset_of!(_jl_task_t, eh) - 184usize];
2149-
["Offset of field: _jl_task_t::ctx"][::std::mem::offset_of!(_jl_task_t, ctx) - 192usize];
2150-
};
2151-
pub type jl_task_t = _jl_task_t;
21522152
#[repr(C)]
21532153
#[derive(Copy, Clone)]
21542154
pub struct _jl_bt_element_t {
@@ -2288,34 +2288,6 @@ const _: () = {
22882288
[::std::mem::align_of::<std_atomic<i16>>() - 2usize];
22892289
};
22902290
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2291-
const _: () = {
2292-
["Size of template specialization: std_atomic_open0_jl_ptr_kind_union_t_close0"]
2293-
[::std::mem::size_of::<std_atomic<jl_ptr_kind_union_t>>() - 8usize];
2294-
["Align of template specialization: std_atomic_open0_jl_ptr_kind_union_t_close0"]
2295-
[::std::mem::align_of::<std_atomic<jl_ptr_kind_union_t>>() - 8usize];
2296-
};
2297-
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2298-
const _: () = {
2299-
["Size of template specialization: std_atomic_open0_size_t_close0"]
2300-
[::std::mem::size_of::<std_atomic<usize>>() - 8usize];
2301-
["Align of template specialization: std_atomic_open0_size_t_close0"]
2302-
[::std::mem::align_of::<std_atomic<usize>>() - 8usize];
2303-
};
2304-
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2305-
const _: () = {
2306-
["Size of template specialization: std_atomic_open0_uint32_t_close0"]
2307-
[::std::mem::size_of::<std_atomic<u32>>() - 4usize];
2308-
["Align of template specialization: std_atomic_open0_uint32_t_close0"]
2309-
[::std::mem::align_of::<std_atomic<u32>>() - 4usize];
2310-
};
2311-
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2312-
const _: () = {
2313-
["Size of template specialization: std_atomic_open0_intptr_t_close0"]
2314-
[::std::mem::size_of::<std_atomic<isize>>() - 8usize];
2315-
["Align of template specialization: std_atomic_open0_intptr_t_close0"]
2316-
[::std::mem::align_of::<std_atomic<isize>>() - 8usize];
2317-
};
2318-
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
23192291
const _: () = {
23202292
["Size of template specialization: std_atomic_open0_uint8_t_close0"]
23212293
[::std::mem::size_of::<std_atomic<u8>>() - 1usize];
@@ -2364,3 +2336,31 @@ const _: () = {
23642336
["Align of template specialization: std_atomic_open0_int16_t_close0"]
23652337
[::std::mem::align_of::<std_atomic<i16>>() - 2usize];
23662338
};
2339+
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2340+
const _: () = {
2341+
["Size of template specialization: std_atomic_open0_jl_ptr_kind_union_t_close0"]
2342+
[::std::mem::size_of::<std_atomic<jl_ptr_kind_union_t>>() - 8usize];
2343+
["Align of template specialization: std_atomic_open0_jl_ptr_kind_union_t_close0"]
2344+
[::std::mem::align_of::<std_atomic<jl_ptr_kind_union_t>>() - 8usize];
2345+
};
2346+
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2347+
const _: () = {
2348+
["Size of template specialization: std_atomic_open0_size_t_close0"]
2349+
[::std::mem::size_of::<std_atomic<usize>>() - 8usize];
2350+
["Align of template specialization: std_atomic_open0_size_t_close0"]
2351+
[::std::mem::align_of::<std_atomic<usize>>() - 8usize];
2352+
};
2353+
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2354+
const _: () = {
2355+
["Size of template specialization: std_atomic_open0_uint32_t_close0"]
2356+
[::std::mem::size_of::<std_atomic<u32>>() - 4usize];
2357+
["Align of template specialization: std_atomic_open0_uint32_t_close0"]
2358+
[::std::mem::align_of::<std_atomic<u32>>() - 4usize];
2359+
};
2360+
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2361+
const _: () = {
2362+
["Size of template specialization: std_atomic_open0_intptr_t_close0"]
2363+
[::std::mem::size_of::<std_atomic<isize>>() - 8usize];
2364+
["Align of template specialization: std_atomic_open0_intptr_t_close0"]
2365+
[::std::mem::align_of::<std_atomic<isize>>() - 8usize];
2366+
};

0 commit comments

Comments
 (0)