Skip to content

Commit c6cab60

Browse files
authored
Update Julia upstream 909c57f (mmtk#60)
1 parent b908a49 commit c6cab60

File tree

10 files changed

+276
-278
lines changed

10 files changed

+276
-278
lines changed

.github/scripts/common.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ export MMTK_JULIA_DIR=$BINDING_PATH
1010
# Make sure we have enough heap to build Julia
1111
export MMTK_MIN_HSIZE_G=0.5
1212
export MMTK_MAX_HSIZE_G=4
13+
# Make sure we do not get OOM killed. The Github runner has ~7G RAM.
14+
export JULIA_TEST_MAXRSS_MB=6500
1315

1416
ci_run_jl_test() {
1517
test=$1

julia/mmtk_julia.c

Lines changed: 52 additions & 52 deletions
Large diffs are not rendered by default.

mmtk/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ edition = "2018"
1010
[package.metadata.julia]
1111
# Our CI matches the following line and extract mmtk/julia. If this line is updated, please check ci yaml files and make sure it works.
1212
julia_repo = "https://github.com/mmtk/julia.git"
13-
julia_version = "e7e43f11687e7db62dc18e90f3ab9b24099539fd"
13+
julia_version = "0eeb64b0191b08b0ce7b59a66dea6139db60dbd2"
1414

1515
[lib]
1616
crate-type = ["staticlib", "rlib", "dylib"]

mmtk/api/mmtk.h

Lines changed: 37 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,21 @@ typedef void (*ProcessOffsetEdgeFn)(closure_pointer closure, void* slot, int off
2323
/**
2424
* Allocation
2525
*/
26-
extern MMTk_Mutator bind_mutator(void *tls, int tid);
27-
extern void add_mutator_ref(void* mutator_ref);
28-
extern void destroy_mutator(MMTk_Mutator mutator);
26+
extern MMTk_Mutator mmtk_bind_mutator(void *tls, int tid);
27+
extern void mmtk_add_mutator_ref(void* mutator_ref);
28+
extern void mmtk_destroy_mutator(MMTk_Mutator mutator);
2929

30-
extern void* alloc(MMTk_Mutator mutator, size_t size,
30+
extern void* mmtk_alloc(MMTk_Mutator mutator, size_t size,
3131
size_t align, size_t offset, int allocator);
3232

33-
extern void* alloc_large(MMTk_Mutator mutator, size_t size,
33+
extern void* mmtk_alloc_large(MMTk_Mutator mutator, size_t size,
3434
size_t align, size_t offset, int allocator);
3535

36-
extern void post_alloc(MMTk_Mutator mutator, void* refer,
36+
extern void mmtk_post_alloc(MMTk_Mutator mutator, void* refer,
3737
size_t bytes, int allocator);
3838

39-
extern void add_object_to_mmtk_roots(void *obj);
40-
extern void process_root_edges(closure_pointer c, void* slot);
39+
extern void mmtk_add_object_to_mmtk_roots(void *obj);
40+
extern void mmtk_process_root_edges(closure_pointer c, void* slot);
4141

4242
extern void* mmtk_counted_malloc(size_t size);
4343
extern void* mmtk_malloc(size_t size);
@@ -50,13 +50,13 @@ extern void mmtk_free(void* addr);
5050
extern void* mmtk_malloc_aligned(size_t size, size_t alignment);
5151
extern void mmtk_free_aligned(void* addr);
5252

53-
extern bool is_live_object(void* ref);
54-
extern bool is_mapped_object(void* ref);
55-
extern bool is_mapped_address(void* addr);
56-
extern void modify_check(void* ref);
57-
extern int object_is_managed_by_mmtk(void* addr);
58-
extern void runtime_panic(void);
59-
extern void unreachable(void);
53+
extern bool mmtk_is_live_object(void* ref);
54+
extern bool mmtk_is_mapped_object(void* ref);
55+
extern bool mmtk_is_mapped_address(void* addr);
56+
extern void mmtk_modify_check(void* ref);
57+
extern int mmtk_object_is_managed_by_mmtk(void* addr);
58+
extern void mmtk_runtime_panic(void);
59+
extern void mmtk_unreachable(void);
6060

6161
extern void mmtk_set_vm_space(void* addr, size_t size);
6262
extern void mmtk_immortal_region_post_alloc(void* addr, size_t size);
@@ -66,26 +66,9 @@ extern void mmtk_memory_region_copy(MMTk_Mutator mutator, void* src_obj, void* s
6666
extern void mmtk_object_reference_write_post(MMTk_Mutator mutator, const void* src, const void* target);
6767
extern void mmtk_object_reference_write_slow(MMTk_Mutator mutator, const void* src, const void* target);
6868
extern const uint8_t MMTK_NEEDS_WRITE_BARRIER;
69-
extern const uint8_t NO_BARRIER;
70-
extern const uint8_t OBJECT_BARRIER;
69+
extern const uint8_t MMTK_NO_BARRIER;
70+
extern const uint8_t MMTK_OBJECT_BARRIER;
7171
extern const void* MMTK_SIDE_LOG_BIT_BASE_ADDRESS;
72-
/**
73-
* Tracing
74-
*/
75-
extern void report_delayed_root_edge(MMTk_TraceLocal trace_local,
76-
void* addr);
77-
78-
extern bool will_not_move_in_current_collection(MMTk_TraceLocal trace_local,
79-
void* obj);
80-
81-
extern void process_interior_edge(MMTk_TraceLocal trace_local, void* target,
82-
void* slot, bool root);
83-
84-
extern void* trace_get_forwarded_referent(MMTk_TraceLocal trace_local, void* obj);
85-
86-
extern void* trace_get_forwarded_reference(MMTk_TraceLocal trace_local, void* obj);
87-
88-
extern void* trace_retain_referent(MMTk_TraceLocal trace_local, void* obj);
8972

9073
/**
9174
* Julia-specific
@@ -122,30 +105,30 @@ typedef struct {
122105
/**
123106
* Misc
124107
*/
125-
extern void gc_init(long long min_heap_size, long long max_heap_size, Julia_Upcalls *calls, long header_size);
126-
extern bool will_never_move(void* object);
127-
extern bool process(char* name, char* value);
128-
extern void scan_region(void);
129-
extern void handle_user_collection_request(void *tls, uint8_t collection);
130-
extern void initialize_collection(void* tls);
131-
extern void enable_collection(void);
132-
extern void disable_collection(void);
133-
extern void start_control_collector(void *tls);
134-
extern void start_worker(void *tls, void* worker, void* mmtk);
135-
extern void process_julia_obj(void* addr);
136-
extern void register_finalizer(void* obj, void* function, bool is_ptr);
137-
extern void run_finalizers_for_obj(void* obj);
108+
extern void mmtk_gc_init(uintptr_t min_heap_size, uintptr_t max_heap_size, uintptr_t n_gcthreads, Julia_Upcalls *calls, uintptr_t header_size);
109+
extern bool mmtk_will_never_move(void* object);
110+
extern bool mmtk_process(char* name, char* value);
111+
extern void mmtk_scan_region(void);
112+
extern void mmtk_handle_user_collection_request(void *tls, uint8_t collection);
113+
extern void mmtk_initialize_collection(void* tls);
114+
extern void mmtk_enable_collection(void);
115+
extern void mmtk_disable_collection(void);
116+
extern void mmtk_start_control_collector(void *tls);
117+
extern void mmtk_start_worker(void *tls, void* worker, void* mmtk);
118+
extern void mmtk_process_julia_obj(void* addr);
119+
extern void mmtk_register_finalizer(void* obj, void* function, bool is_ptr);
120+
extern void mmtk_run_finalizers_for_obj(void* obj);
138121
extern void mmtk_run_finalizers(bool at_exit);
139122
extern void mmtk_gc_poll(void *tls);
140123

141124
/**
142125
* VM Accounting
143126
*/
144-
extern size_t free_bytes(void);
145-
extern size_t total_bytes(void);
146-
extern size_t used_bytes(void);
147-
extern void* starting_heap_address(void);
148-
extern void* last_heap_address(void);
127+
extern size_t mmtk_free_bytes(void);
128+
extern size_t mmtk_total_bytes(void);
129+
extern size_t mmtk_used_bytes(void);
130+
extern void* mmtk_starting_heap_address(void);
131+
extern void* mmtk_last_heap_address(void);
149132

150133
/**
151134
* Reference Processing
@@ -154,8 +137,8 @@ extern void mmtk_add_weak_candidate(void* ref);
154137
extern void mmtk_add_soft_candidate(void* ref);
155138
extern void mmtk_add_phantom_candidate(void* ref);
156139

157-
extern void harness_begin(void *tls);
158-
extern void harness_end(void);
140+
extern void mmtk_harness_begin(void *tls);
141+
extern void mmtk_harness_end(void);
159142

160143
#ifdef __cplusplus
161144
}

mmtk/runtime/runtime_gc_x64.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ void* get_mutator_from_ref(void* mutator) {
1313
return mutator;
1414
}
1515

16-
extern void start_spawned_worker_thread(void*, void*);
17-
extern void start_spawned_controller_thread(void*, void*);
16+
extern void mmtk_start_spawned_worker_thread(void*, void*);
17+
extern void mmtk_start_spawned_controller_thread(void*, void*);
1818

1919
struct thread_args {
2020
void* tls;
@@ -30,15 +30,15 @@ void *fn_spawn_worker_thread(void* args) {
3030
struct thread_args *ta = (struct thread_args *) args;
3131
void* tls = (*ta).tls;
3232
void* ctx = (*ta).ctx;
33-
start_spawned_worker_thread(tls, ctx);
33+
mmtk_start_spawned_worker_thread(tls, ctx);
3434
return NULL;
3535
}
3636

3737
void *fn_spawn_controller_thread(void* args) {
3838
struct thread_args *ta = (struct thread_args *) args;
3939
void* tls = (*ta).tls;
4040
void* ctx = (*ta).ctx;
41-
start_spawned_controller_thread(tls, ctx);
41+
mmtk_start_spawned_controller_thread(tls, ctx);
4242
return NULL;
4343
}
4444

0 commit comments

Comments
 (0)