K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[1185] Re:UTFをEUCへ:実行 Vine
投稿者:つよし
2009/01/01 20:50:27

試したことを書きます。 Vine4.2 (EUC-jpな環境)において (1) EUC-jp->tar zxvf->--------------コンパイル->sh test.sh->の結果 と (2) UTF-8-->tar zxvf->EUC-jpへ変換->コンパイル->sh test.sh->の結果 は 1行目のエラーメッセージだけ、一部違いました。 < test.sh: line 1: 17811 セグメンテーション違反です ../diksam test.dkm >test_.result 2>&1 --- > test.sh: line 1: 17754 セグメンテーション違反です ../diksam test.dkm >test_.result 2>&1
[この投稿を含むスレッドを表示] [この投稿を削除]
[1184] UTFをEUCへ:実行 Mac
投稿者:つよし
2009/01/01 20:36:55

前橋さん 試したことを書きます。 MacOSX10.3.9(EUC-jpな環境)において (1) EUC-jp->tar zxvf->--------------コンパイル->sh test.sh->の結果 と (2) UTF-8-->tar zxvf->EUC-jpへ変換->コンパイル->sh test.sh->の結果 は   100% 一致しました。 文字コードは、すべて EUC-jp で実行?しました。 diksam うまくコンパイルできていないのか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[1183] Re:EUC環境 Mac Vine
投稿者:(ぱ)こと管理人
2009/01/01 17:51:37

>vine4.2 >test.sh: line 1: 3405 セグメンテーション違反です ../diksam test.dkm こちらは単に死んでしまっているので、ちょっとわからないですが、 >MacOSX10.3.9 >> test.dkm:726:文字リテラルが2文字以上あります。 >array >6,7c6,7 >< len..6 >< substr..eほげほ >--- >> len..8 >> substr..eほ&#65533; こちらを見ると、 ・test.dkmの726行目の'本'という文字リテラルについて、ワイド文字に変換したら  2文字以上と解釈された。 ・array.dkmの46行目の「"hogeほげ".length()」が6を返している。  また、47行目の「"hogeほげほげ".substr(3, 4)」が「eほ&#65533;」を返している。 ということがわかります。マルチバイト文字列の変換に関する問題のようです。 確認ですが、test.dkmやarray.dkmの文字コードは何になっていますか? EUCモードで実行する際は、.dkmファイルもEUCでなければなりません。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1182] EUC環境 Mac Vine
投稿者:つよし
2009/01/01 16:23:16

EUCな環境 MacOSX10.3.9 と vine4.2 での $ sh test.sh の結果です。 長いです。 -------------------------------------- vine4.2 test.sh: line 1: 3405 セグメンテーション違反です ../diksam test.dkm >test_.result 2>&1 test 1,279d0 < hoge piyo < \nabc < abccde < 0x123..291 < 3 + 5..8 < 3 - 5..-2 < 3 + -5..-2 < 3 * 5..15 < 3 / 5..0 < 10 % 3..1 < 3.0 + 5.0..8.000000 < 3.0 - 5.0..-2.000000 < 3.0 + -5.0..-2.000000 < 3.0 * 5.0..15.000000 < 3.0 / 5.0..0.600000 < 10.0 % 3.0..1.000000 < 3 + 5.0..8.000000 < 3 - 5.0..-2.000000 < 3 + -5.0..-2.000000 < 3 * 5.0..15.000000 < 3 / 5.0..0.600000 < 10 % 3.0..1.000000 < 3.0 + 5..8.000000 < 3.0 - 5..-2.000000 < 3.0 + -5..-2.000000 < 3.0 * 5..15.000000 < 3.0 / 5..0.600000 < 10.0 % 3..1.000000 < 1 & 3..1 < 1 | 2..3 < 1 ^ 3..2 < ~5..-6 < 3 + 5..8 < 3 - 5..-2 < 3 + -5..-2 < 3 * 5..15 < 3 / 5..0 < 10 % 3..1 < 3.0 + 5.0..8.000000 < 3.0 - 5.0..-2.000000 < 3.0 + -5.0..-2.000000 < 3.0 * 5.0..15.000000 < 3.0 / 5.0..0.600000 < 10.0 % 3.0..1.000000 < 3 + 5.0..8.000000 < 3 - 5.0..-2.000000 < 3 + -5.0..-2.000000 < 3 * 5.0..15.000000 < 3 / 5.0..0.600000 < 10 % 3.0..1.000000 < 1 & 3..1 < 1 | 2..3 < 1 ^ 3..2 < ~5..-6 < 3.0 + 5..8.000000 < 3.0 - 5..-2.000000 < 3.0 + -5..-2.000000 < 3.0 * 5..15.000000 < 3.0 / 5..0.600000 < 10.0 % 3..1.000000 < 1 < 3..true < 3 < 1..false < 1 <= 3..true < 3 <= 1..false < 1 == 1..true < 1 == 3..false < 1 != 3..true < 3 != 3..false < 1 >= 3..false < 3 >= 1..true < 3 > 1..true < 1 > 3..false < 1.0 < 3..true < 3 < 1.0..false < 1.0 <= 3..true < 3 <= 1.0..false < 1.0 == 1.0..true < 1.0 == 3..false < 1 != 3.0..true < 3.0 != 3.0..false < 3.0 >= 1..true < 1 >= 3.0..false < 3.0 > 1..true < 1 > 3.0..false < 1 < 3..true < 3 < 1..false < 1 <= 3..true < 3 <= 1..false < 1 == 1..true < 1 == 3..false < 1 != 3..true < 3 != 3..false < 1 >= 3..false < 3 >= 1..true < 3 > 1..true < 1 > 3..false < 1.0 < 3..true < 3 < 1.0..false < 1.0 <= 3..true < 3 <= 1.0..false < 1.0 == 1.0..true < 1.0 == 3..false < 1.0 != 3..true < 3 >= 1.0..true < 1.0 >= 3.0..false < 3 > 1.0..true < 1.0 > 3..false < == good. < != good. < < good. < <= good. < <= good. < >= good. < >= good. < == good. < != good. < < good. < <= good. < <= good. < >= good. < >= good. < int_val..5 < int_val..3 < int_val..9 < int_val..3 < int_val..1 < double_val..5.000000 < double_val..3.000000 < double_val..9.000000 < double_val..3.000000 < double_val..1.000000 < str_val..strhoge3 < int_val..3 < double_val..0.000000 < a..3, b..4.000000 < no_arg < a + b..28 < a + b + c..10.000000 < boolean_func..true < int_func..3 < double_func..3.000000 < string_func..hoge < ********** recursive call ********** < a..10 a..9 a..8 a..7 a..6 a..5 a..4 a..3 a..2 a..1 a..0 < a..0 a..1 a..2 a..3 a..4 a..5 a..6 a..7 a..8 a..9 a..10 < boolean_value..true < !boolean_value..false < true < boolean_value || false < true == true good < true != false good < ! operator good. < true_value == true good < true_value != false good < ! operator good. < true < good < good < good < ********** while statement ********** < i..0 i..1 i..2 i..3 i..4 i..5 i..6 i..7 i..8 i..9 < i..0 i..1 i..2 i..3 i..4 i..5 i..6 < ********** for statement ********** < i..0 i..1 i..2 i..3 i..4 i..5 i..6 < i..0 i..1 i..2 i..3 i..4 i..5 i..6 i..7 i..8 i..9 < ********** break with label in while ********** < i..0, j..0 < i..0, j..1 < i..0, j..2 < i..0, j..3 < i..0, j..4 < i..0, j..5 < ********** break with label in for ********** < i..0, j..0 < i..0, j..1 < i..0, j..2 < i..0, j..3 < i..0, j..4 < i..0, j..5 < ********** continue in while ********** < i..5 i..6 i..7 i..8 i..9 i..10 < i..10 < ********** continue in for ********** < i..5 i..6 i..7 i..8 i..9 < i..10 < ********** continue with label in while ********** < i..1 j..0, i..2 j..0, i..3 j..0, < i..3 j..0 < ********** continue with label in for ********** < i..0 j..0, i..1 j..1, i..2 j..2, < i..3 j..3 < *** i..0*** < i == 0 < i != 3 < i != 2 && i != 3 < *** i..1*** < i == 1 < i != 3 < i != 2 && i != 3 < *** i..2*** < i == 2 < i != 3 < i == 2 || i == 3 < i == 2 && j == 3 < *** i..3*** < i == else < i == 2 || i == 3 < *** i..4*** < i == else < i != 3 < i != 2 && i != 3 < i..11 < ii = 10..10 < array[3][0]..10 < 1 2 3 4 5 6 7 8 9 < 2 4 6 8 10 12 14 16 18 < 3 6 9 12 15 18 21 24 27 < 4 8 12 16 20 24 28 32 36 < 5 10 15 20 25 30 35 40 45 < 6 12 18 24 30 36 42 48 54 < 7 14 21 28 35 42 49 56 63 < 8 16 24 32 40 48 56 64 72 < 9 18 27 36 45 54 63 72 81 < array2[0]..1 < array2[1]..2 < array2[2]..3 < array2[3]..4 < array2[4]..5 < 1 2 3 4 5 6 7 8 9 < 2 4 6 8 10 12 14 16 18 < 3 6 9 12 15 18 21 24 27 < 4 8 12 16 20 24 28 32 36 < 5 10 15 20 25 30 35 40 45 < 6 12 18 24 30 36 42 48 54 < 7 14 21 28 35 42 49 56 63 < 8 16 24 32 40 48 56 64 72 < 9 18 27 36 45 54 63 72 81 < darray[0]..0.000000 < darray[1]..1.000000 < darray[2]..2.000000 < darray[3]..3.000000 < darray[4]..4.000000 < darray[5]..5.000000 < darray[6]..6.000000 < darray[7]..7.000000 < darray[8]..8.000000 < darray[9]..9.000000 < darray[0]..1.000000 < darray[1]..2.000000 < darray[2]..3.000000 < darray[3]..4.000000 < darray[4]..5.000000 < darray[5]..6.000000 < sarray[0]..str0 < sarray[1]..str1 < sarray[2]..str2 < sarray[3]..str3 < sarray[4]..str4 < sarray[5]..str5 < sarray[6]..str6 < sarray[7]..str7 < sarray[8]..str8 < sarray[9]..str9 < sarray[0]..1 < sarray[1]..2 < sarray[2]..3 < sarray[3]..4 < null_str..null < abcnull < null < OK < OK < OK < OK < 日本語 < str[0]..26085 < str[1]..26412 < 本 < str[2]..35486 array class01 class02 class03 method cast classmain downcast instanceof super exception shapemain throws nullpointer array_ex else_ex test switch final do_while enum delegate rename -------------------------------------- MacOSX10.3.9 test 1,279c1 < hoge piyo < \nabc < abccde < 0x123..291 < 3 + 5..8 < 3 - 5..-2 < 3 + -5..-2 < 3 * 5..15 < 3 / 5..0 < 10 % 3..1 < 3.0 + 5.0..8.000000 < 3.0 - 5.0..-2.000000 < 3.0 + -5.0..-2.000000 < 3.0 * 5.0..15.000000 < 3.0 / 5.0..0.600000 < 10.0 % 3.0..1.000000 < 3 + 5.0..8.000000 < 3 - 5.0..-2.000000 < 3 + -5.0..-2.000000 < 3 * 5.0..15.000000 < 3 / 5.0..0.600000 < 10 % 3.0..1.000000 < 3.0 + 5..8.000000 < 3.0 - 5..-2.000000 < 3.0 + -5..-2.000000 < 3.0 * 5..15.000000 < 3.0 / 5..0.600000 < 10.0 % 3..1.000000 < 1 & 3..1 < 1 | 2..3 < 1 ^ 3..2 < ~5..-6 < 3 + 5..8 < 3 - 5..-2 < 3 + -5..-2 < 3 * 5..15 < 3 / 5..0 < 10 % 3..1 < 3.0 + 5.0..8.000000 < 3.0 - 5.0..-2.000000 < 3.0 + -5.0..-2.000000 < 3.0 * 5.0..15.000000 < 3.0 / 5.0..0.600000 < 10.0 % 3.0..1.000000 < 3 + 5.0..8.000000 < 3 - 5.0..-2.000000 < 3 + -5.0..-2.000000 < 3 * 5.0..15.000000 < 3 / 5.0..0.600000 < 10 % 3.0..1.000000 < 1 & 3..1 < 1 | 2..3 < 1 ^ 3..2 < ~5..-6 < 3.0 + 5..8.000000 < 3.0 - 5..-2.000000 < 3.0 + -5..-2.000000 < 3.0 * 5..15.000000 < 3.0 / 5..0.600000 < 10.0 % 3..1.000000 < 1 < 3..true < 3 < 1..false < 1 <= 3..true < 3 <= 1..false < 1 == 1..true < 1 == 3..false < 1 != 3..true < 3 != 3..false < 1 >= 3..false < 3 >= 1..true < 3 > 1..true < 1 > 3..false < 1.0 < 3..true < 3 < 1.0..false < 1.0 <= 3..true < 3 <= 1.0..false < 1.0 == 1.0..true < 1.0 == 3..false < 1 != 3.0..true < 3.0 != 3.0..false < 3.0 >= 1..true < 1 >= 3.0..false < 3.0 > 1..true < 1 > 3.0..false < 1 < 3..true < 3 < 1..false < 1 <= 3..true < 3 <= 1..false < 1 == 1..true < 1 == 3..false < 1 != 3..true < 3 != 3..false < 1 >= 3..false < 3 >= 1..true < 3 > 1..true < 1 > 3..false < 1.0 < 3..true < 3 < 1.0..false < 1.0 <= 3..true < 3 <= 1.0..false < 1.0 == 1.0..true < 1.0 == 3..false < 1.0 != 3..true < 3 >= 1.0..true < 1.0 >= 3.0..false < 3 > 1.0..true < 1.0 > 3..false < == good. < != good. < < good. < <= good. < <= good. < >= good. < >= good. < == good. < != good. < < good. < <= good. < <= good. < >= good. < >= good. < int_val..5 < int_val..3 < int_val..9 < int_val..3 < int_val..1 < double_val..5.000000 < double_val..3.000000 < double_val..9.000000 < double_val..3.000000 < double_val..1.000000 < str_val..strhoge3 < int_val..3 < double_val..0.000000 < a..3, b..4.000000 < no_arg < a + b..28 < a + b + c..10.000000 < boolean_func..true < int_func..3 < double_func..3.000000 < string_func..hoge < ********** recursive call ********** < a..10 a..9 a..8 a..7 a..6 a..5 a..4 a..3 a..2 a..1 a..0 < a..0 a..1 a..2 a..3 a..4 a..5 a..6 a..7 a..8 a..9 a..10 < boolean_value..true < !boolean_value..false < true < boolean_value || false < true == true good < true != false good < ! operator good. < true_value == true good < true_value != false good < ! operator good. < true < good < good < good < ********** while statement ********** < i..0 i..1 i..2 i..3 i..4 i..5 i..6 i..7 i..8 i..9 < i..0 i..1 i..2 i..3 i..4 i..5 i..6 < ********** for statement ********** < i..0 i..1 i..2 i..3 i..4 i..5 i..6 < i..0 i..1 i..2 i..3 i..4 i..5 i..6 i..7 i..8 i..9 < ********** break with label in while ********** < i..0, j..0 < i..0, j..1 < i..0, j..2 < i..0, j..3 < i..0, j..4 < i..0, j..5 < ********** break with label in for ********** < i..0, j..0 < i..0, j..1 < i..0, j..2 < i..0, j..3 < i..0, j..4 < i..0, j..5 < ********** continue in while ********** < i..5 i..6 i..7 i..8 i..9 i..10 < i..10 < ********** continue in for ********** < i..5 i..6 i..7 i..8 i..9 < i..10 < ********** continue with label in while ********** < i..1 j..0, i..2 j..0, i..3 j..0, < i..3 j..0 < ********** continue with label in for ********** < i..0 j..0, i..1 j..1, i..2 j..2, < i..3 j..3 < *** i..0*** < i == 0 < i != 3 < i != 2 && i != 3 < *** i..1*** < i == 1 < i != 3 < i != 2 && i != 3 < *** i..2*** < i == 2 < i != 3 < i == 2 || i == 3 < i == 2 && j == 3 < *** i..3*** < i == else < i == 2 || i == 3 < *** i..4*** < i == else < i != 3 < i != 2 && i != 3 < i..11 < ii = 10..10 < array[3][0]..10 < 1 2 3 4 5 6 7 8 9 < 2 4 6 8 10 12 14 16 18 < 3 6 9 12 15 18 21 24 27 < 4 8 12 16 20 24 28 32 36 < 5 10 15 20 25 30 35 40 45 < 6 12 18 24 30 36 42 48 54 < 7 14 21 28 35 42 49 56 63 < 8 16 24 32 40 48 56 64 72 < 9 18 27 36 45 54 63 72 81 < array2[0]..1 < array2[1]..2 < array2[2]..3 < array2[3]..4 < array2[4]..5 < 1 2 3 4 5 6 7 8 9 < 2 4 6 8 10 12 14 16 18 < 3 6 9 12 15 18 21 24 27 < 4 8 12 16 20 24 28 32 36 < 5 10 15 20 25 30 35 40 45 < 6 12 18 24 30 36 42 48 54 < 7 14 21 28 35 42 49 56 63 < 8 16 24 32 40 48 56 64 72 < 9 18 27 36 45 54 63 72 81 < darray[0]..0.000000 < darray[1]..1.000000 < darray[2]..2.000000 < darray[3]..3.000000 < darray[4]..4.000000 < darray[5]..5.000000 < darray[6]..6.000000 < darray[7]..7.000000 < darray[8]..8.000000 < darray[9]..9.000000 < darray[0]..1.000000 < darray[1]..2.000000 < darray[2]..3.000000 < darray[3]..4.000000 < darray[4]..5.000000 < darray[5]..6.000000 < sarray[0]..str0 < sarray[1]..str1 < sarray[2]..str2 < sarray[3]..str3 < sarray[4]..str4 < sarray[5]..str5 < sarray[6]..str6 < sarray[7]..str7 < sarray[8]..str8 < sarray[9]..str9 < sarray[0]..1 < sarray[1]..2 < sarray[2]..3 < sarray[3]..4 < null_str..null < abcnull < null < OK < OK < OK < OK < 日本語 < str[0]..26085 < str[1]..26412 < 本 < str[2]..35486 --- > test.dkm:726:文字リテラルが2文字以上あります。 array 6,7c6,7 < len..6 < substr..eほげほ --- > len..8 > substr..eほ&#65533; class01 class02 class03 method cast classmain downcast instanceof super exception shapemain throws nullpointer array_ex else_ex test switch final do_while enum delegate rename --------------------------------------
[この投稿を含むスレッドを表示] [この投稿を削除]
[1181] Re:あけましておめでとうございます!
投稿者:(ぱ)こと管理人
2009/01/01 13:08:26

>EUC な環境をにわかに準備して test.sh を実行しました。 ... >diff が差分を吐き出します。 まず、[1178]につよしさんが貼ってくださった実行結果は、正常に動いています。 UTF-8版は正しく動いたが、EUC版は正しく動かなかった、ということでしょうか? うちではUTF-8版もEUC版も、test.shは流して正常動作を確認しています。 つよしさんのところで動かなかったのだとしたら、そのdiffが吐いた差分を 貼っていただかないと何がおきているのかわからないです。さすがに。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1180] あけましておめでとうございます
投稿者:(ぱ)こと管理人
2009/01/01 13:04:37

あけましておめでとうございます。 今年もよろしくお願いいたします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1179] あけましておめでとうございます!
投稿者:つよし
2009/01/01 00:53:29

前橋さん 2009年 平成21年 1月 1日 元日 さっそく仕事始めです=嘘です。 EUC な環境をにわかに準備して test.sh を実行しました。 実は、 このパソコンは、メモリテストでエラーが出ますがVine4.2をインストールできました。 なぜかエラーは出ません。見かけはだいじょうぶ? このようなパソコンで test.sh を実行するのは、正常な精神ではありませんが、、笑い。 diff が差分を吐き出します。 前橋さん 追試をお願いします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1178] Re:Linuxコンパイルエラー
投稿者:つよし
2008/12/31 23:14:34

前橋さん 今年もあとわずか!!来年も発展を願います!! アップ試しました。 気持ちよく実行できました。 ありがとうございます。 $ sh test.sh test array class01 class02 class03 method cast classmain downcast instanceof super exception shapemain throws nullpointer array_ex else_ex test switch final do_while enum delegate rename $ ># いまどきEUCは時代錯誤か…… 確かに。 > 個人的には、EUCな環境の方を使っていた時間が長いですが!!
[この投稿を含むスレッドを表示] [この投稿を削除]
[1177] Re:Linuxコンパイルエラー
投稿者:(ぱ)こと管理人
2008/12/31 02:25:31

>というわけで、あわせて修正した版をもうじきUPします。 UPしました。 私のところではこれで動いています。 test.dkm以外のサンプルプログラムは、テスト用シェルスクリプトtest.shを使って、 % sh ./test.sh のようにすればまとめて実行できます。これで、test以下の.dkmのファイル名から 拡張子を除いたものの名前だけがずらずらと出れば成功、diffが相違を検出したら なにか問題が起きてます。 なにかあれば教えてください。 いろいろと報告ありがとうございました > つよしさん # いまどきEUCは時代錯誤か…… 確かに。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1176] Re:Linuxコンパイルエラー
投稿者:(ぱ)こと管理人
2008/12/31 01:45:36

>$ cd test/ >$ echo $LANG >ja_JP.UTF-8 >$ find . -type f -exec nkf -w --overwrite {} \; すみません、見落としていましたが(前回の投稿のコマンドプロンプトのところに 形跡がありました…)、この変換はmain/test以下でやっていたのですね。 Diksamは、エラーメッセージを日本語で出します(これはこれでどうかという 人もいそうですが)。また、そのエラーメッセージは、compilerとdvm以下の error_message.cに埋め込まれています。 現在ダウンロードできるDiksamのソースでは、error_message.cの文字コードが EUCになっています。以下のエラーは、これをDiksamの内部文字コード(wchar_t)に 変換しようとして失敗しているために発生しています。 >$ ../diksam test.dkm >Assertion failure (wc_format != NULL) file..error.c line..92 >wc_format is null. よって、LANGがja_JP.UTF-8な環境で動かすには、コンパイル前に、 error_message.cをUTF-8に変換しなければなりません。 それだけで動くかと思って試してみたところ、share/wchar.cの中に 1文字分のマルチバイト文字列が2文字までであることを想定しているところが あって、UTF-8だと1文字が3バイトになるのでそこでもエラーが出ました。 というわけで、あわせて修正した版をもうじきUPします。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1175] Re:Linuxコンパイルエラー
投稿者:つよし
2008/12/30 23:58:09

前橋さん こんばんは 初心者なので最初からやり直しました。 端末のコピーアンドペースとです。 ここから $ tar zxvf diksam_0_4_01_unix.tgz $ cd diksam_unix/main/ $ make <省略> cc ../compiler/compiler.o ../compiler/builtin/builtin.o ../dvm/dvm.o ../share/share.o ../memory/mem.o ../debug/dbg.o ./main.o -o diksam -lm $ cd test/ $ echo $LANG ja_JP.UTF-8 $ find . -type f -exec nkf -w --overwrite {} \; $ ../diksam test.dkm Assertion failure (wc_format != NULL) file..error.c line..92 wc_format is null. Assertion failure (wc_format != NULL) file..error.c line..92 wc_format is null. アボートしました $ ここまで。。。 一つ前の前橋さんの書き込みすべて理解できていません。 僕にできるのは、こんな感じです。いじょう~ debian lenny
[この投稿を含むスレッドを表示] [この投稿を削除]
[1174] Re:Linuxコンパイルエラー
投稿者:(ぱ)こと管理人
2008/12/30 22:47:03

>utf-8 なコードを diksam は受け付けない >ということですか?! >utf な環境は、多いです!! Diksamを作り始めた頃は、まだUTF-8が主流ではなかった、ような気がしているの ですが(私が遅れていただけかもしれません)、最近は確かにUTF-8な環境がかなり 多くなっていますね。 >@~/Desktop/diksam_unix/main/test$ find . -exec nkf -w -overwrite {} \; >で utf-8 に変換し実行するとエラーになります。 ところでこれですが、この時、$LANGは何になっていたでしょうか? >Assertion failure (wc_format != NULL) file..error.c line..92 >wc_format is null. これを見る限り、error_message.c内の日本語文字列(UTF-8に変換されている)を ワイド文字列に変換しようとして失敗しているようです。 Diksamは、現在のデフォルトエンコーディングでマルチバイト文字列をワイド文字列に 変換しようとします(main.cに「setlocale(LC_CTYPE, "");」と書いてあります)。 よって、現在の$LANGがja_JP.EUC-JP等になっていれば、正しく変換できません。 >utf-8 なコードを diksam は受け付けない >ということですか?! で、この件ですが、ソースを確認してみたところ、error_message.cをUTF-8に 変換してコンパイルされており、環境も正しくUTF-8になっていれば、UTF-8を 受け付けるのではないかと思います(まだ試せていません)。 先の投稿でUTF-8に未対応、ということを書きましたが、本来、普通に8bitを 通しさえすれば、UTF-8は文字列リテラル等に問題なく使えるはずです(UTF-8という のはそういうことを意図したエンコーディングです)。にも関わらず、crowbarで UTF-8対応がわざわざ必要になったのは、Shift-JIS対応のため特定のバイトの次の バイトを特別扱いする、という対応をしているためで、Diksamをよく見てみたら、 そもそもShift-JISの対応が入っていませんでした… というわけで、現在のWindows版のDiksamは、ソースがShift-JISであることを 期待しているにもかかわらず、「表」等の文字を文字列リテラルに入れると エラーになります(いわゆる0x5C問題)。Diksam on Windowsとか言っときながらこれは さすがにまずいので、早急に対応します。 >他 少し試しましたが セグメンテーションエラーとか いろいろ、、、 さすがの私もtest.shくらいは流してから出してますので、testディレクトリ以下の ものが動かないなら、何らかの環境に依存する問題かと思います。 できれば詳細を教えてください。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1173] ./test/*
投稿者:つよし
2008/12/30 22:20:22

前橋さん >$ ../diksam rand.dkm は、実行確認できました。 >他 少し試しましたが セグメンテーションエラーとか いろいろ、、、 他、いくつか実行出来ました。 エラーが出るのは、引数とか?与えないといけないのかな? $ ../diksam mathtest.dkm ok!! $ ../diksam downcast.dkm ok!! etc...
[この投稿を含むスレッドを表示] [この投稿を削除]
[1172] Re:Linuxコンパイルエラー
投稿者:つよし
2008/12/30 21:59:16

前橋さん ありがとうございます。 @~/Desktop/diksam_unix/main/test$ find . -exec nkf -w -overwrite {} \; で utf-8 に変換し実行するとエラーになります。 @~/Desktop/diksam_unix/main/test$ ../diksam test.dkm Assertion failure (wc_format != NULL) file..error.c line..92 wc_format is null. Assertion failure (wc_format != NULL) file..error.c line..92 wc_format is null. アボートしました @~/Desktop/diksam_unix/main/test$ そもそも utf-8 なコードを diksam は受け付けない ということですか?! utf な環境は、多いです!! $ ../diksam rand.dkm は、実行確認できました。 他 少し試しましたが セグメンテーションエラーとか いろいろ、、、
[この投稿を含むスレッドを表示] [この投稿を削除]
[1171] Re:Linuxコンパイルエラー
投稿者:(ぱ)こと管理人
2008/12/30 21:22:01

>../diksam test.dkm > >と実行してみるのはどうでしょうか。 追記ですが、 このtest.dkmは日本語を含みますが、文字コードはEUCです。 現時点のLinux版diksamはEUCのソースしか受け付けないので、UTF-8な環境では 環境の設定を変えるか日本語部分を削ったほうがよいかもしれません。 # crowbarの最新版(未公開)ではUTF-8にも対応しているので、 # 同じ修正をDiksamにも入れようと思いつつ忘れてました…
[この投稿を含むスレッドを表示] [この投稿を削除]
[1170] Re:Linuxコンパイルエラー
投稿者:(ぱ)こと管理人
2008/12/30 15:25:44

>diksam がうまく動くか 試したいのですが? mainディレクトリの下にtestディレクトリがあります。 その下で ../diksam test.dkm と実行してみるのはどうでしょうか。 同じディレクトリにあるシェルスクリプト「test.sh」は、そこにある テストスクリプトを一括実行し、正しい結果とdiffを取ります。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1169] Re:Linuxコンパイルエラー
投稿者:つよし
2008/12/30 15:21:44

前橋さん ありがとうございます。 $ sudo aptitude install bison $ sudo aptitude install flex $ pwd /home/tntn/Desktop/diksam_unix/main $ make 以上で diksam を作成できました。 diksam がうまく動くか 試したいのですが?
[この投稿を含むスレッドを表示] [この投稿を削除]
[1168] Re:Linuxコンパイルエラー
投稿者:(ぱ)こと管理人
2008/12/30 13:31:04

つよしさん、はじめまして。 >debian lenny でコンパイルエラーになります。 >何が足りないのでしょうか? >gcc は、4.3 ヴァージョンをインストールしました。 >$ make … >make[1]: yacc: コマンドが見つかりませんでした 見てのとおり、yaccが入っていません。 Debianなら、bisonをパッケージインストールすれば、シンボリックリンクを 勝手に作って、「yacc」で実行できるようになったような気がします。 gccやyaccが標準で入っていない環境なら、おそらくlexも入っていないでしょうから、 flexも入れる必要がありそうです。 もし、bisonやflexは入れたけれど「yacc」や「lex」としては実行できない、 ということなら、compilerディレクトリ以下のMakefileを修正し、 yacc -dv diksam.y となっているところ(2箇所)を、 bison --yacc -dv diksam.y に、 lex diksam.l となっているところを flex diksam.l にしてください。 それはそれとして、 >(Linux版では、Uフォーは、ダメですか?:入門者) 残念ながらダメです……
[この投稿を含むスレッドを表示] [この投稿を削除]
[1167] Linuxコンパイルエラー
投稿者:つよし
2008/12/30 01:33:32

前橋さま debian lenny でコンパイルエラーになります。 何が足りないのでしょうか? gcc は、4.3 ヴァージョンをインストールしました。 (Linux版では、Uフォーは、ダメですか?:入門者) $ make cd ../compiler; make; make[1]: ディレクトリ `/home/tntn/Desktop/diksam_unix/compiler' に入ります yacc -dv diksam.y make[1]: yacc: コマンドが見つかりませんでした make[1]: *** [y.tab.h] エラー 127 make[1]: ディレクトリ `/home/tntn/Desktop/diksam_unix/compiler' から出ます make: *** [../compiler/compiler.o] エラー 2 $
[この投稿を含むスレッドを表示] [この投稿を削除]
[1166] Diksam on Windows
投稿者:つよし
2008/12/30 01:21:04

前橋さま ウィンドウズ版Diksamの公開おめでとうございます。 Uフォーの絵 見ました。それが動いたりするのですか?すごい!! Linuxから書き込んでいますが、Linuxでは、Uフォーは出来ないのかな?
[この投稿を含むスレッドを表示] [この投稿を削除]
[1164] Re:前橋言語:on MacOSX
投稿者:(ぱ)こと管理人
2008/11/12 02:00:49

こんにちは。 >前橋言語の作例は、ありませんか? すみません、今のところサンプルプログラムとしては配布ディレクトリの compiler/test以下にあるものぐらいしかないです。 >パズルとか電卓とか? >前橋さんの電卓ネタを前橋言語で書き換えるとか? Diksam用のyaccはないので、再帰下降パーサを手書きすれば電卓ぐらいは 作れそうではありますが、文字列処理の手段がsubstr()しかなくて、 もちろんそれでもできますけれど効率が悪いので、"abc"[2]で'c'が取れるように したりとか、当然同時に文字リテラルも必要になって、とか、 いずれにしてもライブラリがこれではたいした物は作れないのでライブラリを 補強して、とか、やりたいことはいくつもありますし実現も難しくないのですが、 何をするにも時間が不足しております。 ライブラリの方は現在追加してまして、近々、何かしらちょっとは楽しいプログラムが 作れるようにしようとは思っているのですが。 すみません、Macユーザのたろうさんには大変申し訳ないのですが、今度追加される ライブラリ部分は当面Windows専用になります…
[この投稿を含むスレッドを表示] [この投稿を削除]
[1163] Re:前橋言語:on MacOSX
投稿者:たろう
2008/11/11 15:40:20

管理人(前橋)さま 前橋言語の作例は、ありませんか? パズルとか電卓とか? 前橋さんの電卓ネタを前橋言語で書き換えるとか?
[この投稿を含むスレッドを表示] [この投稿を削除]
[1162] Re:前橋言語:on MacOSX
投稿者:(ぱ)こと管理人
2008/11/08 13:23:28

>>$(CC) $(CFLAGS) -o $@ -I../../include builtin_conv.c $(CONV_OBJS) >> ↑ >> >>としてやればうまくいくのではないでしょうか。 > >前橋さん >コンパイル通りました。 情報ありがとうございます。次回リリースからは、Makefileを修正しておきます。 Macでも動いたということで、嬉しいです。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1161] Re:前橋言語:再帰
投稿者:たろう
2008/11/08 02:24:05

再帰も出来ますね!あたりまえ? 何か使えそうな気配です!! $ vi saiki int fact(int n) { if (n==0) { return 1; } else { return n*fact(n-1); } } println(fact(3)); println(fact(4)); println(fact(5)); println(fact(10)); $ diksam saiki 6 24 120 3628800 $
[この投稿を含むスレッドを表示] [この投稿を削除]
[1160] Re:前橋言語:on MacOSX
投稿者:たろう
2008/11/08 01:21:37

> >ここでこういうエラーが出ているということは、diksamの展開ディレクトリ以下の、 >compiler/builtinディレクトリのMakefileの20行目の > >$(CC) $(CFLAGS) -o$@ -I../../include builtin_conv.c $(CONV_OBJS) > >の「-o$@」の「-o」と「$@」の間に空白を入れ、 > >$(CC) $(CFLAGS) -o $@ -I../../include builtin_conv.c $(CONV_OBJS) > ↑ > >としてやればうまくいくのではないでしょうか。 前橋さん コンパイル通りました。 感謝、感激です。 ありがとうございます。 試してみました。 スキル不足でこんなのでいい? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $ vi ppp.dk println("hello, たろう."); int s = 0; int i; for (i=1; i<=10; i=i+1) { s += i; print(i); println(" たろう"); } $ diksam ppp.dk hello, たろう. 1 たろう 2 たろう 3 たろう 4 たろう 5 たろう 6 たろう 7 たろう 8 たろう 9 たろう 10 たろう $ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 以上。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1159] Re:前橋言語:on MacOSX
投稿者:(ぱ)こと管理人
2008/11/08 00:41:46

こんにちは。 > マックosx で、コンパイルしたいのですが可能ですか? >powerpc g3 インテルマックでは、ありません。 (略) >ld: unknown flag: -obuiltin_conv MacOS XのCコンパイラがどんなコンパイラなのか私は知らないのですが、 「-obuiltin_conv」というオプションはないよ、というエラーを出しています。 ここは、「-o」というフラグで実行形式の名前を指定しているところで、 私の知っているたいていのコンパイラでは、-oの後ろに空白を入れても入れなくても OKでした。 ここでこういうエラーが出ているということは、diksamの展開ディレクトリ以下の、 compiler/builtinディレクトリのMakefileの20行目の $(CC) $(CFLAGS) -o$@ -I../../include builtin_conv.c $(CONV_OBJS) の「-o$@」の「-o」と「$@」の間に空白を入れ、 $(CC) $(CFLAGS) -o $@ -I../../include builtin_conv.c $(CONV_OBJS) ↑ としてやればうまくいくのではないでしょうか。 確証はありませんが >ld -r -o mem.o memory.o storage.o このへんでは-oオプションがちゃんと効いているところからすると可能性は 高いと思います。 実際に試してくださった方がいらっしゃると励みになります。ありがとうございました。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1158] 前橋言語:on MacOSX
投稿者:たろう
2008/11/07 20:04:47

diksam_0_4_unix.tgz 前橋さま  マックosx で、コンパイルしたいのですが可能ですか? powerpc g3 インテルマックでは、ありません。 makeの実行画面を示します。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $ tar zxf diksam_0_4_unix.tgz $ ls diksam_0_4_unix.tgz diksam_unix/ $ cd diksam_unix/compiler/ $ make yacc -dv diksam.y lex diksam.l cc -c -g lex.yy.c -I/usr/local/include -I../include cc -c -g y.tab.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG main.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG interface.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG create.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG fix_tree.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG generate.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG string.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG wchar.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG util.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG error.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG error_message.c -I/usr/local/include -I../include cc -c -g -Wall -ansi -Wswitch-enum -DDEBUG builtin/builtin.c -I/usr/local/include -I../include cd ../dvm; make; cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include execute.c cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include load.c cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include heap.c cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include native.c cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include nativeif.c cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include wchar.c cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include util.c cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include error.c cc -c -g -DDEBUG -Wall -ansi -Wswitch-enum -I../include error_message.c ld -r -o dvm.o execute.o load.o heap.o native.o nativeif.o wchar.o util.o error.o error_message.o cd ../share; make; cc -c -g -I../include -DDEBUG -Wall -ansi -Wswitch-enum -I../include dispose.c cc -c -g -I../include -DDEBUG -Wall -ansi -Wswitch-enum -I../include opcode.c cc -c -g -I../include -DDEBUG -Wall -ansi -Wswitch-enum -I../include disassemble.c cc -c -g -I../include -DDEBUG -Wall -ansi -Wswitch-enum -I../include wchar.c cc -c -g -I../include -DDEBUG -Wall -ansi -Wswitch-enum -I../include util.c ld -r -o share.o dispose.o opcode.o disassemble.o wchar.o util.o cd ../memory; make; cc -c -g -DDEBUG -Wall -I../include memory.c cc -c -g -DDEBUG -Wall -I../include storage.c ld -r -o mem.o memory.o storage.o cd ../debug; make; cc -c -g -Wall -DDBG_NO_DEBUG -I../include debug.c ld -r -o dbg.o debug.o cd ./builtin; make; cc -g -DDEBUG -Wall -ansi -Wswitch-enum -obuiltin_conv -I../../include builtin_conv.c ../../memory/memory.o ../../debug/debug.o ld: unknown flag: -obuiltin_conv make[1]: *** [builtin_conv] Error 1 make: *** [diksam] Error 2 $ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[この投稿を含むスレッドを表示] [この投稿を削除]
[1157] Re:業務連絡
投稿者:(ぱ)こと管理人
2008/10/29 01:47:37

ローカルにPHP5の環境を作ったのですが、デフォルトのphp.iniの設定が違いすぎていて、まだ一部動かせていません。 magic_quotes_gpcはOffだわ(これは正しいのですが)、asp_tagsはOffだわ、short_open_tagもOffだわで、これではサーバがPHP5に移行した際、どんな設定になっているかが問題のように思います。 ……と思っていたら、どうもPHPの移行には混在期間があって、当面は今のままで動くようです(PHP5にしたければ拡張子を変えろと)。なので今日はもう寝ます。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1156] 業務連絡
投稿者:(ぱ)こと管理人
2008/10/27 02:12:04

この掲示板(を含むうちのWebページ一式)をホスティングしてくれている会社から、 以下の通知が来ました。 >この度、Zend社のPHP4サポート終了の告知を受けまして、サーバーシステムの >保全のため、PHP5へのアップデートを行います。全共用サーバーにおきまして、 >PHP4のご利用ができなくなります。至急設置スクリプトの対応状況をご確認、 >更新をお願いいたします。 この通知が来たのはだいぶ前のことなのですが、いろいろあって放置しているうちに、 変更の期日が10/29に迫ってしまいました。 この掲示板を作った時点の環境は当時のPCが壊れた時点で失われていて、 今現状のLet's Noteの環境にPHPとApacheを入れてみたのですが、まだPHPが 動かせていないようです。 もうちょっといじってみるつもりですが、10/29の時点でこの掲示板が動かなく なっていたら、それが原因とお考えくださいませ。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1155] Re:プログラミングコンテスト
投稿者:(ぱ)こと管理人
2008/10/27 01:25:13

>(ぱ)さんが、賞金1万円出して >(ぱ)さんが作ったOSで、プログラミングコンテストをする。 OSを作った覚えはないので、プログラミング言語ですかね。 1万円というと、いにしえのBASICマガジンの原稿料がそれぐらいだったと思います。 ベーマガ相当のプログラムが集まるのなら、最優秀賞に1万円くらい出すのは 惜しくないですが、結局ほとんど集まらず、hello, worldに1万円出すハメに なったりして。
[この投稿を含むスレッドを表示] [この投稿を削除]