#--- a/doc/modutil.texi
+++ b/doc/modutil.texi
@@ -7222,14 +7222,13 @@ value of @var{line-width} is 76, as specified in RFC2045
RFC2045に従い76となっています。@var{line-width}に@code{#f}または@code{0}
を与えることで改行を抑制することができます。
@c COMMON
-@item url-safe?
@c EN
-If a true value is given, the input bytes will be encoded with an
+If a true value is given as @var{url-safe?}, the input bytes will be encoded wi
alternative encoding table, which substitutes @code{+} instead of
@code{-} and @code{/} instead of @code{_}. The result will contain
filename and url safe characters only. Default is false.
@c JP
-真の値を与えると、標準の Base64 と異なったエンコーディングテーブルを使って
+@var{url-safe?} として真の値を与えると、標準の Base64 と異なったエンコーディン
入力をエンコードします。このエンコーディングでは、@code{+}の代わりに
@code{-}が、@code{/}の代わりに@code{_}が使われます。このエンコーディングは
ファイル名やURLの一部として使うのに適しています。
#makeinfoに怒られたので。ひょっとして俺が使ってるmakeinfoが悪いのかな?
#うちのはmakeinfo 4.13で何も言わないけど、確かにtexinfo的にはおかしいな。直しときます。
#今のGaucheはBoehm GCコンパイル時に -DPARALLEL_MARK をつけてないですが、これをつけると何か問題があるんでしょうか?
#このオプションがない状態だと、スレッドでメモリアロケーション(もしくはGC)が行われる場合に、少なくともMacOSX上では、あまりCPUを使ってくれません。
#テストプログラムは、
#;; tp.scm
(use control.thread-pool)
(use gauche.logger)
(use gauche.parseopt)
(define (worker-nocons)
(let loop ((i 0)
(results '()))
(if (= i 500000000)
#t
(loop (+ i 1) results))))
(define (worker-cons)
(let loop ((i 0)
(results '()))
(cond
((= i 100000000)
#t)
((= (modulo i 1000) 0)
(loop (+ i 1) '()))
(else
(loop (+ i 1) (cons 1 results))))))
(define (main args)
(log-open #t)
(let-args (cdr args)
((num-threads "t=i")
(use-cons? "c|cons" #f))
(log-format "num of threads: ~d" num-threads)
(let ((tp (make-thread-pool num-threads)))
(for-each (^t (add-job! tp t)) (make-list num-threads (if use-cons?
worker-cons
worker-nocons)))
(wait-all tp))
0))
#MacPro 3.33GHz 6-Core Intel Xeon (HTで12コア相当) での実行結果は、以下のとおりです。
## -DPARALLEL_MARKなし
% gosh tp.scm -t=12
Jul 19 19:45:40 tp.scm[75043]: num of threads: 12
gosh tp.scm -t=12 346.06s user 0.41s system 1128% cpu 30.711 total
% gosh tp.scm -c -t=8
Jul 19 19:46:17 tp.scm[75056]: num of threads: 8
gosh tp.scm -c -t=8 109.33s user 8.70s system 377% cpu 31.293 total
## -DPARALLEL_MARKあり
% gosh tp.scm -t=12
Jul 19 19:47:08 tp.scm[75492]: num of threads: 12
gosh tp.scm -t=12 348.37s user 0.26s system 1154% cpu 30.207 total
% gosh tp.scm -c -t=8
Jul 19 19:47:45 tp.scm[75506]: num of threads: 8
gosh tp.scm -c -t=8 120.66s user 10.19s system 632% cpu 20.682 total
#なお、MacOSX上では -DPARALLEL_MARKありで、make checkは通りました。
#なんか理由があったような気もするのですが忘れてしまいました。理由があったとしても数年前の出来事なので、改めて検証する価値はあると思います。