[Python-checkins] r84379 - in python/branches/py3k: Include/pyport.h Misc/NEWS Modules/_sre.c configure configure.in pyconfig.h.in

daniel.stutzbach python-checkins at python.org
Tue Aug 31 21:51:08 CEST 2010


Author: daniel.stutzbach
Date: Tue Aug 31 21:51:07 2010
New Revision: 84379

Log:
Issue 5553: Improved Py_LOCAL_INLINE to actually inline under compilers other than MSC

Modified:
   python/branches/py3k/Include/pyport.h
   python/branches/py3k/Misc/NEWS
   python/branches/py3k/Modules/_sre.c
   python/branches/py3k/configure
   python/branches/py3k/configure.in
   python/branches/py3k/pyconfig.h.in

Modified: python/branches/py3k/Include/pyport.h
==============================================================================
--- python/branches/py3k/Include/pyport.h	(original)
+++ python/branches/py3k/Include/pyport.h	Tue Aug 31 21:51:07 2010
@@ -266,8 +266,6 @@
  * should keep using static.
  */
 
-#undef USE_INLINE /* XXX - set via configure? */
-
 #if defined(_MSC_VER)
 #if defined(PY_LOCAL_AGGRESSIVE)
 /* enable more aggressive optimization for visual studio */

Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Tue Aug 31 21:51:07 2010
@@ -12,6 +12,10 @@
 Core and Builtins
 -----------------
 
+- Issue #5553: The Py_LOCAL_INLINE macro now results in inlining on
+  most platforms.  Previously, it online inlined when using Microsoft
+  Visual C.
+
 - Issue #9712: Fix tokenize on identifiers that start with non-ascii names.
 
 - Issue #9688: __basicsize__ and __itemsize__ must be accessed as Py_ssize_t.

Modified: python/branches/py3k/Modules/_sre.c
==============================================================================
--- python/branches/py3k/Modules/_sre.c	(original)
+++ python/branches/py3k/Modules/_sre.c	Tue Aug 31 21:51:07 2010
@@ -67,9 +67,6 @@
 /* enables fast searching */
 #define USE_FAST_SEARCH
 
-/* enables aggressive inlining (always on for Visual C) */
-#undef USE_INLINE
-
 /* enables copy/deepcopy handling (work in progress) */
 #undef USE_BUILTIN_COPY
 

Modified: python/branches/py3k/configure
==============================================================================
--- python/branches/py3k/configure	(original)
+++ python/branches/py3k/configure	Tue Aug 31 21:51:07 2010
@@ -638,6 +638,7 @@
 ARFLAGS
 AR
 RANLIB
+USE_INLINE
 GNULD
 LINKCC
 RUNSHARED
@@ -4754,6 +4755,55 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNULD" >&5
 $as_echo "$GNULD" >&6; }
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if test "${ac_cv_c_inline+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+  inline | yes) ;;
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+    ;;
+esac
+
+if test "$ac_cv_c_inline" != no ; then
+        $as_echo "#define USE_INLINE 1" >>confdefs.h
+
+
+fi
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-shared" >&5
 $as_echo_n "checking for --enable-shared... " >&6; }
 # Check whether --enable-shared was given.

Modified: python/branches/py3k/configure.in
==============================================================================
--- python/branches/py3k/configure.in	(original)
+++ python/branches/py3k/configure.in	Tue Aug 31 21:51:07 2010
@@ -660,6 +660,13 @@
 esac
 AC_MSG_RESULT($GNULD)
 
+AC_C_INLINE
+if test "$ac_cv_c_inline" != no ; then
+        AC_DEFINE(USE_INLINE,1)
+        AC_SUBST(USE_INLINE)
+fi
+
+
 AC_MSG_CHECKING(for --enable-shared)
 AC_ARG_ENABLE(shared,
               AS_HELP_STRING([--enable-shared], [disable/enable building shared python library]))

Modified: python/branches/py3k/pyconfig.h.in
==============================================================================
--- python/branches/py3k/pyconfig.h.in	(original)
+++ python/branches/py3k/pyconfig.h.in	Tue Aug 31 21:51:07 2010
@@ -1043,6 +1043,9 @@
 /* Define to 0 if you don't want to use computed gotos in ceval.c. */
 #undef USE_COMPUTED_GOTOS
 
+/* Define if the compiler supports the inline keyword */
+#undef USE_INLINE
+
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE


More information about the Python-checkins mailing list