Improve GC

The current garbage collector has a segfault bug: when strings, or possibly any type, are created in a huge loop (over 10K iterations when TP_GCMAX is set to 16384), reaching the loop limit and/or printing the loop variables will cause the segfault. from tp.h line 40: #define TP_GCMAX 16384 /* FIXME: increased so that gc doesn't get called while running tp_str() */ As a workaround this define has been set to: #define TP_GCMAX 262144

TODO:

  • fix tp_str so that GC is not run when it is called
  • try to workaround the current GC with a new implementation