Marc you wrote 2 pieces of code:
- a heap walker: ##walk-object! - a function to copy recursively an object to a new memory zone (STILL, PERMANENT, ...): ##copy-object
you also wrote a small test function: test-walk at the end of the file to showcase those
The goal for me was to move large pieces of stable memory (classes for example) to PERMANENT memory so as to diminish the pressure on the garbage collector in the video game I'm writing. I ended up not using it in the game as I was never able to make it work correctly due to the complexities of the structures I wanted to copy.
The implementation is available here: https://github.com/jazzscheme/jazz/blob/master/lib/gambit.walk/src/gambit/wa.... Dimitri, just remove the surrounding (unit protected gambit.walk.implementation ...) expression to get pure Gambit code.
Note that Gambit 4.8.8 broke some pieces of the code. See the ;; fix gambit 4.8.8 undefined warnings comments throughout the code (should not be too hard to fix I think).
Guillaume
On Wed, Jan 31, 2018 at 9:23 AM, Dimitris Vyzovitis vyzo@hackzen.org wrote:
awesome, thank you!
-- vyzo
On Wed, Jan 31, 2018 at 4:03 PM, Guillaume Cartier < gcartier@jazzscheme.org> wrote:
Yes Marc wrote some very nice code to explore the Gambit heap programmaticaly that I use in my projects. I'll refresh myself on the code and post it in a Gambit friendly format shortly.
Guillaume
On Wed, Jan 31, 2018 at 8:08 AM, Marc Feeley feeley@iro.umontreal.ca wrote:
Yes I remember helping Guillaume Cartier develop a procedure to do this. Perhaps he can help you with that.
Marc
On Jan 29, 2018, at 1:00 PM, Dimitris Vyzovitis vyzo@hackzen.org
wrote:
Is there a reasonable way to dump the live heap? It could help a lot with debugging memory leaks.
-- vyzo
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list