[前][次][番号順一覧][スレッド一覧]

ruby-changes:17463

From: nobu <ko1@a...>
Date: Wed, 13 Oct 2010 00:05:18 +0900 (JST)
Subject: [ruby-changes:17463] Ruby:r29468 (trunk): * configure.in (RUBY_CHECK_PRINTF_PREFIX): check for printf format

nobu	2010-10-13 00:03:51 +0900 (Wed, 13 Oct 2010)

  New Revision: 29468

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29468

  Log:
    * configure.in (RUBY_CHECK_PRINTF_PREFIX): check for printf format
      specifier if possible.

  Modified files:
    trunk/ChangeLog
    trunk/class.c
    trunk/configure.in
    trunk/ext/dl/cfunc.c
    trunk/include/ruby/ruby.h
    trunk/marshal.c
    trunk/thread.c
    trunk/thread_win32.c
    trunk/version.h
    trunk/vm_dump.c
    trunk/vm_exec.h

Index: thread_win32.c
===================================================================
--- thread_win32.c	(revision 29467)
+++ thread_win32.c	(revision 29468)
@@ -497,7 +497,7 @@
 
     if (THREAD_DEBUG) {
 	Sleep(0);
-	thread_debug("create: (th: %p, thid: %p, intr: %p), stack size: %d\n",
+	thread_debug("create: (th: %p, thid: %p, intr: %p), stack size: %"PRIdSIZE"\n",
 		     th, th->thread_id,
 		     th->native_thread_data.interrupt_event, stack_size);
     }
Index: include/ruby/ruby.h
===================================================================
--- include/ruby/ruby.h	(revision 29467)
+++ include/ruby/ruby.h	(revision 29468)
@@ -83,7 +83,7 @@
 #  endif
 #endif
 
-#if defined HAVE_UINTPTR_T && 0
+#if defined HAVE_UINTPTR_T
 typedef uintptr_t VALUE;
 typedef uintptr_t ID;
 # define SIGNED_VALUE intptr_t
@@ -142,7 +142,8 @@
 # endif
 #endif
 
-#if defined PRIdPTR
+#if defined PRI_PTRDIFF_PREFIX
+#elif defined PRIdPTR
 # define PRI_PTRDIFF_PREFIX "t"
 #elif SIZEOF_PTRDIFF_T == SIZEOF_INT
 # define PRI_PTRDIFF_PREFIX
@@ -158,7 +159,8 @@
 #define PRIxPTRDIFF PRI_PTRDIFF_PREFIX"x"
 #define PRIXPTRDIFF PRI_PTRDIFF_PREFIX"X"
 
-#if defined PRIdPTR
+#if defined PRI_SIZE_PREFIX
+#elif defined PRIdPTR
 # define PRI_SIZE_PREFIX "z"
 #elif SIZEOF_SIZE_T == SIZEOF_INT
 # define PRI_SIZE_PREFIX
Index: configure.in
===================================================================
--- configure.in	(revision 29467)
+++ configure.in	(revision 29468)
@@ -1063,9 +1063,23 @@
   #include <stdio.h>
 ])
 
+AC_DEFUN([RUBY_CHECK_PRINTF_PREFIX], [
+AC_CACHE_CHECK([printf prefix for $1], rb_cv_pri_prefix_[$1],
+  RUBY_WERROR_FLAG(AC_TRY_COMPILE(
+    [@%:@include <stdio.h>],
+    [printf("%]$2[d", sizeof(long));],
+    [rb_cv_pri_prefix_[$1]=[$2]],
+    [rb_cv_pri_prefix_[$1]=[NONE]])))
+if test "$rb_cv_pri_prefix_[$1]" != NONE; then
+    AC_DEFINE_UNQUOTED([PRI_]AS_TR_CPP(m4_bpatsubst([$1],[_t$]))[_PREFIX], "$rb_cv_pri_prefix_[$1]")
+fi
+])
+
 AC_TYPE_SIZE_T
 RUBY_CHECK_SIZEOF(size_t, [int long void*], [], [@%:@include <sys/types.h>])
 RUBY_CHECK_SIZEOF(ptrdiff_t, size_t, [], [@%:@include <stddef.h>])
+RUBY_CHECK_PRINTF_PREFIX(size_t, z)
+RUBY_CHECK_PRINTF_PREFIX(ptrdiff_t, t)
 AC_STRUCT_ST_BLKSIZE
 AC_STRUCT_ST_BLOCKS
 AC_STRUCT_ST_RDEV
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 29467)
+++ ChangeLog	(revision 29468)
@@ -1,3 +1,8 @@
+Wed Oct 13 00:03:46 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* configure.in (RUBY_CHECK_PRINTF_PREFIX): check for printf format
+	  specifier if possible.
+
 Tue Oct 12 23:58:19 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* win32/win32.c (rb_w32_open_osfhandle, rb_w32_wopen, rb_w32_pipe):
Index: thread.c
===================================================================
--- thread.c	(revision 29467)
+++ thread.c	(revision 29468)
@@ -1274,7 +1274,7 @@
 	if (th->thrown_errinfo) {
 	    VALUE err = th->thrown_errinfo;
 	    th->thrown_errinfo = 0;
-	    thread_debug("rb_thread_execute_interrupts: %ld\n", err);
+	    thread_debug("rb_thread_execute_interrupts: %"PRIdVALUE"\n", err);
 
 	    if (err == eKillSignal || err == eTerminateSignal) {
 		th->errinfo = INT2FIX(TAG_FATAL);
Index: class.c
===================================================================
--- class.c	(revision 29467)
+++ class.c	(revision 29468)
@@ -1223,7 +1223,7 @@
 	SPECIAL_SINGLETON(Qnil, rb_cNilClass);
 	SPECIAL_SINGLETON(Qfalse, rb_cFalseClass);
 	SPECIAL_SINGLETON(Qtrue, rb_cTrueClass);
-	rb_bug("unknown immediate %ld", obj);
+	rb_bug("unknown immediate %p", (void *)obj);
     }
 
     if (FL_TEST(RBASIC(obj)->klass, FL_SINGLETON) &&
Index: ext/dl/cfunc.c
===================================================================
--- ext/dl/cfunc.c	(revision 29467)
+++ ext/dl/cfunc.c	(revision 29468)
@@ -566,13 +566,15 @@
     }
 #endif
     else{
-	rb_raise(rb_eDLError,
-#ifndef LONG_LONG_VALUE
-		 "unsupported call type: %lx",
-#else
-		 "unsupported call type: %llx",
-#endif
-		 cfunc->calltype);
+	const char *name = rb_id2name(cfunc->calltype);
+	if( name ){
+	    rb_raise(rb_eDLError, "unsupported call type: %s",
+		     name);
+	}
+	else{
+	    rb_raise(rb_eDLError, "unsupported call type: %"PRIxVALUE,
+		     cfunc->calltype);
+	}
     }
 
     rb_dl_set_last_error(self, INT2NUM(errno));
Index: vm_exec.h
===================================================================
--- vm_exec.h	(revision 29467)
+++ vm_exec.h	(revision 29468)
@@ -136,7 +136,7 @@
   {
 
 #define END_INSNS_DISPATCH()    \
-      rb_bug("unknown insn: %ld", GET_CURRENT_INSN());   \
+      rb_bug("unknown insn: %"PRIdVALUE, GET_CURRENT_INSN());   \
   }   /* end of while loop */   \
 
 #define NEXT_INSN() TC_DISPATCH(__NEXT_INSN__)
Index: version.h
===================================================================
--- version.h	(revision 29467)
+++ version.h	(revision 29468)
@@ -1,11 +1,11 @@
 #define RUBY_VERSION "1.9.3"
-#define RUBY_RELEASE_DATE "2010-10-12"
+#define RUBY_RELEASE_DATE "2010-10-13"
 #define RUBY_PATCHLEVEL -1
 #define RUBY_BRANCH_NAME "trunk"
 
 #define RUBY_RELEASE_YEAR 2010
 #define RUBY_RELEASE_MONTH 10
-#define RUBY_RELEASE_DAY 12
+#define RUBY_RELEASE_DAY 13
 
 #include "ruby/version.h"
 
Index: vm_dump.c
===================================================================
--- vm_dump.c	(revision 29467)
+++ vm_dump.c	(revision 29468)
@@ -194,7 +194,7 @@
     while (env) {
 	fprintf(stderr, "--\n");
 	for (i = 0; i < env->env_size; i++) {
-	    fprintf(stderr, "%04d: %08lx (%p)", -env->local_size + i, env->env[i],
+	    fprintf(stderr, "%04d: %08"PRIxVALUE" (%p)", -env->local_size + i, env->env[i],
 		   (void *)&env->env[i]);
 	    if (&env->env[i] == lfp)
 		fprintf(stderr, " <- lfp");
Index: marshal.c
===================================================================
--- marshal.c	(revision 29467)
+++ marshal.c	(revision 29468)
@@ -419,7 +419,7 @@
     else {
 	sym = rb_id2str(id);
 	if (!sym) {
-	    rb_raise(rb_eTypeError, "can't dump anonymous ID %ld", id);
+	    rb_raise(rb_eTypeError, "can't dump anonymous ID %"PRIdVALUE, id);
 	}
 	encidx = rb_enc_get_index(sym);
 	if (encidx == rb_usascii_encindex() ||

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]