[gambit-list] current-object-file

Eduardo Cavazos wayo.cavazos at gmail.com
Sun Mar 22 07:42:08 EDT 2009


Per Eckerdal wrote:

>> (define (current-object-file scheme-file)
>>   (let ((object-file?
>>          (let ((object-file-prefix
>>                 (string-append (path-strip-directory
>>                                 (path-strip-extension scheme-file))
>>                                ".o")))
>>            (lambda (file)
>>              (string-prefix? object-file-prefix file)))))
>>     (let ((object-files
>>            (sort-list
>>             (filter object-file?
>>                     (directory-files (path-directory scheme-file)))
>>             string>)))
>>       (if (null? object-files)
>>           #f
>>           (first object-files)))))

> I don't have the utility functions that you use in that function

Ah yes... I'm using SRFI-1 and SRFI-13. I'm using the ones from snow, 
but I'm not actually using snow. I just extracted the files I needed. 
But anyway, many thanks to Jeremie for packaging these for Gambit!

> it compares strings lexicographically
 > so if you have ten .o* files, it will choose .o2 and not .o10.

Yup.

There is also another area where this procedure doesn't model exactly 
what Gambit does. Gambit will load the highest number in a *contiguous* 
range  starting from 1. I.e. if there are versions 1, 2, 3, 4, 5, it'll 
load 5. But if you have a "hole" in the numbers, e.g. if you remove 
version 3, Gambit'll load 2 as the latest version and create 3 if you 
compile again. However at this point, if you havent deleted versions 4 
and 5, it'll load 5, not 3! :-) So don't make holes in the version list. :-)

Ed



More information about the Gambit-list mailing list