[ruby-dev:11850] Re: Where'd all the Ruby's history gone? & [PATCH] inline for non-gcc
From:
"Nobuyoshi.Nakada" <nobu.nakada@...>
Date:
2000-12-26 04:10:39 UTC
List:
ruby-dev #11850
なかだです。
At Tue, 26 Dec 2000 00:43:08 +0900
"Akinori MUSHA" <knu@iDaemons.org> wrote:
> さっき気付いたんですが、 Ruby のレポジトリから過去分がごっそり
> 消えてますね。。一体何が起こったんでしょうか?
ゆうべアクセスできてないようだと思ったら、「cvsも用意」したというのは
そういうことですか。
1.7.0 開始を記念して(笑)、gcc 以外でも inline を試すようにするパッチで
す。それと win32/Makefile.sub の RUBY_SO_NAME も ruby16 のままです。
diff -pruPX ./.excludes current/configure.in devel/configure.in
--- current/configure.in Tue Dec 26 12:24:27 2000
+++ devel/configure.in Tue Dec 26 12:24:27 2000
@@ -163,6 +163,33 @@ if test "$rb_cv_have_attr_noreturn" = ye
AC_DEFINE(HAVE_ATTR_NORETURN)
fi
+AC_MSG_CHECKING(for inline)
+AC_CACHE_VAL(rb_cv_inline,
+[AC_TRY_COMPILE([
+extern __inline__ int foo() {return 0;}
+static __inline__ char* bar() {return "";}
+], [], rb_cv_inline="__inline__", )
+if test "$rb_cv_inline" = ""; then
+ AC_TRY_COMPILE([
+extern __inline int foo() {return 0;}
+static __inline char bar() {return "";}
+], [], rb_cv_inline="__inline", )
+fi
+if test "$rb_cv_inline" = ""; then
+ AC_TRY_COMPILE([
+extern inline int foo() {return 0;}
+static inline char bar() {return "";}
+], [], rb_cv_inline="inline", )
+fi])
+if test "$rb_cv_inline" = ""; then
+ AC_MSG_RESULT([not work])
+ AC_DEFINE(INLINE, /*inline*/)
+else
+ AC_MSG_RESULT($rb_cv_inline)
+ AC_DEFINE(HAVE_INLINE)
+ AC_DEFINE_UNQUOTED(INLINE, $rb_cv_inline)
+fi
+
dnl Checks for libraries.
case "$target_os" in
nextstep*) ;;
diff -pruPX ./.excludes current/dln.h devel/dln.h
--- current/dln.h Tue Dec 26 12:24:27 2000
+++ devel/dln.h Tue Dec 26 12:24:27 2000
@@ -13,13 +13,11 @@
#ifndef DLN_H
#define DLN_H
-#ifndef _
-#ifndef __STDC__
-# define _(args) ()
-# define const
-#else
+#undef _
+#ifdef HAVE_PROTOTYPES
# define _(args) args
-#endif
+#else
+# define _(args) ()
#endif
char *dln_find_exe _((const char*,const char*));
diff -pruPX ./.excludes current/gc.c devel/gc.c
--- current/gc.c Tue Dec 26 12:24:27 2000
+++ devel/gc.c Tue Dec 26 12:24:27 2000
@@ -308,10 +308,7 @@ rb_data_object_alloc(klass, datap, dmark
extern st_table *rb_class_tbl;
VALUE *rb_gc_stack_start = 0;
-#if defined(__GNUC__) && __GNUC__ >= 2
-__inline__
-#endif
-static int
+static INLINE int
is_pointer_to_heap(ptr)
void *ptr;
{
diff -pruPX ./.excludes current/marshal.c devel/marshal.c
--- current/marshal.c Tue Dec 26 12:24:27 2000
+++ devel/marshal.c Tue Dec 26 12:24:27 2000
@@ -14,7 +14,7 @@
#include "rubyio.h"
#include "st.h"
-#ifndef atof
+#if !defined(atof) && !defined(HAVE_STDLIB_H)
double strtod();
#endif
diff -pruPX ./.excludes current/pack.c devel/pack.c
--- current/pack.c Tue Dec 26 12:24:28 2000
+++ devel/pack.c Tue Dec 26 12:24:28 2000
@@ -1026,11 +1026,7 @@ qpencode(str, from, len)
}
}
-#if defined(__GNUC__) && __GNUC__ >= 2 && !defined(RUBY_NO_INLINE)
-static __inline__ int
-#else
-static int
-#endif
+static INLINE int
hex2num(c)
char c;
{
diff -pruPX ./.excludes current/parse.y devel/parse.y
--- current/parse.y Tue Dec 26 12:24:28 2000
+++ devel/parse.y Tue Dec 26 12:24:28 2000
@@ -2043,10 +2043,7 @@ rb_compile_file(f, file, start)
return yycompile(strdup(f), start);
}
-#if defined(__GNUC__) && __GNUC__ >= 2
-__inline__
-#endif
-static int
+static INLINE int
nextc()
{
int c;
@@ -2794,7 +2791,7 @@ arg_ambiguous()
rb_warning("ambiguous first argument; make sure");
}
-#ifndef strtod
+#if !defined(strtod) && !defined(HAVE_STDLIB_H)
double strtod ();
#endif
diff -pruPX ./.excludes current/process.c devel/process.c
--- current/process.c Tue Dec 26 12:24:28 2000
+++ devel/process.c Tue Dec 26 12:24:28 2000
@@ -234,7 +234,9 @@ proc_waitpid2(argc, argv)
return rb_assoc_new(pid, rb_last_status);
}
+#ifndef HAVE_STRING_H
char *strtok();
+#endif
#ifdef HAVE_SETITIMER
#define before_exec() rb_thread_stop_timer()
diff -pruPX ./.excludes current/ruby.h devel/ruby.h
--- current/ruby.h Tue Dec 26 12:38:47 2000
+++ devel/ruby.h Tue Dec 26 12:38:47 2000
@@ -541,12 +541,15 @@ EXTERN VALUE rb_eScriptError;
EXTERN VALUE rb_eSyntaxError;
EXTERN VALUE rb_eLoadError;
-#if defined(__GNUC__) && __GNUC__ >= 2 && !defined(RUBY_NO_INLINE)
-extern __inline__ VALUE rb_class_of _((VALUE));
-extern __inline__ int rb_type _((VALUE));
-extern __inline__ int rb_special_const_p _((VALUE));
-
-extern __inline__ VALUE
+extern INLINE VALUE rb_class_of _((VALUE));
+extern INLINE int rb_type _((VALUE));
+extern INLINE int rb_special_const_p _((VALUE));
+
+#if defined(HAVE_INLINE) || defined(RUBY_NO_INLINE)
+#ifndef RUBY_NO_INLINE
+extern
+#endif
+INLINE VALUE
rb_class_of(VALUE obj)
{
if (FIXNUM_P(obj)) return rb_cFixnum;
@@ -558,7 +561,10 @@ rb_class_of(VALUE obj)
return RBASIC(obj)->klass;
}
-extern __inline__ int
+#ifndef RUBY_NO_INLINE
+extern
+#endif
+INLINE int
rb_type(VALUE obj)
{
if (FIXNUM_P(obj)) return T_FIXNUM;
@@ -570,17 +576,15 @@ rb_type(VALUE obj)
return BUILTIN_TYPE(obj);
}
-extern __inline__ int
+#ifndef RUBY_NO_INLINE
+extern
+#endif
+INLINE int
rb_special_const_p(VALUE obj)
{
if (SPECIAL_CONST_P(obj)) return Qtrue;
return Qfalse;
}
-
-#else
-VALUE rb_class_of _((VALUE));
-int rb_type _((VALUE));
-int rb_special_const_p _((VALUE));
#endif
#include "intern.h"
diff -pruPX ./.excludes current/sprintf.c devel/sprintf.c
--- current/sprintf.c Tue Dec 26 12:24:28 2000
+++ devel/sprintf.c Tue Dec 26 12:24:28 2000
@@ -18,7 +18,7 @@
#define BIT_DIGITS(N) (((N)*146)/485 + 1) /* log2(10) =~ 146/485 */
-#ifndef atof
+#if !defined(atof) && !defined(HAVE_STDLIB_H)
double strtod();
#endif
diff -pruPX ./.excludes current/util.c devel/util.c
--- current/util.c Tue Dec 26 12:38:47 2000
+++ devel/util.c Tue Dec 26 12:38:47 2000
@@ -19,42 +19,6 @@
#define RUBY_NO_INLINE
#include "ruby.h"
-VALUE
-rb_class_of(obj)
- VALUE obj;
-{
- if (FIXNUM_P(obj)) return rb_cFixnum;
- if (obj == Qnil) return rb_cNilClass;
- if (obj == Qfalse) return rb_cFalseClass;
- if (obj == Qtrue) return rb_cTrueClass;
- if (SYMBOL_P(obj)) return rb_cSymbol;
-
- return RBASIC(obj)->klass;
-}
-
-int
-rb_type(obj)
- VALUE obj;
-{
- if (FIXNUM_P(obj)) return T_FIXNUM;
- if (obj == Qnil) return T_NIL;
- if (obj == Qfalse) return T_FALSE;
- if (obj == Qtrue) return T_TRUE;
- if (obj == Qundef) return T_UNDEF;
- if (SYMBOL_P(obj)) return T_SYMBOL;
-
- return BUILTIN_TYPE(obj);
-}
-
-int
-rb_special_const_p(obj)
- VALUE obj;
-{
- if (SPECIAL_CONST_P(obj)) return Qtrue;
-
- return Qfalse;
-}
-
#include "util.h"
#ifndef HAVE_STRING_H
char *strchr _((char*,char));
diff -pruPX ./.excludes current/win32/config.h.in devel/win32/config.h.in
--- current/win32/config.h.in Tue Dec 26 12:24:28 2000
+++ devel/win32/config.h.in Tue Dec 26 13:05:46 2000
@@ -1,6 +1,8 @@
#define HAVE_PROTOTYPES 1
#define HAVE_STDARG_PROTOTYPES 1
/* #define HAVE_ATTR_NORETURN 1 */
+#define HAVE_INLINE 1
+#define INLINE __inline
/* #define HAVE_DIRENT_H 1 */
/* #define HAVE_UNISTD_H 1 */
#define HAVE_STDLIB_H 1
diff -pruPX ./.excludes current/win32/config.status.in devel/win32/config.status.in
--- current/win32/config.status.in Tue Dec 26 12:24:28 2000
+++ devel/win32/config.status.in Tue Dec 26 13:04:42 2000
@@ -4,7 +4,7 @@
s%@CXXFLAGS@%%g
s%@FFLAGS@%%g
s%@DEFS@%
- -DUSE_THREAD -DSIZEOF_INT=4 -DSIZEOF_SHORT=2 -DSIZEOF_LONG=4 -DSIZEOF_VOIDP=4 -DSIZEOF_FLOAT=4 -DSIZEOF_DOUBLE=8 -DHAVE_PROTOTYPES=1 -DHAVE_STDARG_PROTOTYPES=1 -DHAVE_STDLIB_H=1 -DHAVE_LIMITS_H=1 -DHAVE_FCNTL_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ST_RDEV=1 -DGETGROUPS_T=int -DRETSIGTYPE=void -DHAVE_ALLOCA=1 -DHAVE_FMOD=1 -DHAVE_WAITPID=1 -DHAVE_GETCWD=1 -DHAVE_CHSIZE=1 -DHAVE_GETGROUPS=1 -DHAVE_GETLOGIN=1 -DRSHIFT=\(x,y\)\ \(\(x\)\>\>y\) -DFILE_COUNT=_cnt -DDLEXT=\".so\" -DDLEXT2=\".dll\" -DRUBY_PLATFORM=\"i586-mswin32\" %g
+ -DUSE_THREAD -DSIZEOF_INT=4 -DSIZEOF_SHORT=2 -DSIZEOF_LONG=4 -DSIZEOF_VOIDP=4 -DSIZEOF_FLOAT=4 -DSIZEOF_DOUBLE=8 -DHAVE_PROTOTYPES=1 -DHAVE_STDARG_PROTOTYPES=1 -DHAVE_INLINE=1 -DINLINE=__inline -DHAVE_STDLIB_H=1 -DHAVE_LIMITS_H=1 -DHAVE_FCNTL_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ST_RDEV=1 -DGETGROUPS_T=int -DRETSIGTYPE=void -DHAVE_ALLOCA=1 -DHAVE_FMOD=1 -DHAVE_WAITPID=1 -DHAVE_GETCWD=1 -DHAVE_CHSIZE=1 -DHAVE_GETGROUPS=1 -DHAVE_GETLOGIN=1 -DRSHIFT=\(x,y\)\ \(\(x\)\>\>y\) -DFILE_COUNT=_cnt -DDLEXT=\".so\" -DDLEXT2=\".dll\" -DRUBY_PLATFORM=\"i586-mswin32\" %g
s%@LDFLAGS@%-nologo%g
s%@LIBS@%user32.lib advapi32.lib wsock32.lib%g
s%@exec_prefix@%${prefix}%g
diff -pruPX ./.excludes current/win32/setup.mak devel/win32/setup.mak
--- current/win32/setup.mak Tue Dec 26 12:24:29 2000
+++ devel/win32/setup.mak Tue Dec 26 13:09:46 2000
@@ -18,7 +18,7 @@
@echo ### makefile for ruby $(OS) ###> $@
@echo srcdir = $(srcdir:\=/)>> $@
@echo RUBY_INSTALL_NAME = ruby>> $@
- @echo RUBY_SO_NAME = $(OS)-$$(RUBY_INSTALL_NAME)16>> $@
+ @echo RUBY_SO_NAME = $(OS)-$$(RUBY_INSTALL_NAME)17>> $@
@echo !INCLUDE $$(srcdir)/win32/Makefile.sub>> $@
config.h config.status: $(srcdir)/win32/$$@.in
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦