From 302ee50075a17aee1365eb0925cb4bdafdc8c0fa Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 14 Jan 2017 15:52:06 +0900 Subject: [PATCH] fixing path resolution for include-library-declarations --- lib/chibi/snow/commands.scm | 7 ++++++- .../snow/repo3/takakazu/bernoulli-includes.sld | 2 ++ tests/snow/repo3/takakazu/bernoulli-test.scm | 7 +++++++ tests/snow/repo3/takakazu/bernoulli.scm | 10 ++++++++++ tests/snow/repo3/takakazu/bernoulli.sld | 3 +++ tests/snow/snow-tests.scm | 18 +++++++++--------- 6 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 tests/snow/repo3/takakazu/bernoulli-includes.sld create mode 100644 tests/snow/repo3/takakazu/bernoulli-test.scm create mode 100644 tests/snow/repo3/takakazu/bernoulli.scm create mode 100644 tests/snow/repo3/takakazu/bernoulli.sld diff --git a/lib/chibi/snow/commands.scm b/lib/chibi/snow/commands.scm index 2aaad65b..12b31692 100644 --- a/lib/chibi/snow/commands.scm +++ b/lib/chibi/snow/commands.scm @@ -206,7 +206,12 @@ (append (map resolve includes) files) chibi-ffi?)) (('include-library-declarations includes ...) - (lp (append (append-map file->sexp-list includes) (cdr ls)) + (lp (append (append-map + (lambda (inc) + (file->sexp-list + (path-resolve inc (path-directory file)))) + includes) + (cdr ls)) info deps (append (map resolve includes) files) diff --git a/tests/snow/repo3/takakazu/bernoulli-includes.sld b/tests/snow/repo3/takakazu/bernoulli-includes.sld new file mode 100644 index 00000000..1190aac8 --- /dev/null +++ b/tests/snow/repo3/takakazu/bernoulli-includes.sld @@ -0,0 +1,2 @@ +(import (scheme base) (pingala binomial)) +(include "bernoulli.scm") diff --git a/tests/snow/repo3/takakazu/bernoulli-test.scm b/tests/snow/repo3/takakazu/bernoulli-test.scm new file mode 100644 index 00000000..9bbe3034 --- /dev/null +++ b/tests/snow/repo3/takakazu/bernoulli-test.scm @@ -0,0 +1,7 @@ +(import (scheme base) (takakazu bernoulli) (pingala test-map)) + +(test-map (1 -1/2 1/6 0 -1/30 0 1/42 0 -1/30 0 5/66) + (lambda (m) (bernoulli m)) + (0 1 2 3 4 5 6 7 8 9 10)) + +(test-exit) diff --git a/tests/snow/repo3/takakazu/bernoulli.scm b/tests/snow/repo3/takakazu/bernoulli.scm new file mode 100644 index 00000000..8b4a5724 --- /dev/null +++ b/tests/snow/repo3/takakazu/bernoulli.scm @@ -0,0 +1,10 @@ +;; first bernoulli numbers +(define (bernoulli m) + (do ((k 0 (+ k 1)) + (sum 0 (do ((v 0 (+ v 1)) + (sum sum (+ sum + (* (expt -1 v) + (binomial k v) + (/ (expt v m) (+ k 1)))))) + ((> v k) sum)))) + ((> k m) sum))) diff --git a/tests/snow/repo3/takakazu/bernoulli.sld b/tests/snow/repo3/takakazu/bernoulli.sld new file mode 100644 index 00000000..a74545d4 --- /dev/null +++ b/tests/snow/repo3/takakazu/bernoulli.sld @@ -0,0 +1,3 @@ +(define-library (takakazu bernoulli) + (export bernoulli) + (include-library-declarations "bernoulli-includes.sld")) diff --git a/tests/snow/snow-tests.scm b/tests/snow/snow-tests.scm index a918f195..edfce923 100644 --- a/tests/snow/snow-tests.scm +++ b/tests/snow/snow-tests.scm @@ -40,6 +40,7 @@ ;; run snow-chibi command as a separate process with test defaults (define chibi-path "./chibi-scheme") (define (snow-command . args) + ;;(write `(snow ,@args)) (newline) `("./tools/snow-chibi" --verbose --always-no @@ -189,21 +190,20 @@ --description "Pythagoran Theorem" --test "tests/snow/repo3/pythagoras/hypotenuse-test.sch" tests/snow/repo3/pythagoras/hypotenuse.sch) -;; (snow package --output-dir tests/snow/repo3/ -;; --version 1.0 --authors "Seki Takakazu" -;; --description "Bernoulli Numbers" -;; --test "tests/snow/repo3/takakazu/bernoulli-test.scm" -;; tests/snow/repo3/takakazu/bernoulli.sld) +(snow package --output-dir tests/snow/repo3/ + --version 1.0 --authors "Seki Takakazu" + --description "Bernoulli Numbers" + --test "tests/snow/repo3/takakazu/bernoulli-test.scm" + tests/snow/repo3/takakazu/bernoulli.sld) (snow index ,(cadr repo3)) (snow ,@repo3 install pingala.binomial) (snow ,@repo3 install euler.totient) +(snow ,@repo3 install takakazu.bernoulli) (let ((status (snow-status))) (test-assert (installed-version status '(pingala binomial))) (test-assert (installed-version status '(pingala factorial))) - (test "2.7.1" (installed-version status '(euler totient)))) -;; (snow ,@repo3 install takakazu.bernoulli) -;; (let ((status (snow-status))) -;; (test-assert (installed-version status '(takakazu bernoulli)))) + (test "2.7.1" (installed-version status '(euler totient))) + (test-assert (installed-version status '(takakazu bernoulli)))) ;; programs (snow ,@repo3 install pingala.triangle)