zt日記

書いているのは Kazuhiro NISHIYAMA a.k.a. ZnZです。
2001|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|
2012|04|05|06|09|

この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。

xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法インストールメモXREA + tDiary + Namazuをどうぞ。


2009年09月05日(Sat)

[debian] upgradeable

アップグレード可能なパッケージを調べるのに「apt-show-versions -u」を使っていて、 bpo のパッケージや atokx なども出てきて困っていたが、aptitudeのregex式 を見て「~U」を使えばいいとわかったので、これからは「aptitude search '~U'」を使うことにした。


2009年09月13日(Sun)

[ruby] Rubyist Magazine 0027 号

Rubyist Magazine 0027 号がリリースされています。

ほとんど手伝えてませんが、ちょっとだけ編集したので編集後記とかは書きました。


2009年09月19日(Sat)

第37回 Ruby/Rails勉強会@関西

第37回 Ruby/Rails勉強会@関西に参加した。Ruby/Rails勉強会@関西には久しぶりに参加した。 40分ぐらい遅れてしまったので、最初の話は聞き逃した。 ハードウェア関係の話はなかなか普段関係のない話なのでおもしろかった。 初級者向けレッスンではrubygemsのgemの作成まであったので参考になった。


2009年09月21日(Mon)

nadoka-0.7.2 release

以下今回の作業手順。 ndk/version.rb で $HeadURL$ に trunk が含まれるかどうかを見ていたので、前回 (0.7.1) とは違って svn export を trunk からではなく tags 以下からに変更した。

ここからブラウザで。

最後にリリースアナウンス。

  • IRC にリリースアナウンスの文面を出してチェックを希望してみたが、時間的に誰もチェックしてくれてなさそうだった。
  • 気にせずしばらく待ったところで ruby-list にリリースアナウンスを流した。

2009年09月26日(Sat)

HaikuOS で ruby-trunk

以前 HaikuOS 対応パッチが取り込まれたはずなので、現状だとどうだろうと思って、Haiku R1/Alpha 1 の VMware イメージを使って、ruby の snapshot.tar.gz をビルドしようとしてみた。

まず snapshot.tar.gz をホームディレクトリで展開しようとしたら No space left on device になった。 Blank_BFS という別の容量の大きいディスクイメージが用意されていたのでそっちで作業を再開。 ちなみに snapshot.tar.gz の中身は revision.h によると 25094 だったらしい。

configure: error: unknown thread model で終了してしまったので、config.log をチェックしたら cc1: Invalid option `-Wno-unused-paramter' がたくさん出ていた。 warnflags=-Wall を追加してリトライしてみたところ、configure は通った。

次は make してみると

/Blank_BFS/home/Desktop/snapshot> make
gcc -O3 -g -Wall -I. -I.ext/include/i586-haiku -I./include -I. -DRUBY_EXPORT   -o signal.o -c signal.c
/Blank_BFS/home/Desktop/snapshot/signal.c:422: warning: redefinition of `sighandler_t'
/boot/develop/headers/posix/signal.h:15: warning: `sighandler_t' previously declared here
/Blank_BFS/home/Desktop/snapshot/signal.c: In function `sigsegv':
/Blank_BFS/home/Desktop/snapshot/signal.c:604: `info' undeclared (first use in this function)
/Blank_BFS/home/Desktop/snapshot/signal.c:604: (Each undeclared identifier is reported only once
/Blank_BFS/home/Desktop/snapshot/signal.c:604: for each function it appears in.)
/Blank_BFS/home/Desktop/snapshot/signal.c: In function `default_handler':
/Blank_BFS/home/Desktop/snapshot/signal.c:735: duplicate case value
/Blank_BFS/home/Desktop/snapshot/signal.c:730: this is the first entry for that value
make: *** [signal.o] Error 1
/Blank_BFS/home/Desktop/snapshot>

で止まってしまった。

SIGSEGV と SIGBUS が同じというのと

/Blank_BFS/home/Desktop/snapshot> grep -r SA_SIGINFO /boot/develop/headers
/boot/develop/headers/posix/signal.h:/* TODO: Support this structure, or more precisely the SA_SIGINFO flag. To do
/boot/develop/headers/posix/signal.h:/* #define SA_SIGINFO              0x40 */
/Blank_BFS/home/Desktop/snapshot>

という感じで SA_SIGINFO がない影響で USE_SIGALTSTACK なのに SIGINFO_ARG に info がないのが原因だったようなので、

/Blank_BFS/home/Desktop/snapshot> diff -u signal.c.orig signal.c
--- signal.c.orig       2009-09-13 10:34:35.000000000 +0000
+++ signal.c    2009-09-27 02:30:51.000000000 +0000
@@ -598,6 +598,7 @@
 sigsegv(int sig SIGINFO_ARG)
 {
 #ifdef USE_SIGALTSTACK
+#if defined SA_SIGINFO && !defined __SYMBIAN32__
     int ruby_stack_overflowed_p(const rb_thread_t *, const void *);
     NORETURN(void ruby_thread_stack_overflow(rb_thread_t *th));
     rb_thread_t *th = GET_THREAD();
@@ -605,6 +606,7 @@
        ruby_thread_stack_overflow(th);
     }
 #endif
+#endif
     if (segv_received) {
        fprintf(stderr, "SEGV recieved in SEGV handler\n");
        exit(EXIT_FAILURE);
@@ -726,7 +728,7 @@
 #endif
         func = sighandler;
         break;
-#ifdef SIGBUS
+#if defined(SIGBUS) && !(defined(SIGSEGV) && SIGBUS == SIGSEGV)
       case SIGBUS:
         func = sigbus;
         break;
/Blank_BFS/home/Desktop/snapshot>

としてみた。

その結果 miniruby は出来たが以下のエラーで ruby までは出来なかった。

gcc -O3 -g -Wall -I. -I.ext/include/i586-haiku -I../include -I.. -DRUBY_EXPORT   -o dmyext.o -c ../dmyext.c
gcc -O3 -g -Wall -L.    main.o dln.o dmyencoding.o miniprelude.o array.o bignum.o class.o compar.o complex.o dir.o enum.o enumerator.o error.o eval.o load.o proc.o file.o gc.o hash.o inits.o io.o marshal.o math.o numeric.o object.o pack.o parse.o process.o random.o range.o rational.o re.o regcomp.o regenc.o regerror.o regexec.o regparse.o regsyntax.o ruby.o safe.o signal.o sprintf.o st.o strftime.o string.o struct.o time.o transcode.o util.o variable.o version.o compile.o debug.o iseq.o vm.o vm_dump.o thread.o cont.o ascii.o us_ascii.o unicode.o utf_8.o newline.o  dmyext.o   -o miniruby
rbconfig.rb updated
./miniruby -I../lib -I.ext/common -I./- -r../ext/purelib.rb  ../enc/make_encmake.rb --builtin-encs="ascii.o us_ascii.o unicode.o utf_8.o" --builtin-transes="newline.o" enc.mk
../enc/depend:5: [BUG] Bus Error
ruby 1.9.2dev (2009-09-26 trunk 25094) [i586-haiku]

-- control frame ----------
c:0012 p:---- s:0058 b:0058 l:000057 d:000057 CFUNC  :each
c:0011 p:---- s:0056 b:0056 l:000055 d:000055 CFUNC  :grep
c:0010 p:0013 s:0052 b:0052 l:002254 d:000051 BLOCK  ../enc/depend:5
c:0009 p:---- s:0049 b:0049 l:000048 d:000048 FINISH
c:0008 p:---- s:0047 b:0047 l:000046 d:000046 CFUNC  :open
c:0007 p:0103 s:0043 b:0043 l:002254 d:001bf4 EVAL   ../enc/depend:5
c:0006 p:---- s:0025 b:0025 l:000024 d:000024 FINISH
c:0005 p:---- s:0023 b:0023 l:000022 d:000022 CFUNC  :eval
c:0004 p:0062 s:0016 b:0016 l:000015 d:000015 METHOD /Blank_BFS/home/Desktop/snapshot/lib/erb.rb:753
c:0003 p:0572 s:0012 b:0012 l:002254 d:00059c EVAL   ../enc/make_encmake.rb:41
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:002254 d:002254 TOP
---------------------------
../enc/make_encmake.rb:41:in `<main>'
/Blank_BFS/home/Desktop/snapshot/lib/erb.rb:753:in `result'
/Blank_BFS/home/Desktop/snapshot/lib/erb.rb:753:in `eval'
../enc/depend:5:in `<main>'
../enc/depend:5:in `open'
../enc/depend:5:in `block in <main>'
../enc/depend:5:in `grep'
../enc/depend:5:in `each'

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort
make: *** [enc.mk] Abort
/Blank_BFS/home/Desktop/snapshot/build>

copyright © 2001-2013 ZnZ
Key fingerprint = 6E14 2C9C DBD7 874D 8B3C CAA8 9B58 5538 ED7E 1B73