From: Hidetoshi NAGAI Date: 2004-12-23T11:17:46+09:00 Subject: [ruby-dev:25287] patch for ruby/tk version info 永井@知能.九工大です. Ruby/Tk のコンパイル時情報やリリース日の情報を加えるための 以下のパッチを 1.8.2 に今から適用するのは危険でしょうか? # トラブルになりそうな修正ではないとは思うのですが... Index: ext/tcltklib/extconf.rb =================================================================== RCS file: /var/cvs/src/ruby/ext/tcltklib/extconf.rb,v retrieving revision 1.15.2.7 diff -u -r1.15.2.7 extconf.rb --- ext/tcltklib/extconf.rb 8 Dec 2004 18:13:34 -0000 1.15.2.7 +++ ext/tcltklib/extconf.rb 23 Dec 2004 02:12:42 -0000 @@ -202,6 +202,12 @@ end # ruby -> enable && tcl -> enable/disable + if tcl_enable_thread + $CPPFLAGS += ' -DWITH_TCL_THREADS=1' + else + $CPPFLAGS += ' -DWITH_TCL_THREADS=0' + end + return true else @@ -224,9 +230,11 @@ ** ***************************************************************************** ') + $CPPFLAGS += ' -DWITH_TCL_THREADS=0' return false else # ruby -> disable && tcl -> disable + $CPPFLAGS += ' -DWITH_TCL_THREADS=1' return true end end Index: ext/tcltklib/tcltklib.c =================================================================== RCS file: /var/cvs/src/ruby/ext/tcltklib/tcltklib.c,v retrieving revision 1.49.2.22 diff -u -r1.49.2.22 tcltklib.c --- ext/tcltklib/tcltklib.c 8 Dec 2004 18:13:34 -0000 1.49.2.22 +++ ext/tcltklib/tcltklib.c 23 Dec 2004 02:12:43 -0000 @@ -4,6 +4,8 @@ * Oct. 24, 1997 Y. Matsumoto */ +#define TCLTKLIB_RELEASE_DATE "2004-12-23" + #include "ruby.h" #include "rubysig.h" #undef EXTERN /* avoid conflict with tcl.h of tcl8.2 or before */ @@ -64,6 +66,9 @@ #define DUMP2(ARG1, ARG2) */ +/* release date */ +const char tcltklib_release_date[] = TCLTKLIB_RELEASE_DATE; + /*finalize_proc_name */ static char *finalize_hook_name = "INTERP_FINALIZE_HOOK"; @@ -6178,6 +6183,62 @@ } #endif +static VALUE +tcltklib_compile_info() +{ + volatile VALUE ret; + int size; + char form[] = "tcltklib %s %s pthread :: Tcl%s(%s)/Tk%s(%s) %s"; + char *info; + + size = strlen(form) + + strlen(TCLTKLIB_RELEASE_DATE) + + strlen("without") + + strlen(TCL_PATCH_LEVEL) + + strlen("without stub") + + strlen(TK_PATCH_LEVEL) + + strlen("without stub") + + strlen("unknown tcl_threads"); + + info = ALLOC_N(char, size); + + sprintf(info, form, + TCLTKLIB_RELEASE_DATE, +#ifdef HAVE_NATIVETHREAD + "with", +#else + "without", +#endif + TCL_PATCH_LEVEL, +#ifdef USE_TCL_STUBS + "with stub", +#else + "without stub", +#endif + TK_PATCH_LEVEL, +#ifdef USE_TK_STUBS + "with stub", +#else + "without stub", +#endif +#ifdef WITH_TCL_THREADS +# if WITH_TCL_THREADS + "with tcl_threads" +# else + "without tcl_threads" +# endif +#else + "unknown tcl_threads" +#endif + ); + + ret = rb_obj_freeze(rb_str_new2(info)); + + free(info); + + return ret; +} + /*---- initialization ----*/ void Init_tcltklib() @@ -6210,6 +6271,11 @@ rb_global_variable(&watchdog_thread); /* --------------------------------------------------------------- */ + + rb_define_const(lib, "COMPILE_INFO", tcltklib_compile_info()); + + rb_define_const(lib, "RELEASE_DATE", + rb_obj_freeze(rb_str_new2(tcltklib_release_date))); rb_define_const(lib, "FINALIZE_PROC_NAME", rb_str_new2(finalize_hook_name)); Index: ext/tk/tkutil.c =================================================================== RCS file: /var/cvs/src/ruby/ext/tk/tkutil.c,v retrieving revision 1.4.2.13 diff -u -r1.4.2.13 tkutil.c --- ext/tk/tkutil.c 19 Oct 2004 07:13:28 -0000 1.4.2.13 +++ ext/tk/tkutil.c 23 Dec 2004 02:12:44 -0000 @@ -8,6 +8,8 @@ ************************************************/ +#define TKUTIL_RELEASE_DATE "2004-12-23" + #include "ruby.h" #include "rubysig.h" #include "st.h" @@ -1239,6 +1241,8 @@ } /*************************************/ +/* release date */ +const char tkutil_release_date[] = TKUTIL_RELEASE_DATE; void Init_tkutil() @@ -1247,6 +1251,11 @@ VALUE cTK = rb_define_class("TkKernel", rb_cObject); VALUE mTK = rb_define_module("TkUtil"); + + /* --------------------- */ + + rb_define_const(mTK, "RELEASE_DATE", + rb_obj_freeze(rb_str_new2(tkutil_release_date))); /* --------------------- */ rb_global_variable(&cMethod); Index: ext/tk/lib/tk.rb =================================================================== RCS file: /var/cvs/src/ruby/ext/tk/lib/tk.rb,v retrieving revision 1.102.2.30 diff -u -r1.102.2.30 tk.rb --- ext/tk/lib/tk.rb 17 Dec 2004 07:31:21 -0000 1.102.2.30 +++ ext/tk/lib/tk.rb 23 Dec 2004 02:12:44 -0000 @@ -3940,6 +3940,8 @@ #Tk.freeze module Tk + RELEASE_DATE = '2004-12-23'.freeze + autoload :AUTO_PATH, 'tk/variable' autoload :TCL_PACKAGE_PATH, 'tk/variable' autoload :PACKAGE_PATH, 'tk/variable' -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp