├── .gitignore ├── .travis.yml ├── Doxyfile ├── LICENSE ├── Makefile ├── README.md ├── config.h ├── demo └── demo_list.c ├── qcgc.c ├── qcgc.h ├── reports └── thesis.pdf ├── src ├── allocator.c ├── allocator.h ├── arena.c ├── arena.h ├── bag.c ├── bag.h ├── collector.c ├── collector.h ├── event_logger.c ├── event_logger.h ├── gc_state.h ├── hugeblocktable.c ├── hugeblocktable.h ├── object_stack.c ├── object_stack.h ├── signal_handler.c ├── signal_handler.h ├── weakref.c └── weakref.h ├── test ├── Makefile ├── build_support.py ├── lib.c ├── qcgc_test.py ├── runner │ ├── TreeTextTestResult.py │ └── __init__.py ├── test.py ├── test_allocator.py ├── test_allocator_switch.py ├── test_arena.py ├── test_bag.py ├── test_basic.py ├── test_bump_allocate.py ├── test_cell_counting.py ├── test_event_logger.py ├── test_fit_allocator.py ├── test_gray_stack.py ├── test_hugeblocktable.py ├── test_large_allocate.py ├── test_mark_all.py ├── test_mark_incremental.py ├── test_object.py ├── test_prebuilt.py ├── test_shadow_stack.py ├── test_stressing.py ├── test_sweep.py └── test_weakref.py └── tools ├── gdb └── arena.py └── log ├── allocstat ├── allocstat_simple ├── allocuse ├── analyze ├── decode ├── dumpfrag ├── frag.dat ├── freelistinfo ├── logutils ├── __init__.py ├── event.py ├── iterator.py └── visitor.py ├── memusg └── plot_hist /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/.travis.yml -------------------------------------------------------------------------------- /Doxyfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/Doxyfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/README.md -------------------------------------------------------------------------------- /config.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/config.h -------------------------------------------------------------------------------- /demo/demo_list.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/demo/demo_list.c -------------------------------------------------------------------------------- /qcgc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/qcgc.c -------------------------------------------------------------------------------- /qcgc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/qcgc.h -------------------------------------------------------------------------------- /reports/thesis.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/reports/thesis.pdf -------------------------------------------------------------------------------- /src/allocator.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/allocator.c -------------------------------------------------------------------------------- /src/allocator.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/allocator.h -------------------------------------------------------------------------------- /src/arena.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/arena.c -------------------------------------------------------------------------------- /src/arena.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/arena.h -------------------------------------------------------------------------------- /src/bag.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/bag.c -------------------------------------------------------------------------------- /src/bag.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/bag.h -------------------------------------------------------------------------------- /src/collector.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/collector.c -------------------------------------------------------------------------------- /src/collector.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/collector.h -------------------------------------------------------------------------------- /src/event_logger.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/event_logger.c -------------------------------------------------------------------------------- /src/event_logger.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/event_logger.h -------------------------------------------------------------------------------- /src/gc_state.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/gc_state.h -------------------------------------------------------------------------------- /src/hugeblocktable.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/hugeblocktable.c -------------------------------------------------------------------------------- /src/hugeblocktable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/hugeblocktable.h -------------------------------------------------------------------------------- /src/object_stack.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/object_stack.c -------------------------------------------------------------------------------- /src/object_stack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/object_stack.h -------------------------------------------------------------------------------- /src/signal_handler.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/signal_handler.c -------------------------------------------------------------------------------- /src/signal_handler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../qcgc.h" 4 | 5 | void setup_signal_handler(void); 6 | -------------------------------------------------------------------------------- /src/weakref.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/src/weakref.c -------------------------------------------------------------------------------- /src/weakref.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../qcgc.h" 4 | 5 | void update_weakrefs(void); 6 | -------------------------------------------------------------------------------- /test/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/Makefile -------------------------------------------------------------------------------- /test/build_support.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/build_support.py -------------------------------------------------------------------------------- /test/lib.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/lib.c -------------------------------------------------------------------------------- /test/qcgc_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/qcgc_test.py -------------------------------------------------------------------------------- /test/runner/TreeTextTestResult.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/runner/TreeTextTestResult.py -------------------------------------------------------------------------------- /test/runner/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test.py -------------------------------------------------------------------------------- /test/test_allocator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_allocator.py -------------------------------------------------------------------------------- /test/test_allocator_switch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_allocator_switch.py -------------------------------------------------------------------------------- /test/test_arena.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_arena.py -------------------------------------------------------------------------------- /test/test_bag.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_bag.py -------------------------------------------------------------------------------- /test/test_basic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_basic.py -------------------------------------------------------------------------------- /test/test_bump_allocate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_bump_allocate.py -------------------------------------------------------------------------------- /test/test_cell_counting.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_cell_counting.py -------------------------------------------------------------------------------- /test/test_event_logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_event_logger.py -------------------------------------------------------------------------------- /test/test_fit_allocator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_fit_allocator.py -------------------------------------------------------------------------------- /test/test_gray_stack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_gray_stack.py -------------------------------------------------------------------------------- /test/test_hugeblocktable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_hugeblocktable.py -------------------------------------------------------------------------------- /test/test_large_allocate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_large_allocate.py -------------------------------------------------------------------------------- /test/test_mark_all.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_mark_all.py -------------------------------------------------------------------------------- /test/test_mark_incremental.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_mark_incremental.py -------------------------------------------------------------------------------- /test/test_object.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_object.py -------------------------------------------------------------------------------- /test/test_prebuilt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_prebuilt.py -------------------------------------------------------------------------------- /test/test_shadow_stack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_shadow_stack.py -------------------------------------------------------------------------------- /test/test_stressing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_stressing.py -------------------------------------------------------------------------------- /test/test_sweep.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_sweep.py -------------------------------------------------------------------------------- /test/test_weakref.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/test/test_weakref.py -------------------------------------------------------------------------------- /tools/gdb/arena.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/gdb/arena.py -------------------------------------------------------------------------------- /tools/log/allocstat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/allocstat -------------------------------------------------------------------------------- /tools/log/allocstat_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/allocstat_simple -------------------------------------------------------------------------------- /tools/log/allocuse: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/allocuse -------------------------------------------------------------------------------- /tools/log/analyze: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/analyze -------------------------------------------------------------------------------- /tools/log/decode: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/decode -------------------------------------------------------------------------------- /tools/log/dumpfrag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/dumpfrag -------------------------------------------------------------------------------- /tools/log/frag.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/frag.dat -------------------------------------------------------------------------------- /tools/log/freelistinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/freelistinfo -------------------------------------------------------------------------------- /tools/log/logutils/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ["iterator"] 2 | -------------------------------------------------------------------------------- /tools/log/logutils/event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/logutils/event.py -------------------------------------------------------------------------------- /tools/log/logutils/iterator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/logutils/iterator.py -------------------------------------------------------------------------------- /tools/log/logutils/visitor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/logutils/visitor.py -------------------------------------------------------------------------------- /tools/log/memusg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/memusg -------------------------------------------------------------------------------- /tools/log/plot_hist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ntruessel/qcgc/HEAD/tools/log/plot_hist --------------------------------------------------------------------------------