Gauche > Archives > 2013/04/17

2013/04/17 00:39:56 UTCyamasushi
#
diff --git a/doc/modutil.texi b/doc/modutil.texi
index 7d3290f..7076741 100644
--- a/doc/modutil.texi
+++ b/doc/modutil.texi
@@ -16249,7 +16249,8 @@ If it encounters an untokenizable string, it raises an
 @c COMMON
 @end defun
 
-@deffn {Condition Type} <sql-parse-error>
+@deftp {Condition Type} <sql-parse-error>
+@clindex sql-parse-error
 @c EN
 A condition to indicate an SQL parse error.  Inherits @code{<error>}.
 @c JP
@@ -16262,7 +16263,7 @@ Holds the source SQL string.
 元のSQL文字列を保持。
 @c COMMON
 @end defivar
-@end deffn
+@end deftp
 
 @c ----------------------------------------------------------------------
 @node Transliterate characters, Lazy text construction, SQL parsing and construction, Library modules - Utilities
#
<sql-parse-error>がdeffnで書かれていました。
2013/04/17 02:02:59 UTCshiro
#
Gaucheのgitリポジトリをgithubに移行しました。https://github.com/shirok/Gauche
#
新しいsf.netのインタフェースがやたら使いにくかったので、どうせURLが変わるならこのタイミングで移行してもいいかなと。
2013/04/17 02:04:17 UTC(び)
#
おお
2013/04/17 04:12:21 UTCRui
#
おーすばらしい
2013/04/17 06:20:37 UTCshiro
#
あ、Ruiさん。sf.netのsvnリポジトリに古いプロジェクトがあるんですが(statifierとthreadlib)、これらもgithubに移しちゃっていいですか。
2013/04/17 06:22:37 UTCRui
#
あ、はい、どうぞ。Statifierは最近は動くのかどうかあやしいですが。
2013/04/17 12:44:33 UTCyamasushi
#
diff --git a/lib/gauche/dictionary.scm b/lib/gauche/dictionary.scm
index 9c4a674..c2994bb 100644
--- a/lib/gauche/dictionary.scm
+++ b/lib/gauche/dictionary.scm
@@ -230,6 +230,9 @@
 (define-method (setter dict-get) (dict key val)
   (dict-put! dict key val))
 
+(define-method dict->alist ((dict <dictionary>))
+  (dict-map dict (cut cons <> <>) ) )
+
 ;;;
 ;;; Bidirectional map
 ;;;
#
dict->alistのデフォルト実装がなかったのですけれど、なにかあるのだろうかと思いつつ、つけてみました。
2013/04/17 12:51:39 UTCshiro
#
dict->alistって考えてみたら、dictはcollectionでもあるので単にlistにcoerceすればalistが得られるはずなんですよね。 その意味ではむしろ不要かも、と思っています。
2013/04/17 12:56:35 UTCshiro
#
dict->alistは0.9.3.3ではundocumentedですよね。無くなって困る人ってどのくらいいるかな。
2013/04/17 13:10:49 UTCyamasushi
#
dictionaryのインターフェースだけ実装している場合があるのですけれど、その場合はcollectionのインターフェースもつける必要があります。
#
(つければいいという話なんですけど)
2013/04/17 13:23:13 UTCshiro
#
dictionaryはcollectionのサブクラスなので(この設計に議論の余地はあるかもしれませんが)、collectionのインタフェースがあることは前提です。call-with-iteratorを定義するだけでいいんですが。
2013/04/17 13:47:30 UTCyamasushi
#
(define-class <info-index-node> (<dictionary> <instance-pool-mixin> )
  [node index])

; dictionary protocol
(define-method dict-get     ((d <info-index-node>) key :optional default)
  (dict-get (~ d 'index) key default ) )
 ....

(define-method call-with-iterator ((d <info-index-node>) proc . keys)
  (apply call-with-iterator (~ d 'index) proc keys) )
#
のようにしているのですけど、
#
*** ERROR: no applicable method for #<generic instance-pool-find (2)> with arguments (#<class <info-index-node>> #<closure (get-index-node #f)>)
Stack Trace:
#
gosh> (call-with-iterator (info-node-function-jp) (^ x (print x)) )
*** ERROR: no applicable method for #<generic call-with-iterator (20)> with arguments (#<<info-index-node> 0x9377ac0> #<closure #f>)
Stack Trace:
#
なにがまずいのでしょうか・・・??
#
(instance-pool-findうんぬんのエラーは間違えて貼ってしまいました。)
2013/04/17 14:00:48 UTCshiro
#
んー、引数は合ってるみたいなんで、違うcall-with-iteratorを見てるとかかなあ。<info-index-node>用のcall-with-iteratorを定義しているところから、gauche.collectionは見えてますか?
2013/04/17 14:03:24 UTCyamasushi
#
あ、・・・・・・すみません。忘れてました。
#
動きました。お騒がせました。
#
gauche.dictionaryをuseしたから、collecionも入っている・・・と勘違いをしておりました。
2013/04/17 14:05:36 UTCshiro
#
んー、dictionaryがcollection前提なら、extendする方が自然ですかねえ。あーでもordered-dictionaryはsequenceを継承してるからちょっとややこしいな。
#
(まあ個人的には、collectionとsequenceは最初から見えるようにしちゃってもいいかなとちょっと思ってるのですが。)
2013/04/17 14:11:04 UTCyamasushi
#
なるほど。<dictionary><order-dictionary>や<collection>にクラス索引がないのですけれど、なにか計画があるということでしょうか?
#
ドキュメントの話です。
#
フレームワーク関係の組み込みクラスにはクラス索引や見出しがないのです。
2013/04/17 15:10:27 UTCshiro
#
単に忘れてるだけっぽい。
2013/04/17 23:05:11 UTCyamasushi
#
diff --git a/lib/gauche/dictionary.scm b/lib/gauche/dictionary.scm
index 9c4a674..bd6b163 100644
--- a/lib/gauche/dictionary.scm
+++ b/lib/gauche/dictionary.scm
@@ -225,7 +225,7 @@
 
 (define-method dict-update! ((dict <dictionary>) key proc . maybe-default)
   (let1 r (apply dict-get dict key maybe-default)
-    (dict-put! dict-get dict key (proc r))))
+    (dict-put! dict key (proc r))))
 
 (define-method (setter dict-get) (dict key val)
   (dict-put! dict key val))