{
{
[USER-LOG in conjure.log; fix s42's build.scm
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060130010112] {
hunk ./scheme/packages.scm 155
-  (export make-multi-logger user-log)
+  (export make-multi-logger)
hunk ./scheme/packages.scm 40
-        conjure.goal-body conjure.log)
+        conjure.goal-body)
hunk ./scheme/log.scm 70
-
-(define user-log (make-multi-logger 'user))
hunk ./scheme/goal.scm 185
-          (else (%log 'error "warning: unexpected sp in goal" (goal-name g))
+          (else (display "warning: unexpected sp")
+                (newline)
hunk ./scheme/goal.scm 58
-    (if (and (set-goal-name! goal name)
-             (set-goal-products! goal products)
-             (set-goal-files! goal files)
-             (set-goal-deps! goal deps)
-             (set-goal-build-proc! goal bp)
-             (set-goal-clean-proc! goal cp)
-             (set-goal-stale-pred! goal sp)
-             (set-goal-info! goal info))
-        goal
-        (begin (%log 'warning
-                     "make-goal: goal" name "cannot be constructed")
-               #f))))
+    (and (set-goal-name! goal name)
+         (set-goal-products! goal products)
+         (set-goal-files! goal files)
+         (set-goal-deps! goal deps)
+         (set-goal-build-proc! goal bp)
+         (set-goal-clean-proc! goal cp)
+         (set-goal-stale-pred! goal sp)
+         (set-goal-info! goal info)
+         goal)))
hunk ./scheme/goal.scm 31
-(define %log (make-multi-logger 'goal))
-
hunk ./examples/s42/build.scm 223
-                 (deps (map test-name (cons "conjure" test-suites)))))
+                 (deps (map test-name (cons "conjure-tests" test-suites)))))
hunk ./examples/s42/build.scm 209
-                      (user-log 'info
-                                (string-append "Running " name " testsuite.."))
+                      (display (string-append "Running " name " testsuite.."))
hunk ./examples/s42/build.exec 16
-(user '(open conjure.log))
}
[Get rid of conditions in conjure.goal
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060129162852] {
hunk ./scheme/tests/tests.scm 23
-(("goal.scm" spells.file spells.file-list spells.misc conjure.goal)
+(("goal.scm"
+  spells.file spells.file-list spells.misc spells.condition conjure.goal)
hunk ./scheme/tests/tests.scm 3
-;; Copyright (C) 2005, 2006 by Free Software Foundation, Inc.
+;; Copyright (C) 2005 by Free Software Foundation, Inc.
hunk ./scheme/tests/goal.scm 90
-  (testeez "Errors"
-    (test-false "name" (set-goal-name! g1 #f))
-    (test-true "name2" (set-goal-name! g1 "a"))
-    (test-false "deps" (set-goal-deps! g1 '(1 3)))
-    (test-true "deps2" (set-goal-deps! g1 #f))
-    (test-false "bp" (set-goal-build-proc! g1 3))
-    (test-true "bp2" (set-goal-build-proc! g1 #f))
-    (test-true "sp" (and (set-goal-stale-pred! g1 "a")
-                         (equal? ((goal-stale-pred g1) g1) "a")))
-    (test-true "sp2" (set-goal-stale-pred! g1 #f))
-    (test-false "cp" (set-goal-clean-proc! g1 "a"))
-    (test-false "cp" (set-goal-clean-proc! g1 #t))))
+  (testeez "Exceptions"
+    (test-true "name" (test-exception (lambda () (set-goal-name! g1 #f))))
+    (test-false "name2" (test-exception (lambda () (set-goal-name! g1 "a"))))
+    (test-true "deps" (test-exception (lambda () (set-goal-deps! g1 '(1 3)))))
+    (test-false "deps2" (test-exception (lambda () (set-goal-deps! g1 #f))))
+    (test-true "bp" (test-exception (lambda () (set-goal-build-proc! g1 3))))
+    (test-false "bp2" (test-exception (lambda () (set-goal-build-proc! g1 #f))))
+    (test-true "sp" (test-exception (lambda () (set-goal-stale-pred! g1 "a"))))
+    (test-false "sp2" (test-exception (lambda () (set-goal-stale-pred! g1 #f))))
+    (test-true "cp" (test-exception (lambda () (set-goal-clean-proc! g1 "a"))))
+    (test-false "cp" (test-exception (lambda () (set-goal-clean-proc! g1 #t))))
+    (test-false "cp2" (test-exception (lambda () (set-goal-clean-proc! g1 #f))))))
hunk ./scheme/tests/goal.scm 88
+(define-syntax test-exception
+  (syntax-rules ()
+    ((_ thunk)
+     (call-with-current-continuation
+      (lambda (k)
+        (with-exception-handler
+         (lambda (x) (k (invalid-goal-arg? x)))
+         (lambda () (thunk) #f)))))))
hunk ./scheme/tests/goal.scm 45
-  (test-true "sp" (and-map (lambda (sp) (eq? sp 'default))
-                           (map goal-stale-pred (list g2 g3 g4))))
-  (test-true "cp" (and-map (lambda (cp) (eq? cp 'default))
-                           (map goal-clean-proc (list g1 g2 g3 g4))))
+  (test-false "sp" (and-map goal-stale-pred (list g2 g3 g4)))
hunk ./scheme/tests/goal.scm 3
-;; Copyright (C) 2005, 2006 by Free Software Foundation, Inc.
+;; Copyright (C) 2005 by Free Software Foundation, Inc.
hunk ./scheme/packages.scm 39
-        spells.opt-args spells.misc spells.file spells.file-list
+        spells.opt-args spells.condition spells.misc spells.file
+        spells.file-list
hunk ./scheme/packages.scm 26
-  (export ((make-goal) :syntax)
+  (export ((make-goal) :syntax) invalid-goal-arg?
hunk ./scheme/goal.scm 198
-          ((eq? cp 'default) (delete-file-list (goal-products-file-list g)))
+          (cp (delete-file-list (goal-products-file-list g)))
hunk ./scheme/goal.scm 170
-    (cond ((procedure? sp) (sp g))
-          ((eq? sp 'default)
-           (let ((pp (goal-products-file-list g)))
-             (and pp
-                  (not (null? (pp)))
-                  (or (not (and-map file? (pp)))
-                      (let ((pt (car (file-list-least-modification-time pp)))
-                            (ft (file-list-greatest-modification-time
-                                 (goal-files-file-list g))))
-                        (and pt ft (< pt (car ft))))))))
-          (else (display "warning: unexpected sp")
-                (newline)
-                #f))))
+    (if sp
+        (sp g)
+        (let ((pp (goal-products-file-list g)))
+          (and pp
+               (not (null? (pp)))
+               (or (not (and-map file? (pp)))
+                   (let ((pt (car (file-list-least-modification-time pp)))
+                         (ft (file-list-greatest-modification-time
+                              (goal-files-file-list g))))
+                     (and pt ft (< pt (car ft))))))))))
hunk ./scheme/goal.scm 167
-;;; goal's files.
+;;; goal's files. If @arg1 is a string (goal name), @var{#t} is
+;;; returned.
hunk ./scheme/goal.scm 153
-  (%sset! %goal-body-set-sp!
-          (%goal-body g)
-          (cond ((procedure? p) p)
-                ((eq? p 'default) 'default)
-                (else (lambda (goal) p)))))
-(define (set-goal-info! g info)
-  (%sset! %goal-body-set-info! (%goal-body g) info))
+  (%goal-body-set-sp! (%goal-body g)
+                      (if (procedure? p) p (lambda (goal) p))))
+(define (set-goal-info! g info) (%goal-body-set-info! (%goal-body g) info))
hunk ./scheme/goal.scm 149
-  (%sset! %goal-body-set-cp! (%goal-body g) (or (not p)
-                                                (and (eq? p 'default) 'default)
-                                                (%check-proc p))))
+  (%goal-body-set-cp! (%goal-body g) (or (eq? p #t) (%check-proc p))))
hunk ./scheme/goal.scm 147
-  (%sset! %goal-body-set-bp! (%goal-body g) (%check-proc p)))
+  (%goal-body-set-bp! (%goal-body g) (%check-proc p)))
hunk ./scheme/goal.scm 145
-  (%sset! %goal-body-set-deps! (%goal-body g) (%make-fl dlst)))
+  (%goal-body-set-deps! (%goal-body g) (%make-fl dlst)))
hunk ./scheme/goal.scm 142
-  (%sset! %goal-body-set-files! (%goal-body g) (%make-fl flst)))
+  (%goal-body-set-files! (%goal-body g) (%make-fl flst)))
hunk ./scheme/goal.scm 140
-  (%sset! %goal-body-set-products! (%goal-body g) (%make-fl plst)))
+  (%goal-body-set-products! (%goal-body g) (%make-fl plst)))
hunk ./scheme/goal.scm 138
-(define (set-goal-name! g n) (%sset! set-car! g (or n %error-tag)))
+(define (set-goal-name! g n) (set-car! g (%check-str-proc n)))
hunk ./scheme/goal.scm 118
-    (if (eq? lst %error-tag)
-        %error-tag
-        (lambda (g)
-          (let ((fl (make-file-list)))
-            (for-each (lambda (f) (add-to-file-list! fl f))
-                      (reverse (if lst
-                                   (map (lambda (p)
-                                          (if (procedure? p)
-                                              (lambda () (p g))
-                                              p))
-                                        lst)
-                                   '())))
-            fl)))))
-
-
-(define (%sset! setter place value)
-  (cond ((eq? value %error-tag) #f)
-        (else (setter place value) #t)))
+    (lambda (g)
+      (let ((fl (make-file-list)))
+        (for-each (lambda (f) (add-to-file-list! fl f))
+                  (reverse (if lst
+                               (map (lambda (p)
+                                      (if (procedure? p) (lambda () (p g)) p))
+                                    lst)
+                               '())))
+        fl))))
hunk ./scheme/goal.scm 102
-                         (let* ((first (%check-lst (car lst) check))
-                                (rest (and (list? first)
-                                           (%check-lst (cdr lst) check))))
-                           (if (and (list? first) (list? rest))
-                               (append first rest)
-                               %error-tag))
-                         (let* ((first (check (car lst)))
-                                (rest (and (not (eq? first %error-tag))
-                                           (%check-lst (cdr lst) check))))
-                           (if (list? rest) (cons first rest) %error-tag))))
-        (else (list (check lst)))))
+                         (append (%check-lst (car lst) proc)
+                                 (%check-lst (cdr lst) proc))
+                         (cons (proc (car lst))
+                               (%check-lst (cdr lst) proc))))
+        (else (list (proc lst)))))
hunk ./scheme/goal.scm 98
-(define (%check-lst lst check)
+(define (%check-lst lst proc)
hunk ./scheme/goal.scm 90
-(define %error-tag (list "error"))
-(define (%tov pred) (lambda (x) (if (pred x) x %error-tag)))
-(define %check-str (%tov string?))
-(define %check-proc (%tov (lambda (x) (or (not x) (procedure? x)))))
-(define %check-thunk (%tov (lambda (x) (or (not x) (thunk? x)))))
-(define %check-str-proc (%tov (lambda (x) (or (procedure? x) (string? x)))))
-(define %check-str-thunk (%tov (lambda (x) (or (thunk? x) (string? x)))))
+(define %arg-or-raise
+  (let ((c (make-condition &invalid-goal-arg)))
+    (lambda (pred)
+      (lambda (x) (if (pred x) x (raise c))))))
+
+(define %check-str (%arg-or-raise string?))
+(define %check-proc (%arg-or-raise (lambda (x) (or (not x) (procedure? x)))))
+(define %check-thunk (%arg-or-raise (lambda (x) (or (not x) (thunk? x)))))
+(define %check-str-proc
+  (%arg-or-raise (lambda (x) (or (procedure? x) (string? x)))))
+(define %check-str-thunk
+  (%arg-or-raise (lambda (x) (or (thunk? x) (string? x)))))
hunk ./scheme/goal.scm 56
-    (and (set-goal-name! goal name)
-         (set-goal-products! goal products)
-         (set-goal-files! goal files)
-         (set-goal-deps! goal deps)
-         (set-goal-build-proc! goal bp)
-         (set-goal-clean-proc! goal cp)
-         (set-goal-stale-pred! goal sp)
-         (set-goal-info! goal info)
-         goal)))
+    (set-goal-name! goal name)
+    (set-goal-products! goal products)
+    (set-goal-files! goal files)
+    (set-goal-deps! goal deps)
+    (set-goal-build-proc! goal bp)
+    (set-goal-clean-proc! goal cp)
+    (set-goal-stale-pred! goal sp)
+    (set-goal-info! goal info)
+    goal))
hunk ./scheme/goal.scm 52
-                              (sp 'default)
-                              (cp 'default)
+                              (sp #f)
+                              (cp #t)
hunk ./scheme/goal.scm 42
-;; @var{'default} (the default) to delete the goal's products. Both take a
+;; @var{#t} (the default) to delete the goal's products. Both take a
hunk ./scheme/goal.scm 36
-;; string, list of strings or generating procedure enumerating files used
+;; string, list of strings or generating thunk enumerating files used
hunk ./scheme/goal.scm 31
+;;;@body Exception used to signal, via Spell's condition mechanism
+;;;(@code{spells.condition}), errors in the parameters passed to
+;;;goal constructor and setters.
+(define-condition-type &invalid-goal-arg &condition invalid-goal-arg?)
+
hunk ./scheme/goal-register.scm 75
-                            (sp #t)
+                            (sp (lambda (g) #t))
hunk ./scheme/goal-register.scm 3
-;; Copyright (C) 2005, 2006 by Free Software Foundation, Inc.
+;; Copyright (C) 2005 by Free Software Foundation, Inc.
hunk ./examples/s42/build.scm 201
-                 (deps "runners")
hunk ./examples/s42/build.scm 191
-                                     (cons doc-dir doc-sysdefs))))))
+                                     (cons doc-dir doc-sysdefs))))
+                 (cp (lambda (g) (delete-directory! doc-dir)))))
hunk ./examples/s42/build.scm 189
+                 (products doc-dir)
hunk ./examples/s42/build.scm 170
-                 (products '("scheme42" "scheme42.scm" "scheme-exec48"))
+                 (products '("scheme42.scm" "scheme-exec48"))
hunk ./examples/s42/build.scm 66
+  (display cmds)
}
[Accept a single expression as a goal's staleness 'predicate'
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060129010615] {
hunk ./scheme/goal.scm 146
-  (%goal-body-set-sp! (%goal-body g)
-                      (if (procedure? p) p (lambda (goal) p))))
+  (%goal-body-set-sp! (%goal-body g) (%check-proc p)))
hunk ./scheme/goal.scm 3
-;; Copyright (C) 2005, 2006 by Free Software Foundation, Inc.
+;; Copyright (C) 2005 by Free Software Foundation, Inc.
hunk ./examples/s42/build.scm 216
-                 (sp #t)))))
+                 (sp (lambda (goal) #t))))))
}
[s42: 'test' goal (mostly) working
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060129010037
 
 When running conjure's tests, the spawned scheme42 process does not exit
 (and, therefore, the parent repl stays in a busy wait).
 
] {
hunk ./examples/s42/build.scm 196
-;;; tests
-(define (test-name name) (string-append name "-tests"))
-
-(define make-test-goal
-  (let ((src-dir (make-path (current-directory) "scheme"))
-        (s42 `("./scheme42" "--no-init")))
-    (lambda (name . pkg-load)
-      (make-goal (name (test-name name))
-                 (bp
-                  (let ((pkg-load (if (not (null? pkg-load))
-                                      (car pkg-load)
-                                      (make-path ".."
-                                                 name
-                                                 "tests/pkg-load.scm"))))
-                    (lambda (goal)
-                      (display (string-append "Running " name " testsuite.."))
-                      (newline)
-                      (run-s42 test-sysdefs
-                               "../scheme/exec42.scm"
-                               `(,pkg-load)))))
-                 (sp (lambda (goal) #t))))))
-
-(define test-suites '("rcs42" "spells" "stexidoc"))
-
-(for-each (lambda (ts) (goal (make-test-goal ts))) test-suites)
-(goal (make-test-goal "conjure" "../conjure/scheme/tests/pkg-load.scm"))
-
-(goal (make-goal (name "test")
-                 (deps (map test-name (cons "conjure-tests" test-suites)))))
hunk ./examples/s42/build.scm 193
-                                     (cons doc-dir doc-sysdefs))))
+                                     ,doc-dir)))
+                         (run/bool #f (append s42 ssargs targ doc-sysdefs)))))
hunk ./examples/s42/build.scm 191
-                 (bp (lambda (g) (run-s42 make-doc-sysdefs
+                 (bp (lambda (g)
+                       (let ((s42 '("./scheme42" "--no-init"))
+                             (ssargs
+                              (apply append
+                                     (map (lambda (s)
+                                            `("--introduce-systems" ,s))
+                                          make-doc-sysdefs)))
+                             (targ `("--exec-script"
hunk ./examples/s42/build.scm 178
-(define (run-s42 sysdefs script args)
-  (let* ((s42 '("./scheme42" "--no-init"))
-         (ssargs (apply append
-                        (map (lambda (s) `("--introduce-systems" ,s)) sysdefs)))
-         (scrp `("--exec-script" ,script))
-         (cmd (append s42 ssargs scrp args)))
-    (run/bool #f cmd)))
-
hunk ./examples/s42/build.scm 43
+  (display prog) (newline)
hunk ./examples/s42/build.scm 23
-  (sys-defs-rel "rcs42" "testeez" "conjure" "sxml" "texinfo" "stexidoc"))
+  (sys-defs "rcs42" "testeez" "conjure" "sxml" "texinfo" "stexidoc"))
}
[s42: 'doc' goal partially working
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060128214153
 
 scheme42 gets invoked with the correct arguments, but looks like no html is generated if it's not run form the root tree.
 
] {
hunk ./examples/s42/build.scm 178
-
-(define doc-dir "doc/html/system-reference")
-(goal (make-goal (name "doc")
-                 (deps "runners")
-                 (files scm-srcs)
-                 (products doc-dir)
-                 (bp (lambda (g)
-                       (let ((s42 '("./scheme42" "--no-init"))
-                             (ssargs
-                              (apply append
-                                     (map (lambda (s)
-                                            `("--introduce-systems" ,s))
-                                          make-doc-sysdefs)))
-                             (targ `("--exec-script"
-                                     "../scripts/make-doc.scm"
-                                     ,doc-dir)))
-                         (run/bool #f (append s42 ssargs targ doc-sysdefs)))))
-                 (cp (lambda (g) (delete-directory! doc-dir)))))
-
-
hunk ./examples/s42/build.scm 49
-  (run/bool #f `("ln" "-s" ,from ,to)))
+  (call-with-values (lambda () (run-process #f "ln" "-s" from to))
+    (lambda (result signal) (= result 0))))
hunk ./examples/s42/build.scm 42
-(define (run/bool env prog)
-  (display prog) (newline)
-  (call-with-values (lambda () (apply run-process #f prog))
-    (lambda (result signal) (equal? result 0))))
-
hunk ./examples/s42/build.scm 16
-(define (sys-defs-rel . dirs)
-  (map (lambda (dir) (string-append "../" dir)) (apply sys-defs dirs)))
-
-(define make-doc-sysdefs (sys-defs-rel "sxml" "texinfo" "stexidoc"))
-(define doc-sysdefs (sys-defs-rel "texinfo" "stexidoc"))
+(define make-doc-sysdefs (sys-defs "sxml" "texinfo" "stexidoc"))
+(define doc-sysdefs (sys-defs "texinfo" "stexidoc"))
}
[s42 build: create symbolic links after compilation/image creation
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060128204245] {
hunk ./examples/s42/build.scm 136
-(goal (make-goal (name "libscheme42")
-                 (products "libscheme42.so")
-                 (deps "scheme42")
-                 (bp (lambda (g) (link (string-append "libscheme42."
-                                                 version-string "."
-                                                 (cc:shared-library-extension))
-                                  "libscheme42.so")))))
-
-(define s42-image-extras
-  '(",in command-processor ,open (subset simple-conditions (condition-predicate))"
-    ",in command-processor ,load ../scheme/exec48.scm"
-    ",in command-processor ,load ../scheme/env.scm"
-    ",in posix-processes ,open threads load-dynamic-externals"
-    ",in posix-processes ,load ../scheme/waitpid.scm"))
-
-(goal (make-goal (name "s42.image")
-                 (products "s42.image")
-                 (deps "libscheme42")
-                 (files (append configs builtin-sysdefs scm-srcs))
-                 (bp (make-image-bp #f #f
-                                    configs
-                                    loaded-packages
-                                    builtin-sysdefs
-                                    '()
-                                    s42-image-extras
-                                    #f))))
-
-(goal (make-goal (name "runners")
-                 (deps '("run" "runner"))
-                 (products '("scheme42.scm" "scheme-exec48"))
-                 (files "scheme42.scm")
-                 (bp (lambda (g)
-                       (link "../scheme42.scm" "scheme42.scm")
-                       (link "run" "scheme42")
-                       (link "run" "scheme-exec48")))))
hunk ./examples/s42/build.scm 131
-  (cc:program-goal (name "run")
+  (cc:program-goal (name "runner")
hunk ./examples/s42/build.scm 125
-  (cc:program-goal (name "runner")
+  (cc:program-goal (name "run")
hunk ./examples/s42/build.scm 118
+(define (qstr str) (string-append "\"" str "\""))
+
hunk ./examples/s42/build.scm 100
-;;; goals
+;;; s42 image
+(let* ((scm-srcs '("scheme/startup-file.scm"
+                   "scheme/lib/messages.scm"
+                   "scheme/lib/transform-string.scm"
+                   "scheme/lib/wrap-string.scm"
+                   "scheme/lib/args-fold*.scm"
+                   "scheme/exec48.scm"
+                   "scheme/env.scm"
+                   "scheme/waitpid.scm"
+                   "scheme/command-line.scm"
+                   "scheme/universe/factory.scm"
+                   "scheme/universe/commands.scm"
+                   "scheme/universe/world.scm"))
+       (extras '(",in command-processor ,open (subset simple-conditions (condition-predicate))"
+                 ",in command-processor ,load ../scheme/exec48.scm"
+                 ",in command-processor ,load ../scheme/env.scm"
+                 ",in posix-processes ,open threads load-dynamic-externals"
+                 ",in posix-processes ,load ../scheme/waitpid.scm"))
+       (bp (make-image-bp #f #f
+                          configs
+                          loaded-packages
+                          builtin-sysdefs
+                          '()
+                          extras
+                          #f)))
+  (goal (make-goal (name "s42.image")
+                   (products "s42.image")
+                   (deps "scheme42")
+                   (files (append configs builtin-sysdefs scm-srcs))
+                   (bp bp))))
+
+
+;;; C goals
hunk ./examples/s42/build.scm 60
-  (display cmds)
hunk ./examples/s42/build.scm 38
-;;; aux procedures
-(define (link from to)
-  (if (file? to) (delete-file! to))
-  (call-with-values (lambda () (run-process #f "ln" "-s" from to))
-    (lambda (result signal) (= result 0))))
-
-(define (qstr str) (string-append "\"" str "\""))
-
hunk ./examples/s42/build.scm 22
-(define scm-srcs '("scheme/startup-file.scm"
-                   "scheme/lib/messages.scm"
-                   "scheme/lib/transform-string.scm"
-                   "scheme/lib/wrap-string.scm"
-                   "scheme/lib/args-fold*.scm"
-                   "scheme/exec48.scm"
-                   "scheme/env.scm"
-                   "scheme/waitpid.scm"
-                   "scheme/command-line.scm"
-                   "scheme/universe/factory.scm"
-                   "scheme/universe/commands.scm"
-                   "scheme/universe/world.scm"))
-
-
}
[s42.image can be built with conjure
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060128191652] {
hunk ./examples/s42/build.scm 142
-  (cc:program-goal (name "runner")
-                   (deps '("s42.image"))
-                   (objs '("c/runner-noinst.o"))
-                   (install? #f)))
+  (cc:program-goal (name "runner") (objs '("c/runner-noinst.o")) (install? #f)))
+
hunk ./examples/s42/build.scm 136
-  (cc:program-goal (name "run")
-                   (files '("c/runner.c"))))
+  (cc:program-goal (name "run") (files '("c/runner.c"))))
hunk ./examples/s42/build.scm 75
-(default-goal "runner")
-
-;;; s42 image
-(let* ((scm-srcs '("scheme/startup-file.scm"
-                   "scheme/lib/messages.scm"
-                   "scheme/lib/transform-string.scm"
-                   "scheme/lib/wrap-string.scm"
-                   "scheme/lib/args-fold*.scm"
-                   "scheme/exec48.scm"
-                   "scheme/env.scm"
-                   "scheme/waitpid.scm"
-                   "scheme/command-line.scm"
-                   "scheme/universe/factory.scm"
-                   "scheme/universe/commands.scm"
-                   "scheme/universe/world.scm"))
-       (extras '(",in command-processor ,open (subset simple-conditions (condition-predicate))"
-                 ",in command-processor ,load ../scheme/exec48.scm"
-                 ",in command-processor ,load ../scheme/env.scm"
-                 ",in posix-processes ,open threads load-dynamic-externals"
-                 ",in posix-processes ,load ../scheme/waitpid.scm"))
-       (bp (make-image-bp #f #f
-                          configs
-                          loaded-packages
-                          builtin-sysdefs
-                          '()
-                          extras
-                          #f)))
-  (goal (make-goal (name "s42.image")
-                   (products "s42.image")
-                   (deps "scheme42")
-                   (files (append configs builtin-sysdefs scm-srcs))
-                   (bp bp))))
-
hunk ./examples/s42/build.scm 37
-(define (run-s48 image cmds)
-  (let* ((env (extend-process-environment
-               `(("LD_LIBRARY_PATH" . ,(current-directory)))))
-         (s48cmd (if image
-                     `(,s48vm "-i" ,image "-a" "batch")
-                     `(,s48 "-a" "batch")))
-         (s48proc (apply spawn-process (cons env s48cmd)))
-         (s48in (process-input s48proc)))
-    (for-each (lambda (cmd) (display cmd s48in) (newline s48in)) cmds)
-    (close-process-ports s48proc)
-    (call-with-values
-        (lambda () (wait-for-process s48proc))
-      (lambda (ret signal) 0))))
-
-(define (make-image-bp instdir image configs pkgs sysdefs systems extra msg)
-  (let ((cd (current-directory)))
-    (lambda (goal)
-      (let ((trans (list (string-append ",translate =s42 " (or instdir cd))))
-            (confs (map (lambda (cfg) (string-append ",config ,load =s42/" cfg))
-                        configs))
-            (lds (map (lambda (pkg) (string-append ",load-package " pkg)) pkgs))
-            (sds (map (lambda (sd) (string-append ",introduce-systems =s42/" sd))
-                      sysdefs))
-            (sys (map (lambda (sys) (string-append ",load-system " sys)) systems))
-            (dump (list (string-append ",dump "
-                                       (goal-name goal)
-                                       " \""
-                                       (if msg
-                                           msg
-                                           (string-append "+ s42 "
-                                                          version-string))
-                                       "\""))))
-        (run-s48 image (append trans confs lds sds sys extra dump))))))
-
hunk ./examples/s42/build.scm 20
-  (sys-defs "rcs42" "testeez" "conjure" "sxml" "texinfo" "stexidoc"))
+  (sys-defs "rcs42" "testeez" "conjure" "sxml" "texinfo" "spedoc"))
hunk ./examples/s42/build.scm 16
-(define make-doc-sysdefs (sys-defs "sxml" "texinfo" "stexidoc"))
-(define doc-sysdefs (sys-defs "texinfo" "stexidoc"))
-(define builtin-sysdefs (sys-defs "spells" "spenet" "scheme/universe"))
+(define make-doc-sysdefs (sys-defs "sxml" "texinfo" "spedoc"))
+(define doc-sysdefs (sys-defs "texinfo" "spedoc"))
+(define builtin-sysdefs (sys-defs "texinfo" "spedoc"))
hunk ./examples/s42/build.scm 6
-(define version-string (string-append version-major "."
-                                      version-minor "."
-                                      version-revision))
hunk ./examples/s42/build.exec 16
-(user '(open conjure.goal))
hunk ./examples/s42/build.exec 13
-(user '(open spells.process))
-(user '(open spells.port))
}
[New macro WITH-SYSTEM in conjure.system
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060128191559] {
hunk ./scheme/system.scm 187
-    ((system goal) (with-system system (build-system (cons system goal))))))
+    ((system goal) (build-system (cons system goal)))))
hunk ./scheme/system.scm 158
-  (letrec ((subs (lambda (sysname)
+  (letrec ((subs (lambda (sysname) 
hunk ./scheme/system.scm 61
-(define-syntax with-system
-  (syntax-rules ()
-    ((with-system NAME FIRST REST ...)
-     (parameterize ((%current-system (%subsystem NAME)))
-       FIRST REST ...))))
-
hunk ./scheme/packages.scm 96
-          in-system with-system current-system
+          in-system current-system
}
[conjure.cc program goals admit a deps param
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060128191453] {
hunk ./scheme/cc.scm 374
-           (real-name
+           (real-name 
hunk ./scheme/cc.scm 331
-           (deps (append objs lib-deps deps))
+           (deps (append lib-deps objs))
hunk ./scheme/cc.scm 323
-                                    (deps '())
hunk ./scheme/cc.scm 215
-     (make-goal-proc/process (cc:env)
+     (make-goal-proc/process (cc:env) 
hunk ./scheme/cc.scm 178
-  (cc:env (extend-process-environment
+  (cc:env (extend-process-environment 
hunk ./scheme/cc.scm 154
-      (make-goal-proc/process (cc:env)
+      (make-goal-proc/process (cc:env) 
hunk ./scheme/cc.scm 114
-    (lambda (name)
+    (lambda (name) 
}
[Clean targets fixed, plus minor improvements. s42 run, runner, libscheme42 working fine.
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060122225618] {
hunk ./scheme/install.scm 77
-                (register-goal reg
-                               (make-goal (name giname)
-                                          (deps iname)
-                                          (sp (lambda (g) #t)))
-                               #f)))
+                (register-goal reg (make-goal (name giname)
+                                              (deps iname)
+                                              (sp (lambda (g) #t))))))
hunk ./scheme/install.scm 73
-          (register-goal reg goal #f)
+          (register-goal reg goal)
hunk ./scheme/gr-goal.scm 116
-(define (%gr-build-subgoal gr)
-  (%fwd-subgoal-proc gr
-                     (lambda (goal)
-                       (if (not (file? (gr-goal-build-dir gr)))
-                           (make-directory* (gr-goal-build-dir gr)))
-                       (build-goal goal))))
-
+(define (%gr-build-subgoal gr) (%fwd-subgoal-proc gr build-goal))
hunk ./scheme/gr-goal.scm 57
-                   (if cg (build-goal cg)))))
+                   (if cg (build-goal/dependencies cg)))))
hunk ./scheme/goal-register.scm 85
-            (set-goal-info! cg `(clean-goal ,goal ,@(cdr (goal-info cg))))
+            (set-goal-info! cg (cons 'clean-goal (cons goal (goal-info cg))))
hunk ./scheme/cc.scm 253
-               (map (lambda (file) (merge-paths file (build-directory)))
-                    (remove string-null?
-                            (pregexp-split "[ \\t\\n\\\\]"
-                                           (pregexp-replace "^[^:]+: "
-                                                            output
-                                                            "")))))
+               (remove string-null?
+                       (pregexp-split "[ \\t\\n\\\\]"
+                                      (pregexp-replace "^[^:]+: " output ""))))
}
[Allow GOAL-INFO to be a procedure taking a goal
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060122220456] {
hunk ./scheme/goal.scm 90
-(define (goal-info g)
-  (let ((info ((%g2gb %goal-body-info) g)))
-    (if (procedure? info) (info g) info)))
hunk ./scheme/goal.scm 86
+(define goal-info (%g2gb %goal-body-info))
}
[DISPLAY-SUBSYSTEM-GOAL, new procedure
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060122001601] {
hunk ./scheme/system.scm 159
-
-(define display-subsystem-goal
-  (case-lambda
-    ((goal) (display-subsystem-goal (current-system) goal))
-    ((sys goal) (let ((ss (lookup-goal %systems sys)))
-                  (if ss
-                      (let ((goal (lookup-goal (gr-goal-register ss) goal)))
-                        (if goal
-                            (display-goal goal)
-                            (begin (display "Goal not found") (newline))))
-                      (begin (display "System not found") (newline)))))))
hunk ./scheme/packages.scm 102
-          display-registered-systems-tree display-subsystem-goal-tree
-          display-subsystem-goal)
+          display-registered-systems-tree display-subsystem-goal-tree)
}
[s42's run and runner are  buildable, but install and clean are broken
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060121235559] {
hunk ./scheme/packages.scm 122
-  (export cc:c-compiler cc:c-flags cc:add-c-flag cc:add-cpp-define
+  (export cc:c-compiler cc:c-flags cc:add-c-flag
hunk ./scheme/cc.scm 325
-    (let* ((objs (map %->obj (append files objs)))
+    (let* ((objs (map %->obj files))
hunk ./scheme/cc.scm 319
-                                    (objs '())
hunk ./scheme/cc.scm 259
-(define/named-args (cc:object-goal (product #f) (file #f) (c++? #f) (fpic? #f))
-  (let* ((product (%->obj (or product file)))
+(define/named-args (cc:object-goal (file #f) (c++? #f) (fpic? #f))
+  (let* ((product (%->obj file))
hunk ./scheme/cc.scm 33
-(define (cc:add-cpp-define name . value)
-  (cc:add-c-flag (string-append "-D" name (if (null? value)
-                                              ""
-                                              (string-append "="
-                                                             (car value))))))
hunk ./examples/s42/build.scm 57
-(define (qstr str) (string-append "\"" str "\""))
-
-(cc:add-cpp-define "SCHEME48VM" (qstr s48vm))
-(cc:add-cpp-define "DEFAULT_HEAPSIZE" (qstr "5000000"))
-(cc:add-cpp-define "BUILD_FFI42" (if build-ffi "YES" "NO"))
-
-(parameterize ((cc:c-flags (cc:c-flags)))
-  (cc:add-cpp-define "LIBDIR"
-                     (qstr (make-path (install-prefix) "lib" "scheme42")))
-  (cc:program-goal (name "run") (files '("c/runner.c"))))
-
-(parameterize ((cc:c-flags (cc:c-flags)))
-  (cc:add-cpp-define "LIBDIR" (qstr (build-directory)))
-  (cc:object-goal (product "c/runner-noinst.o") (file "c/runner.c"))
-  (cc:program-goal (name "runner") (objs '("c/runner-noinst.o")) (install? #f)))
-
-
hunk ./examples/s42/build.exec 13
-(user '(open spells.parameter))
}
[conjure.cc: scan dependencies in build directory, so that inc flags are correct
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060121193231] {
hunk ./scheme/cc.scm 241
-    (call-with-values
-        (lambda ()
-          (with-current-directory (build-directory)
-            (apply run-process/string (cc:env) run-deps)))
+    (call-with-values (lambda () (apply run-process/string (cc:env) run-deps))
hunk ./scheme/cc.scm 237
-         (run-deps `(,compiler ,@flags ,(merge-paths file)))
+         (run-deps `(,compiler ,@flags ,file))
}
[Logger usage improvements (multi-logger)
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060121192140] {
hunk ./scheme/packages.scm 154
-(define-structure conjure.log
-  (export make-multi-logger)
+
+(define-structure conjure.log (export)
hunk ./scheme/packages.scm 142
+(define-structure conjure.cc.config
+  (export config-linux config-mac)
+  (open scheme conjure.cc)
+  (files cc-config))
+
hunk ./scheme/packages.scm 137
-        spells.sysutils spells.logging spells.misc
-        conjure.goal conjure.process conjure.system conjure.install
-        conjure.log conjure.aux)
+        spells.sysutils spells.misc
+        conjure.goal conjure.process conjure.system
+        conjure.install spells.logging conjure.aux)
hunk ./scheme/log.scm 52
-                                  (conjure-formatter entry
-                                                     (current-output-port)))))))
-
-(define (make-multi-logger name)
-  (let ((name (list 'conjure name)))
-    (let ((debug (make-log name 'debug))
-          (info (make-log name 'info))
-          (warning (make-log name 'warning))
-          (error (make-log name 'error))
-          (critical (make-log name 'critical)))
-      (lambda (level . args)
-        ((case level
-           ((debug) debug)
-           ((info) info)
-           ((warning) warning)
-           ((error) error)
-           ((critical) critical))
-         args)))))
+                                  (conjure-formatter entry (current-output-port)))))))
hunk ./scheme/log.scm 24
-;; Loading this configures logging for conjure; in addition, a
-;; convenience function for creating conjure loggers is provided.
-;; Note that other packages use (and therefore load) this package.
+;; Loading this configures logging for conjure; in the end, this
+;; should be done by the conjure toplevel (MAIN) function, but there
+;; is none yet. --rotty
hunk ./scheme/cc.scm 248
-              (else (%log 'error logp "...FAILED. Exit code" status)
+              (else (%log logp "...FAILED. Exit code" status)
hunk ./scheme/cc.scm 244
-               (%log 'info logp "...done")
+               (%log logp "...done")
hunk ./scheme/cc.scm 239
-    (%log 'info logp "scanning dependencies...")
-    (apply %log 'debug run-deps)
+    (%log logp "scanning dependencies...")
hunk ./scheme/cc.scm 234
+(define (%goal-log msg)
+  (lambda (g) (%log (string-append (goal-name g) ":") msg)))
+
+(define (%fail-log action)
+  (lambda (g status . output)
+    (%log (string-append (goal-name g) ":")
+         action "FAILED. Exit code:" status output)
+    #f))
+
hunk ./scheme/cc.scm 97
-          (else (%log 'warning "usupported OS:" os)))))
+          (else (%log "warning: usupported OS:" os)))))
hunk ./scheme/cc.scm 94
-    (%log 'info "cc: configuring for" os)
+    (%log "cc: configuring for" os)
hunk ./scheme/cc.scm 82
-(define %log (make-multi-logger 'cc))
-(define (%goal-log msg)
-  (lambda (g) (%log 'info (string-append (goal-name g) ":") msg)))
-(define (%fail-log action)
-  (lambda (g status . output)
-    (%log 'error (string-append (goal-name g) ":")
-         action "FAILED. Exit code:" status output)
-    #f))
+(define %cc-log (make-log '(conjure cc) 'info))
+(define (%log . args)
+  (%cc-log args))
}
[conjure.cc: bug in build dir creation fixed
Jose Antonio Ortega Ruiz <jao@gnu.org>*-20060120010759] {
hunk ./scheme/cc.scm 271
-                     (bp (lambda (g) (make-directory* build-dir) (bp g)))
+                     (bp bp)
hunk ./scheme/cc.scm 268
+    (make-directory* (merge-paths (file-dirname product) (build-directory)))
hunk ./scheme/cc.scm 261
-         (build-dir (merge-paths (file-dirname product) (build-directory)))
}
[Get rid of system version (for now)
Andreas Rottmann <rotty@debian.org>*-20060118131333] {
hunk ./sys-def.scm 1
-(define-system conjure
+
+(define-system conjure (0 1)
hunk ./examples/s42/build.exec 1
-;;; -*- scheme -*-
+;;; -*- scheme48 -*-
}
[Adapted to spells.logging change
Andreas Rottmann <rotty@debian.org>*-20060118113804] {
hunk ./scheme/log.scm 50
-                  `((handlers ,(make-log-handler
-                                (lambda (entry)
-                                  (conjure-formatter entry (current-output-port)))))))
+                  `((port ,(current-output-port)
+                          (formatter ,conjure-formatter)
+                          (threshold debug))))
}
}
{
hunk ./examples/s42/build.exec 3
-(translate "=spells/" "./spells/")
+(translate "=spells/" "../spells48/")
hunk ./scheme/load.exec 30
-(translate "=spells/" "./../../spells/")
+(translate "=spells/" "./../../spells48/")
hunk ./scheme/packages.scm 154
+v v v v v v v
+(define-structure conjure.configure
+  (export new-config-var valued-config-var config-var-for-name
+	  configure-goal-vars make-config-goal)
+  (open scheme srfi-1 define-record-types conjure.goal spells.file
+	spells.parameter signals)
+  (files config config.compile))
+
+(define-structure conjure.log (export)
+*************
hunk ./scheme/packages.scm 166
+^ ^ ^ ^ ^ ^ ^
}
{
{
[Adapted to spells.logging change
Andreas Rottmann <rotty@debian.org>**20060118113804] {
hunk ./scheme/log.scm 50
-                  `((port ,(current-output-port)
-                          (formatter ,conjure-formatter)
-                          (threshold debug))))
+                  `((handlers ,(make-log-handler
+                                (lambda (entry)
+                                  (conjure-formatter entry (current-output-port)))))))
}
[Get rid of system version (for now)
Andreas Rottmann <rotty@debian.org>**20060118131333] {
hunk ./examples/s42/build.exec 1
-;;; -*- scheme48 -*-
+;;; -*- scheme -*-
hunk ./sys-def.scm 1
-
-(define-system conjure (0 1)
+(define-system conjure
}
[conjure.cc: bug in build dir creation fixed
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060120010759] {
hunk ./scheme/cc.scm 261
+         (build-dir (merge-paths (file-dirname product) (build-directory)))
hunk ./scheme/cc.scm 268
-    (make-directory* (merge-paths (file-dirname product) (build-directory)))
hunk ./scheme/cc.scm 271
-                     (bp bp)
+                     (bp (lambda (g) (make-directory* build-dir) (bp g)))
}
[Logger usage improvements (multi-logger)
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060121192140] {
hunk ./scheme/cc.scm 82
-(define %cc-log (make-log '(conjure cc) 'info))
-(define (%log . args)
-  (%cc-log args))
+(define %log (make-multi-logger 'cc))
+(define (%goal-log msg)
+  (lambda (g) (%log 'info (string-append (goal-name g) ":") msg)))
+(define (%fail-log action)
+  (lambda (g status . output)
+    (%log 'error (string-append (goal-name g) ":")
+         action "FAILED. Exit code:" status output)
+    #f))
hunk ./scheme/cc.scm 94
-    (%log "cc: configuring for" os)
+    (%log 'info "cc: configuring for" os)
hunk ./scheme/cc.scm 97
-          (else (%log "warning: usupported OS:" os)))))
+          (else (%log 'warning "usupported OS:" os)))))
hunk ./scheme/cc.scm 234
-(define (%goal-log msg)
-  (lambda (g) (%log (string-append (goal-name g) ":") msg)))
-
-(define (%fail-log action)
-  (lambda (g status . output)
-    (%log (string-append (goal-name g) ":")
-         action "FAILED. Exit code:" status output)
-    #f))
-
hunk ./scheme/cc.scm 239
-    (%log logp "scanning dependencies...")
+    (%log 'info logp "scanning dependencies...")
+    (apply %log 'debug run-deps)
hunk ./scheme/cc.scm 244
-               (%log logp "...done")
+               (%log 'info logp "...done")
hunk ./scheme/cc.scm 248
-              (else (%log logp "...FAILED. Exit code" status)
+              (else (%log 'error logp "...FAILED. Exit code" status)
hunk ./scheme/log.scm 24
-;; Loading this configures logging for conjure; in the end, this
-;; should be done by the conjure toplevel (MAIN) function, but there
-;; is none yet. --rotty
+;; Loading this configures logging for conjure; in addition, a
+;; convenience function for creating conjure loggers is provided.
+;; Note that other packages use (and therefore load) this package.
hunk ./scheme/log.scm 52
-                                  (conjure-formatter entry (current-output-port)))))))
+                                  (conjure-formatter entry
+                                                     (current-output-port)))))))
+
+(define (make-multi-logger name)
+  (let ((name (list 'conjure name)))
+    (let ((debug (make-log name 'debug))
+          (info (make-log name 'info))
+          (warning (make-log name 'warning))
+          (error (make-log name 'error))
+          (critical (make-log name 'critical)))
+      (lambda (level . args)
+        ((case level
+           ((debug) debug)
+           ((info) info)
+           ((warning) warning)
+           ((error) error)
+           ((critical) critical))
+         args)))))
hunk ./scheme/packages.scm 137
-        spells.sysutils spells.misc
-        conjure.goal conjure.process conjure.system
-        conjure.install spells.logging conjure.aux)
+        spells.sysutils spells.logging spells.misc
+        conjure.goal conjure.process conjure.system conjure.install
+        conjure.log conjure.aux)
hunk ./scheme/packages.scm 142
-(define-structure conjure.cc.config
-  (export config-linux config-mac)
-  (open scheme conjure.cc)
-  (files cc-config))
-
merger 0.0 (
hunk ./scheme/packages.scm 154
+(define-structure conjure.configure
+  (export new-config-var valued-config-var config-var-for-name
+	  configure-goal-vars make-config-goal)
+  (open scheme srfi-1 define-record-types conjure.goal spells.file
+	spells.parameter signals)
+  (files config config.compile))
hunk ./scheme/packages.scm 154
-
-(define-structure conjure.log (export)
+(define-structure conjure.log
+  (export make-multi-logger)
)
}
[conjure.cc: scan dependencies in build directory, so that inc flags are correct
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060121193231] {
hunk ./scheme/cc.scm 237
-         (run-deps `(,compiler ,@flags ,file))
+         (run-deps `(,compiler ,@flags ,(merge-paths file)))
hunk ./scheme/cc.scm 241
-    (call-with-values (lambda () (apply run-process/string (cc:env) run-deps))
+    (call-with-values
+        (lambda ()
+          (with-current-directory (build-directory)
+            (apply run-process/string (cc:env) run-deps)))
}
[s42's run and runner are  buildable, but install and clean are broken
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060121235559] {
hunk ./examples/s42/build.exec 13
+(user '(open spells.parameter))
hunk ./examples/s42/build.scm 57
+(define (qstr str) (string-append "\"" str "\""))
+
+(cc:add-cpp-define "SCHEME48VM" (qstr s48vm))
+(cc:add-cpp-define "DEFAULT_HEAPSIZE" (qstr "5000000"))
+(cc:add-cpp-define "BUILD_FFI42" (if build-ffi "YES" "NO"))
+
+(parameterize ((cc:c-flags (cc:c-flags)))
+  (cc:add-cpp-define "LIBDIR"
+                     (qstr (make-path (install-prefix) "lib" "scheme42")))
+  (cc:program-goal (name "run") (files '("c/runner.c"))))
+
+(parameterize ((cc:c-flags (cc:c-flags)))
+  (cc:add-cpp-define "LIBDIR" (qstr (build-directory)))
+  (cc:object-goal (product "c/runner-noinst.o") (file "c/runner.c"))
+  (cc:program-goal (name "runner") (objs '("c/runner-noinst.o")) (install? #f)))
+
+
hunk ./scheme/cc.scm 33
+(define (cc:add-cpp-define name . value)
+  (cc:add-c-flag (string-append "-D" name (if (null? value)
+                                              ""
+                                              (string-append "="
+                                                             (car value))))))
hunk ./scheme/cc.scm 259
-(define/named-args (cc:object-goal (file #f) (c++? #f) (fpic? #f))
-  (let* ((product (%->obj file))
+(define/named-args (cc:object-goal (product #f) (file #f) (c++? #f) (fpic? #f))
+  (let* ((product (%->obj (or product file)))
hunk ./scheme/cc.scm 319
+                                    (objs '())
hunk ./scheme/cc.scm 325
-    (let* ((objs (map %->obj files))
+    (let* ((objs (map %->obj (append files objs)))
hunk ./scheme/packages.scm 122
-  (export cc:c-compiler cc:c-flags cc:add-c-flag
+  (export cc:c-compiler cc:c-flags cc:add-c-flag cc:add-cpp-define
}
[DISPLAY-SUBSYSTEM-GOAL, new procedure
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060122001601] {
hunk ./scheme/packages.scm 102
-          display-registered-systems-tree display-subsystem-goal-tree)
+          display-registered-systems-tree display-subsystem-goal-tree
+          display-subsystem-goal)
hunk ./scheme/system.scm 159
+
+(define display-subsystem-goal
+  (case-lambda
+    ((goal) (display-subsystem-goal (current-system) goal))
+    ((sys goal) (let ((ss (lookup-goal %systems sys)))
+                  (if ss
+                      (let ((goal (lookup-goal (gr-goal-register ss) goal)))
+                        (if goal
+                            (display-goal goal)
+                            (begin (display "Goal not found") (newline))))
+                      (begin (display "System not found") (newline)))))))
}
[Allow GOAL-INFO to be a procedure taking a goal
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060122220456] {
hunk ./scheme/goal.scm 86
-(define goal-info (%g2gb %goal-body-info))
hunk ./scheme/goal.scm 90
+(define (goal-info g)
+  (let ((info ((%g2gb %goal-body-info) g)))
+    (if (procedure? info) (info g) info)))
}
[Clean targets fixed, plus minor improvements. s42 run, runner, libscheme42 working fine.
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060122225618] {
hunk ./scheme/cc.scm 253
-               (remove string-null?
-                       (pregexp-split "[ \\t\\n\\\\]"
-                                      (pregexp-replace "^[^:]+: " output ""))))
+               (map (lambda (file) (merge-paths file (build-directory)))
+                    (remove string-null?
+                            (pregexp-split "[ \\t\\n\\\\]"
+                                           (pregexp-replace "^[^:]+: "
+                                                            output
+                                                            "")))))
hunk ./scheme/goal-register.scm 85
-            (set-goal-info! cg (cons 'clean-goal (cons goal (goal-info cg))))
+            (set-goal-info! cg `(clean-goal ,goal ,@(cdr (goal-info cg))))
hunk ./scheme/gr-goal.scm 57
-                   (if cg (build-goal/dependencies cg)))))
+                   (if cg (build-goal cg)))))
hunk ./scheme/gr-goal.scm 116
-(define (%gr-build-subgoal gr) (%fwd-subgoal-proc gr build-goal))
+(define (%gr-build-subgoal gr)
+  (%fwd-subgoal-proc gr
+                     (lambda (goal)
+                       (if (not (file? (gr-goal-build-dir gr)))
+                           (make-directory* (gr-goal-build-dir gr)))
+                       (build-goal goal))))
+
hunk ./scheme/install.scm 73
-          (register-goal reg goal)
+          (register-goal reg goal #f)
hunk ./scheme/install.scm 77
-                (register-goal reg (make-goal (name giname)
-                                              (deps iname)
-                                              (sp (lambda (g) #t))))))
+                (register-goal reg
+                               (make-goal (name giname)
+                                          (deps iname)
+                                          (sp (lambda (g) #t)))
+                               #f)))
}
[conjure.cc program goals admit a deps param
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060128191453] {
hunk ./scheme/cc.scm 114
-    (lambda (name) 
+    (lambda (name)
hunk ./scheme/cc.scm 154
-      (make-goal-proc/process (cc:env) 
+      (make-goal-proc/process (cc:env)
hunk ./scheme/cc.scm 178
-  (cc:env (extend-process-environment 
+  (cc:env (extend-process-environment
hunk ./scheme/cc.scm 215
-     (make-goal-proc/process (cc:env) 
+     (make-goal-proc/process (cc:env)
hunk ./scheme/cc.scm 323
+                                    (deps '())
hunk ./scheme/cc.scm 331
-           (deps (append lib-deps objs))
+           (deps (append objs lib-deps deps))
hunk ./scheme/cc.scm 374
-           (real-name 
+           (real-name
}
[New macro WITH-SYSTEM in conjure.system
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060128191559] {
hunk ./scheme/packages.scm 96
-          in-system current-system
+          in-system with-system current-system
hunk ./scheme/system.scm 61
+(define-syntax with-system
+  (syntax-rules ()
+    ((with-system NAME FIRST REST ...)
+     (parameterize ((%current-system (%subsystem NAME)))
+       FIRST REST ...))))
+
hunk ./scheme/system.scm 158
-  (letrec ((subs (lambda (sysname) 
+  (letrec ((subs (lambda (sysname)
hunk ./scheme/system.scm 187
-    ((system goal) (build-system (cons system goal)))))
+    ((system goal) (with-system system (build-system (cons system goal))))))
}
[s42.image can be built with conjure
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060128191652] {
hunk ./examples/s42/build.exec 13
+(user '(open spells.process))
+(user '(open spells.port))
hunk ./examples/s42/build.exec 16
+(user '(open conjure.goal))
hunk ./examples/s42/build.scm 6
+(define version-string (string-append version-major "."
+                                      version-minor "."
+                                      version-revision))
hunk ./examples/s42/build.scm 16
-(define make-doc-sysdefs (sys-defs "sxml" "texinfo" "spedoc"))
-(define doc-sysdefs (sys-defs "texinfo" "spedoc"))
-(define builtin-sysdefs (sys-defs "texinfo" "spedoc"))
+(define make-doc-sysdefs (sys-defs "sxml" "texinfo" "stexidoc"))
+(define doc-sysdefs (sys-defs "texinfo" "stexidoc"))
+(define builtin-sysdefs (sys-defs "spells" "spenet" "scheme/universe"))
hunk ./examples/s42/build.scm 20
-  (sys-defs "rcs42" "testeez" "conjure" "sxml" "texinfo" "spedoc"))
+  (sys-defs "rcs42" "testeez" "conjure" "sxml" "texinfo" "stexidoc"))
hunk ./examples/s42/build.scm 37
+(define (run-s48 image cmds)
+  (let* ((env (extend-process-environment
+               `(("LD_LIBRARY_PATH" . ,(current-directory)))))
+         (s48cmd (if image
+                     `(,s48vm "-i" ,image "-a" "batch")
+                     `(,s48 "-a" "batch")))
+         (s48proc (apply spawn-process (cons env s48cmd)))
+         (s48in (process-input s48proc)))
+    (for-each (lambda (cmd) (display cmd s48in) (newline s48in)) cmds)
+    (close-process-ports s48proc)
+    (call-with-values
+        (lambda () (wait-for-process s48proc))
+      (lambda (ret signal) 0))))
+
+(define (make-image-bp instdir image configs pkgs sysdefs systems extra msg)
+  (let ((cd (current-directory)))
+    (lambda (goal)
+      (let ((trans (list (string-append ",translate =s42 " (or instdir cd))))
+            (confs (map (lambda (cfg) (string-append ",config ,load =s42/" cfg))
+                        configs))
+            (lds (map (lambda (pkg) (string-append ",load-package " pkg)) pkgs))
+            (sds (map (lambda (sd) (string-append ",introduce-systems =s42/" sd))
+                      sysdefs))
+            (sys (map (lambda (sys) (string-append ",load-system " sys)) systems))
+            (dump (list (string-append ",dump "
+                                       (goal-name goal)
+                                       " \""
+                                       (if msg
+                                           msg
+                                           (string-append "+ s42 "
+                                                          version-string))
+                                       "\""))))
+        (run-s48 image (append trans confs lds sds sys extra dump))))))
+
hunk ./examples/s42/build.scm 75
+(default-goal "runner")
+
+;;; s42 image
+(let* ((scm-srcs '("scheme/startup-file.scm"
+                   "scheme/lib/messages.scm"
+                   "scheme/lib/transform-string.scm"
+                   "scheme/lib/wrap-string.scm"
+                   "scheme/lib/args-fold*.scm"
+                   "scheme/exec48.scm"
+                   "scheme/env.scm"
+                   "scheme/waitpid.scm"
+                   "scheme/command-line.scm"
+                   "scheme/universe/factory.scm"
+                   "scheme/universe/commands.scm"
+                   "scheme/universe/world.scm"))
+       (extras '(",in command-processor ,open (subset simple-conditions (condition-predicate))"
+                 ",in command-processor ,load ../scheme/exec48.scm"
+                 ",in command-processor ,load ../scheme/env.scm"
+                 ",in posix-processes ,open threads load-dynamic-externals"
+                 ",in posix-processes ,load ../scheme/waitpid.scm"))
+       (bp (make-image-bp #f #f
+                          configs
+                          loaded-packages
+                          builtin-sysdefs
+                          '()
+                          extras
+                          #f)))
+  (goal (make-goal (name "s42.image")
+                   (products "s42.image")
+                   (deps "scheme42")
+                   (files (append configs builtin-sysdefs scm-srcs))
+                   (bp bp))))
+
hunk ./examples/s42/build.scm 136
-  (cc:program-goal (name "run") (files '("c/runner.c"))))
+  (cc:program-goal (name "run")
+                   (files '("c/runner.c"))))
hunk ./examples/s42/build.scm 142
-  (cc:program-goal (name "runner") (objs '("c/runner-noinst.o")) (install? #f)))
-
+  (cc:program-goal (name "runner")
+                   (deps '("s42.image"))
+                   (objs '("c/runner-noinst.o"))
+                   (install? #f)))
}
[s42 build: create symbolic links after compilation/image creation
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060128204245] {
hunk ./examples/s42/build.scm 22
+(define scm-srcs '("scheme/startup-file.scm"
+                   "scheme/lib/messages.scm"
+                   "scheme/lib/transform-string.scm"
+                   "scheme/lib/wrap-string.scm"
+                   "scheme/lib/args-fold*.scm"
+                   "scheme/exec48.scm"
+                   "scheme/env.scm"
+                   "scheme/waitpid.scm"
+                   "scheme/command-line.scm"
+                   "scheme/universe/factory.scm"
+                   "scheme/universe/commands.scm"
+                   "scheme/universe/world.scm"))
+
+
hunk ./examples/s42/build.scm 38
+;;; aux procedures
+(define (link from to)
+  (if (file? to) (delete-file! to))
+  (call-with-values (lambda () (run-process #f "ln" "-s" from to))
+    (lambda (result signal) (= result 0))))
+
+(define (qstr str) (string-append "\"" str "\""))
+
hunk ./examples/s42/build.scm 60
+  (display cmds)
hunk ./examples/s42/build.scm 100
-;;; s42 image
-(let* ((scm-srcs '("scheme/startup-file.scm"
-                   "scheme/lib/messages.scm"
-                   "scheme/lib/transform-string.scm"
-                   "scheme/lib/wrap-string.scm"
-                   "scheme/lib/args-fold*.scm"
-                   "scheme/exec48.scm"
-                   "scheme/env.scm"
-                   "scheme/waitpid.scm"
-                   "scheme/command-line.scm"
-                   "scheme/universe/factory.scm"
-                   "scheme/universe/commands.scm"
-                   "scheme/universe/world.scm"))
-       (extras '(",in command-processor ,open (subset simple-conditions (condition-predicate))"
-                 ",in command-processor ,load ../scheme/exec48.scm"
-                 ",in command-processor ,load ../scheme/env.scm"
-                 ",in posix-processes ,open threads load-dynamic-externals"
-                 ",in posix-processes ,load ../scheme/waitpid.scm"))
-       (bp (make-image-bp #f #f
-                          configs
-                          loaded-packages
-                          builtin-sysdefs
-                          '()
-                          extras
-                          #f)))
-  (goal (make-goal (name "s42.image")
-                   (products "s42.image")
-                   (deps "scheme42")
-                   (files (append configs builtin-sysdefs scm-srcs))
-                   (bp bp))))
-
-
-;;; C goals
+;;; goals
hunk ./examples/s42/build.scm 118
-(define (qstr str) (string-append "\"" str "\""))
-
hunk ./examples/s42/build.scm 125
-  (cc:program-goal (name "run")
+  (cc:program-goal (name "runner")
hunk ./examples/s42/build.scm 131
-  (cc:program-goal (name "runner")
+  (cc:program-goal (name "run")
hunk ./examples/s42/build.scm 136
+(goal (make-goal (name "libscheme42")
+                 (products "libscheme42.so")
+                 (deps "scheme42")
+                 (bp (lambda (g) (link (string-append "libscheme42."
+                                                 version-string "."
+                                                 (cc:shared-library-extension))
+                                  "libscheme42.so")))))
+
+(define s42-image-extras
+  '(",in command-processor ,open (subset simple-conditions (condition-predicate))"
+    ",in command-processor ,load ../scheme/exec48.scm"
+    ",in command-processor ,load ../scheme/env.scm"
+    ",in posix-processes ,open threads load-dynamic-externals"
+    ",in posix-processes ,load ../scheme/waitpid.scm"))
+
+(goal (make-goal (name "s42.image")
+                 (products "s42.image")
+                 (deps "libscheme42")
+                 (files (append configs builtin-sysdefs scm-srcs))
+                 (bp (make-image-bp #f #f
+                                    configs
+                                    loaded-packages
+                                    builtin-sysdefs
+                                    '()
+                                    s42-image-extras
+                                    #f))))
+
+(goal (make-goal (name "runners")
+                 (deps '("run" "runner"))
+                 (products '("scheme42.scm" "scheme-exec48"))
+                 (files "scheme42.scm")
+                 (bp (lambda (g)
+                       (link "../scheme42.scm" "scheme42.scm")
+                       (link "run" "scheme42")
+                       (link "run" "scheme-exec48")))))
}
[s42: 'doc' goal partially working
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060128214153
 
 scheme42 gets invoked with the correct arguments, but looks like no html is generated if it's not run form the root tree.
 
] {
hunk ./examples/s42/build.scm 16
-(define make-doc-sysdefs (sys-defs "sxml" "texinfo" "stexidoc"))
-(define doc-sysdefs (sys-defs "texinfo" "stexidoc"))
+(define (sys-defs-rel . dirs)
+  (map (lambda (dir) (string-append "../" dir)) (apply sys-defs dirs)))
+
+(define make-doc-sysdefs (sys-defs-rel "sxml" "texinfo" "stexidoc"))
+(define doc-sysdefs (sys-defs-rel "texinfo" "stexidoc"))
hunk ./examples/s42/build.scm 42
+(define (run/bool env prog)
+  (display prog) (newline)
+  (call-with-values (lambda () (apply run-process #f prog))
+    (lambda (result signal) (equal? result 0))))
+
hunk ./examples/s42/build.scm 49
-  (call-with-values (lambda () (run-process #f "ln" "-s" from to))
-    (lambda (result signal) (= result 0))))
+  (run/bool #f `("ln" "-s" ,from ,to)))
hunk ./examples/s42/build.scm 178
+
+(define doc-dir "doc/html/system-reference")
+(goal (make-goal (name "doc")
+                 (deps "runners")
+                 (files scm-srcs)
+                 (products doc-dir)
+                 (bp (lambda (g)
+                       (let ((s42 '("./scheme42" "--no-init"))
+                             (ssargs
+                              (apply append
+                                     (map (lambda (s)
+                                            `("--introduce-systems" ,s))
+                                          make-doc-sysdefs)))
+                             (targ `("--exec-script"
+                                     "../scripts/make-doc.scm"
+                                     ,doc-dir)))
+                         (run/bool #f (append s42 ssargs targ doc-sysdefs)))))
+                 (cp (lambda (g) (delete-directory! doc-dir)))))
+
+
}
[s42: 'test' goal (mostly) working
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060129010037
 
 When running conjure's tests, the spawned scheme42 process does not exit
 (and, therefore, the parent repl stays in a busy wait).
 
] {
hunk ./examples/s42/build.scm 23
-  (sys-defs "rcs42" "testeez" "conjure" "sxml" "texinfo" "stexidoc"))
+  (sys-defs-rel "rcs42" "testeez" "conjure" "sxml" "texinfo" "stexidoc"))
hunk ./examples/s42/build.scm 43
-  (display prog) (newline)
hunk ./examples/s42/build.scm 178
+(define (run-s42 sysdefs script args)
+  (let* ((s42 '("./scheme42" "--no-init"))
+         (ssargs (apply append
+                        (map (lambda (s) `("--introduce-systems" ,s)) sysdefs)))
+         (scrp `("--exec-script" ,script))
+         (cmd (append s42 ssargs scrp args)))
+    (run/bool #f cmd)))
+
hunk ./examples/s42/build.scm 191
-                 (bp (lambda (g)
-                       (let ((s42 '("./scheme42" "--no-init"))
-                             (ssargs
-                              (apply append
-                                     (map (lambda (s)
-                                            `("--introduce-systems" ,s))
-                                          make-doc-sysdefs)))
-                             (targ `("--exec-script"
+                 (bp (lambda (g) (run-s42 make-doc-sysdefs
hunk ./examples/s42/build.scm 193
-                                     ,doc-dir)))
-                         (run/bool #f (append s42 ssargs targ doc-sysdefs)))))
+                                     (cons doc-dir doc-sysdefs))))
hunk ./examples/s42/build.scm 196
+;;; tests
+(define (test-name name) (string-append name "-tests"))
+
+(define make-test-goal
+  (let ((src-dir (make-path (current-directory) "scheme"))
+        (s42 `("./scheme42" "--no-init")))
+    (lambda (name . pkg-load)
+      (make-goal (name (test-name name))
+                 (bp
+                  (let ((pkg-load (if (not (null? pkg-load))
+                                      (car pkg-load)
+                                      (make-path ".."
+                                                 name
+                                                 "tests/pkg-load.scm"))))
+                    (lambda (goal)
+                      (display (string-append "Running " name " testsuite.."))
+                      (newline)
+                      (run-s42 test-sysdefs
+                               "../scheme/exec42.scm"
+                               `(,pkg-load)))))
+                 (sp (lambda (goal) #t))))))
+
+(define test-suites '("rcs42" "spells" "stexidoc"))
+
+(for-each (lambda (ts) (goal (make-test-goal ts))) test-suites)
+(goal (make-test-goal "conjure" "../conjure/scheme/tests/pkg-load.scm"))
+
+(goal (make-goal (name "test")
+                 (deps (map test-name (cons "conjure-tests" test-suites)))))
}
[Accept a single expression as a goal's staleness 'predicate'
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060129010615] {
hunk ./examples/s42/build.scm 216
-                 (sp (lambda (goal) #t))))))
+                 (sp #t)))))
hunk ./scheme/goal.scm 3
-;; Copyright (C) 2005 by Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2006 by Free Software Foundation, Inc.
hunk ./scheme/goal.scm 146
-  (%goal-body-set-sp! (%goal-body g) (%check-proc p)))
+  (%goal-body-set-sp! (%goal-body g)
+                      (if (procedure? p) p (lambda (goal) p))))
}
[Get rid of conditions in conjure.goal
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060129162852] {
hunk ./examples/s42/build.scm 66
-  (display cmds)
hunk ./examples/s42/build.scm 170
-                 (products '("scheme42.scm" "scheme-exec48"))
+                 (products '("scheme42" "scheme42.scm" "scheme-exec48"))
hunk ./examples/s42/build.scm 189
-                 (products doc-dir)
hunk ./examples/s42/build.scm 191
-                                     (cons doc-dir doc-sysdefs))))
-                 (cp (lambda (g) (delete-directory! doc-dir)))))
+                                     (cons doc-dir doc-sysdefs))))))
hunk ./examples/s42/build.scm 201
+                 (deps "runners")
hunk ./scheme/goal-register.scm 3
-;; Copyright (C) 2005 by Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2006 by Free Software Foundation, Inc.
hunk ./scheme/goal-register.scm 75
-                            (sp (lambda (g) #t))
+                            (sp #t)
hunk ./scheme/goal.scm 31
-;;;@body Exception used to signal, via Spell's condition mechanism
-;;;(@code{spells.condition}), errors in the parameters passed to
-;;;goal constructor and setters.
-(define-condition-type &invalid-goal-arg &condition invalid-goal-arg?)
-
hunk ./scheme/goal.scm 36
-;; string, list of strings or generating thunk enumerating files used
+;; string, list of strings or generating procedure enumerating files used
hunk ./scheme/goal.scm 42
-;; @var{#t} (the default) to delete the goal's products. Both take a
+;; @var{'default} (the default) to delete the goal's products. Both take a
hunk ./scheme/goal.scm 52
-                              (sp #f)
-                              (cp #t)
+                              (sp 'default)
+                              (cp 'default)
hunk ./scheme/goal.scm 56
-    (set-goal-name! goal name)
-    (set-goal-products! goal products)
-    (set-goal-files! goal files)
-    (set-goal-deps! goal deps)
-    (set-goal-build-proc! goal bp)
-    (set-goal-clean-proc! goal cp)
-    (set-goal-stale-pred! goal sp)
-    (set-goal-info! goal info)
-    goal))
+    (and (set-goal-name! goal name)
+         (set-goal-products! goal products)
+         (set-goal-files! goal files)
+         (set-goal-deps! goal deps)
+         (set-goal-build-proc! goal bp)
+         (set-goal-clean-proc! goal cp)
+         (set-goal-stale-pred! goal sp)
+         (set-goal-info! goal info)
+         goal)))
hunk ./scheme/goal.scm 90
-(define %arg-or-raise
-  (let ((c (make-condition &invalid-goal-arg)))
-    (lambda (pred)
-      (lambda (x) (if (pred x) x (raise c))))))
-
-(define %check-str (%arg-or-raise string?))
-(define %check-proc (%arg-or-raise (lambda (x) (or (not x) (procedure? x)))))
-(define %check-thunk (%arg-or-raise (lambda (x) (or (not x) (thunk? x)))))
-(define %check-str-proc
-  (%arg-or-raise (lambda (x) (or (procedure? x) (string? x)))))
-(define %check-str-thunk
-  (%arg-or-raise (lambda (x) (or (thunk? x) (string? x)))))
+(define %error-tag (list "error"))
+(define (%tov pred) (lambda (x) (if (pred x) x %error-tag)))
+(define %check-str (%tov string?))
+(define %check-proc (%tov (lambda (x) (or (not x) (procedure? x)))))
+(define %check-thunk (%tov (lambda (x) (or (not x) (thunk? x)))))
+(define %check-str-proc (%tov (lambda (x) (or (procedure? x) (string? x)))))
+(define %check-str-thunk (%tov (lambda (x) (or (thunk? x) (string? x)))))
hunk ./scheme/goal.scm 98
-(define (%check-lst lst proc)
+(define (%check-lst lst check)
hunk ./scheme/goal.scm 102
-                         (append (%check-lst (car lst) proc)
-                                 (%check-lst (cdr lst) proc))
-                         (cons (proc (car lst))
-                               (%check-lst (cdr lst) proc))))
-        (else (list (proc lst)))))
+                         (let* ((first (%check-lst (car lst) check))
+                                (rest (and (list? first)
+                                           (%check-lst (cdr lst) check))))
+                           (if (and (list? first) (list? rest))
+                               (append first rest)
+                               %error-tag))
+                         (let* ((first (check (car lst)))
+                                (rest (and (not (eq? first %error-tag))
+                                           (%check-lst (cdr lst) check))))
+                           (if (list? rest) (cons first rest) %error-tag))))
+        (else (list (check lst)))))
hunk ./scheme/goal.scm 118
-    (lambda (g)
-      (let ((fl (make-file-list)))
-        (for-each (lambda (f) (add-to-file-list! fl f))
-                  (reverse (if lst
-                               (map (lambda (p)
-                                      (if (procedure? p) (lambda () (p g)) p))
-                                    lst)
-                               '())))
-        fl))))
+    (if (eq? lst %error-tag)
+        %error-tag
+        (lambda (g)
+          (let ((fl (make-file-list)))
+            (for-each (lambda (f) (add-to-file-list! fl f))
+                      (reverse (if lst
+                                   (map (lambda (p)
+                                          (if (procedure? p)
+                                              (lambda () (p g))
+                                              p))
+                                        lst)
+                                   '())))
+            fl)))))
+
+
+(define (%sset! setter place value)
+  (cond ((eq? value %error-tag) #f)
+        (else (setter place value) #t)))
hunk ./scheme/goal.scm 138
-(define (set-goal-name! g n) (set-car! g (%check-str-proc n)))
+(define (set-goal-name! g n) (%sset! set-car! g (or n %error-tag)))
hunk ./scheme/goal.scm 140
-  (%goal-body-set-products! (%goal-body g) (%make-fl plst)))
+  (%sset! %goal-body-set-products! (%goal-body g) (%make-fl plst)))
hunk ./scheme/goal.scm 142
-  (%goal-body-set-files! (%goal-body g) (%make-fl flst)))
+  (%sset! %goal-body-set-files! (%goal-body g) (%make-fl flst)))
hunk ./scheme/goal.scm 145
-  (%goal-body-set-deps! (%goal-body g) (%make-fl dlst)))
+  (%sset! %goal-body-set-deps! (%goal-body g) (%make-fl dlst)))
hunk ./scheme/goal.scm 147
-  (%goal-body-set-bp! (%goal-body g) (%check-proc p)))
+  (%sset! %goal-body-set-bp! (%goal-body g) (%check-proc p)))
hunk ./scheme/goal.scm 149
-  (%goal-body-set-cp! (%goal-body g) (or (eq? p #t) (%check-proc p))))
+  (%sset! %goal-body-set-cp! (%goal-body g) (or (not p)
+                                                (and (eq? p 'default) 'default)
+                                                (%check-proc p))))
hunk ./scheme/goal.scm 153
-  (%goal-body-set-sp! (%goal-body g)
-                      (if (procedure? p) p (lambda (goal) p))))
-(define (set-goal-info! g info) (%goal-body-set-info! (%goal-body g) info))
+  (%sset! %goal-body-set-sp!
+          (%goal-body g)
+          (cond ((procedure? p) p)
+                ((eq? p 'default) 'default)
+                (else (lambda (goal) p)))))
+(define (set-goal-info! g info)
+  (%sset! %goal-body-set-info! (%goal-body g) info))
hunk ./scheme/goal.scm 167
-;;; goal's files. If @arg1 is a string (goal name), @var{#t} is
-;;; returned.
+;;; goal's files.
hunk ./scheme/goal.scm 170
-    (if sp
-        (sp g)
-        (let ((pp (goal-products-file-list g)))
-          (and pp
-               (not (null? (pp)))
-               (or (not (and-map file? (pp)))
-                   (let ((pt (car (file-list-least-modification-time pp)))
-                         (ft (file-list-greatest-modification-time
-                              (goal-files-file-list g))))
-                     (and pt ft (< pt (car ft))))))))))
+    (cond ((procedure? sp) (sp g))
+          ((eq? sp 'default)
+           (let ((pp (goal-products-file-list g)))
+             (and pp
+                  (not (null? (pp)))
+                  (or (not (and-map file? (pp)))
+                      (let ((pt (car (file-list-least-modification-time pp)))
+                            (ft (file-list-greatest-modification-time
+                                 (goal-files-file-list g))))
+                        (and pt ft (< pt (car ft))))))))
+          (else (display "warning: unexpected sp")
+                (newline)
+                #f))))
hunk ./scheme/goal.scm 198
-          (cp (delete-file-list (goal-products-file-list g)))
+          ((eq? cp 'default) (delete-file-list (goal-products-file-list g)))
hunk ./scheme/packages.scm 26
-  (export ((make-goal) :syntax) invalid-goal-arg?
+  (export ((make-goal) :syntax)
hunk ./scheme/packages.scm 39
-        spells.opt-args spells.condition spells.misc spells.file
-        spells.file-list
+        spells.opt-args spells.misc spells.file spells.file-list
hunk ./scheme/tests/goal.scm 3
-;; Copyright (C) 2005 by Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2006 by Free Software Foundation, Inc.
hunk ./scheme/tests/goal.scm 45
-  (test-false "sp" (and-map goal-stale-pred (list g2 g3 g4)))
+  (test-true "sp" (and-map (lambda (sp) (eq? sp 'default))
+                           (map goal-stale-pred (list g2 g3 g4))))
+  (test-true "cp" (and-map (lambda (cp) (eq? cp 'default))
+                           (map goal-clean-proc (list g1 g2 g3 g4))))
hunk ./scheme/tests/goal.scm 88
-(define-syntax test-exception
-  (syntax-rules ()
-    ((_ thunk)
-     (call-with-current-continuation
-      (lambda (k)
-        (with-exception-handler
-         (lambda (x) (k (invalid-goal-arg? x)))
-         (lambda () (thunk) #f)))))))
hunk ./scheme/tests/goal.scm 90
-  (testeez "Exceptions"
-    (test-true "name" (test-exception (lambda () (set-goal-name! g1 #f))))
-    (test-false "name2" (test-exception (lambda () (set-goal-name! g1 "a"))))
-    (test-true "deps" (test-exception (lambda () (set-goal-deps! g1 '(1 3)))))
-    (test-false "deps2" (test-exception (lambda () (set-goal-deps! g1 #f))))
-    (test-true "bp" (test-exception (lambda () (set-goal-build-proc! g1 3))))
-    (test-false "bp2" (test-exception (lambda () (set-goal-build-proc! g1 #f))))
-    (test-true "sp" (test-exception (lambda () (set-goal-stale-pred! g1 "a"))))
-    (test-false "sp2" (test-exception (lambda () (set-goal-stale-pred! g1 #f))))
-    (test-true "cp" (test-exception (lambda () (set-goal-clean-proc! g1 "a"))))
-    (test-false "cp" (test-exception (lambda () (set-goal-clean-proc! g1 #t))))
-    (test-false "cp2" (test-exception (lambda () (set-goal-clean-proc! g1 #f))))))
+  (testeez "Errors"
+    (test-false "name" (set-goal-name! g1 #f))
+    (test-true "name2" (set-goal-name! g1 "a"))
+    (test-false "deps" (set-goal-deps! g1 '(1 3)))
+    (test-true "deps2" (set-goal-deps! g1 #f))
+    (test-false "bp" (set-goal-build-proc! g1 3))
+    (test-true "bp2" (set-goal-build-proc! g1 #f))
+    (test-true "sp" (and (set-goal-stale-pred! g1 "a")
+                         (equal? ((goal-stale-pred g1) g1) "a")))
+    (test-true "sp2" (set-goal-stale-pred! g1 #f))
+    (test-false "cp" (set-goal-clean-proc! g1 "a"))
+    (test-false "cp" (set-goal-clean-proc! g1 #t))))
hunk ./scheme/tests/tests.scm 3
-;; Copyright (C) 2005 by Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2006 by Free Software Foundation, Inc.
hunk ./scheme/tests/tests.scm 23
-(("goal.scm"
-  spells.file spells.file-list spells.misc spells.condition conjure.goal)
+(("goal.scm" spells.file spells.file-list spells.misc conjure.goal)
}
[USER-LOG in conjure.log; fix s42's build.scm
Jose Antonio Ortega Ruiz <jao@gnu.org>**20060130010112] {
hunk ./examples/s42/build.exec 16
+(user '(open conjure.log))
hunk ./examples/s42/build.scm 209
-                      (display (string-append "Running " name " testsuite.."))
+                      (user-log 'info
+                                (string-append "Running " name " testsuite.."))
hunk ./examples/s42/build.scm 223
-                 (deps (map test-name (cons "conjure-tests" test-suites)))))
+                 (deps (map test-name (cons "conjure" test-suites)))))
hunk ./scheme/goal.scm 31
+(define %log (make-multi-logger 'goal))
+
hunk ./scheme/goal.scm 58
-    (and (set-goal-name! goal name)
-         (set-goal-products! goal products)
-         (set-goal-files! goal files)
-         (set-goal-deps! goal deps)
-         (set-goal-build-proc! goal bp)
-         (set-goal-clean-proc! goal cp)
-         (set-goal-stale-pred! goal sp)
-         (set-goal-info! goal info)
-         goal)))
+    (if (and (set-goal-name! goal name)
+             (set-goal-products! goal products)
+             (set-goal-files! goal files)
+             (set-goal-deps! goal deps)
+             (set-goal-build-proc! goal bp)
+             (set-goal-clean-proc! goal cp)
+             (set-goal-stale-pred! goal sp)
+             (set-goal-info! goal info))
+        goal
+        (begin (%log 'warning
+                     "make-goal: goal" name "cannot be constructed")
+               #f))))
hunk ./scheme/goal.scm 185
-          (else (display "warning: unexpected sp")
-                (newline)
+          (else (%log 'error "warning: unexpected sp in goal" (goal-name g))
hunk ./scheme/log.scm 70
+
+(define user-log (make-multi-logger 'user))
hunk ./scheme/packages.scm 40
-        conjure.goal-body)
+        conjure.goal-body conjure.log)
merger 0.0 (
merger 0.0 (
hunk ./scheme/packages.scm 154
-
-(define-structure conjure.log (export)
+(define-structure conjure.log
+  (export make-multi-logger)
hunk ./scheme/packages.scm 154
+(define-structure conjure.configure
+  (export new-config-var valued-config-var config-var-for-name
+	  configure-goal-vars make-config-goal)
+  (open scheme srfi-1 define-record-types conjure.goal spells.file
+	spells.parameter signals)
+  (files config config.compile))
)
hunk ./scheme/packages.scm 155
-  (export make-multi-logger)
+  (export make-multi-logger user-log)
)
}
}
{
hunk ./scheme/packages.scm 154
-
-(define-structure conjure.log (export)
+v v v v v v v
+(define-structure conjure.configure
+  (export new-config-var valued-config-var config-var-for-name
+	  configure-goal-vars make-config-goal)
+  (open scheme srfi-1 define-record-types conjure.goal spells.file
+	spells.parameter signals)
+  (files config config.compile))
+
+(define-structure conjure.log (export)
+*************
+(define-structure conjure.log
+  (export make-multi-logger user-log)
+^ ^ ^ ^ ^ ^ ^
}
}
}
