From 7e018909862a3fe6c571bbb7143f4ffb18ae834c Mon Sep 17 00:00:00 2001 From: Peter Schneider-Kamp Date: Mon, 31 Jul 2000 15:28:04 +0000 Subject: merge Include/my*.h into Include/pyport.h marked my*.h as obsolete --- Include/Python.h | 3 - Include/mymalloc.h | 5 + Include/mymath.h | 5 + Include/myselect.h | 5 + Include/mytime.h | 5 + Include/objimpl.h | 2 +- Include/pgenheaders.h | 3 +- Include/pyport.h | 317 ++++++++++++++++++++++++++++++++++++++++++++++++ Modules/_tkinter.c | 7 -- Modules/audioop.c | 2 - Modules/cPickle.c | 1 - Modules/cmathmodule.c | 2 - Modules/mathmodule.c | 2 - Modules/posixmodule.c | 2 - Modules/pypcre.c | 1 - Modules/resource.c | 1 - Modules/rotormodule.c | 1 - Modules/selectmodule.c | 1 - Modules/socketmodule.c | 1 - Modules/structmodule.c | 1 - Modules/timemodule.c | 10 -- Objects/complexobject.c | 1 - Objects/floatobject.c | 1 - Objects/longobject.c | 1 - Objects/object.c | 2 - Objects/stringobject.c | 1 - Objects/unicodeobject.c | 1 - Parser/intrcheck.c | 1 - Python/bltinmodule.c | 2 - Python/fmod.c | 2 +- Python/hypot.c | 3 +- 31 files changed, 341 insertions(+), 51 deletions(-) diff --git a/Include/Python.h b/Include/Python.h index 8ba466f..f89f3e7 100644 --- a/Include/Python.h +++ b/Include/Python.h @@ -54,8 +54,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "pyport.h" -#include "myproto.h" - #include "object.h" #include "objimpl.h" @@ -85,7 +83,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "codecs.h" #include "pyerrors.h" -#include "mymalloc.h" #include "pystate.h" diff --git a/Include/mymalloc.h b/Include/mymalloc.h index 5bbd1e5..2af58e4 100644 --- a/Include/mymalloc.h +++ b/Include/mymalloc.h @@ -10,6 +10,11 @@ See the file "Misc/COPYRIGHT" for information on usage and redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. ******************************************************************/ +/*************************************** +THIS FILE IS OBSOLETE +USE "pyport.h" INSTEAD +***************************************/ + /* Lowest-level memory allocation interface */ #define ANY void /* For API compatibility only. Obsolete, do not use. */ diff --git a/Include/mymath.h b/Include/mymath.h index cba65e8..1bfd6dd 100644 --- a/Include/mymath.h +++ b/Include/mymath.h @@ -1,3 +1,8 @@ +/*************************************** +THIS FILE IS OBSOLETE +USE "pyport.h" INSTEAD +***************************************/ + /* On the 68K Mac, when using CFM (Code Fragment Manager), requires special treatment -- we need to surround it with #pragma lib_export off / on... diff --git a/Include/myselect.h b/Include/myselect.h index 6696251..53e924d 100644 --- a/Include/myselect.h +++ b/Include/myselect.h @@ -14,6 +14,11 @@ See the file "Misc/COPYRIGHT" for information on usage and redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. ******************************************************************/ +/*************************************** +THIS FILE IS OBSOLETE +USE "pyport.h" INSTEAD +***************************************/ + /* Include file for users of select() */ /* NB caller must include */ diff --git a/Include/mytime.h b/Include/mytime.h index 40670d9..bfad575 100644 --- a/Include/mytime.h +++ b/Include/mytime.h @@ -14,6 +14,11 @@ See the file "Misc/COPYRIGHT" for information on usage and redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. ******************************************************************/ +/*************************************** +THIS FILE IS OBSOLETE +USE "pyport.h" INSTEAD +***************************************/ + /* Include file instead of and/or */ #ifdef TIME_WITH_SYS_TIME diff --git a/Include/objimpl.h b/Include/objimpl.h index dfdbca0..3c0c7fc 100644 --- a/Include/objimpl.h +++ b/Include/objimpl.h @@ -14,7 +14,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. extern "C" { #endif -#include "mymalloc.h" +#include "pyport.h" /* Functions and macros for modules that implement new object types. diff --git a/Include/pgenheaders.h b/Include/pgenheaders.h index 9d7e8ac..15e9861 100644 --- a/Include/pgenheaders.h +++ b/Include/pgenheaders.h @@ -30,8 +30,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include #endif -#include "myproto.h" -#include "mymalloc.h" +#include "pyport.h" #include "pydebug.h" diff --git a/Include/pyport.h b/Include/pyport.h index b9a699b..6026a2b 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -29,7 +29,15 @@ Used in: Py_SAFE_DOWNCAST **************************************************************************/ +#define ANY void /* For API compatibility only. Obsolete, do not use. */ + +#ifdef HAVE_STDLIB_H +#include +#endif + #ifdef __cplusplus +/* Move this down here since some C++ #include's don't like to be included + inside an extern "C" */ extern "C" { #endif @@ -136,6 +144,315 @@ extern int fsync(int fd); #endif /* 0 */ + +/************************ + * WRAPPER FOR * + ************************/ + +/* On the 68K Mac, when using CFM (Code Fragment Manager), + requires special treatment -- we need to surround it with + #pragma lib_export off / on... + This is because MathLib.o is a static library, and exporting its + symbols doesn't quite work... + XXX Not sure now... Seems to be something else going on as well... */ + +#ifndef HAVE_HYPOT +extern double hypot(double, double); +#ifdef MWERKS_BEFORE_PRO4 +#define hypot we_dont_want_faulty_hypot_decl +#endif +#endif + +#include + +#ifndef HAVE_HYPOT +#ifdef __MWERKS__ +#undef hypot +#endif +#endif + +#if defined(USE_MSL) && defined(__MC68K__) +/* CodeWarrior MSL 2.1.1 has weird define overrides that don't work +** when you take the address of math functions. If I interpret the +** ANSI C standard correctly this is illegal, but I haven't been able +** to convince the MetroWerks folks of this... +*/ +#undef acos +#undef asin +#undef atan +#undef atan2 +#undef ceil +#undef cos +#undef cosh +#undef exp +#undef fabs +#undef floor +#undef fmod +#undef log +#undef log10 +#undef pow +#undef rint +#undef sin +#undef sinh +#undef sqrt +#undef tan +#undef tanh +#define acos acosd +#define asin asind +#define atan atand +#define atan2 atan2d +#define ceil ceild +#define cos cosd +#define cosh coshd +#define exp expd +#define fabs fabsd +#define floor floord +#define fmod fmodd +#define log logd +#define log10 log10d +#define pow powd +#define rint rintd +#define sin sind +#define sinh sinhd +#define sqrt sqrtd +#define tan tand +#define tanh tanhd +#endif + + +/*********************************** + * WRAPPER FOR malloc/realloc/free * + ***********************************/ + +#ifndef DL_IMPORT /* declarations for DLL import */ +#define DL_IMPORT(RTYPE) RTYPE +#endif + +#ifndef NULL +#define NULL ((void *)0) +#endif + +#ifdef MALLOC_ZERO_RETURNS_NULL +/* XXX Always allocate one extra byte, since some malloc's return NULL + XXX for malloc(0) or realloc(p, 0). */ +#define _PyMem_EXTRA 1 +#else +#define _PyMem_EXTRA 0 +#endif + +/* + * Core memory allocator + * ===================== + */ + +/* To make sure the interpreter is user-malloc friendly, all memory + APIs are implemented on top of this one. + + The PyCore_* macros can be defined to make the interpreter use a + custom allocator. Note that they are for internal use only. Both + the core and extension modules should use the PyMem_* API. + + See the comment block at the end of this file for two scenarios + showing how to use this to use a different allocator. */ + +#ifndef PyCore_MALLOC_FUNC +#undef PyCore_REALLOC_FUNC +#undef PyCore_FREE_FUNC +#define PyCore_MALLOC_FUNC malloc +#define PyCore_REALLOC_FUNC realloc +#define PyCore_FREE_FUNC free +#endif + +#ifndef PyCore_MALLOC_PROTO +#undef PyCore_REALLOC_PROTO +#undef PyCore_FREE_PROTO +#define PyCore_MALLOC_PROTO (size_t) +#define PyCore_REALLOC_PROTO (void *, size_t) +#define PyCore_FREE_PROTO (void *) +#endif + +#ifdef NEED_TO_DECLARE_MALLOC_AND_FRIEND +extern void *PyCore_MALLOC_FUNC PyCore_MALLOC_PROTO; +extern void *PyCore_REALLOC_FUNC PyCore_REALLOC_PROTO; +extern void PyCore_FREE_FUNC PyCore_FREE_PROTO; +#endif + +#ifndef PyCore_MALLOC +#undef PyCore_REALLOC +#undef PyCore_FREE +#define PyCore_MALLOC(n) PyCore_MALLOC_FUNC(n) +#define PyCore_REALLOC(p, n) PyCore_REALLOC_FUNC((p), (n)) +#define PyCore_FREE(p) PyCore_FREE_FUNC(p) +#endif + +/* BEWARE: + + Each interface exports both functions and macros. Extension modules + should normally use the functions for ensuring binary compatibility + of the user's code across Python versions. Subsequently, if the + Python runtime switches to its own malloc (different from standard + malloc), no recompilation is required for the extensions. + + The macro versions trade compatibility for speed. They can be used + whenever there is a performance problem, but their use implies + recompilation of the code for each new Python release. The Python + core uses the macros because it *is* compiled on every upgrade. + This might not be the case with 3rd party extensions in a custom + setup (for example, a customer does not always have access to the + source of 3rd party deliverables). You have been warned! */ + +/* + * Raw memory interface + * ==================== + */ + +/* Functions */ + +/* Function wrappers around PyCore_MALLOC and friends; useful if you + need to be sure that you are using the same memory allocator as + Python. Note that the wrappers make sure that allocating 0 bytes + returns a non-NULL pointer, even if the underlying malloc + doesn't. Returned pointers must be checked for NULL explicitly. + No action is performed on failure. */ +extern DL_IMPORT(void *) PyMem_Malloc(size_t); +extern DL_IMPORT(void *) PyMem_Realloc(void *, size_t); +extern DL_IMPORT(void) PyMem_Free(void *); + +/* Starting from Python 1.6, the wrappers Py_{Malloc,Realloc,Free} are + no longer supported. They used to call PyErr_NoMemory() on failure. */ + +/* Macros */ +#define PyMem_MALLOC(n) PyCore_MALLOC(n) +#define PyMem_REALLOC(p, n) PyCore_REALLOC((void *)(p), (n)) +#define PyMem_FREE(p) PyCore_FREE((void *)(p)) + +/* + * Type-oriented memory interface + * ============================== + */ + +/* Functions */ +#define PyMem_New(type, n) \ + ( (type *) PyMem_Malloc((n) * sizeof(type)) ) +#define PyMem_Resize(p, type, n) \ + ( (p) = (type *) PyMem_Realloc((n) * sizeof(type)) ) +#define PyMem_Del(p) PyMem_Free(p) + +/* Macros */ +#define PyMem_NEW(type, n) \ + ( (type *) PyMem_MALLOC(_PyMem_EXTRA + (n) * sizeof(type)) ) +#define PyMem_RESIZE(p, type, n) \ + if ((p) == NULL) \ + (p) = (type *)(PyMem_MALLOC( \ + _PyMem_EXTRA + (n) * sizeof(type))); \ + else \ + (p) = (type *)(PyMem_REALLOC((p), \ + _PyMem_EXTRA + (n) * sizeof(type))) +#define PyMem_DEL(p) PyMem_FREE(p) + +/* PyMem_XDEL is deprecated. To avoid the call when p is NULL, + it is recommended to write the test explicitly in the code. + Note that according to ANSI C, free(NULL) has no effect. */ + +/* SCENARIOS + + Here are two scenarios by Vladimir Marangozov (the author of the + memory allocation redesign). + + 1) Scenario A + + Suppose you want to use a debugging malloc library that collects info on + where the malloc calls originate from. Assume the interface is: + + d_malloc(size_t n, char* src_file, unsigned long src_line) c.s. + + In this case, you would define (for example in config.h) : + + #define PyCore_MALLOC_FUNC d_malloc + ... + #define PyCore_MALLOC_PROTO (size_t, char *, unsigned long) + ... + #define NEED_TO_DECLARE_MALLOC_AND_FRIEND + + #define PyCore_MALLOC(n) PyCore_MALLOC_FUNC((n), __FILE__, __LINE__) + ... + + 2) Scenario B + + Suppose you want to use malloc hooks (defined & initialized in a 3rd party + malloc library) instead of malloc functions. In this case, you would + define: + + #define PyCore_MALLOC_FUNC (*malloc_hook) + ... + #define NEED_TO_DECLARE_MALLOC_AND_FRIEND + + and ignore the previous definitions about PyCore_MALLOC_FUNC, etc. + + +*/ + +/******************************************** + * WRAPPER FOR and/or * + ********************************************/ + +#ifdef TIME_WITH_SYS_TIME +#include +#include +#else /* !TIME_WITH_SYS_TIME */ +#ifdef HAVE_SYS_TIME_H +#include +#else /* !HAVE_SYS_TIME_H */ +#include +#endif /* !HAVE_SYS_TIME_H */ +#endif /* !TIME_WITH_SYS_TIME */ + + +/****************************** + * WRAPPER FOR * + ******************************/ + +/* NB caller must include */ + +#ifdef HAVE_SYS_SELECT_H + +#include + +#else /* !HAVE_SYS_SELECT_H */ + +#ifdef USE_GUSI1 +/* If we don't have sys/select the definition may be in unistd.h */ +#include +#endif + +#endif /* !HAVE_SYS_SELECT_H */ + +/* If the fd manipulation macros aren't defined, + here is a set that should do the job */ + +#ifndef FD_SETSIZE +#define FD_SETSIZE 256 +#endif + +#ifndef FD_SET + +typedef long fd_mask; + +#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ +#ifndef howmany +#define howmany(x, y) (((x)+((y)-1))/(y)) +#endif /* howmany */ + +typedef struct fd_set { + fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; +} fd_set; + +#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) +#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) +#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) +#define FD_ZERO(p) memset((char *)(p), '\0', sizeof(*(p))) + +#endif /* FD_SET */ #ifdef __cplusplus } #endif diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index 1569529..9601f06 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -49,11 +49,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #ifdef macintosh #define MAC_TCL -#include "myselect.h" -#endif - -#ifdef PYOS_OS2 -#include "myselect.h" #endif #include @@ -255,8 +250,6 @@ Tkinter_Error(PyObject *v) #ifdef WITH_THREAD #ifndef MS_WINDOWS -#include "mytime.h" -#include "myselect.h" /* Millisecond sleep() for Unix platforms. */ diff --git a/Modules/audioop.c b/Modules/audioop.c index 08e8fd4..8d25189 100644 --- a/Modules/audioop.c +++ b/Modules/audioop.c @@ -31,8 +31,6 @@ typedef unsigned long Py_UInt32; #endif #endif -#include "mymath.h" - /* Code shamelessly stolen from sox, ** (c) Craig Reese, Joe Campbell and Jeff Poskanzer 1989 */ diff --git a/Modules/cPickle.c b/Modules/cPickle.c index a7b275d..5a136b9 100644 --- a/Modules/cPickle.c +++ b/Modules/cPickle.c @@ -54,7 +54,6 @@ static char cPickle_module_documentation[] = #include "Python.h" #include "cStringIO.h" -#include "mymath.h" #ifndef Py_eval_input #include diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c index 3c350bf..9781983 100644 --- a/Modules/cmathmodule.c +++ b/Modules/cmathmodule.c @@ -4,8 +4,6 @@ #include "Python.h" -#include "mymath.h" - #ifdef i860 /* Cray APP has bogus definition of HUGE_VAL in */ #undef HUGE_VAL diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index 2aa0071..f51b63a 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -12,8 +12,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "Python.h" -#include "mymath.h" - #ifndef _MSC_VER #ifndef __STDC__ extern double fmod (double, double); diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index fe63689..e346124 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -45,8 +45,6 @@ corresponding Unix manual entries for more information on calls."; #include #endif -#include "mytime.h" /* For clock_t on some systems */ - #ifdef HAVE_FCNTL_H #include #endif /* HAVE_FCNTL_H */ diff --git a/Modules/pypcre.c b/Modules/pypcre.c index 18b319b..11c7ce9 100644 --- a/Modules/pypcre.c +++ b/Modules/pypcre.c @@ -47,7 +47,6 @@ restrictions: #define FOR_PYTHON #include "pcre-int.h" #include "Python.h" -#include "mymalloc.h" #include #include "graminit.h" diff --git a/Modules/resource.c b/Modules/resource.c index 76fd731..cca6d82 100644 --- a/Modules/resource.c +++ b/Modules/resource.c @@ -9,7 +9,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. ******************************************************************/ #include "Python.h" -#include "mytime.h" /* needed for SunOS4.1 */ #include #include #include diff --git a/Modules/rotormodule.c b/Modules/rotormodule.c index 393e73a..9f58ff2 100644 --- a/Modules/rotormodule.c +++ b/Modules/rotormodule.c @@ -56,7 +56,6 @@ NOTE: you MUST use the SAME key in rotor.newrotor() /* Rotor objects */ #include "Python.h" -#include "mymath.h" #ifndef TRUE #define TRUE 1 diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 2860f37..37bc514 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -46,7 +46,6 @@ extern void bzero(void *, int); #include #define SOCKET int #else -#include "myselect.h" /* Also includes mytime.h */ #define SOCKET int #endif #endif diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index f146e8f..56378ac 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -126,7 +126,6 @@ Socket methods: #endif #include -#include "mytime.h" #include #ifndef MS_WINDOWS diff --git a/Modules/structmodule.c b/Modules/structmodule.c index 1275955..ff10b18 100644 --- a/Modules/structmodule.c +++ b/Modules/structmodule.c @@ -39,7 +39,6 @@ Whitespace between formats is ignored.\n\ The variable struct.error is an exception raised on errors."; #include "Python.h" -#include "mymath.h" #include #include diff --git a/Modules/timemodule.c b/Modules/timemodule.c index 4d2089c..db8e163 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -14,10 +14,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include -#ifdef HAVE_SELECT -#include "mymath.h" -#endif - #ifdef macintosh #include #include @@ -40,12 +36,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include #endif -#if defined(HAVE_SELECT) && !defined(__BEOS__) -#include "myselect.h" -#else -#include "mytime.h" -#endif - #ifdef HAVE_FTIME #include #if !defined(MS_WINDOWS) && !defined(PYOS_OS2) diff --git a/Objects/complexobject.c b/Objects/complexobject.c index eaccfab..e8916d5 100644 --- a/Objects/complexobject.c +++ b/Objects/complexobject.c @@ -17,7 +17,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #ifndef WITHOUT_COMPLEX #include "Python.h" -#include "mymath.h" #ifdef HAVE_LIMITS_H #include diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 7a444ad..4bed0dc 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -16,7 +16,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "Python.h" #include -#include "mymath.h" #ifdef i860 /* Cray APP has bogus definition of HUGE_VAL in */ diff --git a/Objects/longobject.c b/Objects/longobject.c index df3c6a5..37da244 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -14,7 +14,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "Python.h" #include "longintrepr.h" -#include "mymath.h" #include #include diff --git a/Objects/object.c b/Objects/object.c index 6fe05f1..72c3013 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -16,8 +16,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "macglue.h" #endif -#include "mymath.h" - /* just for trashcan: */ #include "compile.h" #include "frameobject.h" diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 80b9def..6d25ddb 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -12,7 +12,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "Python.h" -#include "mymath.h" #include #ifdef COUNT_ALLOCS diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 359a987..7a3eb22 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -64,7 +64,6 @@ Unicode Integration Proposal (see file Misc/unicode.txt). #include "Python.h" -#include "mymath.h" #include "unicodeobject.h" #include "ucnhash.h" diff --git a/Parser/intrcheck.c b/Parser/intrcheck.c index 1b81646..6ed0e55 100644 --- a/Parser/intrcheck.c +++ b/Parser/intrcheck.c @@ -17,7 +17,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #define DL_IMPORT(RTYPE) RTYPE #endif -#include "myproto.h" #include "intrcheck.h" /* Copied here from ceval.h -- can't include that file. */ diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index a44c976..fd587a0 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -16,8 +16,6 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "compile.h" #include "eval.h" -#include "mymath.h" - #include #ifdef HAVE_UNISTD_H diff --git a/Python/fmod.c b/Python/fmod.c index 07283bc..dcd1e62 100644 --- a/Python/fmod.c +++ b/Python/fmod.c @@ -12,7 +12,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. #include "config.h" -#include "mymath.h" +#include "pyport.h" #include double diff --git a/Python/hypot.c b/Python/hypot.c index b21deea..939dedd 100644 --- a/Python/hypot.c +++ b/Python/hypot.c @@ -1,8 +1,7 @@ /* hypot() replacement */ #include "config.h" -#include "myproto.h" -#include "mymath.h" +#include "pyport.h" double hypot(double x, double y) { -- cgit v0.12