2006-07-30から1日間の記事一覧
この勢いで、Genericsライブラリまでportingできるかと思って試してみた。 GenParseとGenPrintは、ファイル操作系がまだできていないので変換できないが、それ以外はエラーなく変換ができた。 で、Genericsライブラリにあるgentestを実行してみたら・・・、…
これらの命令は、レコード型から指定したフィールドだけを取り出す命令なのだけれど、 void code_push_r_args_a (int a_offset,int a_size,int b_size,int argument_number,int n_arguments)とあるうちの、argument_numberが当初、aとbの両方をあわせたイン…
GenCompressとGenFMap以外はクリア。 GenCompressは、謎のエラーで落ちる。 GenFMapは、一つ結果が合わないものがある。 とりあえず、GenFMapからつぶしていこう。 --> select命令の修正 - GenCompressは・・・ StackOverflowErrorでした。あー。末尾再帰の…
の動作がおかしくなっていることに気づいた。 Start = (fc "abc", fi {1,2,3}, gc ['abc'], gi [1,2,3]) fc :: {#Char} -> [Char] fc t = [x\\x<-:t] fi :: {#Int} -> [Int] fi t = [x\\x<-:t] gc :: [Char] -> {#Char} gc t = {x\\x<-t} gi :: [Int] -> {#I…
GenCompressで、StackOverflowになるということで、末尾再帰にできるところを探して、できる限り末尾再帰になるように修正しました。 しかし、やはりStackOverflow。 Javaのオプションで、-Xssを指定することで、スタックサイズを変更できるということで、40…
GenCompressは、もともとメモリを消費しがちなモジュールだったようです。 Start = test [1 .. 100] where test x = case uncompress (compress x) of Nothing -> False Just y -> x === yというテストがcleanjでStackOverflowになっていたのですが、「test …
というわけで、File関連のGenParseとGenPrintを除いて、Genericsライブラリの移植を完了しました。 - テストも全部回しました。テスト中、一箇所、修正漏れを見つけたので、修正しました。
それにしても、cleanjは、だいぶメモリ効率が悪いようです。 これは、まだABCマシン命令の調査が主眼なので、ほとんど効率改善を行っていないということもあるのですが・・・ どこまでが、JavaVMの問題で、どこまでがcleanjの実装効率の問題なのか。どういう…