Gauche > Archives > 2012/04/09

2012/04/09 01:45:33 UTCshiro
#
何度か要望を目にしたので作ってみました https://github.com/shirok/Gauche-tk
2012/04/09 01:50:50 UTCnatsutan
#
ありがとうございます。いろいろ試してみます。
2012/04/09 02:32:13 UTCnatsutan
#
動かしてみた結果の第一報です。Windows環境の動きは、もう少し追います> http://d.hatena.ne.jp/natsutan/20120409
2012/04/09 02:36:09 UTCshiro
#
あ、READMEに書いてあるとおり、0.9.2リリース版では動きません。HEADを使ってください。あとWindows/MinGWでは--enable-threads=win32でコンパイルしてもある方がいいかも。
2012/04/09 02:37:07 UTCnatsutan
#
なるほど。もう一回やってみます。
2012/04/09 02:37:45 UTCshiro
#
cygwin版の方は、rebaseall問題ですね。
#
今更だけどdo-tkのAPIは変えた方がいい気がしてきた。(tk-call . args)にしようかな。
2012/04/09 02:45:38 UTCshiro
#
変えた。
2012/04/09 03:45:39 UTCnatsutan
#
Cygwinで動きました!ありがとうございます。>http://www.evernote.com/shard/s25/sh/db891651-9061-46b3-b79b-ebe757b3e406/380918ae8db965e50efc05edd7196217
2012/04/09 05:54:15 UTCnatsutan
#
MinGWでも動きました>https://www.evernote.com/shard/s25/sh/37d46aa6-cb82-4b96-b6e0-1407448056cc/ef21459a80087bc39f2ee5063cd517cb
2012/04/09 05:58:43 UTCshiro
#
おー良かった。ありがとうございます。なんか足りない機能を見つけたら教えてください。
2012/04/09 14:42:23 UTC齊藤
#
sxml の名前空間の考え方で躓き中。
#
(define sxml
  '(*TOP* (|@@| (*NAMESPACES* (a "hoge")))
          (*PI* xml "version=\"1.0\"")
          (a:hige "text")))
#
こんな xsml があったときに a:hige の正式名 (?) は hoge:hige なはずだと思ってそれにマッチさせる sxpath は
#
(define alist '((a . "hoge")))
((sxpath "//a:hige" alist) sxml)
#
こんな風に書けばいいと思ってたんですが空リストが返ってきます。
2012/04/09 15:26:55 UTCshiro
#
どうも、sxpathのnamespace指定はsxpathに渡されたpath-componentの展開のみに使われて、sxmlツリー側を見る時は*NAMESPACES*の指定を無視するみたいですね。つまり ((sxml "//a:hige" '((a . "a"))) sxml) で ((a:hige "text")) が返ってくる。
#
sxpathの戻り値に渡されるsxmlツリーha
#
ツリーは部分木 (*TOP*からではない木) であることもあるので、もともと*NAMESPACES*なんか見ないってデザインなのかもしれませんが、一貫性が無い感じではあります。
2012/04/09 15:29:09 UTC齊藤
#
なるほど。 *NAMESPACES* を気にしなければいいんですね。 ありがとうございます。
#
ssax:xml->sxml に渡す名前空間リストと sxpath に渡す名前空間リストを共用しようとしてたけど、それじゃ駄目なわけですね…。