トップ «前の日記(2008-05-29) 最新 次の日記(2008-06-01)» 編集

Route 477



2008-05-30

[mac][Ruby/SDL] Mac OS X と Ruby/SDL 2.0.1 と Ruby 1.9

MacでもRuby/SDL+Fiberしたい。したいですよね。

というわけでやってみた。

手順

まずRuby/SDLを普通にコンパイルする。rubyとかSDLとかSDL_imageとかSDL_ttfとかSDL_soundはMacPortsで入れておこう。

次にRuby 1.9.0-1のソースを取ってきてコンパイルする。

  • ./configure --prefix=/Users/yhara/bin/rubys/ruby-1.9.0-1
  • make && make install
  • ln -s ~/bin/rubys/ruby-1.9.0-1/ ~/bin/ruby-1.9.0-1

次にrsdlを取ってきてコンパイルする…んだが、timespecが再定義されているというエラーが。

以下適当すぎるパッチ。

/Users/yhara/research/Ruby/rubys/ruby-1.9.0-1/include/ruby % diff missing.h ~/bin/rubys/ruby-1.9.0-1/include/ruby-1.9.0/ruby/missing.h
34,39c34,39
< #if !defined(HAVE_STRUCT_TIMESPEC)
< struct timespec {
<     time_t tv_sec;    /* seconds */
<     long tv_nsec;     /* nanoseconds */
< };
< #endif
---
> //#if !defined(HAVE_STRUCT_TIMESPEC)
> //struct timespec {
> //    time_t tv_sec;  /* seconds */
> //    long tv_nsec;   /* nanoseconds */
> //};
> //#endif

さらに、Makefileをちょっと修正する。

/Users/yhara/research/sdl/rsdl % diff Makefile Makefile-1.9 
4c4
< LIBS = -lpthread -ldl -lobjc  `sdl-config --libs`
---
> LIBS = -L/Users/yhara/bin/rubys/ruby-1.9.0-1/lib -lpthread -ldl -lobjc  `sdl-config --libs` 

これでmakeが通るはず。rsdlを~/bin/rsdl-1.9にコピー。あ、~/binは「どこかパスの通ってるとこ」ってことね。

うごきましたー

775106d06216b2fb1ab576235ddca6d7.png

ばばーん

ソースは 20080210 を参照。

[prog] セマンティクスとは

日本語だと「意味論」ですよね。

例えば何かのプログラミング言語で「foo + bar」とか書いたときに、このコード片が「その言語で文法上どういう意味になるか」がセマンティクス。

…だと思ってました。

  • 使用例: 「いやシンタックスとしてそう書けるのは分かるんだけど、その場合のセマンティクスはどうなるの?」
  • 日本語訳: 「文法上そう書けるのは分かるんだけど、その場合どういう意味として解釈されるの?」