[gambit-list] current-object-file
Eduardo Cavazos
wayo.cavazos at gmail.com
Sun Mar 22 08:08:04 EDT 2009
Eduardo Cavazos wrote:
> This is the procedure I'm using to find the current object file for a
> given scheme file.
>
> (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)))))
Another approach to finding the "current" or "latest" object file is to
pick the one with the most recent modification time.
Here's a procedure to list all the object-files for a scheme file:
(define (object-files 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
(filter object-file?
(directory-files (path-directory scheme-file)))))
(let ((reattach-directory
(lambda (file)
(string-append (path-directory scheme-file) file))))
(map reattach-directory object-files)))))
A procedure to pick the most recent one:
(define (current-object-file scheme-file)
(let ((object-files (object-files scheme-file)))
(if (null? object-files)
#f
(first (sort-list object-files file-newer?)))))
Ed
More information about the Gambit-list
mailing list