Under Ubuntu 14.04, with a debug build of gprolog and valgrind I got this after loading an empty source file:
==8418==
==8418== HEAP SUMMARY:
==8418== in use at exit: 911,183 bytes in 1,994 blocks
==8418== total heap usage: 2,042 allocs, 48 frees, 920,804 bytes allocated
==8418==
==8418== 16 bytes in 1 blocks are definitely lost in loss record 7 of 1,994
==8418== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8418== by 0x51C5839: strdup (strdup.c:42)
==8418== by 0x4A33DD: Pl_M_Tempnam (in /usr/local/gprolog-1.4.4/bin/gprolog)
==8418== by 0x4805ED: Pl_Temporary_File_3 (in /usr/local/gprolog-1.4.4/bin/gprolog)
==8418== by 0x47D575: ??? (in /usr/local/gprolog-1.4.4/bin/gprolog)
==8418== by 0x4A46B1: Call_Next (in /usr/local/gprolog-1.4.4/bin/gprolog)
==8418== by 0x4A52C2: Pl_Call_Prolog (in /usr/local/gprolog-1.4.4/bin/gprolog)
==8418== by 0x403477: main (in /usr/local/gprolog-1.4.4/bin/gprolog)
==8418==
==8418== LEAK SUMMARY:
==8418== definitely lost: 16 bytes in 1 blocks
==8418== indirectly lost: 0 bytes in 0 blocks
==8418== possibly lost: 0 bytes in 0 blocks
==8418== still reachable: 911,167 bytes in 1,993 blocks
==8418== suppressed: 0 bytes in 0 blocks
==8418== Reachable blocks (those to which a pointer was found) are not shown.
==8418== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==8418==
==8418== For counts of detected and suppressed errors, rerun with: -v
==8418== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
So, there is a leak across the board not just OSX...
I am going to read the source and use the force to see if I can fix this one, I mean, how hard could it be it even tells me where to look!