fixing path resolution for include-library-declarations

This commit is contained in:
Alex Shinn 2017-01-14 15:52:06 +09:00
parent 2735b36c87
commit 302ee50075
6 changed files with 37 additions and 10 deletions

View file

@ -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)

View file

@ -0,0 +1,2 @@
(import (scheme base) (pingala binomial))
(include "bernoulli.scm")

View file

@ -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)

View file

@ -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)))

View file

@ -0,0 +1,3 @@
(define-library (takakazu bernoulli)
(export bernoulli)
(include-library-declarations "bernoulli-includes.sld"))

View file

@ -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)