#hi all!
#is shire around?
#shiro*
#silly autocorrect...
#yeah
#I made quite a progress on out-of-srcdir build. Only one more test to make it work.
#I see
#so you don't specify --srcdir= ... in the configure line?
#because I found that without srcdir it doesn't get very far
#does your out-of-src build generate all files in the external dir, or does it still generate files in the src dir?
#Currenly what I do is just run configure script (which is in srcdir) from build dir. No --srcdir option. And I made some changes in various scripts so that generated files always go to build dir.
#right, that would be nice =)
#so should I wait for you to finish this, then?
#If you can, yes... if you don't mind a test failure in the script test (gauche-package), I might be able to commit it pretty soon.
#I'm assuming it won't take long to fix this last test?
#I don't think it takes long, but it's tricky. I'm sure I can fix it tonight (it's 6:30pm here).
#I'll just wait... no need to make you push stuff before it's done
#although a heads up
#xlink has an infinite loop bug when dealing with absolute paths, I think
#the make-directory* function in particular.
#you probably had to fix this as part of the out-of-tree build work.
#Hm, I didn't stumbled on it. But it's good to fix it as well. Could you just paste the patch here, or put it elsewhere (e.g. gist.github.com) and I'll try to merge it.
#sec
#My xlink has been modified to handle the cases both the actual file is either in srcdir or in builddir.
#this should do it:
#diff --git a/ext/xlink b/ext/xlink
index 9bd5541..283e038 100644
--- a/ext/xlink
+++ b/ext/xlink
@@ -91,7 +91,7 @@
(define (make-directory* dir)
(let1 up (sys-dirname dir)
- (unless (equal? up ".")
+ (unless (member up '("/" "."))
(make-directory* up)
(unless (file-exists? dir)
(sys-mkdir dir #o755)))))
#Ah! I see. Thanks!
#I'm personally a little bit confused as to why we recurse anyway... I imagine that once you reach a directory that exists, there's no need to continue recursion?
#ah sorry, I was reading it backwards =)
#but yeah, the fix still applies.
#Yup. (sys-dirname "/") => "/" and recursion happens before existense check, so your fix is valid.
#I'll be offline for a couple of hours. I'll shoot you email once I'm done.
#thanks for your help
#なんかWiLiKiに書き込めないようなので、ちょっとこっちで。
#--- a/lib/util/stream.scm
+++ b/lib/util/stream.scm
@@ -513,10 +513,10 @@
(define (stream-count pred . strs)
(let loop ((times 0) (s strs))
- (if (any stream-null? strs)
+ (if (any stream-null? s)
times
- (loop (+ times (if (apply pred (map stream-car strs)) 1 0))
- (map stream-cdr strs)))))
+ (loop (+ times (if (apply pred (map stream-car s)) 1 0))
+ (map stream-cdr s)))))
#stream-countってこうですよね?
#ありゃ、今のだと無限ループしちゃいますね。WiLiKiに書き込めないのは、多分そのページにspamリンクがまだ残ってるせいじゃないかな (リンク自体はblacklistしたので、そのリンクが含まれてると書き込めない)。後で一括して消すつもりだけど書き込む際に消していただいてもいいです。
#多段ビルドしてるとout-of-source-tree buildさせるのが面倒だなあ。