I've begun using the "system" egg in one of my projects and it's been very hepful. However, every time the executable is started, files are recompiled, even if they haven't changed. Let me clarify:
(define-system common
(compiled-scheme-file "common/point")
(compiled-scheme-file "common/bufops")
(compiled-scheme-file "common/buffers"))
(define-system front-end
(compiled-scheme-file "front-ends/faces")
(compiled-scheme-file "front-ends/widgets")
(compiled-scheme-file "front-ends/cairo-renderer")
(compiled-scheme-file "main"))
I load it like so:
(use system
posix)
(load "grafitti.system")
(load-system common)
(load-system front-end)
When running, I get several lines of output like:
; front-end: file "front-ends/widgets" needs to be reloaded because it hasn't been loaded yet
; compiling front-ends/widgets.scm ...
/usr/local/bin/csc -s -S -O2 -d2 front-ends/widgets.scm -o /tmp/temp6bb7.so
It compiles to the "tmp" directory, every time. Ideally, I'd like the shared objects to stick around and only be recompiled if the files are changed. "build-system" works, but then the files are ignored by load-system (as per documentation).
Is this the expected behavior?
-- Stephen
"Kids these days.
Whatever happened to hard work?"
-- Joel Spolsky, The perils of javaschools