Skip to content

Instantly share code, notes, and snippets.

@no-defun-allowed
Created March 8, 2022 10:07
Show Gist options
  • Save no-defun-allowed/24c89a26c92790b18ecdbd018f12f665 to your computer and use it in GitHub Desktop.
Save no-defun-allowed/24c89a26c92790b18ecdbd018f12f665 to your computer and use it in GitHub Desktop.

Revisions

  1. no-defun-allowed created this gist Mar 8, 2022.
    33 changes: 33 additions & 0 deletions böhm.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,33 @@
    #include <gc.h>
    #include <cstddef>
    #include <new>

    void* operator new(std::size_t n) {
    void *p = GC_MALLOC(n);
    if (!p) throw std::bad_alloc();
    return p;
    }

    void operator delete(void *p) {
    (void)p; // lol
    }

    /* example use */

    #include <iostream>

    int main() {
    for (int i = 0; i < 1000000; i++)
    char* x = new char[10000];
    std::cout << "lmao" << std::endl;
    }

    /*
    [hayley@I-AM-NOT-A-BURNING-BUILDING tmp]$ g++ -lgc böhm.cpp -o böhm
    [hayley@I-AM-NOT-A-BURNING-BUILDING tmp]$ /usr/bin/time ./böhm
    lmao
    13.10user 24.06system 0:11.97elapsed 310%CPU (0avgtext+0avgdata 4396maxresident)k
    0inputs+0outputs (0major+296minor)pagefaults 0swaps
    */