Gauche > Archives > 2017/06/24

2017/04/28 22:05:34 UTCshiro
#
http://topcoder.g.hatena.ne.jp/cafelier/20170428/1493389565 MLの型の表記がどうも苦手で、それはクォートを見ると反射的にリテラルだと認識してしまうLisperの性のせいだと思ってたんだが、'aをαと読めば良かったのか!
#
なおPFDSはMLのコードを読むのを避けて専ら巻末のHaskell版を読んでいた
#
あれtwitterブリッジ落ちてた。もう一度
#
http://topcoder.g.hatena.ne.jp/cafelier/20170428/1493389565 MLの型の表記がどうも苦手で、それはクォートを見ると反射的にリテラルだと認識してしまうLisperの性のせいだと思ってたんだが、'aをαと読めば良かったのか!
2017/04/29 19:41:33 UTCshiro
#
immutableデータ構造とコンサバGCって相性悪いかな。別スレッドから同時に参照されてる可能性があるんで、更新前のバージョンのデータはそのままにしとかないとならないけど、そいつが長大なデータチェインへの参照を握ってる場合、Weak GC-robustnessが確保できなさそうな。
2017/05/02 01:56:45 UTCshiro
#
r7rs libraryで定義したマクロが内部defineを挿入した際にそれが内部defineとして認識されずsyntax-errorになる件、てっきり衛生マクロ展開のどっかでしくじってるんだと思ってたがよく調べたらむしろ衛生マクロ展開がちゃんとできてたからこそのバグであった。 https://github.com/shirok/Gauche/issues/221
#
Gaucheモジュールで同様のマクロを定義した場合には症状が出ないのでdefineが定義されてるモジュールの違いかと(r7rs#defineとgauche#defineはbindingが異なる)勘違いしてそっちを追いかけるのに無駄な時間を使った。
#
実はdefine-libraryの定義を手抜きでやってて、スコープ内でbeginを再定義してたせいで、define-library内で定義した衛生マクロが挿入するbeginが本来のbeginと異なる束縛を持っていた (free-identifier=?にならない) せいであった。束縛された値自体は同じ#<syntax begin>なので普通にコンパイルするぶんには通るんだけど、内部defineをスキャンする際にはfree-identifier=?相当の同一性判定をするので、begin内の内部defineがspliceされなかった、というオチ。
2017/05/06 02:02:53 UTCshiro
#
srfi-125のhash-table-findは事実上anyのセマンティクスなんだな…議論中に「predが返す値をそのまま返したらanyとfind兼ねられるんじゃね?」って意見がでて採用された経緯があるが当時見落としてた。しかしsrfi-113, srfi-146と*-findがfindのセマンティクス(プラスfailure thunk)を実装してるのを考えるとsrfi-125は失敗だったように思う。
2017/05/06 02:08:22 UTCshiro
#
尤も、最初から設計しなおすなら、anyのセマンティクス(predが偽でない値を返したらその値を戻り値とする)はfindのセマンティクス(predが偽でない値を返すような要素を戻り値とする)をカバーできるので、anyのセマンティクスを採用し、それをfindと名づけるのはありかもしれない。
2017/05/06 17:56:52 UTCshiro
#
BugStories追加 http://practical-scheme.net/wiliki/wiliki.cgi?BugStories ありえないはずのリークを追って深いところまで潜ってく話。
2017/05/22 04:38:18 UTCshiro
#
しまった、recordのpositional match、これじゃだめだ。slot accessorはサブクラスに使えないや。
2017/05/23 18:17:01 UTCshiro
#
aproposでuseしてないモジュールがヒットしない問題、0.9.6からはinfoで正規表現が使えるようになるよ http://kannokanno.hatenablog.com/entry/2017/05/23/213733
#
gosh> ,info #/product/
bag-product              Sets and bags:453
bag-product!             Sets and bags:454
cartesian-product        Combination library:83
cartesian-product-right  Combination library:84
product-ec               Eager comprehensions:133
2017/05/23 22:01:10 UTCshiro
#
継承のあるレコード型を$でマッチさせる方法が0.9.6で変わるので注意 http://blog.practical-scheme.net/gauche/20170523-struct-match-fix
2017/05/23 23:59:37 UTCkanno
#
> 0.9.6からはinfoで正規表現
おお、いいですね
2017/05/29 00:06:47 UTCshiro
#
srfi-143のドキュメントを書いてて、組み込みのtwos-exponent-factorとsrfi-60のfirst-set-bitが同じであることに今更気づいた。
2017/05/29 00:13:22 UTCshiro
#
と思ったら引数が0の場合だけ違いが出るのか。定義からするとそうならざるを得ないな。うーむ。
#
いや、違うか。twos-exponent-factorの設計ミスだ。もともと約数で定義しようとすると、引数0は定義されない。なので適当に0としたんだが、ビットで考えれば-1とすべきだった。
#
これはバグとして直すべきか。引数が0なら結果が0ってドキュメントに書いちゃったからな (でもその下に等価な式として挙げてあるものとは結果が食い違う)
#
微妙に仕様が違う複数の手続きを持つ意味がないし、直すか。
2017/06/03 07:33:38 UTCFox
#
-----------------------------------------------
#
-------------------------------------------
#
-------------------------------------------------------------------------

_________________________________________________________________________



_________________________________________________________________________
#
_________________________________________________________________________




_________________________________________________________________________




_________________________________________________________________________
#
2017 scheme
2017/06/03 07:56:49 UTCFox
#
http://community.schemewiki.org/cgi-bin/scheme.cgi?scheme-wikis
2017/06/12 04:56:43 UTCshiro
#
あれ、R7RSスクリプトではデフォルトでmain呼んだらまずい、って思ってたんだけどR7RS-small中に特に明記されてはいない? R6RSスクリプトがそうだったから勘違いしてたかな
2017/06/20 14:33:40 UTC(び)
#
Testing SRFIs ...                                                *** ERROR: include file is not readable:  "include/srfi-64-test"
    While compiling "../test/srfi.scm" at line 1359: (define-module srfi-64-test-module (use srfi-64) (include "include/srfi-64-test"))
    While loading "../test/srfi.scm" at line 1361
Stack Trace:
_______________________________________
#
コミット忘れ?
2017/06/20 15:01:32 UTCshiro
#
mahalo!
2017/06/24 22:59:07 UTCshiro
#
「Gaucheにこういう機能が無いかと思ってこういう単語で検索したけど見つからなかった」という情報、非常に貴重なのでそういう事例があったらどっかに書いておいて頂けるとありがたい 例: http://kannokanno.hatenablog.com/entry/2017/06/24/220152
#
既に存在を知っている人は何を探せば良いか知っているので、「存在を知らない人がどう探すか」ということを想像するのが難しい。