With this patch, it doesn't leak any more on Linux:
it is against the stable-snapshot ruby 1.6.6 (2001-12-13) [i686-linux]

--- parse.y.old	Mon Dec 17 15:28:17 2001
+++ parse.y	Mon Dec 17 15:24:40 2001
@@ -2052,12 +2052,16 @@
     VALUE file;
     int start;
 {
+    NODE *result;
+    char *f_tmp = strdup(f);
     lex_gets = rb_io_gets;
     lex_input = file;
     lex_pbeg = lex_p = lex_pend = 0;
     ruby_sourceline = start - 1;
 
-    return yycompile(strdup(f), start);
+    result = yycompile(f_tmp, start);
+    free(f_tmp);
+    return result;
 }
 
 static inline int

Bye,
Martin.

-- 
The early bird catches the worm. If you want something else for       
breakfast, get up later.