Update of /cvsroot/fink/dists/10.4/stable/main/finkinfo/libs/pythonmods In directory vz-cvs-3.sog:/tmp/cvs-serv14232/stable/main/finkinfo/libs/pythonmods
Added Files: guppy-py.info mlpy-py.info parallel-py.info psyco-py.info psyco-py.patch Log Message: sync some -pyXX to stable --- NEW FILE: psyco-py.patch --- diff -urN psyco-dist.old/c/codegen.c psyco-dist.new/c/codegen.c --- psyco-dist.old/c/codegen.c 2006-04-17 04:34:34.000000000 -0500 +++ psyco-dist.new/c/codegen.c 2007-11-15 16:36:01.000000000 -0600 @@ -308,7 +308,12 @@ #endif } } + #ifdef __APPLE__ + /* Adjust # of arguments for MacOS 16-byte stack alignment */ + result = psyco_call_var(c_function, (count+3)&~3, args); + #else result = psyco_call_var(c_function, count, args); + #endif if (PyErr_Occurred()) { if (has_refs) for (i = 0; i < count; i++) @@ -387,6 +392,7 @@ stackbase = po->stack_depth; po->stack_depth += totalstackspace; STACK_CORRECTION(totalstackspace); + CALL_STACK_ALIGN(count); for (i=count; i--; ) { switch (argtags[i]) { @@ -467,6 +473,7 @@ } } } + return NULL; } diff -urN psyco-dist.old/c/i386/iencoding.c psyco-dist.new/c/i386/iencoding.c --- psyco-dist.old/c/i386/iencoding.c 2006-02-15 08:04:12.000000000 -0600 +++ psyco-dist.new/c/i386/iencoding.c 2007-11-15 16:36:01.000000000 -0600 @@ -48,12 +48,17 @@ code_t* code = po->code; void* result; code_t* fixvalue; + #ifdef __APPLE__ + int aligndelta; + #endif if (restore) TEMP_SAVE_REGS_FN_CALLS; else SAVE_REGS_FN_CALLS(true); + CALL_STACK_ALIGN_DELTA(1+(extraarg != SOURCE_DUMMY), aligndelta); + /* first pushed argument */ if (extraarg != SOURCE_DUMMY) CALL_SET_ARG_FROM_RT(extraarg, 1, 2); /* argument index 1 out of total 2 */ @@ -79,6 +84,7 @@ 4*nb_args, /* 4*nb_args */ 0); /* not used */ code += 3; + CALL_STACK_ALIGN_RESTORE(aligndelta); TEMP_RESTORE_REGS_FN_CALLS_AND_JUMP; } else @@ -109,10 +115,25 @@ int i, initial_depth; Source* p; bool ccflags; + #ifdef __APPLE__ + int aligncount=0; + #endif BEGIN_CODE /* cannot use NEED_CC(): it might clobber one of the registers mentioned in argsources */ ccflags = HAS_CCREG(po); + #ifdef __APPLE__ + /* Calculate number of registers that will be pushed by + NEED_REGISTER */ + for (i=0; i<REG_TOTAL; i++) + { + vinfo_t* _content = REG_NUMBER(po, i); + if (_content != NULL) + if (RUNTIME_STACK(_content) == RUNTIME_STACK_NONE) + aligncount++; + } + #endif + CALL_STACK_ALIGN(1+(ccflags!=0)+aligncount); if (ccflags) PUSH_CC_FLAGS(); for (i=0; i<REG_TOTAL; i++) diff -urN psyco-dist.old/c/i386/iencoding.h psyco-dist.new/c/i386/iencoding.h --- psyco-dist.old/c/i386/iencoding.h 2006-02-13 18:21:38.000000000 -0600 +++ psyco-dist.new/c/i386/iencoding.h 2007-11-15 16:36:01.000000000 -0600 @@ -20,8 +20,13 @@ (a quite minor overhead). Set to 0 to disable. No effect on real optimizations. */ #ifndef COMPACT_ENCODING +#ifdef __APPLE__ +/* COMPACT_ENCODING not yet supported on MacOS X */ +# define COMPACT_ENCODING 0 +#else # define COMPACT_ENCODING 1 #endif +#endif /* Define to 0 to use EBP as any other register, or to 1 to reserve it */ #ifndef EBP_IS_RESERVED @@ -652,6 +657,31 @@ JUMP_TO((code_t*)(target)); \ } while (0) +#ifdef __APPLE__ +/* Stack alignment for MacOS X IA-32 ABI */ +#define CALL_STACK_ALIGN_DELTA(nbargs, delta) do { \ + int sp = po->stack_depth-INITIAL_STACK_DEPTH+(nbargs)*4; \ + delta = ((sp+15)&~15)-sp; \ + po->stack_depth += delta; \ + STACK_CORRECTION(delta); \ +} while (0) + +#define CALL_STACK_ALIGN(nbargs) do { \ + int delta; \ + CALL_STACK_ALIGN_DELTA(nbargs, delta); \ +} while (0) + +#define CALL_STACK_ALIGN_RESTORE(delta) do { \ + po->stack_depth -= delta; \ + STACK_CORRECTION(-delta); \ +} while (0) +#else +/* Dummy stack alignment for non-MacOS X */ +#define CALL_STACK_ALIGN_DELTA(nbargs, delta) +#define CALL_STACK_ALIGN(nbargs) +#define CALL_STACK_ALIGN_RESTORE(delta) +#endif + /* load the 'dst' register with the run-time address of 'source' which must be in the stack */ #define LOAD_ADDRESS_FROM_RT(source, dst) do { \ diff -urN psyco-dist.old/c/i386/iprocessor.c psyco-dist.new/c/i386/iprocessor.c --- psyco-dist.old/c/i386/iprocessor.c 2006-11-26 07:03:26.000000000 -0600 +++ psyco-dist.new/c/i386/iprocessor.c 2007-11-15 16:36:01.000000000 -0600 @@ -21,6 +21,10 @@ PUSH_REG_INSTR(REG_386_ESI), /* PUSH ESI */ PUSH_REG_INSTR(REG_386_EDI), /* PUSH EDI */ 0x8B, 0x5C, 0x24, 32, /* MOV EBX, [ESP+32] (finfo frame stack ptr) */ +#ifdef __APPLE__ + /* Align stack on 16-byte boundary for MacOS X */ + 0x83, 0xEC, 8, /* SUB ESP, 8 */ +#endif 0x6A, -1, /* PUSH -1 */ 0x89, 0x23, /* MOV [EBX], ESP */ 0xEB, +5, /* JMP Label2 */ @@ -31,6 +35,10 @@ 0x39, 0xCA, /* CMP EDX, ECX */ 0x75, -9, /* JNE Label1 */ 0xFF, 0xD0, /* CALL *EAX (callee removes args) */ +#ifdef __APPLE__ + /* Restore stack from 16-byte alignment on MacOS X */ + 0x83, 0xC4, 8, /* ADD ESP, 8 */ +#endif POP_REG_INSTR(REG_386_EDI), /* POP EDI */ POP_REG_INSTR(REG_386_ESI), /* POP ESI */ POP_REG_INSTR(REG_386_EBX), /* POP EBX */ @@ -67,9 +75,18 @@ 0x53, /* PUSH EBX */ 0x8B, 0x5C, 0x24, 12, /* MOV EBX, [ESP+12] (argcount) */ 0x8B, 0x44, 0x24, 8, /* MOV EAX, [ESP+8] (c_func) */ +#ifdef __APPLE__ + /* Align stack on 16-byte boundary for MacOS X */ + 0x83, 0xEC, 8, /* SUB ESP, 8 */ +#endif 0x09, 0xDB, /* OR EBX, EBX */ 0x74, +16, /* JZ Label1 */ +#ifdef __APPLE__ + /* Arguments are 8 bytes further up stack on MacOS X */ + 0x8B, 0x54, 0x24, 24, /* MOV EDX, [ESP+24] (arguments) */ +#else 0x8B, 0x54, 0x24, 16, /* MOV EDX, [ESP+16] (arguments) */ +#endif 0x8D, 0x0C, 0x9A, /* LEA ECX, [EDX+4*EBX] */ /* Label2: */ 0x83, 0xE9, 4, /* SUB ECX, 4 */ @@ -78,6 +95,10 @@ 0x75, -9, /* JNE Label2 */ /* Label1: */ 0xFF, 0xD0, /* CALL *EAX */ +#ifdef __APPLE__ + /* Restore stack from 16-byte alignment on MacOS X */ + 0x83, 0xC4, 8, /* ADD ESP, 8 */ +#endif 0x8D, 0x24, 0x9C, /* LEA ESP, [ESP+4*EBX] */ 0x5B, /* POP EBX */ 0xC3, /* RET */ diff -urN psyco-dist.old/c/ivm/iencoding.h psyco-dist.new/c/ivm/iencoding.h --- psyco-dist.old/c/ivm/iencoding.h 2006-02-13 18:21:38.000000000 -0600 +++ psyco-dist.new/c/ivm/iencoding.h 2007-11-15 16:36:01.000000000 -0600 @@ -248,6 +248,10 @@ else if (_stackcorr > 0) \ INSN_pushn(_stackcorr / sizeof(long)); \ } while (0) +/* Dummy stack alignment for non-MacOS X */ +#define CALL_STACK_ALIGN_DELTA(nbargs, delta) +#define CALL_STACK_ALIGN(nbargs) +#define CALL_STACK_ALIGN_RESTORE(delta) #define FUNCTION_RET(popbytes) do { \ INSN_ret((popbytes) / sizeof(long) + 1); /* +1 for the retaddr itself */ \ --- NEW FILE: mlpy-py.info --- Info2: << Package: mlpy-py%type_pkg[python] Version: 1.2.8 Revision: 2 Type: python (2.5 2.6) Source: http://mlpy.fbk.eu/download/src/MLPY-%v.tar.gz Source-MD5: e1f4f34458af2be812e7592a29542514 Depends: python%type_pkg[python], numpy-py%type_pkg[python] (>= 1.3.0-7) DocFiles: README PKG-INFO gpl-3.0.txt CHANGELOG Description: High performance package for Machine Learning License: GPL Homepage: https://mlpy.fbk.eu/ Maintainer: None <fink-de...@lists.sourceforge.net> DescPort: Initial port by Pepe Barbe <pepe.ba...@gmail.com> CompileScript: << python%type_raw[python] setup.py build << InstallScript: << #!/bin/sh -ev python%type_raw[python] setup.py install --prefix %p --root %d cd %d/%p/bin for FILENAME in *; do mv -v $FILENAME $FILENAME-py%type_pkg[python] done << PostInstScript: << for name in borda canberra canberraq dlda-landscape fda-landscape irelief-sigma nn-landscape pda-landscape srda-landscape svm-landscape; do update-alternatives --install %p/bin/$name $name %p/bin/$name-py%type_pkg[python] %type_pkg[python]; done; << PreRmScript: << if [ $1 != "upgrade" ]; then for name in borda canberra canberraq dlda-landscape fda-landscape irelief-sigma nn-landscape pda-landscape srda-landscape svm-landscape; do update-alternatives --remove $name %p/bin/$name-py%type_pkg[python]; done; fi << << --- NEW FILE: psyco-py.info --- Info2: << Package: psyco-py%type_pkg[python] Version: 1.5.2.1 Revision: 1 Type: python (2.4 2.5) Distribution: (%type_pkg[python] = 24) 10.4, (%type_pkg[python] = 24) 10.5 Architecture: i386 # "The only way to use Psyco on OS/X 10.6 is by recompiling a custom Python in 32-bit mode" (upstream homepage) Source: http://fink.antropoide.net/src/psyco-%v-src.tar.gz Source-MD5: fbec0512f69ead4b8e48262a4626d7ec PatchFile: psyco-py.patch PatchFile-MD5: c57521c85fa9d20498ac20b53fa7ea16 Depends: python%type_pkg[python] SourceDirectory: psyco-dist BuildDepends: fink (>= 0.24.12) CompileScript: << python%type_raw[python] setup.py build << InstallScript: << python%type_raw[python] setup.py install --prefix %p --root %d << DocFiles: README.txt COPYING.txt Description: Specializing compiler for Python DescDetail: << Think of Psyco as a kind of just-in-time (JIT) compiler, a little bit like what exists for other languages, that emit machine code on the fly instead of interpreting your Python program step by step. The difference with the traditional approach to JIT compilers is that Psyco writes several version of the same blocks (a block is a bit of a function), which are optimized by being specialized to some kinds of variables (a "kind" can mean a type, but it is more general). The result is that your unmodified Python programs run faster. Benefits 2x to 100x speed-ups, typically 4x, with an unmodified Python interpreter and unmodified source code, just a dynamically loadable C extension module. Drawbacks Psyco currently uses a lot of memory. It only runs on Intel 386-compatible processors (under any OS) right now. There are some subtle semantic differences (i.e. bugs) with the way Python works; they should not be apparent in most programs. << License: BSD Homepage: http://psyco.sourceforge.net/ Maintainer: None <fink-de...@lists.sourceforge.net> DescPort: Initial port by Pepe Barbe <pepe.ba...@gmail.com> << --- NEW FILE: guppy-py.info --- Info2: << Package: guppy-py%type_pkg[python] Version: 0.1.8 Revision: 1 Description: Python package with runtime memory analysis DescDetail: << Guppy-PE, a programming environment providing object and heap memory sizing, profiling and analysis. It includes a prototypical specification language that can be used to formally specify aspects of Python programs and generate tests and documentation from a common source. etc Support modules. Contains especially the Glue protocol module. gsl The Guppy Specification Language implementation. This can be used to create documents and tests from a common source. heapy The heap analysis toolset. It can be used to find information about the objects in the heap and display the information in various ways. sets Bitsets and 'nodesets' implemented in C. << Source: http://pypi.python.org/packages/source/g/guppy/guppy-%v.tar.gz Source-MD5: a82f6034d30120a2c6c01e3371942d5c Type: python (2.5 2.6) Depends: python%type_pkg[python] CompileScript: << echo Skipping build << InstallScript: << %p/bin/python%type_raw[python] setup.py install --root=%d << DocFiles: README doc License: OSI-Approved Homepage: http://guppy-pe.sourceforge.net/ Maintainer: None <fink-de...@lists.sourceforge.net> DescPort: Initial port by Pepe Barbe <pepe.ba...@gmail.com> << --- NEW FILE: parallel-py.info --- Info2: << Package: parallel-py%type_pkg[python] Version: 1.5.6 Revision: 1 Distribution: (%type_pkg[python] = 24) 10.4, (%type_pkg[python] = 24) 10.5 Type: python (2.4 2.5 2.6) Source: http://www.parallelpython.com/downloads/pp/pp-%v.tar.bz2 Source-MD5: 6f21056847d304d564ad728d3745f6a4 Depends: python%type_pkg[python] CompileScript: << python%type_raw[python] setup.py build << InstallScript: << python%type_raw[python] setup.py install --prefix %p --root %d mv %i/bin/ppserver.py %i/bin/ppserver%type_raw[python] mkdir -p %i/share/man/man1/ cp ppserver.1 %i/share/man/man1/ppserver-py%type_pkg[python].1 << PostInstScript: << update-alternatives --install %p/bin/ppserver ppserver %p/bin/ppserver%type_raw[python] %type_pkg[python] --slave %p/share/man/man1/ppserver.1 ppserver.1 %p/share/man/man1/ppserver-py%type_pkg[python].1 << PreRmScript: << if [ $1 != "upgrade" ]; then update-alternatives --remove ppserver %p/bin/ppserver%type_raw[python] fi << DocFiles: README PKG-INFO Description: Simple parallel processing for Python DescDetail: << parallel-python is a pure Python module which that provides a mechanism for parallel execution of Python code on SMP (systems with multiple processors or cores) and clusters (computers connected via network). It is light, easy to install, and integrates with other Python software. Features: * Parallel execution of python code on SMP and clusters * Easy to understand and implement job-based parallelization technique (easy to convert serial application in parallel) * Automatic detection of the optimal configuration (by default the number of worker processes is set to the number of the effective processors in the system) * Dynamic processors allocation (number of worker processes can be changed at runtime) * Low overhead for subsequent jobs with the same function (transparent caching is implemented to decrease the overhead) * Dynamic load balancing (jobs are distributed between processors at runtime) * SHA based authentication for network connections * Cross-platform portability (Windows, Linux, Unix) << License: BSD Homepage: http://www.parallelpython.com/ Maintainer: None <fink-de...@lists.sourceforge.net> DescPort: Initial port by Pepe Barbe <pepe.ba...@gmail.com> << ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Fink-commits mailing list Fink-commits@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.cvs