この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
アップグレード可能なパッケージを調べるのに「apt-show-versions -u」を使っていて、 bpo のパッケージや atokx なども出てきて困っていたが、aptitudeのregex式 を見て「~U」を使えばいいとわかったので、これからは「aptitude search '~U'」を使うことにした。
Rubyist Magazine 0027 号がリリースされています。
ほとんど手伝えてませんが、ちょっとだけ編集したので編集後記とかは書きました。
第37回 Ruby/Rails勉強会@関西に参加した。Ruby/Rails勉強会@関西には久しぶりに参加した。 40分ぐらい遅れてしまったので、最初の話は聞き逃した。 ハードウェア関係の話はなかなか普段関係のない話なのでおもしろかった。 初級者向けレッスンではrubygemsのgemの作成まであったので参考になった。
以下今回の作業手順。 ndk/version.rb で $HeadURL$ に trunk が含まれるかどうかを見ていたので、前回 (0.7.1) とは違って svn export を trunk からではなく tags 以下からに変更した。
ここからブラウザで。
最後にリリースアナウンス。
以前 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>