ELF > @ @ ` _ x runtime/major_gc.c Caml_state_opt != NULL [ahead] [behind] current_alloc_count >= 0 heap_words = %lu allocated_words = %lu allocated_words_direct = %lu alloc work-to-do = %ld dependent_words = %lu dependent work-to-do = %ld extra_heap_resources = %luu extra work-to-do = %ld lock Tag_val(v) == Abstract_tag Has_status_val(v, status) unlock runtime/caml/addrmap.h caml_addrmap_iter_ok(t, i) stk->count < stk->size !Is_young(block) Tag_val(block) != Infix_tag Tag_val(block) < No_scan_tag Tag_val(block) != Cont_tag v != Debug_free_major runtime/caml/camlatomic.h old+1 != 0 old > 0 Tag_val(e) == Abstract_tag !myf->updated_first !myf->updated_last myf->todo_head == NULL domain == Caml_state Starting major GC cycle Heap verified !f->updated_first !f->updated_last Mark stack shrinking failed Is_block(cont) Is_block (cont) !Is_young(cont) Tag_val(cont) == Cont_tag runtime/caml/mlvalues.h val & 1 Continued from cursor Discarded cursor ephe_info->todo == 0 ephe_info->live == 0 pb->enqueued > pb->dequeued block != Debug_free_major Is_markable(block) budget >= 0 child != Debug_free_major pb_size(&pb) == 0 Caml_state->marking_done d->mark_stack->count == 0 Commit major slice work: %ld words_done, allocated_words_suspended = %lu allocated_words_resumed = %lu Updated major work: [%c] %lu heap_words, %lu allocated, %lu allocated (direct), %lu allocated (suspended), %lu allocated (resumed), %ld alloc_work, %ld dependent_work, %ld extra_work, %lu work counter %s, %lu alloc counter, %lu slice target, %ld slice budget Growing mark stack to %luk bytes(large block %luk bytes) No room for growing mark stack. Compressing.. Mark stack size is %lu bytes (> major heap size of this domain %lu bytes / 32). Compressing... t->entries[i].key != ADDRMAP_INVALID_KEY Preserved %ld compressed entries ptr == chunk_and_offset_to_ptr(chunk, offset) Compressed %ld mark stack words into %ld mark stack entries and %ld compressed entries offset <= Wosize_val(block) && offset >= Start_env_closinfo(Closinfo_val(block)) Has_status_val(block, caml_global_heap_state.MARKED) caml_atomic_counter_value(&ephe_cycle_info.num_domains_done) <= caml_atomic_counter_value(&ephe_cycle_info.num_domains_todo) caml_gc_phase == Phase_sweep_and_mark_main caml_atomic_counter_value(&ephe_cycle_info.num_domains_todo) == caml_atomic_counter_value(&ephe_cycle_info.num_domains_done) caml_atomic_counter_value(&num_domains_to_mark) == 0 caml_atomic_counter_value(&num_domains_to_sweep) == 0 caml_atomic_counter_value(&num_domains_to_ephe_sweep) == 0 GC cycle %lu completed (heap cycled) heap_words: %ld not_garbage_words %ld swept_words %ld Previous cycle's space_overhead: %lf domain->ephe_info->todo == (value) NULL Shrinking mark stack to %luk bytes !Has_status_hd(hd, caml_global_heap_state.GARBAGE) Mark Ephemeron: %s. Ephemeron cycle=%ld examined=%ld trivial_data=%ld marked=%ld ephe_info->must_sweep_ephe == 0 !Has_status_hd(hd, heap_state.GARBAGE) pb->enqueued < pb->dequeued + PREFETCH_BUFFER_SIZE !Has_status_hd(chd, caml_global_heap_state.GARBAGE) ephe_cycle <= caml_atomic_counter_value(&ephe_cycle_info.ephe_cycle) domain_state->ephe_info->must_sweep_ephe == 0 caml_gc_phase == Phase_sweep_ephe caml_gc_phase != Phase_sweep_ephe Major slice [%c%c%c]: %ld sweep, % ld mark (%lu blocks) Major slice interrupted, rescheduling major slice Finished marking major heap. Marked %lu blocks Caml_state->sweeping_done == 0 !caml_addrmap_iter_ok(&d->mark_stack->compressed_stack, d->mark_stack->compressed_stack_iter) ATL% USdI,$HHtHHH= 1 H) H H Hx H)HHDž []A\f H5 H= dI,$ ATL% USdI,$HtIt4H H Hx []A\H)H9HLº @ H9HO@ t[1]A\ú H5 H= dI,$ AWAVAUATUSHHhH- t$8T$