e$B@>;3OB9-$G$9!#e(B
http://rubyforge.org/tracker/index.php?func=detail&aid=19002&group_id=426&atid=22040
e$B$N%Q%C%A$G$9!#e(B
r14469e$B$r85$K$7$F$$$^$9!#e(B
error.ce$B$NJQ99$Ge(B[ruby-dev:34826]e$B$bD>$j$^$9!#e(B
e$B%P%C%/%]!<%H$N%Q%C%A$r:n@.$7$F$$$F5$$K$J$C$?$N$G$9$,!“e(B
trunke$B$NJ}$Ge(Bconst int ruby_patchlevele$B$O$”$k$N$Ke(B
const int ruby_revisione$B$,$J$$$N$O$$$$$N$G$7$g$&$+e(B?
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 M.\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 M.”
+#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