Gauche > Archives > 2011/07/31

2011/07/31 20:05:25 UTCshiro
#
0.9.2のリリース候補です。各種プラットフォームで検証できる方お願いします http://practical-scheme.net/vault/Gauche-0.9.2_pre1.tgz http://practical-scheme.net/vault/Gauche-mingw-0.9.2_pre1.msi
#
なおGauche-glは0.5ではコンパイルが通りませんが、HEADで通るようになってます。Gauche-gl-0.5.1として同時リリース予定。
#
あと、このmingw版はGauche-glを含んでます。
2011/07/31 22:58:52 UTCenami
#
#endif は逆にならべないと対応がとれないです。動作に問題はないですが。
#
diff --git a/lib/gauche/cgen/unit.scm b/lib/gauche/cgen/unit.scm
index 4f7870a..a7066db 100644
--- a/lib/gauche/cgen/unit.scm
+++ b/lib/gauche/cgen/unit.scm
@@ -225,5 +225,6 @@
                               (for-each (cut print "#if " <>) cppc)
                               (gf node)
-                              (for-each (cut print "#endif /* "<>" */") cppc)]
+                              (for-each (cut print "#endif /* "<>" */")
+                                        (reverse cppc))]
                              [else (gf node)]))]
           [else (gf node)]))
diff --git a/test/cgen.scm b/test/cgen.scm
index 4fa9b29..f22032b 100644
--- a/test/cgen.scm
+++ b/test/cgen.scm
@@ -30,6 +30,6 @@ init_foo_bar();
 #if ((defined FOO))||((defined BAR))
 some_trick();
-#endif /* ((>= BAR_VERSION 3))&&((== FOO_VERSION 2)) */
 #endif /* ((defined FOO))||((defined BAR)) */
+#endif /* ((>= BAR_VERSION 3))&&((== FOO_VERSION 2)) */
 }
 "
2011/07/31 22:59:43 UTCshiro
#
ああそうか。コメントが変になるのですね。まはろー。
2011/07/31 23:04:01 UTCenami
#
あと、ドキュメントですが、引数が足りないところが二か所ほど:
#
+ (cgen-body "void foo(int n) @{ printf(stderr, \"got %d\\n\"); @}")
#
+ (cgen-body (format "void printabc() @{ Scm_Printf(SCM_CUROUT, ~a); @}"
#
それぞれ、n と Scm_Printf の fmt 文字列。
2011/07/31 23:10:59 UTCshiro
#
直しました。
2011/07/31 23:15:01 UTCenami
#
あれ、 ~a はそのままでいいんじゃないですか?
2011/07/31 23:16:23 UTCshiro
#
いえ、Scm_Printfのフォーマット文字列はprintfの拡張なのです。ご覧のとおり私も時々間違えますが。
2011/07/31 23:22:17 UTCenami
#
あいや、~a はその外側の (format "... ~a..." (cgen-c-name lit)) のじゃないかと。実際、実行するとエラーになります。
2011/07/31 23:22:38 UTCshiro
#
うわほんとだ。
#
%Sも~aも必要なんだな。
2011/07/31 23:25:14 UTCenami
#
そうなんです。