From: Dmitry Bogatov Date: Tue, 29 Oct 2013 06:00:01 +0000 (+0400) Subject: Configure return list of package dependencies X-Git-Url: https://jfr.im/git/irc/thales.git/commitdiff_plain/5d6d5a6cccac6898915121ccf1d473e2e3ef225c Configure return list of package dependencies --- diff --git a/src/thales/prepare.scm b/src/thales/prepare.scm index fa43b62..5b175d5 100644 --- a/src/thales/prepare.scm +++ b/src/thales/prepare.scm @@ -7,10 +7,11 @@ check-resolution perform-configure) #:use-module (thales core-modules) - #:use-module (thales seal) #:use-module (thales syntax) #:use-module (ice-9 match) - #:use-module (ice-9 ftw)) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1)) +(use-modules (thales seal)) (sealed string-starts-with (& "foo" "fo" => #t) @@ -97,18 +98,20 @@ #:ensure #f)))) (define* (perform-configure modules #:key (unknown-sourced (const #t))) - (apply append - (for* (mod in modules) - (format #t "Module ~a.\n" mod) - (unless (module-resolvable? mod) - (throw 'unresolved-module mod)) - (for* (dep in (module-deps mod)) - (format #t " → Checking for ~a... " dep) - (if (member dep modules) - (format #t "self\n") - (let ((provider (check-dependency dep))) - (if provider (format #t "~a\n" provider) - (begin - (unknown-sourced dep) - (format #t "unknown\n"))) - provider)))))) + (delete-duplicates + (filter symbol? + (apply append + (for* (mod in modules) + (format #t "Module ~a.\n" mod) + (unless (module-resolvable? mod) + (throw 'unresolved-module mod)) + (for* (dep in (module-deps mod)) + (format #t " Checking for ~a... " dep) + (if (member dep modules) + (format #t "self\n") + (let ((provider (check-dependency dep))) + (if provider (format #t "~a\n" provider) + (begin + (unknown-sourced dep) + (format #t "unknown\n"))) + provider))))))))