[#34647] fork 不可能な環境での test_argv0_noarg — wanabe <s.wanabe@...>

ワナベと申します。

13 messages 2008/05/11
[#34667] Re: fork 不可能な環境での test_argv0_noarg — Yukihiro Matsumoto <matz@...> 2008/05/13

まつもと ゆきひろです

[#34742] Ruby 1.8.7-preview3 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.7-preview3 をリリースしました。

14 messages 2008/05/18
[#34744] Re: [ruby-list:44957] Ruby 1.8.7-preview3 has been released — Takahiro Kambe <taca@...> 2008/05/19

お疲れ様です。

[#34800] Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...>

木村です。

18 messages 2008/05/22
[#34801] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/22

こんにちは、なかむら(う)です。

[#34824] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/23

木村です。

[#34850] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/26

木村です。

[#34854] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/26

こんにちは、なかむら(う)です。

[#34889] Ruby 1.8.7-preview4 test-all failed in OpenSSL::TestSSL — Nobuhiro IMAI <nov@...>

いまいです。

10 messages 2008/05/29

[ruby-dev:34883] [#19002] RUBY_* constants

From: Kazuhiro NISHIYAMA <zn@...>
Date: 2008-05-29 04:53:22 UTC
List: ruby-dev #34883
西山和広です。

http://rubyforge.org/tracker/index.php?func=detail&aid=19002&group_id=426&atid=22040
のパッチです。

r14469を元にしています。
error.cの変更で[ruby-dev:34826]も直ります。


バックポートのパッチを作成していて気になったのですが、
trunkの方でconst int ruby_patchlevelはあるのに
const int ruby_revisionがないのはいいのでしょうか?


Index: error.c
===================================================================
--- error.c	(revision 16676)
+++ error.c	(working copy)
@@ -29,8 +29,7 @@
 #define EXIT_SUCCESS 0
 #endif
 
-extern const char ruby_version[], ruby_release_date[], ruby_platform[];
-extern const int ruby_patchlevel;
+extern const char ruby_description[];
 
 int ruby_nerrs;
 
@@ -209,8 +208,7 @@
 	va_init_list(args, fmt);
 	vfprintf(out, fmt, args);
 	va_end(args);
-	fprintf(out, "\nruby %s (%s patchlevel %d) [%s]\n\n",
-		ruby_version, ruby_release_date, ruby_patchlevel, ruby_platform);
+	fprintf(out, "\n%s\n\n", ruby_description);
     }
     abort();
 }
Index: configure.in
===================================================================
--- configure.in	(revision 16676)
+++ configure.in	(working copy)
@@ -290,6 +290,41 @@
   AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y])
 fi
 
+AC_CACHE_CHECK(stringization, rb_cv_stringization, [
+  rb_cv_stringization=no
+  for string in "#expr" '"expr"'; do
+    AC_COMPILE_IFELSE([
+      AC_LANG_BOOL_COMPILE_TRY([
+#define STRINGIZE0(expr) $string
+#define STRINGIZE(expr) STRINGIZE0(expr)
+#undef real_test_for_stringization
+#define test_for_stringization -.real_test_for_stringization.-
+const char stringized[[]] = STRINGIZE(test_for_stringization);
+], [sizeof(stringized) == 32])],
+      [rb_cv_stringization="$string"; break],
+      [rb_cv_stringization=no])
+  done]
+)
+AC_DEFINE(STRINGIZE(expr),STRINGIZE0(expr))
+if test x"$rb_cv_stringization" != xno -a "$rb_cv_stringization" != "#expr"; then
+  AC_DEFINE_UNQUOTED(STRINGIZE0(expr),$rb_cv_stringization)
+  AC_DEFINE(OLD_FASHIONED_STRINGIZATION,1)
+fi
+
+AC_CACHE_CHECK([string literal concatenation],
+  rb_cv_string_literal_concatenation, [
+  AC_COMPILE_IFELSE([
+    AC_LANG_BOOL_COMPILE_TRY([
+const char concatenated_literal[[]] = "literals" "to"
+  "be" "concatenated.";
+], [sizeof(concatenated_literal) == 26])],
+    [rb_cv_string_literal_concatenation=yes],
+    [rb_cv_string_literal_concatenation=no])]
+)
+if test "$rb_cv_string_literal_concatenation" = no; then
+  AC_DEFINE(NO_STRING_LITERAL_CONCATENATION,1)
+fi
+
 AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg,
   [AC_TRY_COMPILE([
 #include <stdarg.h>
Index: version.c
===================================================================
--- version.c	(revision 16676)
+++ version.c	(working copy)
@@ -14,22 +14,29 @@
 #include "version.h"
 #include <stdio.h>
 
+#define PRINT(type) puts(ruby_##type)
+#define MKSTR(type) rb_obj_freeze(rb_str_new(ruby_##type, sizeof(ruby_##type)-1))
+
 const char ruby_version[] = RUBY_VERSION;
 const char ruby_release_date[] = RUBY_RELEASE_DATE;
 const char ruby_platform[] = RUBY_PLATFORM;
 const int ruby_patchlevel = RUBY_PATCHLEVEL;
+const char ruby_description[] = RUBY_DESCRIPTION;
+const char ruby_copyright[] = RUBY_COPYRIGHT;
 
 void
 Init_version()
 {
-    VALUE v = rb_obj_freeze(rb_str_new2(ruby_version));
-    VALUE d = rb_obj_freeze(rb_str_new2(ruby_release_date));
-    VALUE p = rb_obj_freeze(rb_str_new2(ruby_platform));
+    VALUE v = MKSTR(version);
+    VALUE d = MKSTR(release_date);
+    VALUE p = MKSTR(platform);
 
     rb_define_global_const("RUBY_VERSION", v);
     rb_define_global_const("RUBY_RELEASE_DATE", d);
     rb_define_global_const("RUBY_PLATFORM", p);
     rb_define_global_const("RUBY_PATCHLEVEL", INT2FIX(RUBY_PATCHLEVEL));
+    rb_define_global_const("RUBY_DESCRIPTION", MKSTR(description));
+    rb_define_global_const("RUBY_COPYRIGHT", MKSTR(copyright));
 
     /* obsolete constants */
     rb_define_global_const("VERSION", v);
@@ -40,13 +47,13 @@
 void
 ruby_show_version()
 {
-    printf("ruby %s (%s patchlevel %d) [%s]\n", RUBY_VERSION, RUBY_RELEASE_DATE, RUBY_PATCHLEVEL, RUBY_PLATFORM);
+    PRINT(description);
     fflush(stdout);
 }
 
 void
 ruby_show_copyright()
 {
-    printf("ruby - Copyright (C) 1993-%d Yukihiro Matsumoto\n", RUBY_RELEASE_YEAR);
+    PRINT(copyright);
     exit(0);
 }
Index: version.h
===================================================================
--- version.h	(revision 16676)
+++ version.h	(working copy)
@@ -1,7 +1,7 @@
 #define RUBY_VERSION "1.8.7"
-#define RUBY_RELEASE_DATE "2008-05-28"
+#define RUBY_RELEASE_DATE "2008-05-29"
 #define RUBY_VERSION_CODE 187
-#define RUBY_RELEASE_CODE 20080528
+#define RUBY_RELEASE_CODE 20080529
 #define RUBY_PATCHLEVEL 5000
 
 #define RUBY_VERSION_MAJOR 1
@@ -9,11 +9,33 @@
 #define RUBY_VERSION_TEENY 7
 #define RUBY_RELEASE_YEAR 2008
 #define RUBY_RELEASE_MONTH 5
-#define RUBY_RELEASE_DAY 28
+#define RUBY_RELEASE_DAY 29
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];
 RUBY_EXTERN const char ruby_release_date[];
 RUBY_EXTERN const char ruby_platform[];
 RUBY_EXTERN const int ruby_patchlevel;
+RUBY_EXTERN const char ruby_description[];
+RUBY_EXTERN const char ruby_copyright[];
 #endif
+
+#define RUBY_AUTHOR "Yukihiro Matsumoto"
+#define RUBY_BIRTH_YEAR 1993
+#define RUBY_BIRTH_MONTH 2
+#define RUBY_BIRTH_DAY 24
+
+#define RUBY_RELEASE_STR "patchlevel"
+#define RUBY_RELEASE_NUM RUBY_PATCHLEVEL
+
+# define RUBY_DESCRIPTION	    \
+    "ruby "RUBY_VERSION		    \
+    " ("RUBY_RELEASE_DATE" "	    \
+    RUBY_RELEASE_STR" "		    \
+    STRINGIZE(RUBY_RELEASE_NUM)") " \
+    "["RUBY_PLATFORM"]"
+# define RUBY_COPYRIGHT		    \
+    "ruby - Copyright (C) "	    \
+    STRINGIZE(RUBY_BIRTH_YEAR)"-"   \
+    STRINGIZE(RUBY_RELEASE_YEAR)" " \
+    RUBY_AUTHOR
Index: defines.h
===================================================================
--- defines.h	(revision 16676)
+++ defines.h	(working copy)
@@ -51,6 +51,11 @@
 void *xrealloc _((void*,long));
 void xfree _((void*));
 
+#define STRINGIZE(expr) STRINGIZE0(expr)
+#ifndef STRINGIZE0
+#define STRINGIZE0(expr) #expr
+#endif
+
 #if SIZEOF_LONG_LONG > 0
 # define LONG_LONG long long
 #elif SIZEOF___INT64 > 0


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)

In This Thread

Prev Next