Gauche > Archives > 2011/02/26

2011/02/26 01:58:21 UTC(び)
#
% gauche-package list -a
*** SYSTEM-ERROR: couldn't open directory "/usr/local/share/gauche": No such file or directory
Stack Trace:
_______________________________________
  0  (directory-list base :children? #t :add-path? #t :filter #/^\d+(\. ...
        At line 153 of "/usr/local/share/gauche-0.9/0.9.1/lib/gauche/package.scm"
  1  (for-each (lambda (path) (cond ((#/\/\d+(\.\d+)*[^\/]*\/lib\/?$/ p ...
        [unknown location]
  2  (get-all-version-paths)
        At line 143 of "/usr/local/share/gauche-0.9/0.9.1/lib/gauche/package.scm"
  3  (gauche-package-description-paths :all-versions all?)
        At line 192 of "/usr/local/bin/gauche-package"
  4  (map path->gauche-package-description (gauche-package-description- ...
        At line 191 of "/usr/local/bin/gauche-package"
  5  (usage)
        At line 93 of "/usr/local/bin/gauche-package"
#
まっさらのところに初めてtrunkを入れたら出ました
#
/usr/local/share/gaucheがないせいなんですが(/usr/local/share/gauche-0.9はある)、これって、そういうもの?
2011/02/26 02:00:47 UTCshiro
#
む、そういうものじゃない。無いディレクトリは無視しないと。今まで有ったから気づかなかっただけじゃないかな。
2011/02/26 02:02:51 UTC(び)
#
なるほど
#
インストール時に本来は作られるべきもの、ではなくなったってことですね >${datarootdir}/gauche
2011/02/26 02:11:02 UTCshiro
#
これでどじゃ。
#
--- lib/gauche/package.scm	(revision 7364)
+++ lib/gauche/package.scm	(working copy)
@@ -149,12 +149,12 @@
     (dolist (path *load-path*)
       (cond ((#/\/\d+(\.\d+)*[^\/]*\/lib\/?$/ path)
              => (lambda (m)
-                  (let* ((base (m 'before))
-                         (dirs (directory-list base
-                                               :children? #t :add-path? #t
-                                               :filter #/^\d+(\.\d+)*[^\/]*$/))
-                         (pdirs (map (cut string-append <> "/lib") dirs))
-                         )
+                  (and-let* ([base (m 'before)]
+                             [ (file-is-directory? base) ]
+                             [dirs (directory-list base
+                                                   :children? #t :add-path? #t
+                                                   :filter #/^\d+(\.\d+)*[^\/]*$/)]
+                             [pdirs (map (cut string-append <> "/lib") dirs)])
                     (set! xpaths
                           (append (sort (delete path pdirs)
                                         (lambda (a b)
2011/02/26 02:12:07 UTCwlkfun
#
ありがとうございます。複数のcssに既に対応しておりましたか。失礼しました。
2011/02/26 02:14:50 UTC(び)
#
OKです。直りました。
#
% gauche-package list -a         
 Gauche-mcrypt       0.1
#
ありがとうございます。
2011/02/26 02:23:05 UTCshiro
#
get-all-version-pathsこっちの方が短くていいかな。
#
(define (get-all-version-paths)
  (apply append
         *load-path*
         (filter-map
          (^p (and-let* ([m (#/\/\d+(\.\d+)*[^\/]*\/lib\/?$/ p)]
                         [base (m 'before)]
                         [ (file-is-directory? base) ]
                         [dirs (directory-list base
                                               :children? #t :add-path? #t
                                               :filter #/^\d+(\.\d+)*[^\/]*$/)]
                         [pdirs (map (cut string-append <> "/lib") dirs)])
                (sort-by (delete p pdirs) sys-basename version>?)))
          *load-path*)))
2011/02/26 07:38:48 UTCwlkfun
#
すみません。WiLiKiについてあともう一点質問します。
外部ファイルとして css を複数読み込むように、外部 javascript ファイルも同様に設定できないでしょうか。
2011/02/26 09:34:14 UTC齊藤
#
wiliki:formatter のパラメタライズが簡単かなぁ。
#
何か正式な方法とかってあるんだろうか。
2011/02/26 10:27:09 UTCshiro
#
こんな感じの記述をmainの前に加えてください。
#
(define-class <my-formatter> (<wiliki-formatter>) ())

(define-method wiliki:format-head-elements ((fmt <my-formatter>) page . opts)
  (append (next-method)
          '(
            (script (@ (src "/foo.js") (type "text/javascript")))
            (script (@ (src "/bar.js") (type "text/javascript")))
           )))

(wiliki:formatter (make <my-formatter>))
2011/02/26 11:10:44 UTCwlkfun
#
どうもありがとうございます。大変参考になります。
2011/02/26 12:27:38 UTC齊藤
#
なるほど。 そういう綺麗な書き方があったんですね。
#
デフォルトのテンプレート (?) が export されてないから一部だけ弄るときに面倒だなぁと思ってたんですが、これは綺麗ですね。
2011/02/26 12:34:24 UTC齊藤
#
WiLiKi って自由度は高いですが、 Wiki として使いたいってだけの人がちょっとしたカスタマイズをするのはハードルが高いかもしれませんね。
2011/02/26 12:36:31 UTCshiro
#
どっちかというと完成したwikiというよりもwilikiマークアップ記法フォーマッタという部品という位置づけを考えてるんですが、最初に勢いで書いたコードを直しながら来てるのでいろんなところにほころびが。