Created originally on Bitbucket by Anonymous
Changesets for this Pull Request have not been imported, because it had been already declined on Bitbucket. Marked as closed by the import user.
-
Start arm backend branch
-
move _compute_vars_longevity to llsupport and rename it to compute_vars_longevity
-
basic encoding for some arm instructions and infrastructure for testing
-
simple implementation of cpu and assembler to pass test_compile_linear_loop in runner_test
-
integration tests to check generated instructions on arm
-
finish moving compute_loop_consts to llsupport
-
remove currently unused import
-
move platform based skipping to the module level
-
Add encoding for MOV reg, reg
-
Encode and use PUSH instr to push a set of registers to the stack
-
Encoding for SUB instr
-
Support negative offsets in LDR instruction
-
Support negative offsets in STR
-
LDM instruction encoding
-
updated arm calling convention code to store and restore all relevant registers on procedure entry/exit
-
Remove self from compute_loop_consts arguments
-
refactor test support code, add a skipping macro for as version
-
Implemtent INT_LE and GUARD_TRUE operations and make test_compile_loop pass
-
Store address of machine code in looptoken and read it from there
-
(antocuni, david) some refactoring of the resoperation encoding, start using the register allocator,
-
Add ARM regalloc
-
Refactor parts of the codebuilder, build load and store instructions from a table
-
Encode register based data processing and generate functions for them.
-
Encode ARM imm data instructions
-
Add instr. to call coprocessor
-
Refactor guards and finish res op to leave using common code. Start implementig bridges based on refactored code.
-
Arch constants
-
(arigo, david) Hack for mmap to use mmap64
-
(david, arigo) Add breakpoint instruction
-
Wrapper for calling objdump on dumped memory
-
(david, arigo) Encode and decode args and registers for jumps and bridges
-
tools -> tool
-
Unify input arg and fail boxes
-
(david, arigo) handle holes in bridges
-
(david, arigo) implement get_latest_value_count
-
Introduce locations for registers and replace register numbers with the locations
-
Add support for constant int values from args
-
Implemente guard_false, int_sub, int_eq
-
Extend int_sub and int_add instruction encoding
-
move resop implementations to mixins
-
Encode multiplication operations
-
Implement int_mul, int_floordiv and int_mod operations.
- Added support to codebuilder to allocate new memory for instructions
- Implement int_div and int_mod as functions called from assembler, because doesn't provide instructions for them
-
Implement int_and, int_or, int_xor operations
-
Implement shift operations int_lshift, int_rshift, uint_rshift
-
Implement uint_floordiv and some helper functions to generate operations
-
Improve and correct jumps from one codeblock to the next one allocated to fit isntructions
-
Implement int and uint comparison operations
-
Update tests after removing CMP method
-
Implement unary int operations and perform some refactoring on opassembler
-
Improve trace exit path
-
Better integration of the register allocator
-
Tests for eabi mod function
-
Refactor branch and branch with link patters to methods
-
Implement register spilling on the stack. Introduce a frame pointer to manage the stack frame For now with a fixed frame size of 10 words for spilling
-
Patch generated code to update the stack pointer by the correct amount of words to fit all spilled registers
-
Extract patch preparation to a function
-
Fix issue with the update flags bit not getting set
-
Implement int_add_ovf and int_sub_ovf
-
Correctly set the update flags bit on multiply operations
-
Implement guard_overflow and int_mul_ovf
-
Update tests according to changes to long multiply ops
-
Implement CALL operation
-
Implement POP instruction
-
Implement extra load store instructions for half word and byte access and refactor tests a bit
-
Implement setfield_gc and getfield_gc operations
-
Fixed decoding of spilled values on stack
-
Add get_ and set_field_raw operations
-
implement getarrayitem, setarrayitem and arraylen operations
-
Fix a bug when calling functions and placing the sp incorrectly
-
Generate block data transfer instruction encoding and refactor machine code generation tests
-
Refactor the generation of the functions to write machine instructions
-
Temporary hack to check equality flags for mul_ovf, because arm does not set the overflow flags for this operation
-
Improve guard_true and guard_false and implement guard_value, guard_nonnull and guard_isnull
-
Implement string operations strlen, strgetitem and strsetitem
-
Implement unicode operations unicodelen, unicodegetitem and unicodesetitem
-
Some register allocation related fixes
-
Fix passing a forgotten argument used to adjust the sp
-
Implement forcing with force_token, call_may_force and guard_no_force operations. Add some logic to possibly merge operations with following guards Additionaly implement some fixes for procedure calling related to the manipulation of frame and stack pointers
-
(arigo, david) Fix calls from generated machine code to functions which return values smaller than a word by introducing a hack and masking the values correspondingly
-
Implement same_as operation
-
Implement call_assembler operation, for now without reseting the vable token Generate a second entry point to a loop passing the arguments in registers and the stack according to the calling convention for ARM used which is used in the call_assembler operation.
-
Fix call operation for calls with void return value
-
Fix guard_value checking a register when the second argument is immediate
-
Fix result handling when calling helper functions for arithmetic operations
-
Improve argument decoding when entering a bridge
-
Fix decoding of frame and location information when building a bridge
-
Fix an issue when emit a call
-
Merge int_mul_ovf and guard_(no_)overflow operations and remove the hack used in that case before
-
Correct imm value loading in guard_value
-
Ensure stack pointer patch location fits in the current piece of memory
-
Refactor how guards are generated Now a jump a the head checks the condition and skips the guard if the conditions holds Fixes an issue with spilling withing a guard which was overwritten when patching the guard code from a bridge Also free result vars for the case that they are not used.
-
Finish implementing the jump operation, based on the x86 jump code, adapted for the ARM backend
-
Add ARM to the cpu detection
-
Extend test_assembler_call to test fast and slow path and mark some more tests as requiring floats
-
Random tests for ARM backend with a custom lists of operations to test
-
merged trunk changes r77502 through r79385 into arm backend branch
-
Forgot import
-
refactor test_result_is_spilled
-
Fix a register allocation issue in emit_guard_int_mul_ovf
-
Fix ops that read fields to correctly zero or one extend the value when it is smaller than a word. Also fix ofset issues with array operations
-
Patch stack pointer from bridges to allow extending the frame while compiling a bridge
-
Some register allocation fixes
-
Another regalloc fix
-
Add ptr_eq and ptr_ne operations
-
Implement new_xxx operations, currently with support for boehm gc
-
Mark some classes as mixins
-
Implement guard_class operations, currently only for boehm
-
Skip test_cond_call_gc_wb for now
-
Exception and string copy operations
-
Test for the translation of the backend
-
Rpythonification and some bugfixes
-
Reduce the number of instructions used for guards
-
Fixes and improvementes for int_sub and int_neg
-
Refactoring and fixes for arithmetic operations
-
Import tests based on failing random tests
-
Fix comparison ops based on random test results
-
Fix for int_sub and refactor guard_value
-
Fixes for getfield, setfield and for rshift operations with constant arguments
-
Correctly support const args in array set/get and len operations and refactor a bit
-
Refactor string and unicode operations and make sure const arguments work as expected
-
Refactor guard_class code a bit
-
Different register allocation changes
-
Update str and unicode copy ops to work better with const values
-
Improve guard_nonnull_class and some smaller fixes
-
Refactor location encodings
-
Make sure guard_nonnull_class fits in current piece of memory
-
Fix malloc_varsize and some other register allocation issues
-
Refactor malloc_varsize a bit
-
(arigo, david) fix copying of unicode strings
-
Fix some more allocation issues in copy operations
-
Another fix for string copying
-
improve handling of calls by avoiding spilling arround calls.
Fix some more regalloc issues and add typed subclasses of tempbox so they can be stored on the stack.
-
branch trunk again to add the cppyy module there
-
merge in the changes from reflex-support: ------------------------------------------------------------------------ r79226 | wlav | 2010-11-18 03:10:29 +0100 (Thu, 18 Nov 2010) | 1 line Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py
rpython and comment fixes ------------------------------------------------------------------------ r79220 | cfbolz | 2010-11-17 19:47:56 +0100 (Wed, 17 Nov 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py fix another issue ------------------------------------------------------------------------ r79219 | cfbolz | 2010-11-17 19:24:23 +0100 (Wed, 17 Nov 2010) | 4 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py - factor some common code out into a helper function - also use space.interp_w to make sure that the objects in question are really W_CPPInstances. This should help translation. ------------------------------------------------------------------------ r79209 | cfbolz | 2010-11-17 18:57:20 +0100 (Wed, 17 Nov 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py use the official way to check whether w_value is an int ------------------------------------------------------------------------ r79156 | cfbolz | 2010-11-16 17:56:23 +0100 (Tue, 16 Nov 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py try to fix some RPython issues ------------------------------------------------------------------------ r79137 | wlav | 2010-11-16 00:48:06 +0100 (Tue, 16 Nov 2010) | 1 line Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/helper.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_helper.py mods to be rpython compliant ------------------------------------------------------------------------ r78903 | wlav | 2010-11-09 02:18:57 +0100 (Tue, 09 Nov 2010) | 1 line Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py array support for all integer types ------------------------------------------------------------------------ r76862 | wlav | 2010-09-03 20:52:08 +0200 (Fri, 03 Sep 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Initial long array data member access. ------------------------------------------------------------------------ r76861 | wlav | 2010-09-03 20:50:49 +0200 (Fri, 03 Sep 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Initial unsigned int array data member access. ------------------------------------------------------------------------ r76860 | wlav | 2010-09-03 20:20:24 +0200 (Fri, 03 Sep 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Initial int array data member access. ------------------------------------------------------------------------ r76828 | wlav | 2010-09-02 02:31:09 +0200 (Thu, 02 Sep 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Initial support for unsigned short int data member access. ------------------------------------------------------------------------ r76827 | wlav | 2010-09-02 02:20:18 +0200 (Thu, 02 Sep 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/helper.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/datatypes.h M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_helper.py Initial implementation for passing short int arrays. ------------------------------------------------------------------------ r76674 | wlav | 2010-08-20 02:19:47 +0200 (Fri, 20 Aug 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Allow setting of boolean data members. ------------------------------------------------------------------------ r76481 | wlav | 2010-08-05 00:10:46 +0200 (Thu, 05 Aug 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Executors and converters for more integer types ------------------------------------------------------------------------ r76462 | wlav | 2010-08-04 00:33:26 +0200 (Wed, 04 Aug 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Enable float and double data members ------------------------------------------------------------------------ r76461 | wlav | 2010-08-03 23:49:16 +0200 (Tue, 03 Aug 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Enable passing int value to C char ------------------------------------------------------------------------ r76460 | wlav | 2010-08-03 23:22:05 +0200 (Tue, 03 Aug 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/helper.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/pythonify.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Support for public data members of type (unsigned) char and renaming various names for consistency. ------------------------------------------------------------------------ r76333 | wlav | 2010-07-24 01:36:35 +0200 (Sat, 24 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Allow passing of C-floats. ------------------------------------------------------------------------ r76283 | wlav | 2010-07-19 19:56:55 +0200 (Mon, 19 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py Initial converters/executors for char and unsigned char. ------------------------------------------------------------------------ r76234 | wlav | 2010-07-15 12:28:20 +0200 (Thu, 15 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py Improved error reporting when an overload fails. ------------------------------------------------------------------------ r76208 | wlav | 2010-07-14 17:29:51 +0200 (Wed, 14 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/Makefile A /pypy/branch/reflex-support/pypy/module/cppyy/test/datatypes.cxx A /pypy/branch/reflex-support/pypy/module/cppyy/test/datatypes.h M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py A /pypy/branch/reflex-support/pypy/module/cppyy/test/test_datatypes.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py Preparation of new test for the builtin datatypes (modified from roottest), and a bool executor/converter. ------------------------------------------------------------------------ r76194 | wlav | 2010-07-14 11:09:13 +0200 (Wed, 14 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/pythonify.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.h M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py Enable returning objects from static classes and some code cleanup/cutification. ------------------------------------------------------------------------ r76188 | wlav | 2010-07-13 17:26:09 +0200 (Tue, 13 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/pythonify.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py Allow methods to return instances. ------------------------------------------------------------------------ r76180 | antocuni | 2010-07-13 14:29:22 +0200 (Tue, 13 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py fix translation ------------------------------------------------------------------------ r76175 | arigo | 2010-07-13 12:16:38 +0200 (Tue, 13 Jul 2010) | 4 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/codewriter/effectinfo.py M /pypy/branch/reflex-support/pypy/jit/codewriter/test/test_effectinfo.py M /pypy/branch/reflex-support/pypy/jit/metainterp/optimizeopt.py M /pypy/branch/reflex-support/pypy/jit/metainterp/pyjitpl.py Extend the EffectInfo to distinguish between the cases EF_PURE etc., even for cases of general escaping where we don't have any list of fields. ------------------------------------------------------------------------ r76163 | wlav | 2010-07-12 22:26:26 +0200 (Mon, 12 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.h M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py Allow executor calls returning objects to succeed (the resulting return object is not yet usuable, though). ------------------------------------------------------------------------ r76157 | arigo | 2010-07-12 19:08:30 +0200 (Mon, 12 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/codewriter/effectinfo.py M /pypy/branch/reflex-support/pypy/jit/codewriter/test/test_effectinfo.py M /pypy/branch/reflex-support/pypy/translator/backendopt/graphanalyze.py Revert r76155, which does not help, and the test in r76154, which is a bit bogus. ------------------------------------------------------------------------ r76155 | arigo | 2010-07-12 18:43:30 +0200 (Mon, 12 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/codewriter/effectinfo.py M /pypy/branch/reflex-support/pypy/translator/backendopt/graphanalyze.py Fix the bug in a not-completely-satisfying way... ------------------------------------------------------------------------ r76154 | arigo | 2010-07-12 18:29:37 +0200 (Mon, 12 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/codewriter/test/test_effectinfo.py A failing test. ------------------------------------------------------------------------ r76070 | antocuni | 2010-07-09 13:02:29 +0200 (Fri, 09 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py fix incorrect signature ------------------------------------------------------------------------ r76069 | cfbolz | 2010-07-09 12:53:46 +0200 (Fri, 09 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy M /pypy/branch/reflex-support/pypy/module/cppyy/include M /pypy/branch/reflex-support/pypy/module/cppyy/include/cppyy.h M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/pythonify.py M /pypy/branch/reflex-support/pypy/module/cppyy/test M /pypy/branch/reflex-support/pypy/module/cppyy/test/bench1.py fixeol and fix svn properties ------------------------------------------------------------------------ r76064 | wlav | 2010-07-09 11:38:47 +0200 (Fri, 09 Jul 2010) | 2 lines Changed paths: A /pypy/branch/reflex-support/pypy/module/cppyy/test/bench1.cxx Initial C++ benchmark. ------------------------------------------------------------------------ r76062 | arigo | 2010-07-09 11:10:27 +0200 (Fri, 09 Jul 2010) | 2 lines Changed paths: A /pypy/branch/reflex-support/pypy/module/cppyy/test/bench1.py A benchmark. ------------------------------------------------------------------------ r76061 | antocuni | 2010-07-09 11:01:34 +0200 (Fri, 09 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/helper.py translation fix ------------------------------------------------------------------------ r76059 | wlav | 2010-07-09 10:45:56 +0200 (Fri, 09 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/test/Makefile M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx A /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.h (cfbolz, wlav) Cleanup example01 C++ code in test. ------------------------------------------------------------------------ r76058 | antocuni | 2010-07-09 10:44:15 +0200 (Fri, 09 Jul 2010) | 4 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx (arigo, antocuni): revert r76042 as it makes things slower. Moreover, turn get_methptr_getter into a pure function, to help the jit ------------------------------------------------------------------------ r76053 | wlav | 2010-07-08 20:30:36 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx Make C API consistent. ------------------------------------------------------------------------ r76051 | arigo | 2010-07-08 20:23:57 +0200 (Thu, 08 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/translator/c/genc.py Tentatively fix the Makefile to not call trackgcroot.py on some C files, and on all other files (.cpp, .cxx...) ------------------------------------------------------------------------ r76048 | wlav | 2010-07-08 20:04:20 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py Some more tests. ------------------------------------------------------------------------ r76046 | wlav | 2010-07-08 19:37:02 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py A /pypy/branch/reflex-support/pypy/module/cppyy/helper.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py A /pypy/branch/reflex-support/pypy/module/cppyy/test/test_helper.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py (wlav, cfbolz): work enough to be able to pass an instance as an argument. ------------------------------------------------------------------------ r76044 | arigo | 2010-07-08 18:17:14 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py Translation fix. ------------------------------------------------------------------------ r76043 | antocuni | 2010-07-08 18:06:02 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/config/pypyoption.py always enable this module on the branch ------------------------------------------------------------------------ r76042 | antocuni | 2010-07-08 18:04:42 +0200 (Thu, 08 Jul 2010) | 5 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx (antocuni, arigo around) huge pile of custom hacks to convince the jit that the function pointer to the method that we get is constant, given the dynamic class of the cpp object ------------------------------------------------------------------------ r76041 | arigo | 2010-07-08 18:01:43 +0200 (Thu, 08 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/metainterp/pyjitpl.py M /pypy/branch/reflex-support/pypy/jit/metainterp/warmspot.py M /pypy/branch/reflex-support/pypy/jit/tl/pypyjit_child.py Update pypyjit_child.py to force the jitcodes to be dumped to disk in that case. ------------------------------------------------------------------------ r76040 | wlav | 2010-07-08 17:43:20 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py (cfbolz, wlav) Implementation of overloads for constructors from the python side. ------------------------------------------------------------------------ r76039 | arigo | 2010-07-08 17:35:13 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/tl/pypyjit_demo.py Fixes. ------------------------------------------------------------------------ r76038 | arigo | 2010-07-08 17:23:45 +0200 (Thu, 08 Jul 2010) | 5 lines Changed paths: M /pypy/branch/reflex-support/pypy/translator/tool/cbuild.py Running some tests depending on cbuild would create externmod_1.so, externmod_2.so, etc., in a random directory, the list growing forever. Attempt to fix that by forcing the externmod_x.so to be created in the usession directory. ------------------------------------------------------------------------ r76036 | antocuni | 2010-07-08 17:08:22 +0200 (Thu, 08 Jul 2010) | 4 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx introduce two new types, cppyy_typehandle_t and cppyy_object_t, which are just void* but make the code a bit easier to understand ------------------------------------------------------------------------ r76035 | arigo | 2010-07-08 17:06:40 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/tl/pypyjit_demo.py Fix with full relative path. ------------------------------------------------------------------------ r76033 | arigo | 2010-07-08 16:21:00 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py Translation fix. ------------------------------------------------------------------------ r76029 | arigo | 2010-07-08 16:02:20 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py Translation fixes. ------------------------------------------------------------------------ r76020 | arigo | 2010-07-08 13:25:00 +0200 (Thu, 08 Jul 2010) | 7 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/Makefile (antocuni, arigo) Hack: manually do the fast-path construction enabled by --with-methptrgetter for methods of signature 'int m(int)' only. The JIT should speed that case up. ------------------------------------------------------------------------ r76019 | wlav | 2010-07-08 13:12:42 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/pythonify.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py (wlav, cfbolz): add support for constructing an instance of a class and calling methods on it. ------------------------------------------------------------------------ r76018 | arigo | 2010-07-08 12:53:20 +0200 (Thu, 08 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/Makefile M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py Support two installations: either genreflex is installed, or ROOT is in $ROOTSYS. ------------------------------------------------------------------------ r76017 | wlav | 2010-07-08 12:38:17 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/__init__.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/pythonify.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py (wlav, cfbolz): start exposing c++ classes and support static methods on them. ------------------------------------------------------------------------ r76014 | antocuni | 2010-07-08 12:20:39 +0200 (Thu, 08 Jul 2010) | 3 lines Changed paths: A /pypy/branch/reflex-support/pypy/module/cppyy/genreflex-methptrgetter.patch (arigo, antocuni) a patch for genreflex.py that adds the MethPtrGetter property to the FunctionMembers of a class ------------------------------------------------------------------------ r76011 | wlav | 2010-07-08 11:00:42 +0200 (Thu, 08 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/__init__.py A /pypy/branch/reflex-support/pypy/module/cppyy/pythonify.py A /pypy/branch/reflex-support/pypy/module/cppyy/test/test_pythonify.py (cfbolz,wlav) New module pythonify for user interface, and its test. Make load_lib cache resulting libraries. ------------------------------------------------------------------------ r75998 | wlav | 2010-07-07 20:04:02 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py Support calls for double and char* on instances. ------------------------------------------------------------------------ r75991 | antocuni | 2010-07-07 18:28:02 +0200 (Wed, 07 Jul 2010) | 5 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/include/cppyy.h M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx lookup and print the property "MethPtrGetter" for methods; so far it's unused and it's always empty, because genreflex.py does not generate this information yet. ------------------------------------------------------------------------ r75987 | wlav | 2010-07-07 18:13:31 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx Merge static and method call for resolution on the C++ side. ------------------------------------------------------------------------ r75985 | wlav | 2010-07-07 17:48:01 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx Use an opaque handle instead of class name to locate Reflex::Type. ------------------------------------------------------------------------ r75964 | wlav | 2010-07-07 12:46:51 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py Made method call also use executors. ------------------------------------------------------------------------ r75963 | cfbolz | 2010-07-07 12:44:06 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h (cfbolz, wlav, arigo): make this work in C ------------------------------------------------------------------------ r75962 | arigo | 2010-07-07 12:16:48 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py Tentative fix of translation. ------------------------------------------------------------------------ r75961 | arigo | 2010-07-07 11:47:53 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/capi.py M /pypy/branch/reflex-support/pypy/module/cppyy/executor.py Remove svn:executable. ------------------------------------------------------------------------ r75960 | wlav | 2010-07-07 11:44:56 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: A /pypy/branch/reflex-support/pypy/module/cppyy/capi.py A /pypy/branch/reflex-support/pypy/module/cppyy/executor.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (cfbolz, wlav) Make use of the new executor module and moved all Reflex-C interface code to capi.py. ------------------------------------------------------------------------ r75955 | arigo | 2010-07-07 10:43:49 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/backend/llgraph/llimpl.py Fix for metainterp/test/test_ztranslation. ------------------------------------------------------------------------ r75954 | arigo | 2010-07-07 10:36:41 +0200 (Wed, 07 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/backend/llsupport/support.py Fix for x86/test/test_basic.test_raw_malloc_and_access ------------------------------------------------------------------------ r75953 | cfbolz | 2010-07-07 10:25:38 +0200 (Wed, 07 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/backend/llsupport/descr.py (arigo, cfbolz): add some sanity asserts to check that C arrays don't need a typeid. don't try to get a typeid for raw arrays. ------------------------------------------------------------------------ r75940 | cfbolz | 2010-07-06 19:49:36 +0200 (Tue, 06 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py (cfbolz, arigo, antocuni): refactor exception handling to help the JIT for completely unobvious reasons :-( ------------------------------------------------------------------------ r75935 | wlav | 2010-07-06 19:15:42 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (wlav) Add handling for char* return type on static functions. ------------------------------------------------------------------------ r75934 | cfbolz | 2010-07-06 19:03:23 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/backend/llgraph/llimpl.py M /pypy/branch/reflex-support/pypy/jit/backend/llgraph/test/test_llgraph.py (cfbolz, arigo): slightly obscure: need an unsafe cast in setarrayitem_raw_int ------------------------------------------------------------------------ r75932 | wlav | 2010-07-06 18:45:10 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (wlav, cfbolz) Add const char* argument passing and refactor converter lookup. ------------------------------------------------------------------------ r75931 | arigo | 2010-07-06 18:26:59 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/annotation/bookkeeper.py M /pypy/branch/reflex-support/pypy/annotation/model.py M /pypy/branch/reflex-support/pypy/annotation/test/test_model.py M /pypy/branch/reflex-support/pypy/jit/backend/llsupport/descr.py M /pypy/branch/reflex-support/pypy/jit/backend/llsupport/llmodel.py M /pypy/branch/reflex-support/pypy/jit/backend/llsupport/symbolic.py M /pypy/branch/reflex-support/pypy/jit/backend/llsupport/test/test_descr.py M /pypy/branch/reflex-support/pypy/jit/backend/llsupport/test/test_symbolic.py M /pypy/branch/reflex-support/pypy/jit/backend/x86/assembler.py M /pypy/branch/reflex-support/pypy/jit/backend/x86/regalloc.py M /pypy/branch/reflex-support/pypy/module/_locale/interp_locale.py M /pypy/branch/reflex-support/pypy/rlib/rlocale.py M /pypy/branch/reflex-support/pypy/rpython/lltypesystem/rffi.py M /pypy/branch/reflex-support/pypy/rpython/lltypesystem/test/test_rffi.py M /pypy/branch/reflex-support/pypy/rpython/memory/lltypelayout.py Merge trunk, r75828:HEAD. ------------------------------------------------------------------------ r75928 | cfbolz | 2010-07-06 17:36:01 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py add some more hints ------------------------------------------------------------------------ r75925 | cfbolz | 2010-07-06 17:17:10 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/codewriter/jtransform.py M /pypy/branch/reflex-support/pypy/jit/codewriter/test/test_flatten.py start some support for very simple force_cast cases ------------------------------------------------------------------------ r75917 | cfbolz | 2010-07-06 16:31:31 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/pypyjit/policy.py let the JIT see our new module ------------------------------------------------------------------------ r75913 | cfbolz | 2010-07-06 16:12:39 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/jit/tl/pypyjit.py M /pypy/branch/reflex-support/pypy/jit/tl/pypyjit_demo.py the code that we would like to make fast with the JIT ------------------------------------------------------------------------ r75910 | cfbolz | 2010-07-06 16:01:27 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py (wlav, cfbolz, antocuni, arigo): refactor stuff to hopefully be more JIT-friendly ------------------------------------------------------------------------ r75904 | cfbolz | 2010-07-06 15:09:56 +0200 (Tue, 06 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py (antocuni, cfbolz, wlav, arigo): fix one annotation problem, not sure it's the only one. Prefix all C-functions with "c_". ------------------------------------------------------------------------ r75899 | cfbolz | 2010-07-06 13:13:14 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (wlav, cfbolz, antocuni, arigo around): test and fix ------------------------------------------------------------------------ r75896 | cfbolz | 2010-07-06 12:50:11 +0200 (Tue, 06 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (antocuni, wlav, cfbolz, arigo around): fix memory leak. test overloading by number of arguments. ------------------------------------------------------------------------ r75895 | cfbolz | 2010-07-06 12:37:23 +0200 (Tue, 06 Jul 2010) | 3 lines Changed paths: A /pypy/branch/reflex-support/pypy/module/cppyy/converter.py M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (antocuni, cfbolz, wlav, arigo around): start going in the direction of supporting overloading. support returning doubles from static methods. ------------------------------------------------------------------------ r75882 | arigo | 2010-07-06 09:11:59 +0200 (Tue, 06 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx Kill the svn:executable property on this file. ------------------------------------------------------------------------ r75847 | cfbolz | 2010-07-05 19:09:53 +0200 (Mon, 05 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (antocuni, cfbolz, wlav, arigo): call the destructor too. ------------------------------------------------------------------------ r75843 | cfbolz | 2010-07-05 18:48:06 +0200 (Mon, 05 Jul 2010) | 2 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/include/cppyy.h M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx (arigo, antocuni, wlav, cfbolz): clean up the calling of constructors. ------------------------------------------------------------------------ r75839 | cfbolz | 2010-07-05 18:23:24 +0200 (Mon, 05 Jul 2010) | 4 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/include/cppyy.h M /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx M /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (arigo, wlav, antocuni, cfbolz): hack some more until we are able to construct an object (with a complete hack) and call a method on it. This still leaks memory. ------------------------------------------------------------------------ r75835 | cfbolz | 2010-07-05 17:19:56 +0200 (Mon, 05 Jul 2010) | 3 lines Changed paths: A /pypy/branch/reflex-support/pypy/module/cppyy/include A /pypy/branch/reflex-support/pypy/module/cppyy/include/cppyy.h A /pypy/branch/reflex-support/pypy/module/cppyy/include/reflexcwrapper.h M /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py A /pypy/branch/reflex-support/pypy/module/cppyy/src A /pypy/branch/reflex-support/pypy/module/cppyy/src/reflexcwrapper.cxx (cfbolz, wlav, antocuni, arigo): write just enough code to be able to call a static method ------------------------------------------------------------------------ r75834 | cfbolz | 2010-07-05 15:25:54 +0200 (Mon, 05 Jul 2010) | 3 lines Changed paths: M /pypy/branch/reflex-support/pypy/module/cppyy/__init__.py A /pypy/branch/reflex-support/pypy/module/cppyy/interp_cppyy.py M /pypy/branch/reflex-support/pypy/module/cppyy/test A /pypy/branch/reflex-support/pypy/module/cppyy/test/Makefile A /pypy/branch/reflex-support/pypy/module/cppyy/test/example01.cxx A /pypy/branch/reflex-support/pypy/module/cppyy/test/test_cppyy.py (arigo, antocuni, cfbolz, wlav): a tiny C++ class and a test of how we want the interface to look for now. Now the real fun starts. ------------------------------------------------------------------------ r75831 | cfbolz | 2010-07-05 13:54:02 +0200 (Mon, 05 Jul 2010) | 2 lines Changed paths: A /pypy/branch/reflex-support/pypy/module/cppyy A /pypy/branch/reflex-support/pypy/module/cppyy/__init__.py A /pypy/branch/reflex-support/pypy/module/cppyy/test A /pypy/branch/reflex-support/pypy/module/cppyy/test/__init__.py (arigo, antocuni, cfbolz, wlav) the empty module that we want to write ------------------------------------------------------------------------ r75828 | cfbolz | 2010-07-05 11:56:12 +0200 (Mon, 05 Jul 2010) | 2 lines Changed paths: A /pypy/branch/reflex-support (from /pypy/trunk:75827) branch for the CERN sprint ------------------------------------------------------------------------
-
rename new branch
-
Disable the call hack, as it breaks things now that NotImplementedError cannot be caught.
-
enable cppyy
-
disable this differently
-
make immutable markers consistent
-
For now just hide the direct_ptradd. Should be fixed later.
-
re-enabled hack call, using a different exception than NotImplementedError
-
this seems to be needed
-
Support for much faster calls in cppyy: use rlib.libffi to do the calls, which should enable the JIT to optimize them into direct calls without any allocation. This is so far restricted to some argument/return types, but can be extended.
-
remove debug prints
-
fix typo in comment
-
fix segfault when using pythonify
-
Separete register allocation from codegeneration
-
Improve constant loading, some related fixes and well and register allocation fixes
-
Fix calls with parameters on the stack and guard_exception
-
Make backend translate again
-
Next register allocation fix
-
Remove param for random test
-
Ignore vim swp and swp files
-
Some assert and variables to translate only the backend, without a frontend
-
Update arm backend to use asmmemmgr to manage code blocks and writes to memory
-
check for value of fields instead of presences
-
Patch bridges correctly again
-
Remove superfluous call
-
Delay reading of the platform variable
-
Implement an ARM cross compilation translation target
-
Support offsets larger than imm values for guard class
-
Remove unused size information for function epilog
-
Remove another unused variable and hide some debug info when translated
-
Fix an issue with a wrongly calculated offset size to choose an imm or register based operation
-
Pass condition around when generation function epilog
-
Add tests for the branch to offset operation
-
Remove guard code emitted twice in guard_nonnull_class and move position of patched location for brigdes
-
Fix an issue when emitting a call with a const as the first argument and checking if it survives the call
-
Remove some XXX annotations from the register allocator
-
Remove another XXX, load small imm values directly into target register
-
Improve INT_NEG using reverse substract and remove another XXX
-
Save an instruction in array get and set operations
-
Remove more XXX, assert some properties of the generated machine code, required by the specification
-
Document the calculation of the size for the allocated memory
-
Remove Restrictions on data proc imm operations
-
Do not generate instructions for operations without side effects and an unused result
-
Move check for operation result down to compute correct longevities even in case of ignored operation results
-
Start implementing encoding for 64-bit floating point operations
-
Start implementing float load and store instructions
-
Add support for imm values in float load and store instructions
-
Implement VPUSH instruction
-
In tests create asm files in usession dir
-
Add a test for a basic loop using floats
-
Start implementing support code for floats and FLOAT_ADD operation
-
Implent FLOAT_SUB
-
remove debugging output
-
Allow REFs as imm values for encoding when leaving a loop
-
check for negative values on unsigned types
-
added test for builtin type conversions
-
Implement FLOAT_MUL operation
-
Implement FLOAT_TRUEDIV operation
-
Add test case for casting a negative number to a float
-
Finish implementing float operations
-
return condition
-
support refs as imm values in failargs
-
use a block of memory that is freed with the loop to store the encoding of the failargs
-
implement redirect_call_assembler
-
in getfield and setfield operations use a register to store the offset of a field when it does not fit in the 12 bits for imm values
-
import some tests from the x86 backend
-
short array returns and short ptr data member access
-
refactoring of array handling
-
integer and floating point array return types and data member access
-
read support for static (class-level) data members
-
Really free the blocks
-
Split the constant loading into two different methods. In total this saves 1 instruction per constant, in the worst case, and makes the exection a bit faster.
-
fix interface for gen_load_int
-
Pass cond flag to regalloc_mov and use it instead of directly emiting operations.
-
Reset vable_token in call_assembler and some other fixes to it
-
(arigo, david) when generating code for a call, force the variable stored in r0 to be spilled if the call has a return value and ensure a register can not be bound to two boxes after a call.
-
rewrite the resoperation dispatch loop a bit and call regalloc._check_invariants on each iteration
-
Improve freeing of boxes and also free the failargs of guards
-
disable test if the backend does not support floats
-
improve freeing of boxes in operations merged with guards
-
do not spill all registers around call_may_force and get rid of the flag for it
-
provide a c function wrapping div, unsigned div and mod which are called from the jit for the corresponding operations because arm's application profile does not implement these operations.
-
Move some redundant parts of guards to their own procedures
-
move procedure generation a bit around
-
allow to move const values to stack locations
-
generate code to set the SP at a position where it is executed before the frame is used
-
(arigo, david) patch the frame size of a loop or bridge with a larger value if it jumps to another location that requires a larger frame than the current one would need
-
Fix an off-by-one error when doing a jump to a location that is more than 255 bytes away
-
Add two methods required by the frontend
-
Fix some issues with call_assembler
-
tests and test fixes
-
fix and extend tests
-
Fix frame size calculation for bridges and spilling in large frames
-
Added tests and skeleton.
-
Fix a typo in the tests.
-
Remove this test, it doesn't seem to pass under CPython.
-
Missing import.
-
typo fix.
-
One more typo fix.
-
Final typo fix.
-
Allow submodules for MixedModules, imported from my psycopg2 fork.
-
Added tag benchmarks for changeset 370c23f085d7
-
remove some unused parameters
-
return the condition flag in generator helpers
-
support floats in bridge entry code
-
categorize floating point registers to be saved around calls
-
correct loading of constants when entering the loop and add more of the regalloc interface to the common regalloc for both kinds of registers
-
start using longlong representation for floats
-
create a context manager to manage pushing and popping registers around calls
-
start using with saved_registers instead of PUSH/POP
-
Use save_registers when generation operations surrounded by PUSH/POP
-
filter registers to be pushed and popped based on the reg_bindings
-
disable the second entry point for loops until the calling convention implementation supports float
-
fix the order of register allocation and freeing to avoid allocation a register for two arguments at the same time
-
save vfp registers around calls
-
spill vfp registers around calls
-
start extending the calling convention implementation to support floats
-
continue implemeting float support in the calling convention
-
add missing bit to VMOV instructions
-
pass arguments correctly and restore a float result correctly
-
improve interface of VMOV
-
here we also need to spill caller saved registers that are not used after the call
-
Around calls save only registers that are going to be used afterwards
-
loading of float value into core and vfp registers
-
start adding support for floats to call_assembler
-
add float support for (get/set)field and (get/set)arrayitem operations
-
support floats in guard_value
-
replace uses of TempBox with TempXXX which contain type information
-
change the float comparisson operations a bit, because transfering the condition flags from the vfp to the core processor flags changes slighlty the meaning of the condition codes
-
correctly support floats in (get/set)arrayitem
-
simplify the code a bit, here we now values are in register
-
add support for moving values between vfp registers and simplify the same_as operation
-
remove more uses of TempBox
-
support spilling of float vars
-
correctly associate float registers when updating the bindings to compile a bridge
-
support forcing in combination with floats
-
add type based indirection to convert_to_imm
-
support floats in the direct bootstrap code called when executing call_assembler
-
fix tests
-
some register allocation related fixes
-
Implemented kevent and started on kqueue.
-
a little work
-
fix import
-
in progress: support frame remapping for floats and int/ref
-
small fixes
-
correctly calculate stack locations for floats
-
insert stack checks when running non-translated after each operation and at some other places
-
use d15 as vfp scratch register and use it instead of temporarily pushing some register
-
fix an issue when pushing a vfp value to the stack that was stored in the spilling area of the stack
-
Merge ovf ops with the following guard
-
remove pdbs
-
register allocation related fixes due to operation merges
-
import changes to compute_vars_longevity from default
-
start importing new jump tests from x86 backend
-
finish porting test_jump for arm backend
-
skip test if long longs are not supported by the backend
-
do not use PC as register in tests for instruction generation
-
Add documentation about cross translating for ARM
-
fix typo
-
write support for static (class-level) data members
-
rpython fixes
-
Avoid indirectly loading rffi before platform has been set
-
RPython and pylint fixes
-
rpython fixes
-
translation fixes
-
fix indentation
-
coding convention fixes
-
add (start of) new series of tests
-
improve log message
-
remove static keyword from pypy_read_timestamp to match the definition in the header file
-
(bivab, arigo) import regalloc tests from x86 backend
-
(bivab, arigo) start implementing shadowstack support on arm backend. One test passes, yay
-
(arigo, bivab) seems to only be a restriction in the Thumb instruction set and only when the PC is also in the list of registers
-
(bivab, arigo) implement the malloc slowpath
-
(bivab, arigo) implement the fastpath of new_with_vtable
-
(arigo, bivab) support new_array
-
coding convention fixes
-
initial base class support
-
Support newstr and newunicode with framework gcs
-
ensure 8 byte stack aligment when entering the compiled code
-
ensure stack alignment when patching the stack pointer to reserve space for spilling variables
-
reorder arguments to float function in test_call to trigger alignemnt issue
-
modify calls to external functions to spill variables all caller saved variables and those containing gc pointers. Also fix the implementation of the calling convention to correctly support the 8 byte stack alingment
-
correct the calculation of the space used for arguments on the stack when doing a call with more than 4 arguments
-
take the space used for the registers stored on the stack by the malloc code when calculating the offset to the arguments passed on the stack
-
test to different combinations of arguments passed on stack to ensure the alignment is kept
-
extract counting of arguments passed in registers to a call to a helper function
-
fix the alignment of values passed in registers to a call
-
consisten use of void* and char*
-
translation fixes: immutability consistency
-
translation fixes: immutability consistency
-
fixes for jit generation: argument type consistency
-
test case for mixed argument calls to call_assembler exercising the direct bootstrap code
-
remove some superfluous code
-
make call_assembler implementation follow work based on the 8 byte stack alignment
-
move calling convention tests to backend tests
-
import calling conventions tests in x86 backend
-
more shadowstack integration
-
translation fixes
-
fix handling of datablocks
-
import test_zrpy_gc from x86 backend
-
pypy 1.4 compatibility
-
(cfbolz, bivab) translation fixes
-
(arigo, bivab) implement cond_call_gc_wb operation
-
(arigo, bivab) generate header and footer for functions when using the shadowstack
-
(arigo, bivab) run this code only once and not for each testcase, causing the test to take forever to start running
-
(bivab, arigo): fix argument moving for calls that overwrite others
-
correct alignemnt calculation when loading arguments from registers at a call entry point. Also make sure not to overwrite parts of float arguments when moving the arguments to the corresponding locations.
-
uh, missed this change
-
when spilling a variable or loading a spilled one use an immediate value to store the offset on the stack if it is in the range -4095 to 4095
-
make sure to spill the variables before reordering them to perform the call
-
(arigo, bivab) store all vfp registers arround the malloc slowpath call
-
(arigo, bivab) correctly calculate the offset of the variables spilled on the stack
-
initial support for classes in namespaces
-
namespaces in namespaces and inner classes
-
(arigo, bivab) call rewrite_assembler before iterating over the operations
-
pull C++ bound methods into the app level to allow normal python mro to work
-
make benchmarking easier
-
first steps towards STL support
-
create and use helpers to move values from and to vfp and core locations
-
mov imm floats to the stack
-
(arigo, bivab) add a resoperation for testing called force_spill, that forces a variable to be spilled. It is used to the generate different call patterns with variables that are currently spilled as arguments
-
implement force_spill operation for testing
-
make sure to use imm values for offset calculations when possible
-
correct offset calculations for loading and storing spilled floats to and from core registers
-
In case the variable is already spilled and not living in any register, do nothing.
-
use setup_class here
-
move functions to helper module and add some tests
-
(arigo, bivab) implement longlong2float and float2longlong in a way that is more close to the C standard. On ARM/32bit this code was causing a reodering of instructions that filled one of the two words with garbage
-
rpython fixes
-
nicer template support
-
refactoring
-
rpython fixes and refactoring
-
put this return where it belongs
-
(arigo, bivab) swap the use of the r1 and ip registers here, because ip is really a scratch register that is trashed by a random operation
-
(arigo, bivab) give generated functions more meaningful names
-
advanced template support and made gbl a true namespace
-
added selection for advanced cpp test
-
Argh. Found by chance a small missing piece in the ARM backend. Not implementing this function causes rare crashes, probably missed by any test... :-(
-
implement missing get_on_leave_jitted_hook
-
typos
-
add some assertions about arguments to malloc operations
-
add decoding of the output as in jit-backend-dump
-
forgotten import
-
fix
-
use none as an alignement marker when calculating the list of arguments to a call that go on the stack
-
it is not necesary to align by a word here
-
add a test for the bug when calling a function with ConstInt arguments and ConstInt(0) being ignored
-
remove customized version of before_call, because it is not needed any more
-
fix for an issue triggered when a const int is passed as the size to _malloc_varsize.
-
add a encode64 helper
-
fix for bc71e715e308 on ARM
-
add test for jit rewriting of math.sqrt
-
implement support for sqrt in the ARM backend
-
implement support for sqrt in the ARM backend
-
fix tests
-
remove outdated test
-
adjust scope of random testing to a more realistic value for ARM
-
make abstract classes uninstantiable
-
support for virtually inherited data members
-
further STL support and initial class-specific pythonizations
-
test fixes
-
test fixes
-
allow default arguments and test cleanup
-
new STL test and allow object to pass by reference
-
- return by value of objects
- lazy-lookup of functions in namespaces in case of multiple dicts
- fix to make global functions callable
- pythonization of std::vector (iterator protocol)
- return by value of objects
-
rtyper fixes
-
offsets for calling base classes
-
rtyper fixes and initial attempt at class type data members
-
start implementing support for out of line guards
-
small fixes
-
generate a B(ranch) instruction for jumps with a known offset
-
refactor guards make the handling more similar to how it is done in the x86 backend generating a check and a conditional jump to an exit stub that is later generated at the end of the compiled loop.
-
first stab at supporting 64 bit windows. This is quite a hack and not meant to be final.
Problem: Windows 64 bit uses 32 bit integers. PyPy has the implicit assumption that an inr can hold an address.
Principle: sys.maxint is patched to be 64 bit. Then the rule about integers is lifted to not depend on the size of the CPython integer. Instead, (int, long) is allowed. All overflow checks are (must be) changed to check an explicit range.
This is work in progress, just the proof of concept.
-
Small cleanup (eg test_all.py) Changed the int argtype in opimpl
-
Translation fix.
-
Fix position: no changes before the dash bang ;-)
-
some adjustments, works so far. The situation is still buggy, needs more tests.
-
Fixed ovfcheck, intmask and the objspace wrap Also: lessened other checks to allow for long types in place of ints
-
Factored out code to check for int bounds, and changed some checks
-
slowly becoming independent from sys.maxint
-
first test passes (ugh)
-
some things are hard, see comment in test_ll2ctypes.py
-
improve log message when building using the makefile
-
stop copying the header files to the usession directory, but use the default location
-
(arigo, bivab) fix a stack alignment issue that was triggered when calling the malloc_slowpath in the GC from the JIT
-
Making much progress with win64 and test_ll2ctypes. Compiler configuration works with Visual Studio 8.
Checking in since there might be a problem in PyPy that is dependant of the test selection both on 32 and 64 bit. test_arrayofstruct seems to fail at assert a1[2].x == 102 result is always array[0] which is 100. I will check the trunk first before reporting an error.
-
(cfbolz, bivab) remove redundant and probably wrong method that is already overwritten a few lines below
-
fix translation error
-
fix translation problem in JIT generation
-
Comment about a potentially much better solution.
-
test_ll2ctypes.py works, only test_errno not yet. temporarily disabled for win64.
-
first attempt at CINT back-end
-
Annoying bug, presumably in ctypes on win64. test_ll2ctypes.py test_get_errno 32bit always ok 64bit py 2.6.7 ok 64bit py 2.7.2 breaks
contimuing with 2.6.7 for now. (grumble)
-
korr. of message. win64 works with py 2.6.7
-
go back to a cppyy demo
-
the interface changed
-
(arigo, wlav) make offsets elidable functions for caching
-
(arigo, wlav) cleanup of array converters
-
(arigo, wlav) allow pointer assignment on data members
-
(hager, cfbolz): this should fix the fast path ffi call again
-
(hager, cfbolz): two careful promotes
-
(wlav, arigo) Support the simple case of direct_ptradd().
-
(cfbolz, wlav) 64bit support
-
fix translation
-
call_i implementation for cint back-end
-
basic memory ownership rules
-
load 32-bit constants in two instructions
-
try to make sure the stack stays aligned when using saved_registers
-
unskip this test
-
make the backend work with the merged changes so that the tests can run
-
implement cond_call_gc_wb_array
-
tests of and support for operator overloading
-
can't promote strings
-
(cfbolz, wlav) fast path implementations and removal of jit.dont_look_inside
-
add operatorsDict.so to makefile
-
(cfbolz, wlav) do not free returned char ptrs
-
implement call_release_gil
-
fix rtyper error and proper bindings of instance data members
-
(cfbolz, wlav) fix bool casting
-
fix tests
-
add propper names to functions generated for the register allocator
-
translation fixes
-
fix rtyper error
-
translation fixes (all rawobject now ccharp for benefit of direct_ptradd)
-
(cfbolz, arigo): write a test that runs the jit on cppyy directly without translating the full interpreter
-
(arigo, cfbolz): use a driver instead
-
refactoring and another attempt at ccharp vs voidp consistency
-
(arigo, cfbolz, wlav) fix test for 64b mac
-
make life a little easier testing on Mac
-
add a promote and a test for it
-
restructure reflex calling for integration with cint
-
(arigo, cfbolz): refactor away the invokes and replace them with Overload.call with a slightly strange set of arguments:
- first argument is this or None
- second argument is the type of the result or None
-
(arigo, cfbolz)
Kill construct().
-
(arigo, cfbolz): fix pythonify and test_zjit to use the new interface
-
add default ctor for CINT usage
-
further progress on CINT backend and some Reflex backend sync
-
test fix
-
translation fixes
-
fix test_gc_integration
-
reflex c wrapper cleanup
-
(arigo, cfbolz): refactoring: pass a bit everywhere the subtype that should be used for resulting W_CPPInstance instances. This makes it possible to not need a wrapper on the Python side any more.
-
(arigo, cfbolz): simplify
-
(arigo, cfbolz): make some things not subclassable
-
simplify things, clean up some of the immutable hints
-
fix for const functions and hack around ellipses
-
start of new benchmarks
-
update benchmark to have a TApplication as per ROOT rules
-
fix
-
add a check for the size of the value stored in size
-
some makefile cleanup
-
coding convention consistency
-
make CINT back-end work for test_cppyy
-
enable global and now mode for dlopen
-
new fragility tests for better error reporting
-
more error reporting improvements
-
update to new interp interface and bench for PyROOT
-
rules for compiling .cxx in generated makefile
-
bench02 code cleanup and test of bench
-
improved error reporting for unknown typed data members
-
benchmark dictionary additions
-
Fix compiler warning and conform to the new treatment of single floats.
-
- add fix to genreflex patch to allow proper code generation for inner union
- more hsimple bench mark fixes
- add fix to genreflex patch to allow proper code generation for inner union
-
hsimple benchmark improvements
-
further progress on CINT back-end
-
force RTLD_GLOBAL
-
make cint back-end work for test_operators
-
public function renaming and a better way of loading dictionaries globally
-
C++ and typo fixes
-
From Rolf Aaij: test for a problem with basic_ostream instantation; And a fix for said problem.
-
translation fixes
-
Remove elidable_promote that made the translation choke.
-
(roel aaij, wlav) add test files for std streams
-
CINT back-end support for test_datatypes.py
-
make namespace lookup work for CINT back-end
-
enqueue del (needed to get past new check in pypy/rpython/rclass.py)
-
add FakeUserDelAction for zjit test
-
test that a trailing underscore is allowed in class names
-
void pointer passing and addressof() operator
-
added bind_object method
-
name fix and added assertions
-
more JIT friendly capi
-
put elidable back on offset calculation for data members
-
unskip and fix a previously failing test
-
test and fix for issue 850
-
Backed out changeset 7fcfab9f332d, it belongs to default
-
backout 3719dbebe35c, it belongs to default
-
refactoring of capi and CINT backend fix
-
advanced tests setup and template support in CINT backend
-
o) support for virtual base offset calculations in CINT backend o) some refactoring in Reflex backend
-
void** and void*& support for CINT backend
-
fragile tests now work with CINT backend
-
a branch to implement a JIT friendly struct type in _ffi
-
implement FFIType.sizeof(); put some test logic into a base class
-
start to implement _ffi.Structure
-
split the implementation/tests of W_FFIType and W_FuncPtr into two separate files
-
introduce the concept of _StructDescr, which describes the layout and ffitype of a structure
-
store also the struct name in the descr
-
don't store the name on the struct descr, but make it accessible from the ffi type
-
move _ffi.Field and most of compute_shape to interp-level
-
bah, forgot to add this file in the previous checkin
-
make it possible to allocate a struct, and set/get fields on it. The only supported type is 'long' so far
-
move the code to get/set arbitrary struct fields to rlib.libffi. Eventually, these two functions will be recognized and optimized by the JIT
-
disable this check for now, or else it won't translate
-
fix import
-
bah, apparently interp2app functions cannot be class methods
-
turn the interplevel KeyError into an applevel AttributeError
-
this method is elidable
-
fix the result of a bad rebase
-
rpython fix
-
make it elidable_promote, it should completely optimize away the offset/type lookup
-
we can't promote strings
-
turn type handles into rffi.LONGs to make sure they're opaque
-
fix link issue with CINT backend
-
refactor the interface for struct_{get,set}field. Now we pass the ffitype at runtime, and the values are handled as lltype.Signed. struct_{get,set}field take care of doing cast of the correct LLTYPE
-
fix the _ffi module to use the new interface exposed by libffi
-
implement fielddescrof_dynamic for the llgraph backend
-
add a JIT optimization which turns calls to libffi.struct_{get,set}field_* into {SET,GET}FIELD_RAW. optimizeopt unit test are coming in the next checkin
-
add optimizeopt unit test for the struct_{get,set}field optimization
-
another unit test for when not to optimize
-
implement fielddescrof_dynamic for the ll backends
-
fix translation by iterating only on the types which are known to be integers
-
object identity conservation
-
add missing import
-
ignore fast path for now
-
(arigo, bivab) update backend to acknowledge the change in the interface of rewrite_assembler
-
implement exception propagation and checks for failed allocation
-
test fixes
-
small fixes
-
fix for exception propagation
-
fix tests
-
refactor regalloc_mov, create separate methods for different casese and add tests checking the generated instructions and also add tests that check that the not supported cases raise an error
-
add more tests for unsupported cases when moving between locations
-
also support REF types
-
test and refactor mov_from_vfp_loc
-
refactor and test mov_to_vfp_loc
-
refactor and test regalloc_push
-
fix tests
-
test and refactor regalloc_pop
-
fix test
-
fix translation
-
extend call_assembler tests to check the fail_descr_number and ensure it is non-zero in the tests
-
there was a word missing here
-
(arigo, bivab) refactor a bit and fix decode_inputargs when checking spilled floating point values
-
set the name of generated functions for floatint point operations
-
update comment
-
implement getinteriorfield_gc and setinteriorfield_gc
-
add cast_ptr_to_int and cast_int_to_ptr
-
add some asserts
-
fix an error when setting and reading float fields from an object with a large offset
-
forgot to add these methods
-
implement merging of comparison operations with following guards
-
merge guards with cmp ops for floats
-
add missing not_implemented implementation
-
fix test
-
add names to the functions generated to emit code in the assembler
-
add functions to merge unary cmp operatios with guards
-
special case xrange without any step specified
-
test ensuring xrange iterator only produces a single setitem
-
continuing win64
-
add condition codes for unsigned lower and unsigned higher or same
-
add some more tests for intergers and guards to cover unary and unsigned cmp ops
-
remove the inverse argument for the register allocation of cmp operations and use the correct correct condition flags for uint operations
-
refactor a bit the generation of functions that emit code for cmp operations
-
disabled errno check on win64 and py 2.7.2 - ctypes bug
-
added file to memorize things to do.
-
temporarily disabled import of rwin32
-
coming closer, 49 tests passed, 16 failed in test_typed.py
Failing: test_memoryerror test_unichr test_UNICHR test_list_indexerror test_long_long test_int_overflow test_int_floordiv_ovf_zer test_int_mul_ovf test_int_mod_ovf_zer test_int_unary_ovf test_float2str test_uint_arith test_hash_preservation test_range_iter test_float test_ovfcheck_float_to_int
-
adjusted the overflow checks
-
Adjusted 'long' in most c/src files, but tried carefully not to mix up things where CPython is involved.
-
reverted a few changes which cannot take external macros
-
modulo 4 tests (flot/unicode conversion), it all works. Renamed stuff to 'Signed', 'Unsigned' after a suggestion from Armin.
-
corrected the formatting of constants. Pretty hackish by a small function that replaces L with LL, but very local and obvious.
-
simplified primitive.py by using the types 'Signed' and 'Unsigned' which are defined in g_prerequisites.h
-
a little bit of comments for me ;-)
-
got one of four things in test_typed.py to run. It is rffi related, the others probably as well. I want to add more structure to PyPy. Things like rffi should not be compatible with the target system at all. I would like to introduce explicit conversions, for every type. That would need some effort, but make an 'up-lifting' to a more OS independent build system much easier.
Will elaborate on this, tomorrow.
-
removed the last bug from test_typed.py ehich is not related to rwin32.py buggyness
-
all errors are gone from test_typed.py. This was a major hassle during the last two days. I was hunting an error which was caused by the rfficache. On windows, it is hard to see any difference between compiler configurations. All environment settings are identical. At the moment, sys.maxind is the only thing that distinguishes the platforms.
-
re-enabled rwin32
-
re-enabled rwin32
-
ll_os.times() works now
-
ll_os.utimes works, too
-
test_chdir is fixed now for win32
-
all of test_ll_os works now (more than before is started win64 ;-)
-
test_ll_os_stat works now as well
-
test_ll_os_stat works now, too. Hint: never assume 'c:\temp' exists. Use the environ!
-
test_ll_time: test_time_sleep works
-
test_posix: test_open works
-
test_posix: test_isatty works
-
fixed ovfcheck, which needs to skip symbolics. This caused 50 or more gs tests to fail
-
move this test at the end, after the ones which directly operate on StructDescr
-
small refactor, and add a failing test
-
copy the logic to cope with field alignment from _rawffi, the failing test now passes
-
add unit tests for compute_size_and_alignment; the last ones fails and are commented out for now
-
adjust the total size according to the alignment: this makes more tests passing
-
build the TYPE_MAP dictionaries but preserves the list: this is because we want to avoid key-clashing (e.g., on 32bit rffi.UINT: ffi_type_sint is overwritten by rffi.LONG, because _signed_type_for(LONG) returns ffi_type_sint32)
-
add support for getting/setting signed values other than long
-
make sure that we properly convert a sbyte >= 128 into a negative value when we set it. This requires to change the TYPE_MAP_INT in clibffi.py, which was wrong before (rffi.CHAR is unsigned, not signed)
-
make sure that we correctly handle the app-level-long to interp-level-slong conversion
-
(antocuni, arigo around): correctly truncate all the values to a Signed"
-
add a test for shorts
-
add support and tests for unsigned types
-
add low-level support to get/set (u)longlong fields in libffi
-
add a new space method to truncate longlongs, similar to space.truncatedint
-
add support for longlongs at applevel
-
add an XXX so that I hopefully don't forget this :-)
-
rename space.truncatedint into truncatedint_w, and move the corresponding test to test_objspace
-
Make rarithmetic.longlongmask() translatable.
-
gc inspector works
-
these two functions are not_rpython
-
(antocuni, arigo): this is probably how the test was meant to be
-
make sure that these two finalizers are lightweight
-
low level support for float fields
-
kill duplicate test
-
applevel support for float fields
-
low-level support for single float fields
-
applevel support for single float fields
-
add support for char/unichar fields
-
fixed test_compute_hash
-
fixed rbigint
-
fixed test_rerased to show only the single error which it apparently had before ;-)
-
low level support for pointer fields
-
app level support for pointer fields
-
crash with a nicer exception if we don't know how to deal with this type
-
typo correction
-
fixed a lot of GC and JIT/assembler word sizes (argh, testing now ;-)
-
This fix looks wrong. The JMP target is still only 4 bytes even in AMD64 assembler.
-
First basic implementation of strategies for SetObjects
-
All tests for setobject are working (but there is still untested code)
-
Cleaned up setobject.py
-
added test and fix for inplace_or
-
added fix and tests for clear and sub
-
another test for discard; cleaned up discard code
-
test and fix for W_SetObject.pop()
-
added test and fix for inplace sub
-
added test and fix for issubset and issuperset
-
added test and fix for inplace_and
-
added fixes and tests for symmetric_difference[_update]
-
fixed eq__Set_settypedef
-
added test and fix for set()
-
refactored initialisation of W_SetObject
-
refactoring: replaced issubset by issuperset
-
replaced more make_setdata_from_w_iterbale by _newobj() and set_strategy_from_w_iterable()
-
added from_storage_and_strategy function
-
W_SetObject not takes w_iterable as init value instead of r_dict
-
added EmptySetStrategy + tests
-
fixed bug in issuperset, more tests, some optimization
-
fixed EmptySetStrategy.issuperset
-
some more optimization
-
added different method for symmetric_difference_update when strategies match
-
fixed bug in determination of strategy
-
added tests for setstrategies
-
EmptySet.add() switches to correct strategy now
-
switch back to empty strategy on remove and clear
-
added intelligent way to treat the different strategies in W_SetObject.difference
-
fixed ne__Set_settypedef
-
fixed mixin
-
another way of creating a frozen set
-
be sure that w_obj is setobject
-
added test for user generated subclass of setobject
-
make sure the annotator sees this as set or a subclass of set
-
space not necessary here?
-
this is the same but hopefully it will satisfy the annotator
-
fixed bug in difference method for objectsets and added tests
-
tell annotator that this obj must be a set
-
satisfying the annotator
-
was not rpython
-
added strategy test for union
-
fix and tests for fakeints in instrategy
-
fix and test for fakeobject in has_key
-
refactored discard/delitem and wrote some more tests
-
added _is_sane_hash to delitem; fixed _is_sane_hash in has_key; added strategy tests
-
Altough the if-part will never be executed in IntegerSetStrategy, the annotator doesn't know what type d is. It could be an int-dict and then d[w_key], where w_key is always a wrapped object because of the getkeys()-method, would degenerate this object to an integer.
-
obviuosly d_obj still could be an int-dict
-
not needed anymore
-
fix in EmptySetStrategy.issuperset
-
implemented new iteratorimplementation (similar to dictmultiobject)
-
only iterate over keys
-
argument must be None to create a new empty set
-
_is_sane_hash was renamed to _never_equal_to_string
-
_newobj moved to W_SetObject and W_FrozenSetObject
-
differentiation between set types happens in W_SetObject and W_FrozenSetObject (more OO)
-
FakeInt is needed for this test class but setup_class is overwritten
-
added tests and fix for unhashable items in combination with EmptySetStrategy
-
make_setdata_from_w_iterable is not needed anymore
-
need to use StopItertion to check for last element in list
-
implemented popitem on W_SetObject
-
fixed recent popitem changes
-
removed/chnaged old comments
-
fixed creating new set based on another set (needs to be copied)
-
removed old comment
-
create set from iterable to check length and use fastpath
-
refactored symmetric_difference
-
refactored difference of setobjects
-
refactored intersection for sets
-
refactored symmetric_difference for sets
-
frozenset does not need to be copied
-
refactored issuperset (no wrapping when strategies are equal)
-
refactored isdisjoint
-
review code. add plenty of XXXs
-
w_iterable must never be a list
-
removed unused methods
-
discard is not needed anymore
-
renamed delitem to remove
-
renamed cast_to/from_void_star to (un)erase
-
we do not enforce EmptySetStrategy for empty sets
-
difference always expects w_other to be a set
-
to be consistent create a set and call difference_update here too
-
reuse set_difference_update__Set
-
replaced w_left.strategy with self where possible
-
when updating empty list simply copy storage and strategy from the other set
-
using a for loop is much simpler here
-
added test and fix for update on empty sets
-
this is already checked in _difference_base
-
do not use getkeys as this is not very efficient
-
maintain invariant that first argument is always self
-
use copy and intersect_update
-
always use issubset instead of issuperset
-
keep the same order for similar methods
-
move objectstrategy case to ObjectSetStrategy
-
give variables some meaningful names
-
replaced getkeys by using iterator
-
replaced getkeys in hash_FrozenSet with iterator
-
this comment won't be needed anymore
-
added methods raising NotImplemented error
-
added docstrings
-
replaced space.iterator with iterator implementation for sets
-
_never_equal_to_string makes no sense here
-
checking for string makes no sense here
-
skip currently not supported tests
-
fix needed for translation
-
unnecessary code
-
fix needed for translation
-
possible fix for translation
-
forgot argument for abstract method copy
-
fixed copy and paste error. SetStrategy needs one more argument
-
one more abstract method fix
-
use the correct dict (here: r_dict for wrapped items)
-
forgot self in method _isdisjoint_wrapped
-
also copy storage of frozenset to avoid changing frozenset in methods like intersection, difference, etc
-
just check for unhashable objects here
-
erasing bug in _intersection_wrapped. added test and fix
-
need to use r_dict when storing wrapped objects
-
more test coverage
-
discard is deprecated. instead we use remove
-
no need to check since w_other is always a set here
-
added StringStrategy for sets
-
added fastpath for not comparable sets (starting with difference)
-
renamed not_comparable to more convenient not_contain_equal_elements
-
this is done with not_contain_equal_elements
-
added fastpath to intersection and fixed not_contain_equal_elements
-
in intersection_multiple start with the smallest to avoid unnecessary comparisons
-
use string strategy when appending string to empty set
-
delegated not_contain_equal_elements method to strategies
-
added fastpath for issubset and isdisjoint
-
optimized intersection_multiple some more
-
added tests for intersection_multiple order
-
referenced i before assignment if others_w is None/empty
-
now we dont reference i before assignment anymore
-
other_w can't be resized
-
what the hell did we do here!?
-
new name for the branch
-
fix test
-
introduce the dispatcher, whose goal is to convert applevel objtects into low-level values based on the given ffitype. Move there the logic that we used in W_FunctPtr to build the argchain
-
kill unwrap_truncated_int, and use the nice space.truncatedint_w method
-
move the logic to wrap the result of a call in WrapDispatcher. Will write the proper docstrings later, now I have to shutdown the laptop because we are landing :-)
-
add docstrings for WrapDispatcher methods; raise a proper applevel exception instead of assert False
-
rename dispatchers into the more descriptive {FromAppLevel,ToAppLevel}Converter, and add docstrings
-
infrastructure to test type_converter.py
-
more tests for type_converter
-
Check in a test that fails (and works on "default")
-
removed a check in r_bigint that creates more problems now than it solves
-
buildbot problem partially solved: sys.maxint is now also hacked when called by the buildbot (which uses pytest, not the test_all
-
oupps
-
make sure arm backend tests are only executed when running on ARM
-
fixed clibffi.py, but win32.c must be replaced, and I don't know yes by what.
-
added the win64.asm source from cpython
-
added win64.asm
-
fix tests
-
improve freeing of boxes in the backend
-
Add a method to allocate a scratch register that is managed by the register manager. The register manager keeps a list of temporary boxes that need to freed before before emitting the next operation
-
refactor _ensure_value_is_boxed to use a managed scratch_register and to not return the box for the allocated location anymore
-
fix test
-
Bah, fix.
-
uh? this test is clearly dict order dependent
-
continuelet support on win64, - something doesn't work, checked in anyway
-
test as_ffi_pointer in type_converter
-
more tests for pointers and strings
-
typo
-
add ARM to conftest and test_random
-
Updating the position of the regalloc to soon when merging operations with the following guard leads to some vars being freed to early
-
_continuelet on win64 works ! There was an old direct reference to windows in rwin32.py, changed it to host_factory
-
(arigo, bivab) remove a reference to boxes
-
(arigo, bivab) remove gcremovetypeptr for the arm backend for now
-
remove another reference to boxes
-
more fixes
-
more unification of int and long
-
cleanup of merge conflicts
-
merge heads
-
bad bad
-
reverted merge with default
-
relevant_environ updated for windows
-
manual merge
-
manual big review of changes
-
forgot this patch for sys.maxint, which has bad consequences. Note that this patch must stay until the end of stage 1.
-
test_zpy works on win64
-
small merge glitch with big effect
-
boehm-gc support for win64
-
Added a line to an outdated doc about boehm on windows
-
Added a bit to commondefs.h about the work in progress. A document about the migration should be added, too.
-
added snakepit to predefined libdirs
-
enabled support won win64 standalone builds
-
a few more int/long unifications. XXX I think this should be replaced by a range checking function.
-
a few more int/long unifications. XXX I think this should be replaced by a range checking function.
-
added explicit _WIN32/_WIN64 defns for nmake
-
Starting stage2 a bit by defining maxint in rarithmetic
-
ignoring L formatting, unification of int and long
-
boehm on win64 without __asm, of course :-)
-
removed a merge glitch
-
fixed int tests to use is_valid_int
-
unification of int/long. Extended is_valid_int by parameter 'force_type=True'. This function should be used in all cases where I changed a check for int to (int, long)
-
typo-typopo
-
changed all checks for (int, long) to is_valid_int. I'm pretty sure that I made mistakes, we'll see ;-)
-
the first glitch, expected
-
three more typos
-
fix of is_valid_int call
-
Some corrections to ll2ctypes. Actually, they did not solve my problem: translator\c\test\test_newgc.py always fails, because some Signed assignment does not match Array of INT, and I still cannot track it down. But maybe the overall error count gets further down and helps locating this ;-)
-
Added a check for is_emulated_long. inefficient: one change for one working test ;-)
-
Backed out changeset: b78a605fb452
-
Backed out changeset: 0bb2bc25fcfc
-
starting to replace sys.maxint
-
fixed mmap.resize for win64
-
merge glitch
-
hacked a bit on ll2ctypes/do_allocation_in_far_regions stopped this, fijal claims it makes no longer sense
-
hacked a bit on ll2ctypes/do_allocation_in_far_regions stopped this, fijal claims it makes no longer sense
-
hacked a bit on ll2ctypes/do_allocation_in_far_regions stopped this, fijal claims it makes no longer sense
-
fix arg to is_valid_int in fakearenaaddress.add
-
removed win32 blocker 'XXX'
-
simple but ugly hack to make 'test_mod_ovf_zer' pass. ovfcheck(x % y) does not help when int and long are unified. So we check on (x // y) but use (x % y)
-
blaming myself about bad ideas. is_valid_int should never raise an exception, basta!
-
fixed test_intobject.
-
as suggested by Armin as a good step:
- pypy/annotation/test pypy/rpython/test
- pypy/translator/c/testtest_typed.py
- translate.py targetrpystonedalone
The output of 3. is still wrong, but the translated program works. Taking a break!
-
refactor check_imm_arg
-
translation fix
-
reverted a bad import of pypy into app_operator
-
this patch makes at least the setup part of test_newgc work. But there is much left, which is probably better corrected via simpler tests. Postponed
-
temp hack. something makes this cast necessary. Find the reason!
-
Fixed a major bug concerning Signed/Unsigned and setup() errors. Finding this bug did cost me over two days. I was not aware that the g_prerequisite.h does not get included into the special Python.h, which I was also not aware of. I have not so much problems finding failures, but setup() errors in masses are a special challenge ;-) Hopefully this changes a lot in the Buildbot output.
-
Implement instance_ptr_eq and instance_ptr_ne
-
a bit of progress with libffi and friends. 16 tests pass, 5 fail. There is still a problem with pointers and sizes...
-
unclear, reverting a change which did not help
-
copy/paste test and doc string from numpy
-
shape matching, output creation implemented
-
add two arg functionality to test_compile
-
fixed smallintobject tests. The type() checks make no longer sense
-
inv(glitch) :-)
-
adjusted the format code of gc (long->Signed)
-
corrected ovfcheck for the final time! ;-)
-
correction to struct.pack and test_gc
-
struct.pack issues with the JIT
-
test_libffi works almost. Only the two byval tests are left for further investigation
-
resolved another missing include_dirs entry, for cpyext. (hit by chance, forgot to disable modules)
-
weird special casing in std-objspace.py::wrap. This function is not even RPython, and I had to inline is_valid_int. Why is this so special? Is that still necessary, or just not changed?
-
Hey, this is the first working pypy win64 ever !!! -O1 --no-allworkingmodules but I think it is the first Milestone
-
(arigo, bivab): move this hack to rmmap and make it a bit cleaner
-
(arigo, bivab): test the presence of INSTANCE_PTR_NE and INSTANCE_PTR_EQ in the backend
-
(arigo, bivab): add instance_ptr_... also in the register allocator
-
(arigo, bivab): clear CPU cache everty time instructions are written to memory and put breakpoints at the locations that are going to be patched
-
fix for renamed class
-
bad merge
-
bad merge
-
experimental approach to dot iterator problem
-
clean compile a bit
-
Backed out changeset: 885d36165f89
-
translation fixes: avoid negative slices
-
add bin_impl_one_dim, would be nice to have some tests
-
add failing test for sum return value
-
need to fix failing sum test before continuing
-
expose promote_to_largest to reduce functions, fixes sum() prod() bug without ruining mean()
-
dot works
-
dot seems to work, more of a proof-of-concept than usable
-
(arigo, bivab): aahhh. Fix an issue with floats that are spilled in a loop and later read in a brigde. Due to an off by one issue the reading was broken in the bridge
-
remove some unused imports
-
fix an issue with the private attribute renaming going on when reading a field that starts with '' and does not end with '' in the context of a class
-
more places where signed_defn.h is missing. Made it easier to add it more often
-
typo :-(
-
fix for GUARD_NOT_INVALIDATED
-
refactor FINISH to directly store all values to the failboxes.
-
translation fix, missing case
-
Reverse this BKPT back to a NOP here, because this is not always patched
-
(bivab, arigo) use constants here
-
(arigo, bivab): write the correct value at the force index in the frame
-
Quite a simplification and improvement: removed the extra mess for signed_defn.h and put it into the standard header
-
small fix to test_libffi
-
Adds numpy.concatenate
-
Changed some variable names and added a couple more tests
-
add failing test
-
Kill duplicate function
-
Fix fail_boxes_count, which is one more than the highest index written. Add an assert checking that the pointer values written are really pointer-like.
-
Sorry, nonsense.
-
merged set- with liststrategies. when initializing a set with lists they can copy the storage and strategy from that list without wrapping the storages content
-
better approach for merging sets with lists
-
remove all ufunc changes, revert to default version
-
clean up to_str a tiny bit
-
clean up to_str a tiny bit (2)
-
(arigo, biab) make sure excetions are saved for call_assembler and call_may_force
-
make the save_exc parameter non-optional
-
fixes to emit_call and call_reaquire_gil
-
Cleanup
-
update backend to new interface provided by compute_vars_longevity
-
implement chages to the frame manager
-
move is_comparison_or_ovf_op to llsuport
-
implement changes needed for target/label functionality
-
fix indentation after merge
-
update compute_vars_longevity and return computed values instead of directly assigning them
-
move the descrs unpacking to llsuport to be shared between the backends
-
in progress: implement the changes to the backend introduced by the jit-simplify-backendintf
-
remove dead code
-
fix indentation error
-
actually call malloc when emitting call_malloc_gc
-
closed branch that went nowhere
-
update some more tests
-
remove assertion, that does not work anymore
-
make sure we get an int here
-
fix tests
-
add a DOUBLEWORD constant to replace all the 2 * WORD
-
remove unused imports
-
rename field
-
write the fail index here
-
move the actual call to assembler.py
-
remove the condition flag from BKPT, which is an uncondional instruction
-
add an alignment check after malloc calls for debugging
-
simplify some conditional paths in the generated code
-
modify stack_locations store position and the offset to the FP. Get rid of the special case for the first slot in the spilling area currently used for the FORCE_TOKEN
-
port encoding of locations used for guards from the x86 backend
-
Add the condition code for always here
-
Use the codebuilder to write the bytecode used to describe the failarg locations for a guard. Also abuse the link register to pass the location of the encoding around.
-
optimization fix
-
added listview_str/int for setobjects to later create lists from sets without wrapping/unwrapping the elements
-
(cfbolz, l.diekmann): restructure some code: the speed hack in FastListIterator is no longer there, so we don't need to use extend here. Also, why was the generator path hidden in _init_from_iterable?
-
added fastpath for initialization of lists with iterables using int- or stringstrategy
-
(cfbolz, l.diekmann) added fastpath for dict.fromkeys with iterable using stringstrategy
-
(cfbolz, l.diekmann) implemented listview_str on dicts
-
(cfbolz, l.diekmann): implemented listview_int for dicts
-
added listview tests for listobject
-
(cfbolz, l.diekmann): added listview_str for strings
-
fixed tests: stringobject has now a listview_str method, too
-
(cfbolz, l.diekmann): added fastpath for dict.keys if keys are strings
-
fixed test: show that listview_str returns None for other objects
-
fixes
-
test conversion to unsigned long
-
add test for chars and unichars
-
add tests for floats and doubles
-
add a test to convert signed long longs
-
add a test for converting unsigned long longs
-
this code belongs to the subclass of type_converter, kill it
-
fix two NameErrors
-
fix for the case in which we return a ulonglong on 64 bit
-
start to use ToAppLevel converter for getting the struct fields
-
migrate more cases to the GetFieldConverter
-
migrate the char case to GetFieldConverter
-
migrate the unichar case to GetFieldConverter
-
migrate the float and singlefloat cases to GetFieldConverter
-
fully migrate the whole W__StructInstance.getfield to use GetFieldConverter
-
use FromAppLevelConverter to handle the conversion for setfields
-
use truncatedlonglong_w instead of manually converting to bigint and then call ulonglongmask
-
(stepahn, bivab): Fix decoding of guard description. Missed a cast before checking the bytecodes
-
Import test from ppc backend
-
little changes to make the jit inline more stuff and optimize the trace
-
added tests for optimized jit output with merged strategy implementations (lists, sets, strings)
-
Implement case of moving a const float to the stack
-
implement as_key method for const float locations required for using const floats in jumps
-
remove a call that was done twice
-
as pointed out by David Edelsohn and Maciej, get rid of redundant calls to list when accessing the list of inputargs of an operation. Also replace all calls to make_sure_var_in_reg with calls to _ensure_value_is_boxes which makes sure that all temporary boxes are also considered as forbidden.
-
fix merge
-
add (set|get)_interiorfield_raw methods
-
print some information when hitting a missing operation in the backend
-
passes a test, needs cleanup
-
move this test to the x86 backend
-
Create a CPU instance for each test
-
kill unused code
-
Generate more debugging information (taken from the x86 backend)
-
Port changes since last merge
-
also remove test_compile_asmlen from runner_test after it was moved to the x86 backend
-
(arigo, bivab) fix for guard_nonnull_class which was emitting two guards. Additionally make sure that the offset is a small enough imm value.
-
(arigo, bivab) refactor guard and guard_token handling a bit and get rid of _arm_guard_pos
-
(bivab, arigo) Add test for an operation that does not correctly emit the code for the guard, i.e. emitting two guards for the same operation
-
give test a proper name
-
add setitem, getitem to flatitter
-
(arigo, bivab) update the fail_force_index when failing a guard
-
just reuse what we have (evil laugh)
-
an example of failing test
-
add REVIEW
-
mistake?
-
use the parent iterator
-
correct test for missing == operator, un-skip failing test
-
refactor and rework, still need more tests
-
whoops
-
progress
-
test for slice of transposed array fails
-
(arigo, bivab) make sure to pass a zeroed pice of memory to failure_recovery_func when forcing for the area where registers whould be stored.
-
Add a test to make sure that cpu.force uses a zeroed piece of memory as the area where the registers should be read when restoring the values to the failboxes
-
(arigo, bivab) implement the BLX ARM instruction to branch to an address stored in a register
-
(arigo, bivab) refactor the code used to make calls to handle more work in the register allocator and perform calls only using locations.
-
(arigo, bivab) Add a test that checks the behaviour of calling functions stored in boxes
-
(arigo, bivab) add support for calling functions using indirect calls
-
forgot to kill this line
-
Forgot to pass the condition flag here. Argh!!
-
off by one error when extracting call arguments in guard_call_xxx operations
-
start working on a branch that moves back stuff from interp-level to app-level
-
add count_reduce_numbers
-
Add missing files, to progress, we need out attribute (Which is pointless on pypy btw)
-
rebinding is a bit harmful for now. Let's not do it
-
change rebindings, nonsense
-
shuffle stuff around
-
syncronize pylib and pytest with current hg versions
-
resuffle the code in pypy/test_all.py, so a ./pytest.py run will not confuse at collection time
-
switch pytest.ini over new option name
-
add 2 missing init.py files so those test files can be discovered correctly
-
add true divide
-
implement keepdims=True
-
a bit of shuffling until all the tests pass
-
fix one more test
-
translation fix for test zjit
-
teach testsupport tests about reports now coming in unconditionally
-
implement copy kwarg
-
import var/std, figure out extra kwargs for reduce
-
Make dict.pop RPython.
-
use funcargs in the testrunner test to ease having recoverable output
-
fix the remaining testrunner issues
-
start adding necessary things for using applevel str and repr
-
Start working towards ravel and applevel array_string, nothing works!
-
A branch to merge CPython 2.7.2
-
remvoe debug cruft
-
need to rethink getitem, setitem
-
fix bad test
-
add failing setshape test, fix for test
-
Install CPython 2.7.2 version of the std library
-
Merge 2.7/ recent changes to modified-2.7/
-
List a test that was recently added, otherwise the test suite won't run :(
-
Fix method used to find cjkencodings data files
-
Respect subclasscheck when rebinding a method to a more specific class. This change is needed to make OrderedDict() work at all, but it may have unexpected performance impact.
-
Undo the previous change, and just add "allow_override=True". This fixes the cases when an old-style class in involved.
-
fix JSON tests
-
Fix for time.mktime, -1 is a valid return value in some cases.
-
Change to the new exception for bytearray().pop()
-
CPython issue11391: Fix a mmap crasher
-
test_ssl: Correctly use the helper function to find data files
-
Fix our copy of "sysconfig.py", which I broke during the merge
-
Fix edge cases in float.mod
-
Added in the new behavior for RawIOBase.readall, if read() returns None then readall() also returns None
-
Implement CPython issue5057: do not const-fold a unicode.getitem operation which returns a non-BMP character, this produces .pyc files which depends on the unicode width
-
Update _ctypes_test.c from CPython 2.7.2
-
json: Rename some functions in our pure-python implementation: in CPython, encode_basestring() is supposed to add double quotes.
-
Allow both str.add to raise TypeError or return NotImplemented.
IMO the point of the test is to check that str.add does not crash or use str() instead.
-
Fix for mmap when trying to specify an offset that's past the end of a file.
-
CPython Issue #12100: Don't reset incremental encoders of CJK codecs at each call to encode().
-
Buffered IO retries read() and write() when the raw stream raises errno=EINTR.
-
redo, add lots of tests, some still fail
-
add more tests
-
Remove unreachable statement referring to nonexistant variable.
-
Remove unused import.
-
Remove unused local variables.
-
Fix old-style raise statements (illegal in Python 3, ugly in Python 2)
-
Add a comment making it clear this file is modified, for license compliance.
-
Failing test for issue 996
-
Do not call statement.reset() after executing DDL.
Fixes issue996.
-
Add an assert, as requested by Alex.
-
correct faulty tests
-
Move these three functions at interp-level: potential threading issues if they are written at app-level.
-
Try to be more careful about free()ing this in case something fails.
-
added test from numpy docstring
-
Improve the docstring and re-export weakref.ref() under the name pypy.rlib.rweakref.ref().
-
Fix multibytecodec incremental tests: ensure that .encode(final=True) is always called at the end. Also have MultibyteStreamWriter.reset() call .encode(final=True) to flush the pending bytes.
-
Test and fix in mixed read/write/seek/write operations
-
The underlying stream of a BufferedIO can call arbitrary code, or yield to some signal handler; protect against reentrant code.
-
minor improvements
-
a test commit
-
add another test commit
-
This file belongs here for now
-
Get additional compiler and linker flags from the environment (rather than ignoring them on linux, and replacing the required flags on freebsd)
-
a, b = space.unpackiterable(w_obj, 2) is not supposed to raise ValueError
-
Debian kFreeBSD uses glibc
Check for sys.platform.startswith("freebsd") when the check is for FreeBSD's userland and 'freebsd' in sys.platform when the check is for a FreeBSD kernel.
-
Test hangs on kfreebsd
-
bump rev no
-
issue1017: In non-blocking mode, read() should return None instead of raising EAGAIN.
-
Make numready less horrible.
-
implement isnan/isinf
-
disable things we don't support
-
a dumb implementation of isna
-
hooray applevel print works
-
move test and make it pass on CPython. besides, trick numpy into believing it's numpypy when running with -A on CPython
-
Avoid a AF_UNIX path that's too long
AppTestSocket.test_unix_socket_connect tries to connect to a socket within TMPDIR. TMPDIR can be quite long, and socket.bind() is length limited, so chdir and use a relative path.
-
inversion and don't swallow exceptions too much
-
Test and fix for "Ambiguous low-level helper specialization" when the same RPython program contains several calls to start_new_thread().
-
Deadlocks occasionally -- why???
-
attempt at faster getitem, breaks setitem
-
enable even more tests on -A
-
seems to be necessary for running continuation stuff
-
setitem, getitem work, add failing tests for comparison ops
-
remove debug cruft
-
progress on take
-
a test and a fix for boxes identity
-
added signature, all tests now pass
-
translation passes
-
Add some reprs to Symbolic subclasses, and show them in the error messages.
-
Fix.
-
remove some XXX and update some comments
-
implement the BX operation for jumps
-
backout b2fff2c474ff
-
Backout 839659291f03
-
refactor test_compile_asmlen a bit to make it work the ARM backend
-
Add methods and attributes required for test_compile_asmlen in the ARM test clases
-
move code a bit around to make things clearer
-
refactor call_assembler to use conditional_execution and the B instruction for the relative jumps
-
kill unused code
-
add spaces
-
replace a conditional jump with conditional execution
-
remove redundant saves
-
add more checks for floating point support
-
remove unused import
-
add asserts
-
review
-
skip that test
-
take for 1d arrays
-
more tests
-
least effort take for no axis
-
more tests
-
proper error
-
basic compress + fix a weird bug
-
compress support
-
cheat a tiny bit. One test passes (we have to export any and all though and implement axis there)
-
expose name
-
pfff
-
make sure it works on multidim arrays as well
-
start implementing iter
-
obscure dtype equality
-
import to_coords from numppy-flatitter branch and modify it. Thanks mattip!
-
rework next_skip_x, there still is an AnnotationError
-
item, basic support
-
make tests pass with -A and return scalars on zeros(()). A bit hard to test without is_scalar, but zeros is going back to applevel at some point soon
-
a test and a fix
-
make the unsupported case applevel
-
rename wrap to item and merge with tolist. Improve item() and test
-
Fix dtype.eq
-
oops
-
make this method RPython
-
simplify targetnopstandalone
-
a pretty important fix for item and more tests, bad fijal
-
soem rpython fixes
-
fix translation?
-
another fix?
-
cheat
-
fix dict.pop() in RPython with instances.
-
revert this part of the change, ti's wrong
-
fix test_base
-
cleanup merge, add failing test
-
no longer needed
-
fix for z_jit test, now passes
-
add iter test, more to come
-
better organization, and show data for numpy.generic as well
-
use a .html extension
-
more tests
-
failed attempt to redo compile.py
-
an absolutely crucial test
-
fix the wrong name
-
finish the test
-
implement take for test_compile, also be more explicit about wrapping
-
write a jitdriver for take
-
Bah, Windows fails on another place that raises the same message.
-
increase test coverage
-
add jit_merge_point s, add tests for them, tests fail
-
fix tests
-
fix tests
-
a few missing tests
-
move around a very useful comment
-
close merged branch
-
remove cruft from type.py
-
remove print
-
Don't use import with lots of arguments, it can results in double imports and other silly stuff.
-
cleanup
-
forgotten file
-
make flatten use ravel, remove previous version, improve tests
-
remove an empty test
-
clean up scalar reshape and ravel
-
close merged branch
-
improve fake objspace and fix translation
-
Tweak to ignore all Symbolics, not just some of them, by ignoring the TypeError when trying to compare them with small numbers.
-
Fix: keep the original special-cases. Needed at least for ComputedIntSymbolics, otherwise they might force computation of their value, which is not what we want.
-
Baaaaaah. "Fix" issue1020.
-
a missing space
-
test and fix for cached empty list with deactivated strategies
-
test and fix for cpyext/listobject.py: PyList_GET_SIZE and PyList_SetItem
-
decided that a cached empty list is too dangerous and that is is better to live with a sligthly slower empty list creation than with unexpected behaviour if we are not careful enough with the getitems method
-
cleanup after merge, all tests pass
-
Reduce the number of cases of shadowstack root walking: from 4 (jit/nojit, thread/nothread) to 2 (thread/nothread).
-
(fijal, arigo)
Change the order of the shadowstack processing. We now process it right-to-left instead of left-to-right (it's an array, so "left" is 0 and "right" is the end).
-
CPython Issue #13885 (CVE-2011-3389): the _ssl module would always disable the CBC IV attack countermeasure.
-
A branch to try detection of NUL characters in strings
-
In litsdef.merge(), perform checks before we start modifying the other read locations. This makes debugging much much easier.
-
The NUL byte is now disallowed in many posix functions. We use the annotator to "prove" that a string has no NUL.
-
Rename to SomeString.no_nul
-
Hopefully fix the Win32 translation, which has just hit the limit of generating more than 256 different instruction variants. Reduce this number by limiting instructions that have the "/..c.." variant to only the most common instructions.
-
Unification: the other unicode operations are not in the list either.
-
these three operations are also rare
-
(hpaulj) Fix startup_hook in readline to work like CPython. Fixes issue950
-
Collect data on flatiter as well.
-
Disallow nul bytes in more functions
-
Fix remaining test failures
-
Add a copy of test_str.py, to be modified
-
Skip check on the error message: pypy's multimethods are quite different
-
tets_socket: Loosen comparison of error messages.
-
Crash earlier and more explicitly if the jit sees an unknown operation (like cast_ptr_to_adr, as win32 builds see now).
-
Don't look inside these functions. (Looking in str_from_buffer() causes anyway the jit to crash on cast_ptr_to_adr.)
-
Add large file support to mmap: 64bit offsets on 32bit platform.
problem: test_large_offset() fails when interpreted, and passes when run on a translated pypy. Maybe a ll2ctypes issue?
-
fix some tests
-
Fix for the new large file tests in pypy.module.mmap.
-
Tentative fix
-
start of REVIEW
-
a small cleanup
-
small cleanups
-
done :)
-
add scalar test to dot
-
Remove the modified email package, we have cjk codecs now.
-
remove unused impot
-
more scalar dot testing
-
(arigo, amaury) pass no_nul to SomeString constructor instead of changing the property afterwards.
- s_list_of_string is now a list of strings without NULs.
-
openssl now passes some tests
-
typo, USE FLYMAKE AND RUN TESTS IT WILL GLOW RED
-
Simplify the code again, now that no_nul is a constructor argument.
-
Add a test checking that the "'\x00' in s" done by space.str0() can be constant-folded if s is a constant.
-
Expose select.epoll() on Linux, even if we are building pypy or running tests with Python 2.5, where the 'select' module doesn't have epoll yet.
-
put Defined in correct place
-
cause test to report Error and not crash testing process
-
expose the current call depth on DebugMergePoint
-
Rename in_recursion to portal_call_depth in the metainterp, which makes much more sense.
-
Added ndarray.{itemsize, nbytes}
-
Fix for 32 bits.
-
this branch is meant to reduce the number of jit merge points required for numpy to one. This should make it easier to do future optimizations
-
good, I broke tests
-
shuffle stuff around so reduce does not need it's own jitdriver. 16 LOC removed WIN!
-
fix and shuffle stuff around a bit
-
axis reduce driver -> trash
-
oops
-
Skip this test on appdirect
-
expose logical ops, not lazy yet.
-
some fixes
-
fix the test, I think it makes sense
-
boring :)
-
shrink test
-
partially revert db27ab55d51b
-
initial implementation of card_marking in cond_call_gc_wb_array
-
use shifted immediate and reg arguments for the operations
-
use more implicit shifts
-
Explicitely use immediate values where possible
-
remove the case where loc_index is an immediate as it does not happen in our case and move the allocation of the scratch registers to the register allocator
-
translation fix
-
remove obsolete imports
-
move get_fp_offset function to locations module
-
improve backend logging
-
insert checks only when running tests
-
rename objdump.py to viewcode.py in arm/tool
-
add a viecode module in jit/backend/tool that detects and imports the functionality (for now machine_code_dump) from the backend corresponding to the current machine
-
Extract names from loop comments that contain parenthesis before the first colon
-
modify the jit log parser to also work with the ARM output of objdump
-
branch to handle "out" arg, first stab at tests and implementation for reduce functions
-
added flatiter.len
-
more casts cleanup and assertions to replace casts
-
o) default function values on fast path for integer types
-
oops, typo
-
Fix.
-
Fixes.
-
Hackish fix for issue978: make sure the virtualizable stays alive across the CALL_ASSEMBLER, by giving it as a useless argument to the GUARD_NOT_FORCED that follows.
(Testless checkin, to see if it works...)
-
Backed out changeset 4033391a3442 ...no, it does not work, because the CALL_ASSEMBLER/GUARD_NOT_FORCED are paired in the backend and the virtualizable still doesn't survive past that pair...
-
cpyext: add Py_DebugFlag
-
str.strip() preserves the no_nul-ness of a string.
-
Hackish fix for issue978, second attempt: insert an explicit KEEPALIVE operation.
-
Fix typo
-
The "str0" check is now optional, and controlled by the option config.translation.check_str_without_nul.
-
Enable check for strings with NUL bytes in pypy translation
-
(amaury_) fix compile-time error
-
When the no_nul check is disabled, correctly transform the signature when the function takes a list of strings.
-
Fish the list item directly, read_item() cannot be called during rtyping
-
declare arguments for c functions, use os.path.sep
-
more os.path.sep fun
-
Fix: always use self.bookkeeper, instead of sometimes having it and sometimes not. This is needed to translate pypy.
-
Fix: even if there are libraries listed, fall back to look in the standard C library if the symbol is not found elsewhere.
-
Fix for "translator/c/test/test_extfunc.py -k exec": don't use remove_no_nul(), which doesn't know what to return if a SomeList is passed; instead, temporarily disable checking for 'no_nul' when comparing SomeStrings.
-
Hack more, by moving the check_str_without_nul at some global level. Now Converge is happy.
-
Fix ll_os module on windows.
-
(amaury_) redefine ASN1_ITEM_EXP
-
Add documentation file.
-
Fix this test.
-
start writing the release announcement
-
a banch to implement record dtypes
-
export few more types and check their mro
-
Document configuration environment variables
Add gc_info.rst, documenting minimark's configuration variables, link into tree. Add cpython compatibility variables to the pypy manpage. Add missing command line options to the pypy manpage. Link the manpage into the document tree.
-
Bump start-line for gc_info in pypy.1.rst
-
fix ugly formatting
-
allow folding subscripts of BMP characters higher than surrogates
-
fix version number
-
intp
-
make those tests pass with -A
-
export longlong and ulonglong
-
expose some more names
-
more tests
-
Fix generation of str/unicode dispatch function for Windows
-
add test for posix module
-
remove improper link flag
-
add 'WindowsError' to base objspace
-
more tests, start to think about intermediaries
-
Add space.unicode0_w, which returns a unicode string without NUL bytes
-
o) integer class mixin o) long integer default parameters for ffi call
-
o) fleshed out mixins for unsigned integer types o) default args supported for all integer types
-
implement byteswap with the hope of being rpython
-
non native dtypes
-
implement array.tostring and figure out we don't need it, add some actual tests
-
exact identity of dtypes is messy. We should rather check for sizes or so. Disable for now
-
slightly more rpython friendly way of failing
-
like this maybe?
-
yet another approach
-
more hacking
-
a small fix to byteswap to avoid prebuilt longs
-
try different specialization
-
yet another approach
-
fix the spec
-
yet another approach (?)
-
another spec
-
screw metaprogramming
-
replace nice solution with ugly-but-rpython one.
-
yet another approach
-
Clean-up.
-
try to cleanup
-
oops
-
fix test_zjit
-
typos
-
Bump version in Sphinx docs
-
shuffle stuff around and implement alignment
-
Look inside RPython generators too.
-
Remove this very old condition. It turns out that nowadays, running a pypy, it triggers only for getenv() in pypy.translator.goal.nanos which is better left out; but it is otherwise pointless.
-
Delete declaration of GC_hidden_pointer.
-
close branch for merge
-
o) make pyflakes happy
-
o) mixin for floats o) combine common mixing parts for floats and integers o) support for float default arguments on ffi path
-
#1033 (closed) -- added truediv to numpy boxes
-
in-progress
-
Fix a typo.
-
work on release announcement
-
export few boring constants
-
Add a module 'numpy' which raises an ImportError giving a detailed explanation. Tweak 'numpypy' to replace 'numpy' when imported.
-
#1034 (closed) -- added rpow to numpy boxes
-
added and to numpy boxes
-
addded pos and invert to numpy boxes
-
added several new methods to numpy boxes
-
update the release announcement
-
somehow document the jit hooks
-
small changes
-
Mention ARM and PPC.
-
(fijal, agaynor) start implementing record types
-
Issue #1035 (closed): os.listdir(someUnicode) returns byte strings for filenames that cannot be decoded by the filesystem encoding.
-
kill XXX I don't think you can read about it anywhere
-
what's not tested is broken
-
(fijal, agaynor) boilerplate - export string/unicode
-
(fijal, agaynor) write test
-
put all the numpy constants in one place
-
unicode and string dtypes
-
fix tests that had gotten out of sync
-
remove an obsolete translation test, import another translation test from the x86 backend and add a conftest option to explicitly run translation tests
-
add missing file
-
fix test_random_mixed in test_jump.py
-
Update shadowstack header according to f0d095a1d379
-
implement changes from 458e381ff84d
-
added left shift to numpy
-
added divmod to ndarray
-
added rand to numarray
-
rdivmod for ndarray
-
added rlshift to ndarray
-
added ror to ndarray
-
added rshift and rrshift to ndarray
-
added a ton of operators to numpy boxes
-
added xor in a few places
-
review the release announcement. Tiny fixes, and move the paragraphs about the numpypy and py3k funded project in the 'ongoing work' section
-
start writing a test
-
update docs & version
-
I think those are libraries we need on windows for libssl
-
another update of versions
-
minor cleanup
-
o) factored out direct_ptradd o) optimization to only calculate offsets if necessary (w/o guards)
-
a no-progress checkin
-
update docs
-
ignore more ops
-
Added truediv to arrays.
-
expose bitwise xor ufunc
-
rtruediv on numpy boxes
-
datetime.utcfromtimestamp() used to store microseconds as floats.
-
Skip this test on Windows
-
Oops, did not mean to commit this
-
reflow the para and add signature
-
organize imports better, kill a relative import
-
remove now obsolete identity preserving code (the memory regulator takes care of it alread)
-
test to make sure type(this) is checked properly
-
enable test that now works thanks to default argument support
-
removal of spurious tabs
-
cleanup
-
(glavoie, arigo rewrites)
Another change necessary for FreeBSD build, so expat.h and libexpat.so can be found.
-
Fix for d16e4f017733: export pypyjit.PARAMETER_DOCS.
-
Improve the output layout.
-
Packaging under FreeBSD.
-
Skip this import if it fails because of _weakref (transplanted from ffedd17ff570)
-
Clarify this point
-
#Issue 1030: (Akaiten) In _subprocess.py, use ctypes.WinError() to raise a WindowsError with the correct windows error code. This fixes a test in test_subprocess.
-
export typeinfo
-
never create intermediates, add tests to verify
-
expose 'out' arguments, need lots of tests
-
implement void read
-
Remove the pyexpat module in pure Python. Unless someone wants to resurrect it, it is confusing because it is only a Python-2.5-compatible version.
-
cpyext: expose PyClass_Type.
-
progress on storing record boxes (and reading). Not quite working , pdb left where it's left
-
A branch to make dlltool work again: build .so that are not extension modules
-
Fix dlltool: a way to build a .so or .dll which is not a CPython extension module.
-
datetime shouldn't allow float arguments for various things
-
(wlav) fix the error message
-
expose transpose under a yet-different name
-
make record dtypes work
-
fix tests
-
oops
-
fix more tests
-
speedup tests a bti and fix one more
-
fix one more test
-
start supporting array creation not working so far
-
add more ufunc tests, try an implementation
-
now nothing works
-
cpyext: implement Py_GetVersion()
-
cpyext: Expose PyCFunctionObject::m_module
-
cpyext: add PyThreadState_GET as an alias to PyThreadState_Get.
-
cpyext: declare the RESTRICTED constants for struct members, even if pypy does not implement this at all it seems.
-
cpyext: Implement PyFile_WriteObject() and PyFile_SoftSpace()
-
Remove newly implemented functions from stubs.py
-
cpyext: implement PyObject_Dir()
-
cpyext: implement PyString_InternInPlace()
-
Translation fix
-
use type rather than string as dummy return type
-
optimization and cleanup
-
benchmark fix for 64b
-
remove raised OperationError that could be caught at the interp level (speeds up overloads)
-
Fix reference count in PyString_InternInPlace()
-
By default, --sandbox should not use asmgcc.
-
Add some more sign-extending instructions. Two of them were already elsewhere in the list.
-
Add a failing test.
-
Fix test_guard_not_invalidated_and_label on x86.
-
remove gcremovetypeptr from test_zrpy_gc
-
enable tests that check and require gcremovetypeptr
-
implement and enable gcremovetypeptr support in the ARM backend
-
most tests pass, translation demands assert to be removed later
-
cpyext: implement PySet_Pop(), PySet_Clear()
-
cpyext: Expose more fields of Py_buffer, if someone wants to use them...
-
cpyext: add PyUnicode_FromOrdinal()
-
cpyext: implement PyThreadState_GetDict()
-
cpyext: Implement PyDictProxy_New(), as a read-only dict. I don't know if there is a better way; PyPy does not have a separate type for int.dict.
-
Translation fixes in the Oracle module.
-
make checkmodule.py pass with module/oracle.
-
all pre-out_arg tests pass
-
force non-lazy behaviour for ufuncs
-
Fix translation
-
Minor change: get rid of 'frame.nlocals', a mostly useless attribute.
-
typo
-
Patch by djc from Gentoo.
-
(arigo, bivab) remove unused imports
-
(arigo, bivab) mark lseek and ftruncate external definitions as macros
-
(arigo, bivab) Add a comment and assert that sizeof(off_t) is long long
-
minor fixes
-
optimize construction of libffi function for methods
-
remove definition of _all_size_descrs_with_vtable in model.py and revert changes to heaptracker.py
-
skip test_random_effects_on_stacklet_switch if platform is not supported
-
cpyext: fill type slots tp_iter and tp_iternext
-
cpyext: Fix order of slots which lead to the same method name. First Number slots, then Mapping and Sequence.
-
add a failing test
-
(sthalik) add python27.lib to windows build package
-
Failing test for issue 1048 and a passing test of a similar situation not invalving labels
-
sync pylib with 1.7.4 + mattip's patch
-
sync pytest with the 2.2.3 release
-
(sthalik) do not hardcode lib name
-
(sthalik) whoops
-
break the world and then fix it. strides are now based on bytes not on items. saves a mul in test_zjit as well
-
update record dtypes until they match
-
make repr work
-
mark cause of failing test with xxx
-
remove silliness of str_format, make it back rpython. fix test
-
added overload tests
-
o) prepared some more tests for future dev o) std::string returns as python str o) string comparisons
-
allow python str to pass through std::string and const std::string&
-
passing test
-
use optimizer.getvalue instead of accessing values directly (should fix issue 1048)
-
update tests to reflect api change introduced in a6294c0d0f47
-
Add a test for a function in the _demo module. Shows the structure of app tests.
-
cpyext: Fix crash in PyDict_Next when the pointer for values is NULL.
-
numpy: Added ufuncs for sinh, cosh, tanh
-
numpy: add ufunc for arccosh
-
boring. Add support for dtypes. A lot of refactoring, not too much of actual code.
-
boring a passing test
-
fix translation
-
fix the merge point in flat_set_driver
-
how did that slip in?
-
fix those tests
-
one more fix
-
another fix
-
fix test_zjit
-
add BroadcastUfunc iter, more tests pass
-
shape_agreement needs a bit of help
-
progress: move on to binfunc
-
add yet another signature, fix ViewIterator.apply_transformations() optimization
-
clean up gratuitous 'print' in tests
-
translation fix, revert incorrect box conversion
-
This test_datetime doesn't test pypy's own implementation, but just CPython's. Fix.
-
cpyext: add PyUnicode_Replace
-
Clarify or fix these comments.
-
Add a stub implementation for Py_AddPendingCall. It always returns an error for now...
-
Another cpyext stub: PyThread_start_new_thread
-
make sure that ctypes arrays are convertible to pointers, and that we can pass them as arguments in the fast path
-
whoops
-
issue1059 testing
make the .dict.clear method of builtin types raise an error. Fix popitem on dict proxies (builtin types raise an error, normal types work normally).
-
document this difference
-
typo
-
fix test_zjit
-
various translation fixes
-
fixes
-
add a timeout of 600s to tests using pexpect. Timeouts were causing test failures on ARM
-
Also add a timeout to tests explicitly using pexpect
-
a failing test
-
Comment (derived from pypy-dev).
-
fix the assembler names
-
add a jitdriver here
-
make numpy boxes work with str.format
-
Kill this specialization. It's mostly pointless and it gives occasionally headaches because fatalerror() is called from several levels.
(Manual transplant of c1db98c91413 and 8c8b4968177b.)
-
Issue1068: in a pypy translated for x86-32 with SSE2, detect at run-time if we really have SSE2, and if not, abort with a nice error message.
-
sorry sorry fix the translation
-
pff sorry
-
of course a is a pointer
-
Try heuristically to check when running on top of CPython that the arguments of jitdriver.jit_merge_point() have been specified in the correct order. Unsure that all cases are covered correctly, but should mostly work.
-
one more to ignore
-
few more
-
Fix the old 'generation' GC to not use env.estimate_best_nursery_size() any more.
-
Can't use a "for" loop around a jit_merge_point.
-
Fix indexing with numpy boxes. Also remove a long dead test.
-
rules for CINT dictionary generation and easier use
-
resolve a conflict with _multiprocessing (both used the name handle that ended up on W_Root)
-
do not test for fast path if CINT is the back-end as it does not support ffi calls
-
required link definitions for CINT
-
implement calling of global functions
-
cleanup
-
function to identify the back-end (to be used for testing only)
-
required link definitions for CINT backend
-
lazier does it
-
required linkdef for CINT
-
bring CINT backend to the level of the Reflex backend
-
look how list comprehension can be sped up
-
disable this check for now
-
make sure we create only one list
-
Test and fix: skip that test on 64-bit.
-
make sure to flush all _io streams when we exit the interpreter
-
refactor the autoflush of streams: we cannot keep a set of w_iobase instances, else they would be never collected by the GC. Instead, we keep a set of 'holders', which have a weakref to the actual stream. When the stream is closed, the holder is removed from the set
-
store sizehint on listobjects
-
oops, a missing case
-
Fixes. Sorry.
-
Fix.
-
Fix this test
-
cpyext: add pymath.h and a definition of Py_HUGE_VAL.
-
cpyext: implement PyUnicode_Tailmatch
-
cpyext: add PyFrozenSet_Type
-
cpyext: add PyUnicode_GetMax()
-
cpyext: implement remaining Py_UNICODE_IS* functions
-
cpyext: add PyCode_Check(), PyCode_GetNumFree()
-
cpyext: add PyEval_EvalCode()
-
cpyext: implement PyRun_StringFlags()
-
cpyext: Implement PyEval_MergeCompilerFlags()
-
Translation fixes
-
bump the pycode number and the sad case of renaming opcodes
-
disable the code dump. A bit of progress when and how we emit the correct opcode.
-
Backed out changeset b3406c3e63a4
-
backout. not worth having a bytecode without arg
-
redo the reasonable part
-
remove confusing oopspecs
-
removing this was accidental
-
don't init() the builtin modules at space.startup() if they have already been initialized before
-
pass -S to all invocations of py.py in this test, it produces a big speedup
-
ignore IOError()s when flushing the files at exit
-
add the -S also here
-
explicitly specify the encoding. It seems that at least on tannit it cannot find a default one
-
Move the _check_sse2() call out of assembler.setup() and into the very early phases of running the process.
-
handle force_spill operation in llgraph backend
-
Support math_sqrt operation in llgraph
-
Backout 4320ef8d1ab2 and e2ced9ddf804. It's too late anyway if floats are needed as early as the initialization of the GC.
-
Hack differently to have it written as C code running very early. Hopefully fixes issue1068 on gcc. The same could be added for MSVC.
-
(arigo, bivab) Rename Py_dg* functions to _Py_dg* to avoid name conflicts with python2.7 header files
-
(arigo, bivab) Rename Py_dg* functions to _Py_dg* to avoid name conflicts with python2.7 header files
-
extend timeout in these tests too
-
prevent access to reflection info during annotation/translation time (this happens only with the CINT backend, as the dict and normal library are one and the same)
-
get the casts right to allow switching C_OBJECT type
-
still has to use longs for CINT backend, even with protection against using reflection info during translation ...
-
further protection against using reflection info during translation with CINT backend and fixup of test_zjit to handle it
-
Fix test
-
cpyext: Finally found a way to allow subclasses of int! It's even possible to set ob_ival... at least until the object escapes the C function and is seen by pypy.
-
remove sizehint on the list, use instead special strategy
-
o) initialize the ROOT system when using the CINT backend (only use case, really) o) make operator name mapping behave better o) minor refactoring
-
review notes
-
start implementing string boxes
-
let async exceptions propogate
-
done
-
kill these immutable fields, they're mutated in _del_sources
-
Unroll a loop, which allows super() to go through method caches in the JIT.
-
Mark type's mro_w as quassiimmut.
-
A failing test for quassiimmut arrays when used with an RPython forloop
-
Fix for 183a045d52d1: iterate over non-mutated lists using a non-mutating getitem.
-
add more passing tests
-
write a test for BUILD_LIST_FROM_ARG
-
fix test
-
Remove dead code
-
improve the comment
-
use len_w
-
fix name error
-
remove review
-
maybe fix translation
-
maybe fix translation
-
add few hints to make those functions pass
-
c_longdouble is not supported by PyPy. Skip a related test
-
Hack to display again the log of the loop before sending it to the backend, in addition to after sending it to the backend. That's necessary to make any sense of the error if the backend crashes.
-
'typo'. The directory hierarchy created by the test is put in sys.path[0], not [-1]. This test has been silently skipped for ages probably
-
Test and fix. Probably fixes .
-
Try to speed up string's decode escape by using a string builder and appending unescaped text in slices
-
Fixes fixes fixes.
-
Fix and comment.
-
Kill wrong copy-pasted comment.
-
Remove the 16MB boundary logic which is pointless now.
-
Remove again unused import.
-
Test from issue1073.
-
close branch
-
move import outside of function
-
move import to top...
-
refactoring
-
probably no need for builtin vector with new TApplication enabled ...
-
refactoring and cleanup (Reflex backend): the idea is to speed up the slow path by handing out the stub functions rather than method indices; it should also help with stability in the case of additional methods to a namespace (since the stubs don't move, whereas the indices could change)
-
like for Reflex backend, now refactoring to get access to stubs for the CINT backend
-
fix for name matching if a class lives in a namespace
-
Failing test where i73 is assigned twice in the optimized trace.
-
make sure we are only checking one byte in the cond cond_call_* operations
-
there is no need to import the full applevel warnings module to implement space.warn: warnings.warn is replaced by _warning.warn anyway, so just use that instead. As a consequence, we need to make _warnings an essential module, but I think this is fine since emitting warnings is required by some places in the core interpreter
-
Add _Py_ForgetReference(). http://mail.python.org/pipermail/pypy-dev/2012-February/009482.html
-
move wrap_streamerror and wrap_oserror_as_ioerror in a separate file. This is usefult in the py3k branch because we are about to kill module/_file
-
Add a passing test.
-
Phew. A passing test checking that gc pointers are correctly saved and correctly restored around CALL_MALLOC_NURSERY.
-
failing test
-
bah, the name of this class is clearly wrong (maybe a copy&paste)?
-
simplify test
-
Dont import boxes proven constant while setting up the short_boxes and dont use the fallback to produce boxes with same_as if the box was already produced (should fix issue1045)
-
Slight changes of the interface, to make it clear that callers don't expect to do anything with the token --- just check if it's 0 or not.
-
resurrect 3 lost overflow tests
-
ignore also ValueErrors when autoflushing _io files. This is suboptimal, because a ValueError might be an actual bug, but it's the exception which is raised when we try to flush a closed file: this has been reported to happen sometimes with e.g. gzip.GzipFile
-
access to global builtin objects
-
support for global pointer types
-
global variables and pointers for CINT backend
-
fix typo
-
add a way to automatically define gt, ge, le and ne on top of the given lt and eq
-
(antocuni, arigo) simplify the definition of le and gt, to avoid using space.or_
-
(arigo) use directly space.lt instead of going through space.gt
-
in cpython array.array define tp_richcompare, not tp_compare; do the equivalent for pypy
-
(arigo) these asserts are pointless, they are done just above
-
A test specifically for the presence of the LEA at the start of the bridge.
-
try the crashing case first
-
Dont raise OverflowError when resuming from a guard_no_overflow from the short preamble (should fix issue 1072)
-
jittify_and_run: print the repr of the graph eval result, so raw bytes get readable
-
sys.version is a string, so this test has been evaluated to false for ages. Use sys.version_info instead
-
we cannot mix space.{eq,lt,gt,...}: we need to specialize the function
-
Test and fix.
-
Fix the test.
-
testrunner: only do the monkeypatching in scratchbox if its required
-
testrunner: also generate junitxml for each test driver instance
this is meant to give stdout/err later for use in the buildbot
-
Rework a bit the "--help" format, and split the JIT-related help in its own subpage obtained from "--jit help".
-
Small improvement on 64-bit asmgcc: addresses are always multiple of 8, so we can save one bit here and make twice as many values take one byte less.
-
disable those prints for now
-
disable more debug prints
-
make string and unicode boxes instantiatable, but completely unusable
-
fix the merge
-
implement more stuff on fake objspace
-
another stab at getting the bootstrapping right ...
-
oops
-
Speed up cPickle in general and in particular with datetime objects and longs in protocol 2. The general changes include making the dispatch dict key on integers rather than strings and rewriting the load() loop to be more JIT friendly.
-
some renaming attempt
-
maybe fix translation
-
add translation test for select
-
Comment.
-
speed up unpickling of datetime.time objects
-
speed up unpickling of datetime.datetime objects
-
Added call_id to DMPs.
-
skip a test that's definitely not a blackbox one
-
view notes
-
fix for jit hooks
-
work in progress
-
alex, you can make stupid jokes
-
one more missing arg
-
fix some tests
-
slightly cleaner
-
test fix
-
branch done
-
Tentative simplification: kill 'param_depth'. See needed_extra_stack_locations().
-
Fix tests.
-
bah. of course the identity hash and the identity eq are fast.
-
These names are fine, but are bound to conflict with some other name from somewhere else :-( Added a 'ffi_' prefix.
-
cpyext: Steal from CPython the implementation of TLS functions: PyThread_set_key_value and friends.
-
Attempt to fix translation on macosx, which uses a narrow unicode build of CPython.
-
allow inlining into rctime
-
Bah.
-
Fix module init, test init.
-
Complete symbols, streamline code, fix include, whitespace.
-
Implement kqueue control.
-
Implement timeout forwarding.
-
Some build fixes.
-
Various fixes, implement kevent comparison.
-
Make all unit tests pass.
-
Cosmetical changes.
-
Enable kqueue on all BSDish platforms.
-
Add missing test from CPy, fix types.
-
Implement all comparison ops.
-
Closely follow the CPy impl..
-
Correct use of integer types.
-
small cleanup
-
close branch to be merged
-
A failing test.
-
On non-NT platforms, "intptr_t" is defined in inttypes.h. I hope it's a general rule.
-
Variant: another test that fails.
-
unroll this
-
revert this change, it breaks translation
-
fix for profiling of c_exceptions
-
initial support for enums
-
enum support for CINT backend
-
remove tabs from codebase and make test_no_tabs pass
-
make sure ll_os gets imported when running the test
-
switch struct to use StringBuilder internally
-
Can't inline this, the JIT doesn't like it.
-
reorganize rstruct a bit, to be friendlier to the JIT
-
unroll this
-
remove warning while running runner.py
-
add case for win32, but shouldn't this be true in the general case?
-
declare pypy_timemodule_setCtrlHandler
-
unroll COPYSTRCONTENT fully for virtual src and dest
-
Bah, another case that doesn't work correctly.
-
Fix the tests.
-
Test and fix.
-
Fix.
-
fix kqueue tests and translation for 64 bit mac os
-
python 2.6 syntax
-
whoops
-
CINT backend robustness
-
make sure that typedefs point to the same python class (this includes a full overhaul of the caching of cpp classes)
-
typedefs for CINT (includes special handling of string/basic_string)
-
fix typo found by rtyper
-
Always return a non-null pointer from PyEval_SaveThread - maybe it's good.
-
prevent infinite recursion on unnamed enums
-
(fijal, arigo)
Improve the error message in one annotation error case.
-
Fix typo in csv module.
-
Start trying to unit test PyEval_SaveThread, but mostly fail so far
-
lazy setup of function returns to prevent hitting the recursion limits when class return types are created
-
prevent infinite recursion on namespace lookups
-
ptr-ptr and ptr-ref return types as ptr returns
-
Some tests that do not work. At all. Wtf?
-
(fijal, glyph, exarkun) Encapsulate cpyext tstate cleanup for tests in a method; fix a bug in that cleanup that made it hard to have more than a single unit test, ever. Port all the tests to be written in C, the language of wonder and beauty.
-
Fix for tests
-
fix test_round_up_for_allocation for ARM
ARM has stronger rules about aligned memory access that make this test behave differently
-
increase timeout for termios tests
-
remove unnecessary imports
-
backout removal of list code
-
backout wrong fix
-
(fijal, arigo) reintroduce oopspecs and optimize newlist_hint correctly in the JIT
-
Found out again why the source I copied this from pushes and pops %ebx instead of listing it in the clobbered registers: on some machines (OS/X 32 for example) gcc complains that %ebx may not be clobbered.
-
Attempt to fix an issue that prevents builds on Mac OS/X 64.
-
a bit more carefully bring back oopspecs
-
fix testas
-
use 'with' syntax for opening file
-
Backport time.clock_gettime from python 3.3 to pypy
-
translation fix
-
this hasn't been problem for a several python versions
-
osx fix?
-
fix for other platforms
-
fix for good
-
#1081 (closed): string.Formatter did not unescape double braces
-
skip tests which require building extension modules
-
clean up changes
-
pfff
-
another fix, I'm tired
-
properly save and restore errno state as thread local
-
add test for last change
-
fix test_dis.py
-
amazingly, test_mmap requires the mmap module
-
Issue #1078 (closed): fixed comparisons between frozensets and dict views.
-
Unroll a function in newformat with constant args. Thanks to Aaron Iles for the patch.
-
add a few unrolls to tuple
-
(arigo, agaynor, fijal) a bit more precise unrolling condition
-
Adding log, log2, log10, log1p functions to numpypy
-
failing tests for floordiv operation
mostly copying these from the div tests
-
add floordiv functionality -- make tests pass =)
-
simplify this assertion -- no need to loop
-
add failing test for rfloordiv
-
make test pass -- add support for ndarray.rfloordiv
also make sure we're supporting int64s
-
make these tests use array comparison, not loops
-
make this test less boring
-
(agaynor, fijal) bah fix translation
-
Use the default encoding in stringobject.unicode_w
Fixes issue1079, a problem in str.join with unicode arguments, and the default encoding set to utf8.
-
Add try/finally logic in test_unicode_join_str_arg_utf8 to fix sys.modules
-
Clean up test_unicode_join_str_arg_utf8 a bit.
-
Implement radians, deg2rad, and degrees.
Fix log2 to only use rpython-available math.log function that uses a single argument.
-
Bah.
-
Export numpy.power and a basic test for it
-
Export numpy.floor_divide and a basic test
-
disable this safety check for Wing IDE, to make debugging less tedious
-
ignore "L" in int repr comparison (win64 related)
-
relaxing int vs long
-
Adding logaddexp and logaddexp2
-
Adding exp2 and expm1
-
Fixing power (int and float)
-
Expose rad2deg (it's just degrees)
-
Adding isneginf and isposinf
-
Add a (surprisingly passing) test for PyString_AsString(PyNone) raising.
According to CPython docs, passing a non-String to PyString_AsString should return 0 and raise a TypeError.
See issue1085.
-
kill some silliness
-
Adding arctan2
-
cleanup unneccessary left-over things in win64 branch
-
Merging the basic win64 changes which are without doubt into default
-
Merging the basic win64 changes which are without doubt into default
-
Support -NAN, which is actually different from NAN. We can tell the difference starting from Python 2.6 with math.copysign().
-
Merging the basic win64 changes which are without doubt into default
-
remove changes no longer needed
-
float('-nan') should really return -NAN.
-
remove changes no longer needed
-
Merging the basic win64 changes which are without doubt into default
-
Added signbit
-
Add isfinite
-
Improve a bit the error message given by marshal.loads.
-
Update SimpleXMLRPCServer.py from latest CPython 2.7 to fix security bug.
PyPy issue1047 / CPython issue 14001 / CVE 2012-0845
-
pylint needs a LIBDIR to be defined. This makes it not crash.
-
Added a test explicitly for true_divide, to convince myself that it's correct.
-
Add fmod
-
isinstance(x, int) -> is_valid_int(x)
-
Merging the basic win64 changes which are without doubt into default
-
merge
-
Temporarily ensure again that "in the normal case" intmask() returns an int.
-
LIBDIR makes not sense on Windows (and is not required by pylint)
-
Add SIGNEDP, needed by a recent change.
-
from Armin: a fix in the windows case which does only show up on windows
-
test_ajit works now in win32 and win64
-
moving changes to intutils to default. Happy :-)
-
a few improvements and cleanups from the merges
-
moving ll2ctypes plus tests to default. Not a trivial thing that works
-
Quite a lot of trivial (hmm, not really) changes merged in from win64. Hopefully I did not break too much. Anyway, it still builds.
-
Introduce a base class hierarchy for string objects.
Hierarchy to be used to pull up shared code between character sequence objects. Currently on generic function specialization has been pulled up.
-
Add tests for unicodeobjects against is* methods.
-
Pull shared logic between str, unicode and bytearray in base classes.
-
Pull lower, swapcase and upper into base class for str, unicode and bytearray
-
o) allow user-defined pythonizations o) fix file access bits
-
fix typo
-
initial attempt at having dynamic return types
-
allow lookup and creation of pythonized classes at the interpreter level to finish dynamic return type implementation
-
example class binding needed for CINT tests
-
"what is not tested is broken": revert one of the changes done in 6cdf4341d56c: since this is an applevel test, we cannot import from rlib
-
Add memory pressure to zlib's compressor and decompressor.
-
Kill geninterp.
-
Intermediate check-in
-
(patch from agaynor) remove this too
-
Redo the support for RPython-level print statements.
-
Kill
-
Remove this temporary sanity-check now that it passes.
-
Ignore a specific test with explanation
-
Fix on Linux64.
-
(agaynor, arigo) Test and fix for setinteriorfield.
-
Make ll2ctypes happier when running backend/x86/test/test_list.py.
-
Fix.
-
Fix test.
-
Close, ready for merge
-
Add bin/rpython
-
xxx temporary fix.
-
Fix.
-
space.wraplong() to have a non-RPython way to wrap a real long object.
-
Revert 53b5e001b4db, we really want an int here.
-
Fix for the CLI and JVM tests.
-
Skip this test if sys.setdefaultencoding() was already removed, e.g. when running with -A.
-
Test and fix.
-
Bah, missing case.
-
Fix for test_py_string_as_string_None, which passed apparently only by chance on 32-bit.
-
Translation fix.
-
Translation fix.
-
reverting a change which is wrong meanwhile
-
a few more trivial changes for win64
-
a few more trivial changes for win64
-
a few more trivial changes for win64
-
some cleanups and removals
-
a few more trivial changes for win64
-
some cleanups and removals
-
some cleanups and removals
-
a few more trivial changes for win64
-
some cleanups and removals
-
factor out the need of passing wrapped types into function calls (note that this also means that test_cppyy.py can no longer use the generic CPPInstance as return type, but will automatically work with the actual type as appropriate; same goes for test_zjit.py)
-
remove now superfluous return type handling and executors' name data members
-
fix bench1.py for new calling w/o needing to pass return type at cppyy-level
-
Bah.
-
Fix.
-
I think the bogus rarithmetic.r_long is not used anywhere. Kill.
-
context manager
-
turn float2longlong into something that creates an llop
-
initial jit support
-
(arigo, alex): x86 support
-
(arigo, alex): randomized tests, and fix to regalloc
-
Complain if make_sure_var_in_reg() is called on a fresh new box.
-
Adding untested code: sse2 detection for windows.
-
test, fix and a bit of refactoring.
-
details details
-
Use a C array to manage freelist items, instead of a Python list; this gives predictable cleanup behavior.
-
fix tests
-
those are done
-
Add debug_prints.
-
Skip these two tests on Windows.
-
rewrite r_rand at interp level: this way we don't need to import the applevel random module which takes forever on top of py.py, and the tests run much quicker
-
tentative checkin to fix a bug which originates in SVN rev 74676, the merge of the py131 branch.
The problem comes when we call gateway.applevel(..., filename=file), which happens e.g. in pyopcode.py. In this case, we overwrote the content of linecache.cache[filename], with the result that inspect.getsource() no longer worked (and e.g. pdb++ was unable to show the source code). The problem got somehow unnoticed because most of the time filename points to the pyc file, so the linecache of the source .py file was not overwritten. However, the problem appears whenever we modify one of these files which contains a call to applevel(..., filename=file).
Fix it by modifying linecache only if the filename is "fake". I'm not sure whether it's useful at all, but at least it's harmless. The comment says that it's needed to show tracebacks, but I didn't find any case in which one of these tracebacks from applevel() code is shown.
Comments welcome :-)
-
Stack allocate the freelist structure, since it can never escape. Copy some other style fixes based on review of the patch for cpython.
-
add test for empty arrays in reshape (MBlume), add fix
-
fix a8f6a9147d27: sometimes we pass an explicit filename but we still want to populate the linecache; this is needed e.g. to display tracebacks of failing applevel tests. Fix it by always populating the cache unless filename exists, in that case we assume that the correct source code is on disk
-
redo empty array fix more cleanly
-
This seems to work, going to merge it into default.
-
This seems to work, going to merge it into default.
-
CLose branch for merge.
-
pythonized indexing and slicing for std::vector-like objects
-
initial improvement of iterator handling; Reflex-only
-
more quite trivial win64 changes
-
removing the type equality condition testing which makes no sense with unified int/long in win64
-
removed some unintentional changes (is_valid_int is wrong in applevel)
-
libffi has a problem with test_byval_result on windows. On win64, this even gives an access violation, also on test_byval_argument. Moving to default since it doesn't worsen the currect windows state -- please can somebody look into this?
-
libffi has a problem with test_byval_result on windows. On win64, this even gives an access violation, also on test_byval_argument. Moving to default since it doesn't worsen the currect windows state -- please can somebody look into this?
-
checking in win64 ll_os.py which is not worse than before: test_utimes fails
-
solved an old win64 rffi issue, finally
-
sorry, I crashed the nightly builds by not providing SIGNED. It is fixed now and seems to work on win32 and win64.
-
add simple (failing) tests for newindex
-
hack in support for [None] to create new index
-
add newaxis keyword to numpy.numeric
-
the name in numpy is actually newaxis -- make sure keywords make sense
-
fix a couple more function names
-
new tests
-
still more tests
slice then newaxis, newaxis then slice
-
mostly working on 32-bit, reslts are still in longs, unclear if that's a bug on my end or I just need to call getfloatstorage in the tests
-
set the -fPIC compiler flag when running on linux for ARM
-
fix for 32-bits
-
make native fmttable use longlong2float for converting stff
-
I disabled the CLI tests after I found out that the linux buildbot don's have the mono framework installed. On windows, it always is there and therefore very boring to get hundreds of errors.
-
I disabled the CLI tests after I found out that the linux buildbot don's have the mono framework installed. On windows, it always is there and therefore very boring to get hundreds of errors.
-
win64 stage 1 is completely synchronized with default. Starting stage 2 soon.
-
win64 stage 1 is completely synchronized with default. Starting stage 2 soon.
-
don't use space.w_NoneType, fixes zjit tests
-
it's a valid int if space.wrap worked I think
-
use more canonical way of comparing stuff
-
fix hashing of complex object
-
implement .byteorder
-
Add an assert and carefully ignore the rest of REVIEW (yes, but not this branch maybe)
-
I think this is enough to make translation work on 32bit
-
there is also 32bit world, forgot
-
Save a word on x86-64.
-
Trivial changes from jit-continulet-2.
-
finally made the timing work under windows, which is probably a fake QPC
-
typo
-
invert indexing in checkops
-
update to gcrootmap.get_basic_shape interface
-
whitespace
-
don't widen floats
-
try to clean up translation
-
(fijal, antocuni) fix translation
-
failing test
-
tabs?
-
this should be a box, not a const
-
Fix for 32-bits.
-
CLose branch for merge.
-
reclose
-
closed branch. again.
-
begin to revive mingw support, allow --cc
-
explicitly state problem when compiler and underlying python disagree
-
kill the run task and related code
-
test_marshal.py was automatically generated, but then was manually modified since 2b1dc35d6317 ("I have no clue why it was written in that strange way." :-)). Kill the original generator, as it's outdated now
-
fix test for 32 bits
-
add the new op to llinterp, fixes tests.
-
Add a comment.
-
Pre-import a few built-in modules, because some programs actually rely on them to be in sys.modules :-(
-
two loops for overload handling; one fast, one for collecting errors, if any
-
enable hsimple.py in its full glory (note that it is now no longer completely CPU-bound, so less useful as a true benchmark, but fun nevertheless)
-
simplification
-
mingw compatability
-
properly map the new llop to the right JVM method.
-
allow CC environment variable to specify compiler
-
whoops
-
better error message, fix for mingw
-
add a comment to explain this test
-
Test for 1c6dc3e6e70c.
-
document and fix for libffi on mingw
-
make rst actually compile
-
clarify
-
update the comment and kill the XXX, this is not really 'temporary' at all
-
remove debugger call
-
implement stack overflow checks in the backend
-
kill struct, array, binascii and _locale from lib_pypy: all these modules are implemented also at interp-level and so this code is very rarely used (only if you explicitly disable those modules to be compiled in).
Fix some tests by adding array and struct to usemodules=[...]. So far they worked "by chance" because the picked the version in lib_pypy.
-
Update "Remove the GIL". The rest seem still up-to-date.
-
add some array_equal tests
-
add module-level asarray and array_equal
-
move array_equal tests to test_lib_pypy, as requested
-
array.py is no longer in lib_pypy, update the test
-
these tests require strut because they use pickle
-
these tests require struct as well
-
struct and array are needed for these tests
-
add struct to even more tests
-
use the array modules; and s/binascii/_functools, because binascii is no longer in lib_pypy
-
we no longer have lib_pypy/binascii.py to get the crc32_tab from. Fish it from module/binascii instead, even if it's suboptimal because rlib should not import from pypy.module :-(
-
add struct here and there
-
lib_pypy/binascii.py has gone
-
binascii is no longer there, use _functools instead
-
add more struct everywhere
-
Update doc about sandbox.
-
another one to ignore
-
add failing test of ndmin parameter of numpy.array
-
make test pass -- add ndmin param to numpy.array
-
test the no-op case for ndmin
-
use the array module only in test_arraymodule, else the other tests start failing for obscure reasons
-
we need to set continuation=True for these tests to work. No idea how could they work before
-
hopefully the last test for which we need to use the struct module
-
the 'run' task has been killed, update the test
-
move unicode_w from W_StringObject up to W_AbstractStringObject; this way, it is automatically used also by ropes, which fixes test_unicode_join_str_arg_utf8
-
fix merge
-
Bah. The code is correct and the test wrong, for a double reason. :-(
-
fix few tests on 32 bit
-
32bit fixes and cleanups
-
cleanup the 32bit situation
-
bah :-(
cpyext rely on some kind of global state which I could not sort out. As a consequence, if you try to instantiate two different objspaces in the same process, the second one explodes.
The only way to make it working is to make sure that all gettestobjspace calls have they very same config: this way, there is a cache which reuses the already-built objspace, so we don't build a second one and things work.
-
Start writing a doc
-
Small fixes
-
kill a relative import
-
a missing hop.exception_is_here
-
test all the things
-
we cannot call self.rand() when using -A
-
On Windows, tests using os.open with mode 0 create a read-only file, which then is harder to remove.
-
Write section about GC.
-
fix a failing test
-
small cleanup
-
fix translation error caused by reuse of self.res attribute by both out arg processing and ToStringArray
-
fix zjit arraylen_gc count
-
v+stuff does not produce pointers
-
remove flags from mmap signature on windows
-
avoid py.path.local problem with empty cdrom drive
-
whoops (amaury_)
-
Section about the JIT.
-
Complete.
-
Backed out changeset: 3e677b357851
-
Backed out changeset: 0993bdbb1d59
-
try hard to package correct runtime
-
If any of these are None, don't export them.
-
Python 2.5 compat
-
remove msvcXX.dll, users should install it independently
-
Typo.
-
Add more tests that don't pass.
-
Regularize the interface by not having the *_update() method return anything. Add comments that each w_other is supposed to be a set too. Fix a typo. Kill apparently unneeded check_for_unhashable_objects().
-
Optimize and fix _convert_set_to_frozenset().
The two cases in copy_real() contain the same code.
Kill a useless special case.
-
Simplifications.
-
Note
-
Fix test_listobject by moving 'w_list.init(space, [])' to the start of the function again, and optimizing it to 'w_list.clear()', which does not perform any allocation if liststrategies are enabled.
-
Performance improvement.
-
I'm sure this is no longer necessary
-
skip this test on pythn <2.7
-
dot does not accept out on new numpy
-
Test and fix.
-
Horrible typo in horrible code.
-
Failing test.
-
- weaken the test as needed for OrderedDict and fix it
- add frozenset support to space.listview*().
- weaken the test as needed for OrderedDict and fix it
-
Extend the test to all types with strategies.
-
Have bytearray.getitem(slice) go through the ll_arraycopy fast path when possible.
-
Close branch about to be merged
-
all asmgcroot tests disabled for MSVC
-
move a loop outside
-
Added the operation for RPython.
-
JIT support, x86-64 now, next 32-bit.
-
Now works on 32-bit. test_zll_stress doesn't work though.
-
o) handle constructors separately, as needed for the CINT backend o) serialize calls through CINT (which uses global variables when calling stubs)
-
do not release the GIL when calling into CINT to allow TPython callbacks
-
re-enabled win32 tests to make amaury happy. win64 still disabled
-
fix
-
same changes throughout
-
runner test for this
-
fix test for 32-bits
-
32bit fix?
-
Make it work with exceptions.
-
Added JVM support.
-
Closing branch for merge.
-
reformat remove tab
-
add a cpyext-related project.
-
Remote a few Unimplemented features that have already been implemented.
-
Unroll some functions in numpy correctly.
-
There is no time2 module.
-
Improve documentation of parsestr()
-
Remove dead code. Q: Where does it come from? A: from CPython: Python/ast.c Q: Why this code in CPython? A: In file Grammar/Grammar, keywords and operators are enclosed in quotes ('def', '+='); grammar.c contains logic to create the various tokens, and separate keywords from operators; probably in old ages the same code was used to parse the Python language as well.
-
o) simplication of exception handling o) human-readable error messages if all overloads fail o) back to 'auto' for thread safety for CINT back-end (still not working as desired)
-
put C++ signature in method doc-string
-
doc strings with C++ signatures for CINT backend
-
really pretty error messages
-
if start - stop <= 0, return a empty string
-
get correct behavior on JVM
-
Add square
-
Add fmax and fmin
-
Exposing invert
-
fix for runicode test
-
wrap nicely
-
Revert 3b13b7c4c388 through 029ef1dd4a1a: this may look like a good idea, but it creates a new path for the JIT, which is problematic in some cases. Reverting unless further discussion justifies it.
-
Bring back 3b13b7c4c388 through 029ef1dd4a1a; fix slicing when stop > start
-
add comment
-
avoid creating another JIT path
-
grammar
-
be more specific
-
cpyext: add support for buffer(array.array)
-
Print the revision in addition to the branch name.
-
Optimization for the JIT: do not escape the frame when seeing code that reads e.g. 'sys.exc_info()[1]' or 'sys.exc_info()[:2]'. The frame would escape only if we read the last item of the returned tuple. Lots of tweaks needed, but at least in the simple cases it should work.
-
Add a test for 42c400cba53a.
-
Fix keepalive issues in buffer(array(..)).
-
change branch name
-
rename branch
-
refactor compiler search a bit
-
validate fp by using os.read in fread
-
always look inside the product - we kind of need it.
-
Fix cpyext after recent changes to the array module.
-
issue1101: Even if only string keys are allowed in type dicts, it should be possible to fetch with a unicode key: str.dict[u'decode']
-
Windows fix.
-
debug_repr() may not be implemented in all subclasses. It's usually a minor bug because it's a useful debugging feature, but still, it shouldn't give us segfaults in the translated pypy.
-
Expose and test left_shift and right_shift
-
Extension to cpyext proposed by Stefan Behnel: PyErr_{Get,Set}ExcInfo().
-
fix translation (?)
-
Backed out changeset ba8760573e6d
-
Fix.
-
Cannot do this testing when running with "py.test -A".
-
Fix the test: the 'len' attribute is now promoted to the common base class W_ArrayBase, which is ok.
-
two missing hop.exception_cannot_occur()
-
Add two new passing tests about calls to string methods.
-
A branch in which to make exception_cannot_occur() or exception_is_here() mandatory in specialize_call()s.
-
Add the logic to detect missing cases.
-
Add some exception_cannot_occur/exception_is_here.
-
A bunch more.
-
More.
-
More.
-
More.
-
Bah. This test used to fail if the current "nice" level is 17, 18 or 19.
-
More.
-
fix for issue #1104 (closed), allow null bytes in certs
-
add a debug repr and a passing test
-
a failing test
-
oops
-
grumble, of course you apply stuff in this order
-
64-bit compat.
-
Disable a test that occasionally crashes because of ll2ctypes not being thread-safe at all.
-
Close branch ready for merge.
-
Export tp_doc.
-
Fix for issue1111: wrap_objobjargproc() returns None in CPython.
-
Test and fix for issue1107: "x in y" must return a bool.
-
Re-add an optimization that was incorrectly implemented and so killed by the merge of list strategies.
-
implement repeat. a tad inefficient, but I could not care less
-
repeat as a method
-
Translation fix.
-
Fix: apply this change, even if it's incompatible with CPython 2.2(!). It fixes an issue reported by adoven on irc. Add a test.
-
Fix for issue1100.
-
Another case: iterating should work if the dict strategy changed "just" because of a getitem. It's workaroundesque but enough, I hope.
-
Same issue and same fix for sets.
-
Fix test_celldict, and translation as well.
-
Same fix on other dict implementations :(
-
groundwork for lazy lookup on namespaces (for now, only for updates)
-
files needed for update-handling testing
-
likewise, lazy lookups for CINT back-end
-
needed for CINT update tests
-
easier use for testing the various executables
-
ignore reflection information by-products
-
o) merge default into branch o) fix on my side the problems due to changes in array
-
adding tests where os.write should fail, add impl of validate_fd
-
finish cleanup of fclose
-
Add trunc, and refactor tests for floor and ceil.
-
an obscure case - hopefully fix the windows annotation
-
disable some features to make group RPython, a fair bit controversial, maybe I should make rgroup iface or so
-
Update trunc to use the same implementation as numpy. Works around some "won't work in pypy" issues.
-
big error message for trying to catch an OSError in rpython tests
-
simplify the test to makes it pass
-
add a test in the proper place, fix failing test
-
make os.utime() subsecond-accurate
-
length_hint basics and some initial iterator support
-
consult length_hint for unknown length iterables
-
add return type to function signatures
-
code cleanup
-
minimark: Tweaks to reduce by one the number of checks in the common case.
-
combine all the mixins for operation implementations and change the assembler setup
-
start implementing the long long support
-
refactor cast_float_to_int and cast_int_to_float using the VMOV operation
-
Add tests for SIMD instructions and fix VORR
-
add llong_to_int implementation
-
implement convert_float_bytes_to_longlong
-
mark test_convert_float_bytes as requiring longlong support
-
fix merge
-
implement the read timestamp operation. But it only works in privileged mode. Bah.
-
disable longlong support until I find a way to implement read_timestamp on ARM
-
backout 20eca32afd29
-
simplify
-
fix float-to-time conversion in windows
-
Try to better support -fPIC compiler option in trackgcroot.
-
translation fixes
-
fix for clock_gettime
-
fix for non-windows
-
bump the version number; this checkin will be cherry-picked in the release branch
-
bump the version number to continue the development on default
-
typo
-
remove inefficient implementation of IntDictStrategy.w_keys and rely on default implementation
-
remvoe unused argument that was only passed in mostly disabled code path
-
the keys method no longer exists
-
add a generic popitem test to the fake space test class as well
-
a branch to try to write a special strategy for kwarg-dicts
-
add a kwargs dict strategy based on two lists
-
make a kwargs dict when calling a function that takes **args
-
limit size of the kwargsdict to (for now) 16
-
add a new space method view_as_kwargs which efficiently unwraps a KwargsDict and use it in the argument parser
-
make empty dicts use this path as well
-
translation fixes
-
more translation fixes
-
- gah, actually enable view_as_kwargs
- also, fix a resizing problem
- fix logic when to look into argument matching
- gah, actually enable view_as_kwargs
-
test that kwargs virtualize nicely
-
a script to update the contributors list
-
be advanced: try hard to parse the pair programming markers in commit logs, and count them in the commit count :-)
-
windows exception on get linenumber, linecolumn after error
-
fix for float('nan') returning -NAN, Microsoft should try to adhere to standards
-
revert console handling to run tests on this version
-
Backed out changeset: da56cef5777d, pypy is OK problem is with underlying cpython
-
add more validate_fd
-
skip test if unable to run
-
fix test, catching raised exception with 'raises' fails on win32
-
windir can be lower case on windows 7
-
sign of nan is not defined, skip test
-
do not use copysign in testing nan
-
force sign to be dfined for testing with float('nan')
-
low lying fruit
-
add check for offset validiy
-
make sure float('nan') does not set the sign bit
-
remove invalid_parameter_handler
-
more precise exception handling (antocuni)
-
sidestep copysign bug in underlying python for test
-
fix test for 32 bit platforms
-
Update logaddexp(2) tests to run correctly under cpython/numpy. The current micronumpy implementation is wrong; fix in next commit.
-
upgrade py and _pytest to current tip
-
remove poll() from select for cpython compatability
-
Fix self translation
-
a failing test for using specialize.memo and specialize.arg together
-
correc the test, still fails (amaury)
-
fix nameerror
-
re-add (again) these files, they are needed by buildbot (I think). See also e12baeb2c897
-
add a point to how-to-release
-
cpyext: Add PyUnicode_Count
-
We don't do that. Those are created automatically from tags. I'm unsure how to make sure they're in a well-named directories.
-
cpyext: Add PyUnicode_Find
-
cpyext: implement PyUnicode_Split and PyUnicode_Splitlines
-
fix include order
-
remove/skip tests that check the sign of float('nan')
-
close file opened in test
-
fix close() and tests for file closing
-
add del, is it ever called?
-
clean up cruft, fix parts of test_mailbox
-
finish test_mailbox
-
allow capitests to find libpypy-c
-
PyUnicode_Split(): support NULL for the separator.
-
help find the library, wherever it may be
-
silence warnings
-
restore files removed by mistake
-
help find import library, silence compiler warnings
-
remove prematurely added function
-
make tests applicicable to windows, fix check_signum for valid values
-
add tests, fix implementation of strftime('%f')
-
fix for translation
-
remove debug cruft
-
Replaced logaddexp(2) functions with the numpy implementations. Tests pass better now!
-
issue1126: document
-
create branch for tracking the unchanged stdlib
-
copy all pypy mods into the stdlib folder
-
import py missing
-
optimize the keys method
-
close before impending merge
-
adapt sandbox interaction test to unified site
-
fix the note on using the stdlib test_set
-
todo note in tool/pytest
-
rework zipfile and test_zipfile to respect open files
-
Fix the test. The issue is not arg+memo. The issue is that you cannot call the specialize:arg function f with "f(i)", even if you just did "if i == 2" before.
-
remove debugging printout
-
unlike for stubs (for which a value type is used), libffi requires a pointer type for const builtin&
-
const builtin& for CINT backend
-
const ref only worked b/c it didn't; 2nd attempt with explicit tests
-
de-tab backend
-
implement convert_longlong_bytes_to_float
-
fix math_sqrt
-
apply patch from upstream that fixes armins py25 issue
-
(cfbolz, bivab): simplify
-
reenable the ability to run stdlib tests
-
fix tests for initial sys.path
-
remove unneeded comment from UserDict
-
revert stdlib test package init to stdlib version
-
test.regrtest: undo the findtestdir change, keep some simplifications for now
-
remove the modified- expectations from test_app_main
-
fix vanilla stdlib ref in stdlib___future__
-
fix MODIFID/VANILLA refs of lib-pypy test
-
remove everything thats not in the stdlib or tells about the version from the vendor/stdlib branch
-
revert hgignore on vendor branch
-
tool.clean_old_branches: use debugsetparents to avoid merge+rm
-
tool.clean_old_branches: dont update/purge for every head
-
add the 3.2.3 version of the stdlib in lib-python/3.2
-
swapaxes for numpypy
-
escape slashes in udir basenames with --
-
speed up jitted lsprof on builtin calls significantly
-
(fijal, arigo) heuristic for unrolling loops, unroll a bit more
-
hopefully a better specialization
-
mmap(-1,...) test and fix
-
fix comment
-
make the path that the JIT cannot see smaller
-
a warning
-
always look into all of _match_signature. This is unsafe, the next commits will pull out the parts that need to be hidden from the JIT
-
move _check_not_duplicate_keywords to the global level
-
oops
-
move dangerous loops from _match_signature to the global level
-
a test that checks that the **args dict that is created is giving space.newdict the flag that turns it into a kwargsdict
-
a test for _dont_jit
-
move another function that could force the Arguments instance to the global level
-
reshuffle logic to make it clearer
-
the test is actually worthless, because it cannot test the actually interesting cases about constant length-kwargs
-
refactor how the _dont_jit flag is computed, and rename it
-
make ArgErrCount take a signature
-
clean up local variables a bit
-
improve comment (which was rather outdated
-
another small simplification
-
restructure a bit more, and add comments what the various parts are doing
-
a **kwargs pypyjit_demo
-
typo
-
a test for view_as_kwargs
-
it still makes sense to make it possible to view a stringdict as a kwargs dict, because the unrolling is much more efficient than going through the generic space.unpackiterable.
-
small simplification
-
make the result of view_as_kwargs not resizable
-
Linux: linking openssl into portable binaries is A SERIOUS MESS and I'm carefully choosing my words. Give up and use static linking.
-
a simple recursive finder of source positions
-
rework get_osfhandle to call validate_fd first
-
experiment with llexternal definition
-
Disable a couple of extra features when translating with --no-translation-rweakref.
-
Add a way to know if the program can use weakrefs.
-
Disable autoflushing if we are translated without weakref support.
-
rework get_osfhandle, begin review (amaury_)
-
more cleanup of validate_fd (amaury_)
-
fix issue 1131: coerce the return value of contains to bool
-
(antocuni, amaury and arigato around): bah, space.bool_w does not work generally. Use space.nonzero instead
-
Check that we get the exact exception raised, not an unrelated TypeError.
-
validate more fd's
-
Fix a crash PyIter_Next() when space.next() raises an exception.
-
cpyext: fix interpretation of the "direction" parameter of PyUnicode_Tailmatch.
-
minimal change to call validate_fd in app_posix.py 's fdopen()
-
fix exception, add test that proves the exception cannot be raised without crashing pypy
-
skip on non-windows
-
(arigo, bivab) remove unused imports
-
(cfbolz, bivab) mark readdir as macro in the implementation of listdir
-
(antocuni, cfbolz around): reverse-engineer what's going on, and document it
-
There is actually another (rare) bytecode combination that makes the position counter go backward.
-
(sbehnel) Improve tests for PyUnicode_Tailmatch
-
fix tests to use translated module
-
don't use the L notation (not supported in py3k), and use a value which is big enough not to fit a word on 64bit cpus
-
don't use the L notation (not supported in py3k), and kill useless print
-
Expand a bit the comments.
-
Comment that it's a Very Bad Idea to make tests pass by adding "if not we_are_translated():" sections. It just means that the same tests won't pass after transaltion.
-
Expand a bit more the comment
-
Argh
-
Fix two more cases that could, in theory, give strange results if 'name' happens to be something else than a string (like some method).
-
add import, fixes issue 1133
-
Ignore PyErr_SetInterrupt() if no 'signal' module.
-
Hack hack more to make the ssl tests pass (at least a bit more) when untranslated.
-
Change the default mapping of the keys Home and End to go to the start/end of the current line instead of the start/end of the whole multi-line block.
-
fix include order
-
clean up test, fix for windows
-
write numpy.where
-
uh typos, untested so far
-
fix debug_repr
-
raise correct error for invalid fd
-
Bug fix in the absence of 'thread'.
-
debugging feature and a passing test
-
Debugging help.
-
start of cppyy documentation
-
cppyy documentation: feature list and short intro to PyCintex
-
oops, python has three >, not four ...
-
cppyy doc: introduction of the fast path
-
cppyy doc: fix typos and a short elaboration on missing features
-
Re-enable this part of the code and fix it.
-
fix test
-
fix test
-
try harder to find export lib
-
add where to compile
-
a passing test
-
cpyext: implement PyList_GetSlice
-
cpyext: add PyObject_HashNotImplemented
-
cpyext: add PyString_AsDecodedObject
-
cleanup stubs.py
-
cpyext: implement wrap_inquirypred() to respect the nonzero slot.
-
be more careful about closing open files
-
dummy op for cpyext/api.py
-
be more conservative in failure of _validate_fd
-
fix translation (@Alex_Gaynor)
-
fix translation
-
Fixes:
-
cannot do bool(res) if res is an INT on 32-bit
-
a return value of -1 doesn't necessarily mean we have an exception
-
-
yet another passing test
-
add a interp level reinterpetation to the failure demo
-
use the reinterp assert mode, so we get inperp level reinterpretation back
-
replace the used_keywords list of bools with a much shorter list that is as long as the number of potentially missing arguments the content of the list is an index into keywords_w
the idea is that scope_w should not be passed into a residual call. that would make it escape, which is bad, scope_w is part of an (ideally virtual) frame later
-
give an error when the predicate of look_inside_iff has a different number of arguments than the decorated function.
-
fix
-
JIT improvements
-
a special strategy for the especially common case of an empty kwargs dict
-
improve the speed of replace_box
after some profiling, it turns out that replace_box takes about 50% of the time spent in the JIT :-(.
In general, the heap cache is quite time-intensive, maybe something needs to be done about that.
-
fix tests: 7 is a valid signal enum on some platforms, rework bad expression
-
(sbehnel) cpyext: Inline the fast path of Py_INCREF and Py_DECREF, to avoid costly function calls.
-
Consider utf16 surrogates when encoding to raw_unicode_escape, like the unicode_escape, but in both case this must be done only in narrow unicode build!
-
better auto-casting support (Reflex only)
-
close to-be-merged branch
-
Failing test for an elidable function with arguments that become pure as a result of the vstring optimization.
-
convert this test to optimizeopt
-
more advanced cppyy exampler: shows the use of a selection file, and demonstrates auto-casting
-
update build instructions for windows
-
revert nt specific test
-
cppyy documentation on how to handle templates
-
add a dispatch method to classes to allow the selection of a specific overload based on its signature
-
translation fixes and extra test to catch them earlier next time
-
assignment from str to std::string and str for std::string
-
doc-strings for global functions
-
Shut off a C compiler warning.
-
An additional test (that fails on CPython too right now). Fix by disabling the optimization of u'foo'[constant].
-
avoid obscure crashes with "has no attribute name"
-
add a hackish tool to get build log diffs from the buildbot
-
No-op change: fix C compiler warnings in certain cases.
-
End even these temporary C sources with an end-of-line.
-
Optimization disabled; see 27558fbd3171.
-
add validate_fd for windows and test it
-
simplify test (amaury_)
-
Fix jitviewer for simple targets which don't set sys_executable.
-
revert some useless changes
-
fix test
-
merge some trivial changes from win32-cleanup2
-
copy os.environ into subprocess
-
commit three failing and one passing test for issue1137.
-
use index if available, or int. should fix this bug.
-
add tests for behavior of objects with either or both int and index slots.
-
Add tests, and write the missing corners (non-translated casts from/to None)
-
In case of typo, the flow object space complained typically like that:
found an operation that always raises AttributeError: generated by a constant operation: getattr
That's very very uninformative. Display at least the arguments of the getattr operation.
-
debugging issue1080
-
these should result in InvalidLoops
-
an rpython-level version of this test to clairify when this kind of traces occure
-
reenable virtualstate matching debug prints
-
Add some comments on why loops become invalid
-
Some more explanations of InvalidLoop
-
log the cause of InvalidLoop
-
got the Custom*Object classes into setup_class, but it's not clean.
now setup_class has a copy of BaseNumpyAppTest.setup_class in it :(
-
Verify that the struct pointer is the same as during tracing before optimizing out a quasiimmutable getfield. This hopefully fixes the inifite_loop bug of issue 1080.
-
the magic incantation to call the base classes setup_class has been found.
-
Fix this test for f6fbfecb93fd.
-
Allow OptPure to be disabled by enabling OptSimplify if it is and moving this assert to the end of the optimization chain
-
Improve rlib.debug; transposed from stm-gc.
-
remove poll from windows, add skip to test
-
correct testing of localtime(-1)
-
cppyy doc, clarifications
-
test that it is possible disable each of the optimization steps
-
When unrolling is emabled OptSimplify should not touch LABEL and JUMP ops
-
some comments
-
use a real correct super call in AppTestNumArray.setup_class
-
Update cpyext C sources with recent 2.7 version. mostly whitespace change, but also
- exarkun's rewrite of the PyArg_Parse cleanup list.
- remove all "#if 0" from these functions
-
Forgot to add this file
-
cpyext: add PyComplex_FromCComplex
-
cpyext: add PyLong_AsSsize_t()
-
cpyext: support T_PYSSIZET struct members
-
cpyext: use a recent version of array and _sre modules in tests
-
cpyext: add PyLong_FromSsize_t()
-
cpyext: Implement _PyFloat_Unpack4() and _PyFloat_Unpack8(). They are used by the py3k version of arraymodule.
-
cpyext: Add PyUnicode_DecodeUTF32()
-
cpyext: add support for PyUnicode_FromStringAndSize(NULL, size)
-
translation fix
-
make setup_class unnecessary again.
-
prevent a class of CINT-specific race conditions
-
make it easier to deal with reflex standalone
-
Kill a method not used any more, and fix the comment.
-
Remove the distinction between handle() and really_handle(), which was there with the comment "JIT hack" dating back to the old JIT in 2007.
-
Remove the duplicate entries (the ones which are not in alphabetical order, my fault).
-
document use/install of standalone Reflex
-
long long and unsigned long long converters and executors
-
likewise (u)llong support for CINT backend
-
If optimization steps are dissabled we might not be able to optimize out the entire short preamble from the end of its peeled loop. In that case, the ops that remains might force the short preamble to be extened with additional ops
-
pep8, swallow exceptions in int and index like numpy and better error when the index doesn't supply a working len, either.
-
fixed the FakeSpace just enough to work again.
-
Optimize out SAME_AS even if OptRewrite is dissabled to prevent unrolling from crashing in that case
-
close before merge
-
cpyext: Fix tests on 32bit platforms
-
use GetFileSize instead of stat
-
replace <> with !=
-
revert unintentional change
-
Small remarks.
-
A failing test: thread._local() objects are immortal as soon as they are accessed by more than one thread, and the threads in question stay around.
-
Fix for the previous test.
-
remove winstuff.c
-
rework test (amaury_)
-
cleanup
-
convert signal_values into dict so in c it will become a set
-
change function name
-
whoops
-
rework fread, fwrite, feof and PyRun_File
-
This is not an optimization that can be disabled but always needed to ensure correct behaviour.
-
If OptRewrite is disabled SAME_AS might show up here and foring arguments of some SAME_AS produced by unrolling might lead to a crash
-
whoops
-
initial support for void** and object** as function arguments
-
refactoring for cleanup and to recover the speed lost for the void**/object** converters
-
further refactoring, seems to resolve the insanity of the except blocks
-
fix compilation error in CINT backend
-
failing test for 667dc968eea6 (plus some)
-
MARK_OPAQUE_PTR has to reach Optimizer.optimize_MARK_OPAQUE_PTR to ensure correct behaviour
-
This way we dont need to duplicate optimize_MARK_OPAQUE_PTR
-
back out changes to lib-python
-
Failing test. With OptRewrite disabled, the resulting trace might contain guard_false(0) which makes the x86 backend crash as there is no TEST_ii (This is starting to get ridiculous: I set out do make a one-line bugfix and 15 commits and 2651 tests later things are still not working properly).
-
Typo
-
Backed out changeset eefc3ac79e9f. We dont want to support disabled optimizations in the x86 backend.
-
An even stronger wording of "don't use this option!", as discussed on irc with hakanardo :-)
-
fix test
-
close branch for merging
-
revert test to pre-win32-cleanup2 version
-
remove winstuff.c from main.h
-
Improve the output of "pypy --info" to follow the style output by translate.py. It still prints all options instead of the non-default ones, but maybe it's not a bad idea anyway.
-
Fix conftest to recognize both the old and the new format of --info, based on a function that parses either.
-
Test and fix.
-
merge messup
-
A failing test about weak key dictionaries.
-
More messy than it looks :-( Will try another approach not involving using RWeakKeyDictionary at all...
-
Tweak again thread._local. Cannot use RWeakKeyDictionary in its current implementation, because of the warning in rlib._rweakkeydict:13. It would mean that the dict of some long-dead threads might remain around for an unknown amount of time.
-
JIT fixes.
-
call close
-
Add a generally useful auto-shrinking list type.
-
Comments
-
Use an AbstractShrinkList instead of this ever-growing list.
-
Use here too an AbstractShrinkList instead of this ever-growing list. Some refactorings are needed because we cannot any more cache by index some entries of the list.
-
(arigo, antocuni): a branch where to try to refactor how the valuestack is handled inside finally: block. Right now two dummy Nones values are always pushed to be popped() and ignored immediately after. Also, it prevent to implement POP_EXCEPT sanely on py3k
-
(antocuni, arigo around): implement this logic for the flow objspace, and rename it to be even more obscure so that it's clear that it should not be used generally
-
close to-be-merged branch
-
kill commented-out lines, and a FinallyBlock.cleanup, which now no longer needs to be overridden
-
only promote step if the argument was not given
-
pickle support
-
Use a single TypeDef for both implementations to keep the lib-python tests happy
-
fix test
-
Skip this test as "implement me later".
-
Skip this test on 32-bit Posix platforms, with an explanation of why. We can test it instead in the C backend.
-
Found out that we can fix the problem with "macro=True" to ensure that the function call is always preprocessed by cpp.
-
Remove this file, obsolete since long ago.
-
closing branch for merge
-
Python 2.5 compat
-
Try to follow exactly the logic of CPython about resizing dicts. In particular it means that small and medium dictionaries are now quadrupled in size instead of just doubled. This might give a performance boost in code that populates a lot of dictionaries. To be seen.
-
release lib-python/2.7 only
-
test version agreement
-
Remove the unused directory lib-python/3.2 from the branch 'default'.
-
umask does not operate on a fd
-
test and fix
-
Improve(?) the fix by saying that the temporarily nonsensical str.join([list-of-nones]) is also returning "".
-
kill print
-
Blind fix (OS/X 64): support full unsigned 64-bit values in the first and last argument to select.kevent().
-
some more support for fakeobjspace - mro of types
-
remove ffitype from the immutable_fields and use an elidable method instead. This will make it possible to instantiate 'incomplete types' whose ffitype is not known yet
-
split the _StructDescr initialization in two phases: instantiation and field definition. This allow to get its ffitype before it's actually complete, in case it's necessary to take a pointer to it
-
add a test to check that we can take pointers to incomplete structures
-
typo
-
Test and fix: uintptr_t is actually unsigned.
-
enforce nonnegative ints here
-
Backed out changeset 063cfdcec5f0
-
Rewrite select.select() to go directly from module/select to the rffi interface without stopping at rlib/rpoll. The code is not much longer, and I think incredibly more efficient (no dicts in particular).
-
Python 2.5 compat
-
a failing test
-
kill support for _rawffi structures and add support for _ffi structures. Some tests fail because we leak W__StructDescr.ffistruct, in-progress
-
resolve the ffistruct memory leak by delegating its ownership to an object which is outside the cycle
-
fix a typo, and initialize one more field for this dummy type
-
don't track the allocation of ffistruct, on cpython it might go to gc.garbage
-
add a test which automatically checks that branches are documented as soon as they are merged. For now, whatsnew-1.9.rst contains empty documentation for all the branches merged since 1.8: everyone please briefly document what the branch did
-
mark this branch as 'uninteresting'
-
add support for reading nested structures
-
s/w_datashape/w_structdescr
-
add support to write nested structures
-
move this comment to the proper place
-
make sure CTR_* signals exist in windows, they were masked by SG_DFL and SIG_IGN
-
document some branches
-
My comments for closed branches
-
document my branches
-
Explain the step-one-xrange branch
-
rpython fixes
-
more rpython fixes
-
kill duplicate imports, and rpython fix
-
restore missing signals on windows
-
kill outdated comment
-
temporarly re-add support for _rawffi structures. This way, it should be possible to merge the branch without breaking ctypes. In the longterm, the plan is to implement ctypes.Structure on top of _ffi._StructDescr
-
bah, missing import and space.wrap()
-
delay the lookup of to_free until it's needed. This should save a getfield_gc in the trace in the common case
-
add a test_pypy_c test for _ffi structs
-
skip these tests on cli/jvm
-
close to-be-merged branch
-
update whatsnew
-
Typo. Mark one of the few branches I did and merged as non-interesting.
-
Run doc/tool/makeref.py.
-
Reject NUL characters in some socket functions (e.g. host names)
-
Fix test_rstr, and probably translation as well
-
Undo 22acacead196 which breaks translation on 64bit (why?)
-
remove unmaintained file
-
skip test that crashes pypy
-
temporary fix, what happened to os.kill?
-
testrunner: add a junitxml merging script
-
testrunner: add the script i used for creating file times
-
refactor this a bit and split few more dirs
-
basic test for os.kill
-
skip this test with -A
-
a failing test on 32bit
-
fix handling of uint values on 32bit
-
add kill to windows
-
add and test GetCurrentProcessId
-
add os.kill
-
compensate for lack of os.kill on earlier host platforms
-
Add a test for 'use_errno' in ctypes.
-
Bah, found this file. Add a reference
-
Fix the package name on Fedora 16.
-
add kill to posix via cheap hack, fix translation
-
revert ll_os, rework importing rwin32.os_kill (amaury_)
-
fix translation
-
Test and fix for CPython's issue952953.
-
Move the imports locally, to avoid always importing all possible GC transformers.
-
fix for mingw on windows (bookaa)
-
document win32-kill branch
-
close branch for merge
-
expose validate_fd via pypy so posix.fdopen can use it
-
move posix implementation of validate_fd to rposix
-
fix linker flags
-
Backed out changeset: af45af09d486
-
After win32-kill branch merge:
- don't import rwin32 on posix platforms
- simplify TerminateProcess error handling
-
Test and fix for issue1132.
-
fix import
-
numpy: tests for hashability of different flavors of ints.
at least on my machine, int8 through 32 are hashable, but 64 is not.
see issue1148 for more details.
-
Bah. Fix test_transformed_gc, which assumes it can override 'transformerclass'.
-
Improve error message
-
give test of spawnve minimal environment to run on windows
-
fixes for mingw (bookaa)
-
fix for crashing test
-
Improve error message
-
add a failing test, so we dont forget
-
make return value consistent, fixes translation
-
easy :) fix for test_filter_bug
-
now test consistently fails on windows
-
remove unreachable code (amaury_)
-
Fix long(unicode, base) with unicode Ropes.
[Problem seen in the py3k branch, with int(str, base)]
-
kill support for passing integers to bytearray.count. It does not work on CPython
-
add test and fix for issue 1153
-
add test for __stdcall, add fix for non-jit
-
fix test for jit
-
release dll after test add WinDLL to libffi
-
fix imports
-
test, add WinDLL in _ffi
-
fix test
-
fix imports
-
Test and fix for RopeString.find
-
fix imports
-
fix import, assert correct exception
-
Most of the cygwin patch (Uwe F. Mayer on pypy-dev).
-
In-progress: streamline the write barrier called by the x86 jit backend. The goal is to try out if a simpler write barrier wouldn't be better after all. The additional motivation is that there is a really, really rare potentially buggy corner case with xmm registers not saved around the write barrier.
-
Fixes
-
Remove 'rex_fw' from two places where it has no effect. Comment.
-
Fix the test.
-
Fix tests.
-
Document.
-
document some branches
-
Fix the test on Linux.
-
support item() on 1-d 1-elem arrays. I could not care less about the performance of this
-
add a passing test
-
unroll this loop
-
Implmenet proper hash functions for the numpy types.
-
Remove the unused pypy.rlib.rsdl.
-
Note for my previous commit.
-
some more notes
-
Kill this method. This adds yet another special case which can potentially break code.
-
Write a test for d4ed2c8ac9b1 (thanks lahwran for reporting it)
-
pass flags into _ffi's Func.from_addr
-
Fix test
-
don't complain if 'default' is documented
-
A failing test from issue872.
-
Fix attempt for a3ce5fe94074.
-
Fix for issue1077: [nan] <= [5] should be False.
-
allow PyObject* function arguments and returns (with their tests)
-
document that PyObject*'s can now be used
-
document branch
-
Fix for a test that was failing forever on linux64.
-
whoops on import
-
update the docs wrt modified-stdlib removal
-
Simplify the custom logic to pickle module dictionary (as per Stackless Python). Now it should only work with normal, imported, correctly-__name__ed modules, without needing to walk all of sys.modules.
-
Be even more careful.
-
skip this test, which is outdated anyway
-
allow checkmodule('mod1', 'mod2') (arigato)
-
add test_ztranslation
-
add ordinal function handling to libffi, expose in module_ffi
-
fix for translation
-
add test, fix for test
-
Add the release announcement to the trunk
-
First attempt at listing what we did.
-
Fix for posix platforms
-
Don't store self.space in W__StructDescr. For some reason this fixes test_ztranslation when run together with other tests.
-
Skip windows-specific test
-
Wrap lines to 80 columns
-
I think that this is already much better: if PYTHONIOENCODING is not set, then don't call set_io_encoding() at all on Windows.
-
Document len/length_hint.
-
GetConsoleCP() & GetConsoleOutputCP() for Windows.
-
add percentage
-
inexpensive is relative, remove
-
progress
-
add a point about ffistruct
-
add a warning
-
progress
-
Spelling nit.
-
whoops
-
o) explain class loader usage o) fix a few typos o) incorporate feedback from Alex Pyattaev
-
add automatic class loader based on .rootmap files; and its test
-
explain how root-config can be used to locate Reflex headers and libs
-
use root-config, if available
-
Document pytest.py like I documented test_all.py.
-
add footer
-
typo, and explain better
-
Typos and details.
-
update docs
-
typos
-
Kill this paragraph: this CPython difference was removed some time ago.
-
issue1043 3rd issue fixed
-
a branch where to move part of the app_main logic to interp-level
-
port the logic to find sys.executable from app_main to interp-level and test it thoughtfully. This is not yet complete, because os.path.abspath is not RPython on windows (but it is on posix)
-
add rlib.rpath, which contains RPython (and more limited) versions of some os.path functions
-
move the logic to compute the stdlib path to its own file
-
copy the logic to find the stdlib from app_main into sys.initpath, and make it rpython. Also, add tests for it, which is always good :-)
-
fix typos
-
fix py.py now that pypy_initial_path has gone
-
kill get_library_path and setup_sys_executable from app_main: instead we call sys.pypy_find_executable and sys.pypy_find_stdlib which are now implemented at interp-level
-
fix test_pythonwarnings
-
we can't set sys.prefix, else we break the world
-
rpython fix, and fix checkmodule to run with sys
-
Add a test that passes on x86.
-
Update by printing the loop.
-
Update to accept '??', produced by recent dumps.
-
A branch, just to compare a quick hack
-
Rework the generated assembler to avoid duplicating operations in the blocks that are the heads of loops.
-
Add more instructions to ignore by copying from Intel docs.
-
issue1087: fix it by just checking the status of the lock to know if we can follow the fast path or not. With the GIL, there should be no race conditions.
-
asmgcc requires --shared=False.
-
make sure that os.getcwd() returns a SomeString(no_nul=True)
-
make sure that getenv returns a no_nul string
-
propagate no_nul when doing SomeString()*SomeInteger()
-
test and fix for missing os
-
close branch about to merge
-
Add a comment.
-
fix test_ignore_python_startup: we need to make sure to take a copy of sys.path, because we are going to empty it few lines later (and the bug does not show if PYTHONPATH is set, because then a copy of the list is done anyway)
-
make sure to import CPython's ctypes, not pypy's
-
make sure to empty PYTHONPATH before calling scritps which raises. E.g. on my system I have a sitecustomize.py in PYTHONPATH which gives me a pdb++ prompt on exceptions, and this messes up the tests
-
Fix and simplify set_interrupt() by reusing code from perform().
-
hg backout 12c1f0538f76
This is not true, in fact. The tests in translator.c.gcc.test.test_asmgcroot require both 'asmgcc' and 'shared=True'.
-
Remove an "import fcntl".
-
test, fix: os.isatty should not raise in windows
-
issue1164: get_python_lib(standard_lib=1) should probably just return the 'lib-python/2.7' directory now, which makes a little bit more sense now that we don't have 'modified-2.7' any more.
-
More ignored ops
-
Test and fix for issue1159: the logic in parsestring.py was subtly broken by 6f5ea64c8b8d. Fix it by reverting the use of append_slice().
-
Also accept the encoding "utf8" in addition to "utf-8" to trigger the fast path.
-
yay! Kill the usage of nanos from app_main: now that we setup a bootstrap sys.path very early, we should be able to import the actual os just aftwerwards
-
actually kill nanos
-
kill resolvedirof from app_main, and instead use the one which is already in sys (exposed via sys.pypy_resolvedirof)
-
it seems that this hack is no longer needed
-
Move the callback logic to C code instead of using RPython code here. It should avoid issues with the GIL.
-
Oups, fix for e2d958c646fd.
-
Add a missing function declaration.
-
Fix.
-
there is no need to use the real sys.pypy_{find_{executable,stdlib},resolvedirof} when testing. Instead, we simply code some minimal implementation which works when we call python app_main.py, for tests. This greatly helps the py3k branch, where we cannot import the pypy package because it's not compatible with python3
-
close to-be-merged branch
-
move the PYTHONIOENCODING logic to its own function
-
issue1167: changed the test (according to py.test -A on Linux), and fix the code.
-
only test on posix, windows cannot send signals using os.kill
-
Attempting to fix the assert detecting mixed 32/64-bits.
-
Test and fix (thanks marienz)
-
(Ab)use the mecanism to find sizeof(void*) from the C compiler too, and use it to answer rffi.sizeof(ptrtype). Check that it gives the same result as rffi.sizeof(lltype.Signed) with an assert.
-
Fix the error message now.
-
Translation of cpyext requires the array module.
-
issue1169: _ssl errors outside any SSL context should use ERR_peek_last_error()
-
A branch to update to Python 2.7.3
-
Merge stdlib 2.7.3
-
return an absolute path: since we chdir before executing the tests, relative paths hardcoded in a global object don't work
-
Add a bunch of @jit.dont_look_inside. Recent reorganization means that the jit would now try to look into perform_signal() and fail on 'pypysig_reinstall'.
-
fix.
-
extend timeout to work on ARM
-
Tiny cleanup
-
Start fixing issues mentioned by arigo in 6bac78dc2ff5 by using sign extending operations where adequate
-
Fix module on cStringIO.String{I,O} instances.
-
Add new files in the test suite
-
Implement posix.urandom for all platforms
-
Add PyUnicode_EncodeDecimal. Also change a bit how error handlers are used: don't always .encode() the replacement string again, let the encoding function do the conversion it wants.
-
Install new version of _testcapimodule.c
-
upgrade python 2 stdlib to 2.7.3
-
add a document describing the stdlib upgrade process for developers in excessive detail
-
PyUnicode_EncodeDecimal: copy all characters, and ends the buffer with \0.
-
CPython issue #13268: Don't let a tuple msg be interpreted as arguments to AssertionError
-
CPython issue13676: sqlite3: Handle strings with embedded zeros correctly
-
CPython issue13573: The csv.writer now uses the repr() for floats rather than str(). This allows floats to round-trip without loss of precision.
-
convert comment to docstring
-
CPython Issue #13333: The UTF-7 decoder now accepts lone surrogates (the encoder already accepts them).
-
CPython Issue #12467: warnings: fix crash if globals()['file'] is None.
-
Add branches
-
check result type (size and sign) around every call that can return a short or char
-
Backed out changeset a4fd8c9abd4e
-
Add a "whatsnew-head.rst". Not deciding now the next version number.
-
What to do with 'whatsnew-head.rst'
-
Cygwin patch by Uwe F. Mayer, slightly edited to minimize the length of the diff.
-
Fix for the issue of abuse of PyCapsules, relying on immediate destruction, as CPython does. This problem was first described in https://bazaar.launchpad.net/~exarkun/pyopenssl/trunk/revision/166. The fix is rather obvious and consist in a negative total amount of lines :-/
-
avoid creating a large prebuilt constant
-
add an assert
-
use a default tuple instead of None
-
CPython Issue #13034: When decoding some SSL certificates, the subjectAltName extension could be unreported.
-
Too many tests for the same feature :)
-
CPython Issue #13415: os.unsetenv() doesn't ignore errors anymore.
-
Verify the types of AST strings and identifiers (CPython issues #12609 and #12610)
-
CPython Issue #9975: socket: Fix incorrect use of flowinfo and scope_id.
-
do not release GIL when accessing reflection info (depends on backend)
-
crossing test and rootmap generation for CINT backend
-
Skip another ctypes test
-
ctypes raises a TypeError when a non-ascii unicode field name is used.
-
unify interfaces for translation
-
Give a del to the other class, to silence a pypy specific warning.
-
The repr of dictproxy is really an implementation detail
-
Fix test according to future CPython2.7.4. PyPy already did the right thing.
-
Add a couple of gc.collect() to ensure Popen.del is called.
-
CPython Issue #10811: sqlite: Fix recursive usage of cursors.
-
Remove unused parameter
-
INET6Address: Do like CPython and raise OverflowError when a negative value is passed for flowinfo.
-
I'm sure this test passes for a bad reason on the buildbot.
-
CPython Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is raised when the wrapped raw file is non-blocking and the write would block. Previous code assumed that the raw write() would raise BlockingIOError, but RawIOBase.write() is defined to return None when the call would block.
-
oops
-
Add sys.flags.hash_randomization. Always 0 for now, but this fixes one test.
-
Forgot to add this file
-
Blindly add these two jit instructions.
-
Disable 'hybrid' with the JIT: missing at least jit_remember_young_pointer().
-
Test and fix for the nonblocking write.
-
It seems that some versions of ctypes, maybe, return 2 from c_bool(2).value.
-
'cast_primitive' to a bool: it was not working on non-GNU systems where bools are implemented with a "char". This cast should really result in either 0 or 1.
-
A failing test.
-
More precise test: can call c_bool(anything). Fix for the whole test.
-
CPython Issue #12213: Fix a buffering bug with interleaved reads and writes that could appear on io.BufferedRandom streams.
-
translation fix
-
kill a tab
-
create branch to more thoroughly test axis arg
-
add failing tests for axis argument
-
fix for axis arg
-
remove debug cruft
-
add test
-
passes all tests, ready for review
-
minor cleanup
-
movups cannot produce gc pointers
-
The double version of this also can't produce gc pointers.
-
make sure this is correct
-
I don't know whether this test was about a bad host name or a bad IPv4 sockaddr, but at least pypy does not segfault here.
-
temp levels for CINT
-
add _python_owns flag to set ownership
-
code quality
-
doc updates
-
reduce differences with default
-
issue 1183: difference should never reuse the storage of a set as the storage of the resulting set, even if they are equal
-
issue 1183: added additional test
-
optimization for the union of two sets using the object strategy
-
code quality
-
test speed optimization for set.update when updating a set of obejcts with another set containing objects
-
A branch to implement '_ffi_backend'.
-
Starting work on the _ffi_backend module, from the tests of the CPython version.
-
nonstandard_integer_types().
-
Progress.
-
Progress...
-
Start on sizeof().
-
Progress
-
Add includes and a declaration to reduce warnings
-
Add declarations to some C functions to fix remaining compilation warnings
-
Add a translation test for the _ssl module
-
#1180 (closed) - add boolean format test
-
#1180 (closed) - bool format test in objspace tests
-
#1180 (closed) - extend test and implement bool formatting - delegate to str
-
removed extra lib-python tests
-
#1180 (closed) - fix tests - use builtins, add failing test on format
-
#1180 (closed) - not a proper fix, but all tests pass - the fix should be more general
-
#1180 (closed) - cleanup
-
#1180 (closed) - fix typo in test name
-
use int formatter for bool, cause it already calls str if spec is empty
-
fix for epoll to avoid that defined constans get casted to a long when running app level tests.
On ARM EPOLLET is defined as 1u << 31 instead of 1 << 31 as it seems to be the case on x86 systems (at least those I checked), thus getting transformed to a long when running the app level tests on top of cpython.
-
extend timeout for ARM
-
Next test.
-
Next test.
-
Next test
-
(fijal, arigo) Import all the tests from hg: cffi/c/test_c.py. Infinite amount of funs fighting various parts of the test running framework
-
Start to implement newp.
-
Hack at the test file until the tests run (and show bugs).
-
Remove some tabs
-
Skip tests in module/cppyy when 'genreflex' is not installed.
-
fix translation on Macs
-
Make the next test pass.
-
(arigo, fijal around) General progress.
-
(fijal, arigo) Next test.
-
Next test
-
Middle of next test.
-
Hack hack hack differently. Now we get feedback from crashing tests.
-
(fijal looking around, arigo) Next test passes.
-
Reimport.
-
Starting arrays.
-
Next test
-
Port the test; fix.
-
Extra tests.
-
Comment out no-longer-used stuff.
-
Fixes.
-
Next test
-
Test passes
-
Next test.
-
Next test
-
Fix
-
alignof
-
Started work on complex-types for numpypy
-
Modified represention of complex numbers
So that
repr(complex(0,1)) == '1j'
(and not(0+1j)
) -
Pom pom pom
-
read/write attributes.
-
Overflow.
-
Share the code; support the C "->".
-
Next test
-
Two more tests
-
offsetof()
-
Backed out changeset 9daab4fb1be1
importing util.h seems not to work on all Mac OS systems
-
remove pty.h from the imports
-
More idiomatic.
-
Kill a dead line.
-
document branch
-
(arigo, fijal) change raw_load and raw_store to deal with byte offsets instead of the size of item
-
(fijal, arigo) start on raw_storage
-
Complex numbers with negative imag are now formatted correctly.
complex(1, -2)
=>(1-2j
-
test and fix
-
Better handling of deepcopying of an rerased object.
-
Next test.
-
Reimport from cffi/cffi.
-
(arigo, fijal) a half broken implementation of raw_store in the jit
-
Fixes.
-
pom pom pom
-
(fijal, arigo) Kill one useless argument to raw_load and raw_store. Add support for raw_storage_getitem().
-
(fijal, arigo) fix
-
(fijal, arigo) Phew
-
(fijal, arigo) Pass the first test (test_rawmem.py,test_raw_storage_int). A bit of garbage-collection on the sources, but really just starting, here.
-
(fijal, arigo) We added tests and removed code. Progress. We also broke stuff, but well, later.
-
write more tests
-
a bit of missing boilerplate
-
some more killing and make those tests pass on x86 backend
-
gc.collect()
-
Fix next test
-
More cases.
-
Fix.
-
Void type.
-
Bah
-
test_enum_type
-
Enums.
-
Test and fix.
-
(pwaller, wlav) point folks to the binary distribution
-
fix unexpected side-effect of colum-delimination
-
Progress
-
Support weakref. Split the into two app-level classes like in CPython.
-
push push push at the llmemory interface (with hacks that are all removed after translation)
-
Reimport test_c.
-
Port to the new API about None-vs-ffi.NULL.
-
Update from cffi.
-
Refactoring: split ctypeobj.py.
-
Missing imports.
-
in-progress
-
Fixes
-
remove forced updates of namespaces and rely on lazy discovery instead
-
o) on demand lookup of global operator== (only for CINT backend for now) o) reworking of method indexing to give more flexibility to backend
-
o) fix memory overwrite in test o) remove spurious include of iostream o) add tests and arg passing for arrays
-
test number 100!
-
indentation fixes
-
rtyper fix
-
make jit/codewriter/jtransform.py happy
-
allow passing of arrays through void*
-
a missing str
-
a missing str
-
refactor a bit so the interface is easier to use. still incredibly obscure if you ask me
-
if we don't know it's -1
-
revert last change, it cannot be 0
-
a bit of refactoring but now one can get to details about counters from the interpreter if he really feels like it
-
progress
-
Intermediate check-in
-
Rename _ffi_backend to _cffi_backend.
-
Work in progress: building the CIF for libffi.
-
kill dead code, mixins are now done differently
-
kill an unused function
-
try to produce better error messages for the scary "assert nshapes == 1, "XXX call table too complex"
-
started to outsource complex methods
-
some work on complex numbers
-
test and fix
-
support for bool arrays (arg passing and returns)
-
cleanup generation of ptr executors
-
add name of type to the error message of missing converter
-
better typedef resolution (for CINT backend)
-
Use appropriate types for struct kevent on OpenBSD.
Without this, RPython's type system spots something's wrong and throws an error; even if it didn't, the resulting C code would probably have been wrong.
-
fix tests
-
refine pypyoption doc testing and fix cppyy error
- report filenames
- add mising objectspace.usemodules.cppyy.txt file
-
o) more informative dir() method for namespaces o) allow importing from namespaces (once loaded)
-
support for dir() on CINT namespaces (can't be complete, but is good enough for now)
-
rtyper fixes
-
progress on counters
-
(arigo, fijal) Implement hacks for array(X, [0]) * number to be a good initializer for arrays of known length and unknown content
-
(arigo, fijal) make creations of arrays even better
-
Tweak the overallocation: don't overallocate when shrinking the list. Don't overallocate at all in '*='.
-
(arigo, fijal) kill a completely obscure case by using slower method. document it as a hack
-
general progress
-
Progress.
-
Passing tests.
-
Add typeof().
-
Fix
-
Copy again this file from cffi/cffi
-
Fix the initializer for unions.
-
'type[]' function arguments must be replaced early with 'type*'.
-
Fix the convertion logic.
-
Next passing test
-
Copy from cffi/cffi
-
Extract from _cffi_backend.c the tests, and copy them into a test C library.
-
Calling variadic functions.
-
Improve the error message when we mistype a keyword argument in unwrap_spec()
-
load_function().
-
use py.test.skip feature instead of made up of same
-
o) set of CINT-backend tests o) enable use of interpreted classes (CINT only) o) code cleanup
-
do not consider the file pypy/test_all.py as a test_xxx.py test file when collecting directories
-
Pass strings to C functions.
-
read_variable(), write_variable()
-
Allow more faked objects when running py.py: with pypy-c, time.struct_time is a structseqtype: a custom metaclass which generates subclasses of tuple!
Now py.py seems to work with a translated pypy.
-
Use YouTube links for these old videos, instead of .avi files on codespeak.net.
-
Update from cffi/cffi.
-
Callbacks are now mostly passing.
-
Fix: new("struct foo") returns a pointer, but both that pointer 'p' and the structure 'p[0]' keep alive the structure data.
-
Functions returning structs.
-
Copying from cffi/cffi
-
Bitfields.
-
First round of translation fixes.
-
more test of CINT interpreted classes
-
add test for use of unbound methods
-
test array reshaping
-
code quality
-
Fix for the __base
-
Cannot use operator.ne()?
-
Typo (thanks dmalcolm)
-
Test and fix. Also hopefully a translation fix.
-
Typos
-
Py_INCREF macros should use the fast version by default.i Thanks Stefan for finding the typo.
-
hopefully improve the interface, now how do I update the docs?
-
Backed out changeset 2ad609c205d8
-
add the ARM backend files to the list of files to be treated differently
-
disable junitxml generation as it seems not to be used and currently does not work with the setup for the ARM builders
-
move check if we are running tests on ARM to the conftest file
-
use the --slow flag for long running tests
-
mark tests as slow
-
Fix
-
Translation fix
-
fix import error
-
Test and fix
-
Test and fix
-
Test and fix.
-
Test and fix
-
Test and fix: iteration
-
Test and fix
-
Test and implementation of ffi.buffer().
-
getcname()
-
Make import behave like CPython when a path_hook find_module() raises ImportError: treat it as if the find_module() had returned None
-
Translation fix
-
Test and fix
-
misunderstanding, fix. also fix the test
-
a bit no idea how to test it, but expose stats at applevel
-
fix translation, maybe
-
oops
-
another oops for untested code
-
some more translation hints
-
more help for the annotator
-
'import foo' should not try to open a directory named foo.py...
-
PyPy has better errors messages here IMO. Update test.
-
errno.
-
bah
-
we want an annotaton of int here
-
make numpy work with raw_load/raw_store
-
Added count_nonzero to numpy
-
make translation work
-
a failing jit test
-
Fix compile.py to understand count_nonzero, fix the test
-
one more attr
-
revert the checkin that is missing a pretty crucial file
-
complain louder
-
hack differently
-
more obscure but less magic
-
raw memory for the x86 backend
-
fix annotation hopefully
-
start limited iterators in RPython - tests
-
more support
-
run tests actually
-
help annotator a bit
-
commit in-progress (including pdb)
-
bah fix
-
make the test pass - lltype only for now
-
more tests, just in case
-
implement PyInt_AsUnsignedLongLongMask
-
change this error to warning, iit's actually fine for tests
-
Oups, forgot this file.
-
hg backout 842e37163ebb: added the missing cerrno.py.
-
Reorganize the repr of cdata objects, with a test-and-fix.
-
revert partitioning for arm backend tests
-
Wrote the test and started to fix it, but realized that we don't support reversed-endian types at all.
-
Backed out changeset 40051e63af13
-
o) first attempt at getting setitem right o) more doc/comment strings
-
fix (mainly for CINT) to handle setitem/getitem ambiguity
-
o) test for defaults of builtin types o) tests for vector of double o) DoubleRefExecutor, following the lines of the IntRef one o) refactoring of executor.py
-
refactoring all duplicated codes from converter.py and executor.py
-
(fijal, arigo) remove some dead code
-
a z test that can potentially fail I think
-
add an assert
-
oops
-
mention iter works in rpython
-
clashes in caches
-
fix mem-overwrite
-
explain about p3k support
-
clarifications
-
stricter handling of r_float and bool and associated tests
-
reshuffling to allow back-end specific pythonizations
-
eh, don't export w_ in front of every attribute
-
part one - try to add jitdriver to unpackiterable that specializes on type of the iterable
-
Add a name
-
Remove lib_pypy/distributed. It was a nice concept, but I doubt anyone ever used it for anything (it was also not quite working). Goodbye.
-
increaste test coverage, by removing random unrelated stuff
-
an obscure fix for an obscure problem
-
add itertools.repeat.len
-
a major refactor - try to have different classes for iterkeys/itervalues/iteritems
-
translation fix
-
add resizelist_hint
-
refer to the generic resize call
-
I think it's safe that way
-
length_hint comes from the type dict, not getattr thanks arigo
-
kill the max here. seems the original reason was lost long ago
-
add binascii as translation module
-
iterator fixes, some tests, oops
-
fix one test
-
write a test
-
fix rsre for 32bit by not providing longs in code
-
fix rsre for 32bit by not providing longs in code
-
have resizelist_hint return nothing and not change the actual len
-
an ootype _ll_resize_hint attempt
-
A hint to unroll view_as_kwargs if we just constructed it. Note that the size is limited by the size of your code - you cannot construct arbitrary size dictionaries by looping, which also means you're not going to have very large virtual dicts.
-
for obscure reasons you cannot use jit_unroll_iff and *args. Simply use a direct call here and get over it.
-
some more careful unrolling, start to write more test_pypy_c tests
-
typo
-
eh, fix the signature
-
shift dict_unrolling_heuristics to dictmultiobject.py
-
don't import AppTestTypeObject directly, else the class is collected as well and we run the test twice
-
fix to correctly skip runner_test tests for ARM on other platforms
-
debugging
-
a branch where to improve enforceargs by actually add asserts about types when we are not translated
-
do some typechecking on @enforceargs functions
-
handle defaults
-
improve the typechecking to be more similar to what the annotator actually does
-
add the possibility to disable the typechecking
-
add a better error message
-
check that we actually translates
-
make sure to preserve the func_dict of the original function: this is needed if we decorate a func with both @enforceargs and e.g. @jit. Also, it now plays well with @specialize only if @specialize is seen before @enforceargs
-
close to-be-merged branch
-
fix test_whatsnew.py
-
update the docstring
-
make sure we don't pass a negative to new_array in the jit - in the process of fixing the jit
-
make the JIT explode if we try to push negative for alloc_and_set
-
hack differently - disallow negative multiplication of array alltogether
-
first fix for the >= 0
-
another assert
-
a branch where to add support for % formatting to unicode strings in rpython
-
teach the annotator about unicode %
-
add support for unicode formatting in the rtyper: so far lltype only, and it probably does not work as intended when using %s on a unicode string
-
correctly support u'%s' % my_unicode_string
-
use the official way to convert string to unicode
-
failing test and fix
-
implement unicode formatting also for ootype; one failing test left
-
add proper support to (unicode %s unicode) formatting to ootype
-
kill this test; it has no chances to work on ootype even for simple strings, so there is no point in trying to support unicode
-
document string formatting
-
few more hits
-
another assert
-
another one
-
and another one
-
another one
-
some more
-
some debbugging helpers
-
yet another fix
-
close to-be-merged branch
-
eh
-
annotator is dumb :)
-
another one
-
improve the error message in case float(mystring) fails
-
and yet another one
-
another one
-
prove one more thing
-
and another one
-
and yet another one
-
another one
-
another one
-
this is always positive
-
another one
-
another one
-
and another one
-
another one
-
maybe the last one
-
eh
-
eh
-
uh
-
one in the JIT
-
this by now proven
-
and another one
-
log short preamble of retraces
-
Only strengthen guard_*_class to guard_value when the classes matches (might fix issue1207)
-
test&fix for when the unicode %s argument is None: we cannot call convert_const, it's not rpython at all
-
first attempt at pythonizations in rpython
-
o) STL/vector fixes o) more TTree-IO improvements (CINT-backend)
-
simplication that optimizes TTree::GetEntry() call
-
raise an error when trying to execute read_timestamp
-
import test_ajit tests from x86 backend
-
skip test_read_timestamp on arm
-
remove outdated test
-
pff, the usual rpython test&fix dance
-
and another potentiall JIT crasher
-
and another one
-
fix pypyjit tests. not all of them have asserts, pending more changes (maybe)
-
and yest another jit crasher
-
and another one
-
and another one
-
more of the same
-
one more
-
fixes for numpy
-
fix the test
-
fix the test, hopefully
-
remove the thing thats of no use any more
-
fix some tests
-
fix tests
-
allow arrays through void** arguments
-
NULL and 0 passing through typed pointers
-
allow typed pointer null creation and setting
-
add needed test files for io tests
-
improve pythonizations and use of std::vector and std::list
-
Backed out changeset 36df4c1f4262
-
backout
-
backout 21b2273ebbc5
-
backout a4da9e06f8bf
-
backout 3c234f36e008
-
backout 08d919b041ca
-
backout 657194859ad3
-
backout aba9f3942e92
-
backout 05f5e3396044
-
backout efded611f033
-
backout f489930abf23
-
backout c315c21b31d8
-
backout 7462374e4379
-
backout 52468dc17056
-
backout e7015be84ed6
-
backout 974406767f34
-
backout ffc7375ed7c3
-
backout f4c7930e7e9f
-
backout 83240dd2b311
-
backout 89d75226367e
-
backout 7bbdd564ee01
-
backout 9a0810f2dd32
-
backout 94ae6389689e
-
backout feef0a4d2de0
-
backout 1f99cb314a0d
-
backout aa9406870803
-
backout 331a52aa6f9e
-
backout 1512d5e642b9
-
backout d2d78fbf9217
-
backout f235fe1e8377
-
backout bfc7b7773c60
-
backout cc8bf3449424
-
backout b33078c40d3d
-
backout 8fcdceac730e
-
backout 7c94b4420a32
-
backout 5f1c0d3ad87f
-
backout 9f8c202f2d28
-
backout 472a414c4207
-
invent a new operation
-
add id to debug prints of virtual info objects, to be able to understand sharing from the log
-
implement int_force_ge_zero
-
Fixed missing import of compute_unique_id.
Changeset e3249f3bf105 introduced several uses of compute_unique_id, which was only imported inside dump_storage and not globally.
This lead to translation with -opt=jit on PyHaskell failed. This could possibly affect other RPython VMs too.
The fix is simply to move the import of compute_unique_id from inside dump_storage to the top of the file.
-
Allow getitems of opaque pointers to be moved out of loops when the class of the pointer is known. Also, check that such a pointer has the correct class before inlining such getitems into bridges jumping to the loop
-
test the different cases
-
write whatsnew
-
resolve conflict
-
fix tests
-
oops, unbreak the case where arg does not come in a register (TEST can't deal with it)
-
implement modified version of cond_call_gc_wb
-
we dont want to create a value here if it did not already exist
-
allow getitems whos result is opaque with unknown class
-
dont generate guards for opaque pointers
-
Issue1221: When calling reader.readline(), don't pass reader in the arguments! It was wrongly interpreted as "returns_unicode=True"
-
fix test
-
Make a branch to improve rbigint
-
Find a better cutoff for karatsuba (The ideal in my tests was 38). This gives upto 20% performance increase while working in that range. Disable a trick in _x_mul, this was about 20-25% slower than the regular method.
Etc: v = rbigint.fromint(2) for n in xrange(50000): v = v.mul(rbigint.fromint(2**62))
Went from 17.8s to 10.6s by just these changes alone.
-
Cleanup
-
Add special cases for 0, 1 and power of two multiplication.
Increase both general multiplications like this: for n in xrange(10000): rbigint.pow(rbigint.fromint(n), rbigint.fromint(10**4))
And: for n in xrange(100000): rbigint.pow(rbigint.fromint(1024), rbigint.fromint(1024))
By 6-7%.
-
More optimalization and a bug fix.
Revert _normalize() it causes a test to fail when _x_sub is special cased. Add special cases to _x_add, _x_sub Add a lqshift function for those more constant shifts. It's slightly quicker.
Add operations benchmarked to 4% improvement in general.
-
Unnecessary code removal
-
Re-enable the a == b strategy. Apperently it works, thou, not 2x speedup, but 16% on HUGE ints
-
Move the strategy for _x_mul
-
Fix a test and add some benchmarks for pow, mul and add operations.
-
Add another benchmark
-
Futher improvements, two more tests
-
Remove the special casing in _x_add, it's really the same (only that by doing this, we also got to do two extra checks, which makes it slower)
-
Reorganize to make room for toom cock (WIP)
This also gave the first pow(a,b,c) benchmark a boost. Perhaps since some tricks kicks in earlier
-
More fixes to toom cock
-
On 64bit x can already fit 2*shift ints
-
Power of two improvements?
-
Add regular pypy benchmark. The improvement is about 50 times
-
Add speedup for all (power of two)**num.
One of the tests ((231)(2**31)) is now 100 times faster (this beats CPython, and even C)
-
Forgot pypy default results (300 times faster with improvements)
-
Speedup floordiv by the power of two
-
Reduce operations on mod and floordiv (without power of two) = more speed
-
Remove a unintensional import
-
Fix a bug with floordiv caused by my power of two code that allowed div by 0
-
Introduce int128 and int cache.
Also find a new karatsuba cutoff that is fine with the new settings. Some things are slower (especially creating new ints). But generally, it's a major speedup. 4 failing tests, mostly due to not being able to cast down to int. Hash is also wrong (critical).
Not JIT support yet I suppose.
-
Fix translation of targetpypystandalone when SHIFT != 31
It translate, in jit mode on 64bit now :)
-
We need the cast, otherwise I'm sure it won't work on 32bit. On 64bit it links to the same type anyway
-
Necessary fixes for 32bit, and the last cache int number
-
Fix a test, fix so all tests passes, and some improvements.
Minor impact on performance, some become faster, some slower. I'll see how it turns out in a translated version.
-
Some not working code for checking for int128 support. Also add support for non-int128 platforms as soon as we can detect them.
-
Ensure correct type when doing rshift
-
Some more tweaks + rshift and lshift benchmark
-
A little sad news, lshift with tiny numbers are nearly twice as slow using int128.
It's not a slow operation tho, 2.875e-08 per round. For comparesment 2**n (![0->10000]) takes 9.66e-04 per round (and thats 50 times faster than unmodified pypy). Even a regular add operation takes 1e-05 per round.
-
Add some jit hooks and remove the shift len check from int.h (because rbigint is the only place we use longlonglong, and probably ever gonna use it)
-
Add some stuff regarding div. Not really working yet
-
Some more test data, and removal of the intcache stuff (In jit mode, this doesn't matter, I benchmarked in opt=2)
-
Refactor the benchmark and make stuff unsigned
-
Add some always_inline (for some reason it doesn't always happend). This makes lshift 15% faster
-
Revert changes to _x_add and _x_sub, it didn't provide speedup. And potensially it'll bug. Also updated benchmark results
-
Slight simplication. No performance
-
Improve the general speed of pow, special case 0 ** something and something ** 0, along with negative numbers.
-
A slight cleanup
-
Always inline _normalize. This give a HUGE speedup for lshift, but most calls that does very little work seem to benefit
-
Make a new normalize method that skips one check and post results 1.3s improvement, mostly on shifts
-
Special case invert of 0, and save one creation when inverting. This makes floordiv quicker
-
Fix one test, fix so a few tests no longer fails (divrem fails for some reason, I don't understand why). Optimize mod() and fix issue with lshift and fix translation (for some reason the last commit failed today, but worked last night hehe)
-
More to the toom cook implantation, it's 'almost' correct. Added a failed test
-
Working, but ineffective toom cook implantation
-
Reapply proofs of index >= 0 using unsigned (for mul this could in theory be done even quicker by making a unsigned longlonglong and avoid the cast)
-
Faster rshift since SHIFT >= sizeof(int)
-
Use inplace_divrem to find the reminder from v, this makes divrem 20% faster
-
Fix a broken test, and optimize mod, and refactor benchmarks to be more explainable
-
New results
-
Vast improvement, especially to add and mul by self
-
Probably my final toom cook test. Didn't go so well. Also disable jit.eldible because it seems to slow down good algoritms
-
One fix, plenty of bugs left
-
Fixes. And reintroduce the jit stuff
-
Add rffi_platform check (Thanks fijal)
-
Remove elidable from a few calls.
-
Fix a tiny issue when SUPPORT_INT = False, also add benchmark results
-
Make _wide_digit use a cast instead of making a new value (slighty faster), make sure we support 32bit (I'm building a 32bit binary myself now, seems to work). And fix things those things arigo pointed out
-
Fix for passing divrem tests on 32bit.
-
We shouldn't modify rffi.TYPES in rbigint...
-
Some last improvements:
normalize of a numdigits = 0 doesn't happen. _x_mul with size_a = 1 can still win some performance while it's not power of two using _muladd1 By passing the size as we know it directly to rbigint() we save a call (doesn't really add speed, but slightly nicer C code) fiveary cutoff is benefitial without c (my mistake) annonforceargs doesn't really change speed (trades a check for a cast in most cases) Prove numdigits non-negative instead Change div inplace in floordiv and divmod Fix a potensial issue with floordiv by not returning self when / 1
-
Revert _tc_mul to the best version and remove check_nonneg (it did't clear when compiling in jit mode)
-
Backed out changeset fcdcec196a0b. This breaks tests at the very least. It should stay on a branch for now.
-
dos2unix a file
-
Issue1175: PyThread_{get,set,delete}_key_value should work without the GIL held. Patch by marienz.
-
add checks for the presence of a floating point unit and for the calling convention used on ARM
-
A branch to replace PYPY_NOT_MAIN_FILE by PYPY_MAIN_FILE, certainly less confusing
-
Be positive: #define PYPY_MAIN_IMPLEMENTATION_FILE when we need the implementation of the C helper functions.
-
get rid of the hack to detect the hard float calling convention and use a gcc preprocessor symbol
-
add cpu classes and detection for armhf
-
do not skip tests on armhf
-
add a check for float support
-
Implement the hard float (armhf) ABI for ARM. FP arguments to calls are passed using VFP registers d0-d7 instead of using the GPRs.
-
add float support check
-
Specialize 0**N, fix test_longobject.py
-
this fixes lib-python test_pow.py, i think
-
Only use rshift for power of two division if both are positive. This fixes the array tests
-
Revert changes to longlongmask, and rather use intmask. This fixes objspace test
-
This should fix sys.long_object
-
another check for float support
-
remove special casing in prepare_cond_call...
-
Float multiplication (it somewhat works when SHIFT = 63)
-
These cases only work when c = None, obviously
-
remove a debug print
-
test and fix
-
typo
-
(agaynor) a look_inside_iff
-
Another fix for pow(), disable _k_lopsided (has less than 1% gain), fix _x_divrem crash.
There is one remaining known issue (with eq), may lake a _normalize somewhere
-
optimized I/O for CINT backend
-
also log pending setfields
-
preserve the names for jit_unroll_iff, otherwise we end up with unreadable unwrap_spec
-
fix argument naming
-
actually fix tests
-
test and a fix
-
closing to be merged branch
-
Add test (and fix) for the eq issue. Remove _inplace_invert as it might break
-
Don't do floordiv/divmod sub inplace as it can break if div = -2**63
-
Update benchmark results and lib-python tests pass (except for test_socket which is not relevant to the branch)
-
Close branch for merge
-
Backed out changeset d65e8cef8bec
-
Update whatsnew with improve-rbigint
-
make STL-life easier
-
Add branch
-
Convert this code to support Python 2.5.
-
Fix test_newlist() and improve it. Don't generate int_force_ge_zero() on constant arguments.
-
Add the operation here too. (Fixes a few tests)
-
Backout 161f9ca68f8e + 8a78c6bf2abb: un-merge improve-rbigint. There are failures left, e.g. pypy/rlib/test/test_rbigint on Linux32.
-
Skip this new unicode test as not working on CLI and JVM.
-
Detect mistakes in numeric constants too.
-
Fix the places that used to write a number and expect a possibly different one.
-
Add the possibility to match a block of out-of-order instructions. Useful for the groups of 'setfields' that follow a forced 'new'.
-
Use the any-order marker here.
-
self._assert() needs to be in a single line...
-
Import the current version of test_c.py from hg/cffi/c.
-
Add support for local/global dlopens
-
Merge test_c from hg/cffi/c.
-
Fixes
-
Fix for test_load_and_call_function.
-
Import test from hg/cffi/c
-
Fix
-
Move the cast() method to the base class to let it apply to arrays too (see comments)
-
Tweak the repr of non-owned structs, as was done in hg/cffi
-
Remove toom-cook (since it didn't pass own-linux-x86-32), fix divmod test.
-
code convention fix
-
updated documentation
-
linking example code did not work as expected; use alternative
-
ABI for linux
-
List the places that will need wchar_t support
-
wchar_t: in-progress
-
Enough to pass test_wchar.
-
Last remaining fixes. Now test_c passes again
-
Port the first part of the big-endian fix
-
Second part of the big-endian fix.
-
Change cerrno to be thread-safe.
-
Update the test to hg/cffi/c/test_c, and fix.
-
Fix
-
Tweak tweak tweaks to add the correct immutable hints.
-
Fix on 32-bit.
-
Another similar fix on 32-bit.
-
Rename: the test passes on 64-bit with raw_load/raw_store instead of the previous {get,set}interiorfield_raw. It still fails on 32-bit though.
-
Translation fix
-
Translation fix
-
Missing attribute
-
Use quasi-immutable fields here.
-
Tweak the immutable hints.
-
Add the (undocumented & untested) attribute 'name' on the hash objects.
-
Update
-
Move calls to llmemory.raw_memcopy to JIT-aware helpers.
-
Starting to support the _cffi_backend module directly in the JIT.
-
Let the JIT look inside call()
-
Fixes
-
Bring over the new test_c.
-
Fix the new test.
-
tweak backend test collection
-
Skip test_basic tests that would require longlong support (judging by the name of the test)
-
Workaround to make test_repr_16bits pass, from test_unicodeobject.py, on top of a 16-bit hosting CPython. Running py.py or py.test on top of a 16-bit-wide hosting CPython is still not perfect and will probably never be.
-
Attempt to improve division by porting Cpythons new algorithm, it cuts division time by 30%. And also improve divrem1 by just casting the value, a small speed increase when // 3.
Note: The CPython algorithm currently doesn't pass tests and need to be looked at
-
"long double" support
-
Fix passing 'char' and 'short' arguments to vararg functions
-
Separate the parts that the JIT should see from the others.
-
Add the resop GETARRAYITEM_RAW_PURE to the JIT, and also make more use of GETARRAYITEM_GC_PURE. Tests.
-
Make two arrays immutable for the JIT.
-
Elide the W_Field lookup on getattr and setattr.
-
Avoid passing via longlong to read a small-enough integer.
-
If "see_function" is False, don't call contains_unsupported_variable_type(). The result is going to be False anyway. Avoids getting warnings if we mark a function @jit.dont_look_inside because it manipulates unsupported types.
-
Minor improvement maybe: replace "ADD reg, const" and "SUB reg, const" with a LEA. The idea is that LEA is more flexible because it can name a destination register != source register.
-
Clean-ups and comments.
-
save correct registers around call to assembler_helper function in call_assembler
-
Remove this version of libffi.py.
-
Move things around, creating rlib/jit_libffi.py which can receive special JIT support.
-
In-progress: JIT support for ffi_call
-
Work in progress: remove optimizeopt/fficall, and (plan to) replace it with just a test in pyjitpl.
-
Hack until the test reaches the xxxx in pyjitpl.py.
-
test_fficall passes again.
-
Kill old code until other tests start passing again.
-
Python 2.5 compat
-
More tests
-
Test for none results
-
Return 'signed char'.
-
Translation fixes
-
Fixes for x86/test/test_fficall.py
-
Fix for the new requirements.
-
Documentation
-
Translation fixes
-
(stepahn, bivab) check for objdump and gobjdump (for OSX, as provided by port and homebrew binutils package) and raise an error neither is available
-
reduce the number of iterations for this test on ARM
-
typos
-
Update to the latest revision: str(), unicode() => ffi.string()
-
Add the version attribute.
-
Update from cffi and add the same special case.
-
Make iterating over generators work (super easy!)
-
Add function.globals as an alias for func_globals, CPython had no tests for this :(
-
Port the test from CFFI.
-
Port CFFI test and fix.
-
Improve the test: checks that at least 500 recursion levels work.
-
invert logic to use -rt, because it also doesn't work on mac os
-
Start writing a compatibility layer for _rawffi on top of CFFI. That's wrong, but it should offer the fastest transition layer.
-
add a backend test for int_force_ge_zero
-
in-progress
-
in-progress
-
in-progress
-
Swap the operands of CMOVNS to match the Intel order used everywhere else in the backend. Remove the skip in test_rx86_32_auto_encoding.
-
Enable _cffi_backend by default.
-
Re-add rlib/libffi.py, hopefully temporarily
-
Remove the jit.oopspec annotations, which are not valid any more
-
Kill again this module; found a way to enable the normal built-in module for now.
-
kill some tabs (again)
this commit should create a new head on arm-backend-2 that will replace the current head that contains c32795240333. c32795240333 contains a bogus state that should not be merged into other branches in the future
-
skip test_basic tests that require floats in case the CPU doesn't support them
-
skip test if CPU does not have NUM_REGS property
-
convert handle to int before casting to SEM_T instead of uint
fixes test_semaphore_rebuild on armhf
-
implement int_force_ge_zero for ARM
-
forgot to return the condition
-
Import test_c from cffi
-
Fix for py.test -A.
-
xfail
-
Skip three tests of '_ffi' which are not optimized any more.
-
add get_all_loop_runs
-
Update test_c. Fix for an obscure case.
-
Obscure: simulate some alignment in the structures, otherwise _cffi_backend/ctypefunc.py tests fail.
-
Add doc
-
Fix for calldescrof_dynamic().
-
Fixes on 32-bits.
-
Kill unused imports
-
Fixes fixes fixes
-
Fix more tests
-
Add an assert that prevents "ffi_cif" from being written in the C code if OS_LIBFFI_CALL is never used. Fixes x86/test/test_zrpy_gc.
-
Fix
-
Re-add this line. Unsure why it was killed because SETINTERIORFIELD_RAW was not killed.
-
Fix (shown by jit.metainterp.test.test_immutable)
-
Fix test
-
Fix
-
make test_sorting_of_fields independent of interactions with other tests and only make sure that all keys are different
-
backout 0f692101e5a9: it changes too much random details
-
backout ec35faff77d2
-
Just use a regular Signed field for cif_descr.abi.
-
Don't crash in imp.load_module() when the given path is not a real file name. Use os.fstat() on the opened file instead.
-
issue1232: ctypes: Subclasses of primitive types don't call their new when the value is extracted from a struct member. Yes, this is confusing.
-
Fix
-
Add a _cffi_backend test similar to the _ffi ones. It fails so far.
-
Add a promotion here, to constant-fold the rest of the decoding of the W_CTypeFunc.
-
Fix for a corner case in which the heapcache returns a Box when in that particular case we can return a Const.
-
First step of testing in test_pypy_c.
-
fix for test_addr_raw_packet to get the correct interface number for lo and use that in the test instead of 1
-
issue1223 resolved
Fix GreenletExit: catch it in _greenlet_start(), i.e. where the greenlet was originally started from, rather than catching it within switch()/throw().
-
Kill dead outdated code (this defines a wrap() function that is not used any more in the rest of the function).
-
Tweak tests to enable 'no_nul', and add another direct test. Fix them by adding no_nul support in the loaders of pypy.rlib.rmarshal. (thanks sunetos for reporting it)
-
Allow weakrefs to any cdata object. Simplifies a bit the class hierarchy in cdataobj.
-
Test and fix (thanks J. Slenders on pypy-dev)
-
Add more skipped tests and clarify the error message. Hard to fix: there was already a skipped test. (follows pypy-dev discussion with L. de Haro)
-
hopefully fix test_jit_get_stats
-
improve the message not to get too annoyed
-
fix the test
-
patch from matkor for PLD and other strange linux distros
-
Simplify special case setup in FlowObjSpace
- Remove specialcase.setup() and put the special case mapping in a constant dict instead.
- Remove trivial helper FlowObjSpace.setup_executioncontext()
-
Remove obsolete helper
-
Refactor FlowExecutionContext.init
Push code down from FlowObjSpace.build_flow() to FlowExecutionContext. This is safe as these objects are only ever instantiated from there, and puts all flow graph initialisation code closer together.
-
Replace FrameState.restoreframe() with FlowSpaceFrame.setstate()
-
Simplify FrameState constructor
Use frame.getstate() to save the state of the frame instead of the ctor.
-
Split off _init_graph() from FlowExecutionContext.init()
-
Merge code into FlowExecutionContext.build_flow()
Inline .init(), .create_frame() and .produce_generator_mark()
-
Replace block.patchframe(frame) with frame.recording(block)
-
Reuse the same frame through the life of build_flow()
-
Kill p.o.f.operation.special_overrides()
Define the methods directly inside FlowObjSpace instead. In the case of getattr, this causes a bit of code duplication, but that's better than crazy monkey-patching.
-
Move code from FlowEC.build_flow() to FlowSpaceFrame.init()
-
Kill FlowEC.w_globals
FlowExecutionContext doesn't really need this attribute, but the frame does, so store it there only.
-
Close branch to be merged.
-
Document more jit_libffi and add a helper.
-
Add missing code to pass and respect the debug status. Fixes test_ztranslation.py:test_jit_get_stats
-
ImmedLoc(0) -> imm0
-
add docstrings
-
fix apptests
-
Test and fix: corner case shown by Alex Gaynor.
-
Pretend there is 'attrs=[]' on most built-in exceptions classes.
-
Typo
-
Update.
-
Remove the need for the RPython manual optimization of writing "x in (2, 3, 4, 5)" because it is more efficient than "x in [2, 3, 4, 5]".
-
Import test_c and fix the test.
-
Test and fix
-
Add kind == '?'.
-
More tests. Fix.
-
Two complains
-
Fix typo
-
ANSI C doesn't allow 'p + n' if p is declared as 'void *'.
-
From Uwe Hoffmann: more descriptive error messages when loading libs
-
fix function export for visual studio
-
Tweaks for CPython 2.7 compatibility:
-
nonzero must return a bool or an int, but not a long
-
if there is no nonzero, fall back to len, but then handle the result in the same way as len() would, e.g. allowing a long or a custom class with an int.
-
-
Make builtin.next RPython
-
From Uwe Hoffmann: use libraries instead of link_extra
-
make use of the new jit_libffi instead of libffi module; it's still about 3x slower for now, due to mallocs, and only used on the fast path (i.e. Reflex backend)
-
Mark rlib/libffi.py as deprecated.
-
add failing tests
-
cleanup
-
add new operations to the register allocator
-
implement raw_load
-
remove emit_op_getinteriorfield_raw
-
implement raw_store in the backend
-
fix for get/set arrayitem
-
enable some translation tests to be run nightly
-
mention environment variables for mingw
-
Progress?
-
allow subclassing _numpypy.void
-
add intp, uintp dtypes
-
start to implement StringType.coerce
-
Move some code to a more correct place.
-
Clean up code a little bit, also re-arrange it though so that `some_int in [some, list, of, ints] will generate a call, instead of a call_may_force
-
Backed out changeset d94caa31c991 - it kills the boards when run in combination with the other tests
-
update mnemonic of the mov instruction used in test_compile_asm_len
-
modify longlong storage for arm hard-float to manage floats as floats
-
enable floats in the ARMHF cpu
-
disable longlong test
-
call_assembler fix for armhf
-
remove unused code
-
add support for more complex types in enforceargs, like [int] or {str:int}; also move the imports as late as possible, to prevent circular imports
-
Deactivate float support on ARMHF again. There is an issue with libffi so we can not reliably test the float support by running the unit tests on top of cpython
-
This test fails on x86-64 if we allow for more than 8 arguments (after which the xmm registers are depleted).
-
Make the test even more crashing, by also testing Consts.
-
Fixes for the two previous problems.
-
resolve armin's comments
-
don't try to be too smart - by hand write the indirection (breaks translation)
-
adding coerce to StringType has implications for W_FlexibleBox.init
-
first draft of howto write test for _cffi_backend
-
Expand a bit the explanation.
-
remove redundant code
-
add the possibility of doing @enforceargs(foo=int) in case we want to enforce only one specific argument
-
this revision contains less \t
-
don't complain if we pass None to something which expects unicode or str
-
improve the error message
-
fix test
-
Import the changes. Fix the latest test.
-
Revert changes to rshift, and change a test so it fails, and fix it. All tests should now pass
-
Update the tests from CFFI.
-
Fix for anonymous nested structs.
-
codespeak.net is down, so point the test at pypy.org.
-
Document some merged branches
-
Disable an assert, we can't do this check in rpython. Fix lib-python crashes (tested locally)
-
a test and a fix
-
fix, accept ndarrays as well
-
whoops, was not rpython
-
do not demote complex to float
-
fix for ufunc tests
-
Python 2.5 compat (not completely sure about this one, but at least it imports again)
-
Only include next() in the table if it's defined.
-
Patch by vpelletier: add @builtinify to all public _ctypes functions. Add a test.
-
Oups, one too much. (Shows up in some test failure in pypy/module/test_lib_pypy/ctypes_tests.)
-
fix for ztranslation
-
try to fix translation, seems to need wrap__r_single_float
-
silly fixes, returning a wrap(box) instead of wrap(box.value) seems to work
-
add test that should fail, but not like it does
-
dissallow mod, fmod for complex (@Alex_Gaynor)
-
add a monkeypatch to py.code.Source.deindent to our conftest to avoid cpu burn
-
issue1116: No objection, so go ahead and fix interp_iobase, even though I don't really know it.
-
Copy the test from cffi/c/test_c
-
Copy the fix from _cffi_backend.c.
-
Make test_decimal (the last test) pass.
-
The original deindent() function returns a Source instead of a string, and some places are relying on this. Fix.
-
flesh out rcomplex
-
use space complex not rlib.rcomplex for math functions
-
Backed out changeset: 91fd1795c5bd rcomplex is indeed the correct way to proceed, tests can be refactored from cmath/test/test_cmath
-
Document an error that we might get on some Linux systems.
-
reworked typical pythonizations
-
atypes is an unbounded array, so can't loop over it directly
-
no longer needed workaround for llgraph/runner.py
-
add module/cmath tests to rlib/rcomplex
-
reorder tests and add to expose correct error
-
fix c_sqrt, c_cos
-
revert my changes, tests on rcomplex pass
-
remove duplicate code
-
Apply improve-rbigint changes again
-
Update targetbigintbenchmark.py, apperently it wasn't patched properly so it had old results.
-
Please a test I wasn't aware of by adding these. It's not a biggy since we don't use longlonglong like that. But for consistancy I guess.
-
start refactoring numpy into something massively simpler
-
hack up to the point of array() working
-
a missing file and a start of things to take shape
-
make call2 work
-
progress with scalars
-
beat it until getitem kinda works
-
single item setitem
-
remove longlong special case for ARM hardfloat
-
size
-
radd and scalar iterator
-
radd and scalar iterator
-
call1 support
-
ones
-
add the possibility of doing x.encode('utf-8') in rpython
-
improve the test by actually using strings which are encodable only by the tested encodings
-
add the possibility of doing x.decode('utf-8') in rpython
-
some more progress, mostly copy-paste
-
close to-be-merged branch
-
slices
-
reduce support
-
Move more code from FlowEC to FlowSpaceFrame
- .is_generator moved to the frame
- _init_graph() moved to the frame, along with supporting code also dealing with graph initialisation.
-
Cleanup FlowEC.build_flow() and push more code into the frame
-
Kill FlowEC.crnt_offset
Duplicates frame.last_instr, so use that instead
-
Clean up yield handling in flow space
Bypass PyFrame.dispatch which swallows exception FlowSpaceFrame should handle itself and simply implement YIELD_VALUE as an ordinary bytecode without control flow implications.
-
Make "return" more similar to the other special cases in FlowEC.build_flow()
-
Remove FlowSpaceFrame.run()
Put its code back into FlowExecutionContext.build_flow().
-
Copy PyFrame.handle_bytecode into FlowSpaceFrame
This creates significant code duplication but should allow further code refactoring.
-
Handle opcodes uniformly in FlowSpaceFrame.dispatch_bytecode()
Dispatch all opcodes to a method of the frame (except EXTENDED_ARG which isn't really an opcode).
-
Move opcode decoding to new class HostCode
-
Add property HostCode.is_generator
-
Copy .handle_bytecode() into FlowSpaceFrame
and let the builtin exceptions propagate in standard fashion.
-
dispatch_bytecode(): propagate AttributeError for missing opcodes
-
Flowspacify handle_operation_error()
-
Fix missing import
-
Move FlowObjSpace monkey-patching code to p/o/f/objspace.py
This puts all FlowObjSpace code in the same file and frees operation.py from flowspace-specific code.
-
Flowspacify IMPORT_FROM
-
Simplify FSFrame.handle_operation_error()
- Move all handling of Op...Propagated... to handle_bytecode().
- Replace atach_tb flag with a method.
-
Make sure that locals dict creation doesn't prevent translation
- Copy some initialisation code down into FSFrame and simplify it.
- Add test.
-
Copy all FSFrame initialisation code into the class
-
Simplify FSFrame initialisation
-
FSFrame: don't create locals() dict.
Flow space processing effectively assumes that there is no actual locals dict, so make this explicit.
-
Move parts of sc_import() to FlowObjSpace
-
Kill dead function: rtype_builtin__import__
-
Remove option FlowObjSpace.do_imports_immediately
All traces of the option have been removed, imports are now always performed immediately by the flow space.
NB: setting the option to False didn't seem to be actually supported.
-
Flowspacify IMPORT_NAME
-
Simplify import handling and support relative imports
-
Move HostCode creation inside the frame.
-
Don't pass execution context around when it's not needed.
-
Remove unused cache_building_mode from flow space
and kill flowcontext.ConcreteNoOp as well.
-
Flowspacify LOAD_GLOBAL
-
Remove ObjSpace logic from .find_global()
-
Use Constants instead of pypy.interpreter Modules.
sys and builtin can simply be represented by Constants in flow space. There is no need to use the complex Module class from the PyPy interpreter.
-
Remove concrete_mode since it's not used any more.
-
Remove unused attribute FlowSpaceFrame.builtin
-
reshape
-
oops, fix getitem
-
transpose
-
support index
-
fixes
-
fix those tests to resemble numpy more
-
make tests pass with -A
-
fix all the tests to pass with -A on numpy 1.8
-
one dim view iterator
-
multidim iterator, start passing more tests
-
some more boilerplate
-
Static linking of openssl, 2nd version
-
rpython fix: unicode_encode_utf8 has already been annotated when we are rtyping .encode('utf-8'), so we need to make sure that the annotations are compatible
-
rpython fix: str_decode_utf8 has already been annotated when we are rtyping .decode('utf-8'), so we need to make sure that the annotations are compatible
-
Issue 1247: Fix for the syntax "()[...]".
-
it is too hard to call unicode_encode_utf_8 from a LL graph while keeping the same annotations computed during normal translation. Instead, we clone a new function with func_with_new_name and we call it. Also, we share the code between LLtype and OOtype now
-
do the same with str_decode_utf_8
-
kill a leftover
-
delay the import of rlib.runicode as much as possible, else we get circular imports
-
copy complex_testcases to test_ufuncs
-
fix complex math test cases for numpy compatibility (never raises)
-
split rlib.runicode.str_decode_utf_8 in two, else we had annotation problems when calling it to implement .decode('utf-8')
-
some revamp of where, not passing tests yet
-
issue 1249: found a failing test.
-
Fix for the test in 7307034ccd39.
-
Fix direct tests. Add binary operations.
-
Pass enough around to start implementing broadcasting
-
implement broadcasting
-
get/set item for scalars
-
This speedup case should work fine for 32bit too
-
Backed out changeset a988d66682e8
-
skip these two tests on cli
-
Rewrite itertools.tee() to use a simple chained list internally, instead of a list that only ever grows.
-
Fix for directly running "py.test test_itertools.py".
-
Windows test fix: port http://bugs.python.org/issue15334 .
-
issue1242 resolved
Fix for the ctypes "use_last_error=True" on non-Windows platforms.
-
Copy the test from cffi/c/test_c
-
fix test whatsnew
-
Another refactor. This time we use extend to make sure everyone can import W_NDimArray
-
Port the fix cffi/cffi a7550e27bbc4.
-
reshape and a test that was not passing before
-
some reshape fixes
-
scalar reshape
-
copy paste more ops
-
scalars in ufuncs
-
create an integerfunctionresult rffi_platform helper to call a C function during translation using the correct compiler/platform mix
-
change how getpagesize is called during translation
-
update the ARM cross-translation documentation
-
Update for cffi/cffi 41a7f979ae19.
-
Split thread.h into header and implementation files.
-
Move allocator.c out of headers
-
Split asm*.h in header and implementation files
-
Move debug_alloc.h into allocator.[ch]
-
Split mem.h and mem.c
-
Split signals.h into header and implementation files
-
numpy (python pytest -A ) fails test_complex_math
-
Add a test. The fix is just killing 3 lines, including a comment that is not longer true.
-
hack hack hack.
-
Backed out changeset 27ea72fb2601: little point, because the x86-64 binaries right now depend strongly on being a recent Ubuntu installation.
-
axis reduce, not working yet
-
some fixes for sum
-
make few more tests pass
-
close about to be merged branch
-
update whatsnew
-
a fix for multidim arrays
-
argmin/argmax
-
dot
-
tolist, simplified
-
Some progress. Reimport _methods.py from numpy 1.8. It's simpler now
-
add a test, why not
-
a test and a fix
-
fix concatenate
-
ravel & flatten
-
nbytes & itemsize
-
repeat;
-
reimport arrayprint.py, probably broken for now
-
Attempt to reduce code duplication in genc. "split" and "one_source_file" now share more parts.
-
Add missing file
-
Fixes for the signal module
-
Fix stale #endif
-
Hide the error about missing '__int128'.
-
Rename "__int128" into "__int128_t". It seems that it's more standard, supported by older GCCs on some platforms and by CLang. Moreover it seems that gcc 4.7, which introduced "__int128", also added "__int128_t".
-
Add a test for int128 in the C backend.
-
swapaxes
-
getitem/setitem_filter
-
fix
-
transpose
-
some flatiter support
-
next_skip_x and port test_iter
-
some fixes for getitem
-
Probably fix remaining compilation errors
-
setiter
-
start thinking about eq and friends
-
There is already a thread.c in translator/c/src. Rename this one...
-
Sort generated file names, this may look better in translation output.
-
finish flat iterator
-
refactor 'close enough' check, fixes to make numpypy match rcomplex results
-
finish complex128 basic ufuncs, complex64 ufuncs need space support
-
We won't support hash randomization in the short term. Add a warning, and a note in the documentation.
-
dtype.real, dtype.imag return float values
-
test, implement complex copysign, reciprocal
-
simplify testing framework, skip c99 for windows
-
test, implement complex floor_divide
-
after arm merge, start to fix for windows
-
pass 3 more tests
-
fixes
-
skip take for now, implement compress
-
item
-
fromstring
-
tostring
-
record dtypes
-
fix some more tests
-
Try to fix translation error on Windows
-
Skip tests about hash randomization
-
The value of hash('') is also an implementation detail.
-
sort out the agreement
-
we don't implement full casting semantics yet
-
fix fmin/fmax
-
close branch before merge
-
Update sys.version to 2.7.3, and fix some old version numbers in the docs. Also add the branch to the list of merged feature branches.
-
Mostly backout 958f05aaec24 (can't find a justification, and it breaks e.g. on tannit32 because platform.machine() doesn't start with 'x86' there). Instead, always list both backends.
-
Another place where the version number needs to be updated.
-
Blind attempt to fix issue1244.
-
openssl crashes here on CPython if the stars are not aligned correctly. Just skip it instead of trying to understand.
-
Lower the limit to (1<<31-1) even on 64-bit platforms.
-
Python 2.5 compat
-
add stdlib.h for MAX_ENV (visual compiler)
-
TerminateProcess succeeds with non-zero return value, how did the test ever pass?
-
fix rurandom for windows blindly, could not find tests for it
-
find test for urandom in module/posix/test/test_posix2, fix
-
Fix the message (thanks Julian on issue1256).
-
issue1255 resolved
Release the GIL around calls to signal.pause().
-
complex trancendentals pass, normal trig still fails
-
add tests for fmax, discover problem with converting complex to float and raise TypeError
-
fix for -A, add test for failing to convert complex to float
-
Hopefully fix issue1254 (bad usage of freeze, and missing lazy initialization).
-
count_nonzero
-
remove numpy-incomaptible copysign, start to adapt cmath test cases to 64 bit
-
add tests for fmin
-
simplify
-
fixes for where
-
fixes and tests
-
use _locale.CHAR_MAX instead of hardcoding 127 as the maximum value. On ARM/Linux and PPC/Linux this value is 255
-
fixes
-
remove cruft
-
fixes for swapaxes
-
cleanup
-
rpython fixes
-
fix numpy tests
-
fix whatsnew
-
restart the ndarray-attributes branch
-
Make sure that a specific IndexError is handled in RPython for Nonterminal in the Parsing rlib
-
ups, fix the translation
-
fix failing test, probably is still incorrect for all platforms
-
add 'allow_complex' to find_unaryop_result_dtype
-
add ndarray.real, ndarray.imag; properly promote to complex; move rAlmostEqual out of space
-
Issue1260: sys.exc_info was not set before entering a context manager's exit
-
do not box twice, note that numpy.real, numpy.imag are not sufficiently tested
-
fix translation
-
Retry file.read() and file.write() when they are interrupted by a signal.
-
Add tests for the previous commit
-
cffi: improve the type check against floats
-
Import and pass the test about _Bool.
-
Fix: 'bool_t' is not declared yet in the generated C file
-
reorder
-
enable xrange iter's length_hint
-
disallow invalid ufuncs
-
test, fix isnan and friends
-
(fijal) let the jit look inside now that the loop has a merge point
-
add an unpackiterable_into that uses resizelist_hint, make an attempt of integrating length_hint into list.extend
-
abandon unpackiterable_into for direct rpython iterators (thanks fijal)
-
test and fix power(), try and fail to pass on cpython numpy
-
start to test, implement exp2; need to fix rcomplex for corner cases
-
hg backout eeca37b5c607: there is no point in trying to have a prebuilt RuntimeError on pypy: we should be able to allocate objects anyway (and if not, nothing works)
-
move length_hint to space now that it's PEP'd
-
modifications from PEP 424
-
Don't release the GIL when calling internal init functions! Fixes a crash when importing cpyext or the first extension module while a thread is running.
-
Fix a race condition in PyEval_SaveThread, when called for the first time in a multi-threaded environment.
-
Print more information upon crash --- at least the random seed.
-
Minor bug: this self.cpu.compile_loop() is bogus, because the loop was already compiled by the constructor of RandomLoop.
-
Fix: it's "more correct" to not generate a REX.W prefix which has no meaning for this operation, but we need a forced REX.NW prefix because of the 1-byte register argument.
-
A failing test.
-
Fix the corner case.
-
This assert seems false, at least in some tests
-
rsocket connect() with timeout: use getsockopt() to get result rather than calling connect() a second time, enhance tests (inspired by cpython changeset 44789:3c9ccc32da9a)
-
small cleanups
-
Start working on fancy indexing. The first test
-
ensure we only use python in the makefiles if it is really python2.5-2.7
-
remove a unused function
-
Test and fix. That took far too long to find :-(((
-
start to test binary complex functions in rcomplex
-
PyPy support for CFFI up to 9dd27fd230ca.
-
Improve the error messages
-
Simplify.
-
start fancy indexing
-
tests and fixes for bool indexing
-
relax the test and fix
-
the simplest setitem
-
pass the next test
-
implement fancy indexing, I'm not 100% sure about complex cases, but it seems to work
-
fix translation
-
typo
-
issue1266: fix RangeListStrategy append to be more careful when empty
-
few hacks to make TimSort reusable on stuff that's not really lists
-
add a test
-
tests and checks for sanity
-
A potential fix (hard to test, it does not show up in normal tests). Iterate until the index is exhausted, not the array, otherwise we might run out of index.
-
Separate shadow stack stuff from FrameworkGCTransformer and put it in it's own subclass. Also clean up imports.
-
Update remaining references to framework.FrameworkGCTransformer.
-
Rename
get_shadowstack_functions()
toannotate_walker_functions()
. -
Move replace_in_stack() to FSFrame
-
Move fixeggblocks() out of FlowEC
-
Get rid of FlowEC.make_link()
This is actually never overridden.
-
Split and simplify Recorder.guessbool/guessexception
-
Simplify BlockRecorder.guessbool()/.guessexception()
-
Transfer FlowEC.guessexception() logic to the recorders
NB: the code in FlowEC.guessexception() was only executed in the case of a Replayer recorder, so it only needs to be moved to that class.
-
Remove dependency of FlowEC on ExecutionContext
-
Store the frame on the FlowObjSpace, instead of the EC
-
Remove FlowExecutionContext: merge it with FlowSpaceFrame.
-
Inline FSFrame.dispatch_bytecode()
-
Get rid of MergeBlock exception
Use FSFrame.record() to record operations and call FSFrame.mergeblock() directly from there.
-
Move handle_implicit_exceptions() to FSFrame
-
Move flowspace-specific exceptions to flowcontext.py
-
Create flowspace-specific subclass of OperationError
This is the first step towards reimplementing exception-handling inside the flow space.
-
Flowspacify RAISE_VARARGS
-
Replace Reraise exception with RaiseWithExplicitTraceback
-
Use only FSException, not OperationError, in flow space.
- Reimplement OperationError.normalize_exception() in FSException
- Create flowspace-specific subclass of SApplicationException
-
Remove _convert_exc()
-
Add FSException.init()
-
FSException: access w_value directly
-
Move FlowingError handling from FlowObjSpace to FSFrame
- rationalise some imports
-
Use FlowingError only in the flow space
-
Implement exception formatting inside FlowingError
This avoids unnecessary catching/munging/reraising of exceptions.
- Attach the FlowSpaceFrame to the exception, allowing improved debugging and advanced error-handling.
- Fix crazy hack for undefined globals.
-
Inline format_global_error() into FlowingError.str()
-
Python 2.5 compat
-
Change "raise ValueError" that should no longer occur into simple "assert" statements.
-
fix indenting
-
Raise FlowingError when attempting to write a global.
-
fix those tests, bad fijal, no cookie
-
whatsnew
-
Update with ideas posted today to #pypy.
-
shortcut c_pow for complex if both imag are 0. (still need more tests)
-
use c_pow from rcomplex instead of translating platform's pow
-
Simplify import_from() logic
- Copy and adapt getattr() code, so that import_from() doesn't rely on repackaging OperationThatShouldNotBePropagatedError
-
Kill OperationThatShouldNotBePropagatedError
- Use FlowingError instead
- Improve tests for that case
-
issue1266: remove the more brittle RangeListStrategy optimizations entirely, they have overflow bugs and aren't that useful anyway
-
Use FlowingError for non-constant excepts.
- Add failing test (raises the wrong exception)
-
use the same error message as the CPython version
-
Port CFFI f60f68a19251.
-
Add the test from CFFI/8d3d149fd8c0.
-
Inline _exception_getclass() into FSException.
Since space.exception_is_valid_class_w() is always true in flow space, ._exception_getclass(space, w_inst) is equivalent to space.type(w_inst).
- make ObjSpace.exception_is_valid_class_w() independent of flow space
-
Replace operr.normalize_exception() with space.exc_from_raise()
-
Do not attach tracebacks to FSExceptions
RPython didn't actually do anything with these tracebacks.
-
A simple idea that should fix issue1067: when we hit the limit 'max_unroll_loops', then instead of aborting, retry to compile by disabling the 'unroll' optimization.
-
Maybe temporary: set max_unroll_loops to 0, which should completely prevent tracing more than 1 iteration. Maybe a better value would be 1 (retraces once, so trace at most 2 iterations), but it's hard to say a priori.
-
Slight code clean up in _csv
-
issue1253 testing
Remove from the AST compiler the (apparently) only two places that recurse on basic blocks.
-
Don't use RaiseWithExplicitTraceback in flow space
-
Copy (exactly) WITH_CLEANUP to FSFrame
-
Flowspacify WITH_CLEANUP
- Kill FSFrame.call_context_manager_exitfunction()
-
Kill old implementations of WITH_CLEANUP in pyopcode.py
It's only the translator that needs to know about old implementations, not the interpreter.
-
test, fix expm1
-
test_ufuncs.py is too big, move complex tests to seperate file
-
handle case of neg real raised to non-int real in c_pow
-
Flowspacify FOR_ITER
-
Don't derive FSException from OperationError
-
Adding an RPython-level _csv module.
-
in-progress
-
Finish the reader logic. Mostly untested so far, apart from the one test in test_reader.
-
Port some tests from CPython.
-
More tests
-
field_size_limit.
-
'line_num' test
-
in-progress: writer
-
More tests. writerows().
-
ztranslation test
-
Remove 'field_builder.append', which can crash the flow space depending on order issues with a 'None.append'.
-
The _csv module is translating.
-
Fix the test by allowing a different exception in two corner error cases.
-
Test and fix
-
Another place that needs to be loosened
-
whitespace
-
simplify and move the guts of list init into extend. fix extend from lists w/ custom iterators
-
(fijal) don't overalloc in resizelist_hint ge
-
Update to cffi/0c8581ea7507:
Change the default dlopen() flags from RTLD_LAZY to RTLD_NOW. Give access to all flags, for more precise control.
-
CFFI: Prepare for the version 0.4 (not released yet!).
-
test log2, fix expected val for exp(complex(inf, inf)) for numpy compatability
-
add last tests
-
penultimate test passes
-
Copy end_finally() into FSFrame
-
Clarify logic of FSFrame.END_FINALLY
-
Kill FlowObjSpace.interpclass_w()
-
Indirect creation of function unicode_encode_unicode_escape(), will make sense in python3 which needs different variations of the same function.
-
We will need copies of this function as well
-
An attempt to reduce differences in rlib/runicode.py, between default and py3k branches.
- by default, utf_8 functions don't allow lone surrogates. The 2.7 implementation has to pass 'allow_surrogates=True'
- unicode_encode_unicode_escape() is a generated function. py3k needs a very similar function for repr(), but which returns unicode. and the 'u' suffix is now an option.
-
No more differences in runicode.py between the two branches. (I'm not sure why py3k needs this _impl split)
-
revert complex128 special values to c99 compatability
-
Reduce differences in rsocket.py between default and py3k: RSocket.accept only returns the file descriptor, the client is responsible for creating the new socket object.
-
Copy frame block handling from pyopcode.py into flowcontext.py
Also:
- Copy CONTINUE_LOOP, BREAK_LOOP, SETUP_LOOP, SETUP_EXCEPT, SETUP_FINALLY.
- Remove now-unnecessary support for flow space from the copied parts of pyopcode.py.
-
add tests, fix for numpy.real, imag
-
Add missing doc
-
Fix the test by forcing it to run with the old value 'max_unroll_loops=5'.
-
Fix these tests too by forcing them to run with the old value 'max_unroll_loops=5'.
-
Fix error message
-
test logical ops, does not translate
-
translation fixes
-
test, fix maximum, minimum, max, min
-
Test and fix from CPython: http://bugs.python.org/issue16013
-
Report at least a little bit more clearly than "Fatal RPython error: OSError".
-
extend now takes any object
-
Fix tests around utf8 encoding
-
Fix test_rpoll after the recent RSocket changes.
-
Attempt to fix translation (sorry)
-
make the python for asmgcroot stackfinding a makefile variable
-
a faster mode for debugging.
-
Simplify code; flowspacify POP_BLOCK
-
Kill ObjSpace.full_exceptions
-
Don't call superclass method from FlowObjSpace.exception_match()
-
Remove dead code in FlowObjSpace.unpackiterable()
and make it clear that all cases are accounted for.
-
refactor dupe impls into a base class
-
allow numpy.void subclass
-
implement StringArray methods, add failing test
-
add a get_printable_location
-
add the rest of the needed length_hint impls and more tests
-
cli probably needs this too
-
Copy ObjSpace.init into FlowObjSpace
- disable things that don't make sense in flow space
-
Don't intern co-names in flow space
Interning is effectively meaningless there.
- Copy PyCode.init inot HostCode
-
Stop subclassing FlowObjSpace from ObjSpace.
Copy missing methods into FlowObjSpace and simplify call_valuestack()
(causes a test failure related to special-casing of interphooks)
-
Fix PRINT_ITEM and PRINT_NEWLINE
-
Add missing FlowObjSpace.not_(), with test
-
Refactor direct calls to app-level RPython from flow space
- Replace sc_applevel with FlowObjSpace.appcall()
- Simplify PRINT_ITEM and PRINT_NEWLINE
- Remove flowspace-specific hacks in pypy.interpreter.gateway
-
Disable non-working PRINT_* opcodes, with test
-
Update to cffi/614f97f0de2a.
-
STM future work: add a couple of sentences.
-
mark this function as unroll_safe
-
Kill unused attributes and methods in FlowObjSpace
-
Flowspacify COMPARE_OP
- Remove FlowObjSpace.w_str
- Fixes an xfailing test
-
Copy PyCode._initialize() into HostCode, and simplify it.
Note that _init_flags() and _compute_flatcall() are useless for the flow space.
-
Flowspacify LOAD_ATTR and kill FlowObjSpace.config
-
FlowObjSpace ctor doesn't take a config argument any more
-
Replace constant instance attributes of FlowObjSpace with class attributes.
This makes FlowObjSpace.init() trivial.
-
fix typo
-
lookup of all overloads for CINT
-
Cleanup imports in pypy/objspace/flow/
-
A branch to improve cpyext support for PyThreadState_New and threads created from C side.
-
First attempts to correctly initialize a new execution context from cpyext.
-
Move a bad DECREF, and add a call to PyThreadState_Clear(), my tests still crash.
-
Move ll_thread.gc_thread_start() and llthread.gc_thread_die() to places where the GIL is held.
-
Some style cleanups.
-
start adding jitdrivers
-
more jit drivers
-
fix test_compile
-
and this is why we need zjit tests. run them
-
skip the actual running, let's leave it as compile test for now
-
more jitdrivers
-
fixes
-
forgot about one
-
uh?
-
Fix docstrings.
-
The arm-backend-2 branch has been merged now.
-
a missing unroll safe
-
Basic sorting - not RPython yet. argsort for now
-
fixes and tests, comparison on single float failing
-
still not RPython, but make it slightly better. other fixes
-
rm unused argument 'constargs'
-
Implement FlowSpaceFrame.cells initialisation in HostCode
-
FSFrame: consolidate locals_stack_w init into .init_locals_stack()
FSFrame doesn't use PyFrame.setfastscope() any more.
-
StringType passes tests, translates
-
add failing test - array() in interp_numarray does not handle str properly yet
-
Let handle_bytecode() handle a single bytecode
-
Simplify control flow in FSFrame.mergeblock()
-
Give names to variables after build_flow(), not within it
-
Record join points at the end of the bytecode, instead of the beginning of the next one.
- Kill BlockRecorder.enterspamblock and .bytecode_trace()
- Rename BlockRecorder.last_join_points to .final_state
-
typoish simplification
-
issue1274 testing
-
Unskip and fix test_continue_in_finally.
-
a test and a fix
-
Split FrameState.nonmergeable into blocklist and next_instr
-
Test cellvar handling
-
Move frame state initialisation to _init_graph()
This will allow the graph to be created before the frame
-
Extract graph init into a new class PyGraph
-
fix the whatsnew
-
Instantiate HostCode and PyGraph outside FSFrame
-
Move pypy.interpreter.generator to flow space
-
Fix PyGraph.name
-
ups, this is enough
-
fix dos line endings
-
fix merge
-
comment out complex64 math tests 'for now'
-
Split instrument.h and instrument.c
-
Split ll_strtod.h into interface and implementation.
-
Move the "preimpl" lines to their own file preimpl.h
(provide well-known aliases to generated objects, e.g. #define RPyExc_TypeError (&pypy_g_exceptions_TypeError.te_super.se_super.e_super) )
-
Always generate separate header files, even for "one_source_file" builds. This allows int.c to be compiled separately.
-
Split debug_traceback: .h and .c.
-
Fix compilation warning
-
exception.h: split interface and implementation
-
Split support.h into header and implementation.
-
Split stack.h: header and implementation.
-
Silence a compiler warning.
-
Split rtyper.h: header and implementation.
-
pyobj.h: split header and implementation.
-
Split main.h: interface and implementation.
-
Some #ifdef and documentation.
-
This hack is not needed anymore :-)
-
do not trust tranlating platform's power() for tests
-
add failing test for pow ( ** ) for interpreter, start to fix for interpreter, rcomplex, and numpypy disallow arctan2 for complex
-
test, implement square
-
pass power tests
-
hook length_hinting into map/filter/zip
-
Kill option tweak_for_generator
-
Don't build the flow graph when bootstrapping generator graphs
- Split tweak_generator_graph()
-
Fix fix fix. Also rename main.c into entrypoint.c, to avoid collision in case of --shared build.
-
restore iadd__List_List, it's still needed to override add__List_List
-
avoid the contextlib import here entirely as it complicates a few tests
-
revert attempt to fix, test issue1275 - test was bogus
-
Remove ll_strtod.c from the RPython core C files. The ExternalCompilationInfo object should be enough to add it to the Makefile.
-
Fix compilation warning.
-
Fix a crash in some module/thread test.
-
A constant offsetof() in a FixedSizeArray.
-
Kill unused attr PyGraph.is_generator
-
Issue1276: (dalcinl) in PyBuffer_FillInfo, respect the readonly parameter and fail if it set and we asked for a PyBUF_WRITABLE buffer.
-
(alex, fijal) Make char.{lower,upper}() return chars instead of upcasting to strings.
-
Copy and adapt PyCode._from_code() into HostCode
-
Don't wrap objects inside HostCode
HostCode attributes could only contain Constants, not Variables, so that wrapping and unwrapping was always trivial and can therefore be skipped.
-
workaround for issue #1259 (closed), use a module that has a correct file attribute to compute the path to the math_testcases.txt file
-
Issue1277: fix signature of PyCode_GetNumFree().
-
Don't derive HostCode from PyCode.
- Make HostCode.signature an ordinary attribute instead of a method.
- Add HostCode.formalargcount property, replacing .getformalargcount().
-
Remove now unused attribute HostCode.space
-
Kill unused attribute HostCode.hidden_applevel
-
Remove HostCode.magic and simplify WITH_CLEANUP
-
Allow const-folding of inner functions
- Implement FlowSpaceFrame.MAKE_FUNCTION
- Add tests
- Don't wrap code constants in HostCode
-
Optimization: avoids long longs when they are not needed.
-
Document this function's purpose
-
Another case of avoiding long longs.
-
More long long removal.
-
More removal of long longs.
-
Grumble, we must actually not kill duplicates from PYTHONPATH. setuptools's site.py relies on that.
-
Include the root of the module name in the files that are generated by translation.
-
(fijal, arigo)
A branch to really kill SomeObject support. Kill kill kill old old old code.
-
make translator/transform use the new API
-
Fix up annotation/test_model
-
Progress into removing allow_someobjects and PyObject from the rtyper
-
(alex, arigato) really remove these files
-
(alex, arigo) Reintroduce this very complicated logic.
-
(alex, arigato) fix some of the exception lgoic and remove pyobject stuff from rtuple
-
We removed knowntype from the base class, so need to re-add it here.
-
Bah, nonsense. Re-add 'knowntype=object' and be done.
-
Slow progress. Did not find a better way than listing by hand the exceptions in make_raise_noarg().
-
A bunch more.
-
remove robject from rdict
-
Added rtyper_makekey to StringBuilder
-
(arigato, alex) kill a test of an implementation detail
-
Use StringBuilder here too.
-
Disable ReadlineInputStream for now. Needs thinking...
-
Redo a solution that is very inefficient but maybe not as bad as before.
-
(alex, fijal) kill nonsense
-
Progress towards killing PyObject support
-
kill some dead imports and style cleanups
-
Remove another pyobj usage.
-
Some files that should be removed.
-
another removal of pyobject
-
Make jit/codewriter tests up to date with the new APIs
-
Not needing -fPIC on i386 is exception, not the norm. Don't expect all 32 bit archs to build shared libraries without it.
-
Add GNU/kFreeBSD platform description. It needs -lrt
-
Write some of the JIT parameter handling code more sanely (also of course makes it work with the new lack of SomeObject)
-
Fix bug with pow(x, BIGNUM, z).
-
Remove more pyobj stuff
-
Remove a bunch of PyObject stuff from the GCs
-
rpython supports the with statement
-
remove more dead code about pyobjs
-
Remove naming that no longer makes sense.
-
style fixes
-
Make OO tests run.
-
in-progress
-
(agaynor, fijal, arigo, crazy hg hackery) backout driver changes, dlltool make standalone=False
-
more code quality cleanup
-
(alex, fijal, arigato) kill cpython_extension
-
(alex, arigo, fijal) kill kill kill
-
kill a hack that is a few hours old, for a change
-
kill tests using someobjects
-
fix rpython test_rbool
-
kill tons of pyobj code
-
more pyobj death
-
kill more pyobj stuff
-
fix mishandling of bad length hints in zip, add some related asserts
-
another length_hint impl for the generic reversed
-
update per the final PEP
-
remove some references to cpy, the old allocation flavor for PyObject
-
(arigo, fijal, alex) kill more stuff, start passing C tests
-
workaround (potentially) for parsing extend_from_iterable's trace
-
make this a new type
-
cleanup
-
fix itertools length_hint returning a negative length
-
a bit of test cleanup
-
remove references to policy=annpolicy.StrictAnnotatorPolicy(),
-
remove import of CExtModuleBuilder so the tests will import (even if they fail)
-
fix flow tests
-
fix one more test
-
Cleaned up test_newgc
-
(alex, fijal) kill a now unused debug option
-
some cleanup of boehm tests
-
cleanup of this test file
-
remove a reference to a removed var and general cleanup
-
Remove some import * from tests
-
remove some import * and other general cleanups
-
more test file cleanup
-
more test cleanup
-
cleanup
-
kill dead imports
-
(alex, arigo, fijal) fix the argtypes to ctypes
-
(arigo, fijal) clean up the interactive a bit
-
killed shared pypy
-
(fijal, arigo) fix secondary entrypoints
-
oops
-
This is still hopeless, but attempt to open all db-4.X for X in '56789'.
-
finish fixing test_genc.py
-
(alex, fijal) make getcompiled work
-
(fijal, arigo)
- speed up test_complex
- Python 2.5 compatibility
-
(alex, fijal) make test_typed start to pass
-
get another test running
-
make boehm tests run
-
(fijal around, arigo)
-
fix c_pow() to return (nan+nanj) instead of raising an RPython ValueError in some cases
-
reuse the logic from pypy.rlib.rcomplex from complexobject.py
-
-
(fijal, arigo) Some more tests
-
Document the merged branch
-
Make rlib/parsing work
-
Get rid of the distinction between translator.view() and graph.show(), by supporting both names on both objects.
-
improve error message
-
make this test almost pass
-
Add 3 tests, 2 of which failing.
-
(fijal, arigo) Fix one of the failures: tuple equality now correctly computes the union of the two tuples.
-
(fijal, arigo)
- Fix the remaining test comparing two tuples with a different annotatation
- Kill <= and friends on tuples
-
dead import cleanup
-
make pure python r_{u,}longlong initialization work with strings
-
trailing whitespace removal
-
(alex, arigo, fijal) fix some tests
-
Unkill these three imports, and clarify them.
-
Hack more to make it work on 32-bit.
-
fix some more tests
-
some more fixes
-
Fix the last issue in test_typed
-
The llinterp cannot convert random exception classes from random pure Python runs. When we get one, convert it to UnknownException.
-
Reintroduce a way to report the malloc counters.
-
Fixes
-
Fix test_lltyped.
-
Fix test_backendoptimized.
-
Fix test_boehm
-
remove tabs
-
implement complex for compile, fix test_zjit
-
fix test_error, a bit by improving error messages
-
(jerith) Fix link to getting-started-dev in 'Further reading' sections of the archictecture documentation. Fixes issue 1280.
-
unused imports
-
Simplify HostCode._initialize()
- Use HostCode.formalargcount instead of recomputing it.
- Flowspacify FSFrame.save_locals_stack(), .restore_locals_stack() and .init_cells()
- Add test for the corner case of function arguments that are also cell variables
-
kill the ability to not pass arguments to translate
-
fix test_interactive
-
Update from cffi.
-
Spelling and grammatical errors spotted by lintian
-
Fix in test_extfunc: avoids the test runner getting killed with SIGUSR1.
-
Fix test_exception. Adds a general way to expect fatal RPython errors.
-
Fix this test too
-
Needs a custom ErrorWrapper class to repr nicely instead of with escaping.
-
(fijal, arigo)
in-progress: refactoring the NoneNotWrapped away, yay
-
in-progress
-
try to use more consistently space.is_none
-
Fix fix fix a bit more
-
finish module
-
make test_newgc pass
-
Fix fix fix in-progress
-
(fijal, arigo)
Complicated messy logic for assigning defaults
-
kill NoneNotWrapped
-
An extra assert.
-
update comment
-
Disable closure creation in RPython
- Trying to build the flow graph of a function whose code object contains cellvars (i.e. a function that creates closures, possibly in unreachable code) now raises an error up front.
- Explicitly disable closure-supporting opcodes LOAD_CLOSURE, MAKE_CLOSURE, and STORE_DEREF.
- Xfail tests for closure support (don't delete them yet as they are a bit tricky to get right).
-
Consolidate RPythonicity checks at the beginning of build_flow()
-
fix some more stuff
-
fixes to socket
-
too bad, it works if we pass None (and people rely on it)
-
remove TypeError, add failing test (missing res_type rule coerce_float for real, imag, abs)
-
run the getattr tests under the getattributeshortcut optimization too
-
Issue1285: Python2 allows lone surrogates, also in string literals which appear in marshalled code.
Also use more direct code for functions that are often used.
-
isfinite already lives in rfloat
-
fix for failing test
-
fix test_descriptor
-
Kill HostCode.co_cellvars
-
Don't wrap closure vars in Cell objects
-
cleanup imports
-
kill some more pyobj related code
-
fix cffi backend tests
-
fix continuation
-
(arigo, fijal) fix the annotation of isinstance
-
Raise FlowingError for run-time UnboundLocalError
-
use newer shinier interface a bit everywhere
-
fix some modules
-
fix fix fix
-
make this code more beautiful
-
fix math
-
(arigo, fijal) Rename freeze returning False to cleanup, now we can have hasattr(x, 'freeze') without strange hacks to check for frozen PBCs.
-
Make pyexpact use the new API
-
ootype fix
-
fix micornumpy
-
fix pyexpat
-
revert the jit.py modification
-
fix someobject in jit
-
fix tests
-
fix the logic for handling infs and nans
-
fixes
-
Don't print unescaped strings to stdout.
-
Fix test
-
Fix fix fix
-
kill some obscure commented out code
-
finish fixing rlib
-
"Hum". A fix that I don't fully understand, but then it's in test_refcounting, so well.
-
Fixes
-
Fix sandbox tests
-
fix test_os
-
small fixes
-
fix few things
-
fix test_symbolic
-
Fix test_standalone
-
Fix test_rtagged
-
Fix test_refcount (and kill two of them, because I can't be bothered to care).
-
finish extfunc
-
fix the last 2 remaining tests, yay!
-
Fix for SomeChar in enforceargs()
-
don't use object(). Ever
-
Allow again SomeInstance(classdef=None) for corner cases. Used by normalizecalls.py.
-
fix
-
Add module summaries
-
Ah ah, we can get 'Aborted (core dumped)' too. General fix.
-
bah
-
Change the default to make crashes a little bit less obscure (OpErrFmt asserts that w_type is not None)
-
Fix properly, with a test, the escaping. Argh.
-
Kill this complicated logic that crashes in module.unicodedata.test.test_unicodedata because it's wrong when generalizing.
-
fix whatsnew
-
Revert previous change: ll_thread.py also compiles thread.c, without genc.py and generated header files.
-
It's certainly a good idea to put thread functions apart, and only compile TLS storage with other genc sources.
-
removed absolutely pointless copy of pybench
-
more of spring cleaning
-
more cleaning
-
kill
-
cleanup
-
an attempt to improve the fancy indexing situation untested
-
Another attempt to fix the boehm/thread interaction.
-
Store FrameBlocks in an ordinary list
-
Flowspacify unrollstack() and kill .frame_finished_execution
-
Inline blockstack manipulation functions
-
Do not wrap unrollers.
Since they aren't Python objects, it doesn't make much sense to wrap them inside Constant(). Not doing it simplifies the code a bit.
- Remove costly isinstance() check.
-
test, fix c_div for nan in denom
-
fix for None in kwargs
-
fix merge
-
creating string array works, add more failing tests
-
Store return values in the exception, not in the stack
-
Derive FSFrame directly from PyFrame
- Refactor opcode patching tests
-
Flowspacify dropvaluesuntil()
-
Flowspacify stack manipulation methods
-
Flowspacify more stack manipulation methods
-
Flowspacify LOAD_CONST
-
Flowspacify STORE_FAST
-
(fijal, arigo) Kill this outdated piece of code.
-
Flowspacify STORE_GLOBAL
-
Flowspacify CALL_FUNCTION and friends
(remove useless speed hack in CALL_FUNCTION)
-
remove sanity check that does not seem to do all that much
-
Start fixing casting to stuff
-
kill things that are done
-
kill unused link
-
manually revert f1c048beb436: this has never been true on CPython, no clue why it was introduced
-
bah, our old value for CO_CONTAINSGLOBAL conflicts with PyCF_IGNORE_COOKIE. Add a test to check that we don't have duplicate flags, fix the value of CO_CONTAINSGLOBAL and remove a magic number from test_code_extra, which now passes
-
add one more edge case to complex parsing
-
fix to_str, clean up debug cruft; now passes test_stringarray
-
fixes for translation, running all test_numarray tests fail but running singly succeeds
-
add some jit hints
-
Remove this lone small test file and merge it into test_lib_pypy.
-
Skip the segfaulting test. Broken by the fast-path. Meh.
-
issue1293 fixed: changing func_code must not change the docstring
-
issue1292: simplify the repr() of types, now that most built-in types are indeed written in RPython and not in pure Python. We'll need to check this night's lib-python test run to be sure it's correct...
-
Allow unicode for ctypes Structure field names. (Useful e.g. with the unicode_literals future import.)
-
Don't forget the return value, so that ioctl works on int args.
-
Test ioctl with int args
-
Don't hardcode termios values.
-
Create pseudo-terms so that the ioctl tests can run without a terminal.
-
Copy cpython_code_signature()
-
copy pypy/interpreter/argument.py wholesale into flowspace
- Use the flowspace version of ArgumentsForTranslation everywhere.
-
copy the tests as well
-
Kill pypy.interpreter.ArgumentsForTranslation
(meh, I accidentally removed it already but left the tests)
-
kill irrelevant tests
-
inline some Arguments code into ArgsFT
-
kill unused method parse_into_scope()
-
Kill unused method parse_obj()
-
Inline _parse()
-
Kill useless params and simplify
-
kill a few more Arguments methods
-
Add test for ArgsFT.fixedunpack()
(it's used in pypy.annotation.description)
-
Kill unused methods firstarg() and topacked()
-
Get rid of Arguments
-
disallow ufuncs, binfuncs, operators on flexible types, start to test repr()
-
test, fix repr() for StringArray
-
Fix for the warning "exceptblock is not completely sane".
-
Don't bother with OperationError
None of the relevant objspaces raise or catch them so just let exceptions and raise real ones when needed.
- cleanup JIT leftovers
-
Inline 2 helpers
-
Inline remaining helpers (don't hide away the side-effects)
-
push fromfloat failure categorization down into rbigint
-
C&P some missing opcodes
-
Add popvalues()
-
Copy stack manipulation opcodes
-
Port the test. Not passing so far.
-
Passing file arguments.
-
Test and fix for buffering issues.
-
Some ctypefunc bugfixes.
-
some random cleanups, including removing a totally dead function
-
Rewrite _sre tests in a way more friendly for the py3k branch
-
cpyext: add PyErr_Display
-
require a min. of Java 6, skip the jvm tests otherwise
-
Test that all opcodes are implemented in FSFrame
-
Add UNARY_OPS to FSFrame
-
Add BINARY_OPS to FSFrame
-
2.5 compat
-
s/FlowSpaceFrame(pyframe.PyFrame)/FlowSpaceFrame(object)/
-
kill last mentions of pypy.interpreter from flow objspace, great job ronan!
-
one more
-
fix, not sure how to write a test for it
-
Remove the line printing "Warning: pypy does not implement hash randomization". See http://bugs.python.org/issue14621 .
-
Doc update: -R
-
Doc update: sys.setrecursionlimit
-
Add a test for DUP_TOPX
-
pfff sorry
-
Python 2.6 compat
-
cpyext: Add two PyModule_Add* macros, directly copied from CPython.
-
cpyext: implement built-in classmethods: METH_CLASS flag.
-
speed up deleting a simple slice (step=1) of an array.array by a generous order of magnitude. Also add more tests for deleting slices of an array.array.
-
Use memcopy for more faster in array.delslice
-
use memcpy one more time in array.delslice for extra speediness
-
try to mitigate "it takes forever" on py.test
-
Fix unused code (but used by other people)
-
make it rather a fatal error
-
Kill unneeded .make_arguments() and .argument_factory()
-
test, fix for 'take' raising exception
-
(arigo, fijal) Some simplifications, test and a fix on PyPy
-
added a missing import
-
bah, bug-to-bug compatibility to cpython about when it is allowed to return a non complex from complex. This in part reverts 6d1ad31ec914, so it in part reintroduce the behaviour of f1c048beb436. See test___complex___returning_non_complex for details.
-
Fixed #1301 (closed) -- copystrcontents from Constant -> virtual is fully unrolled now
-
fix jit translation, don't lookinside this function until ptradd works with things besides ccharp
-
explanatory comment
-
force return value of bool in is_static
-
from Scott Snyder: fix aliasing bug
-
simple test for float(bytearray) - issue #1219 (closed)
-
test passes, but fix looks like an awful hack
-
some more tests, fix feels ok after looking around more
-
catch ParseStringError, raise app-level exception
-
add test for invalid float argument and for nan
-
issue1299: BZ2Decompressor.decompress('') does not raise EOFError at end-of-stream. Patch by nadeem.vawda.
-
Fix check_number(), as per comments on pull request #80 (closed).
-
Fix lib_pypy/itertools.py
-
Use built-in next function and fix bugs in lib_pypy/itertools.py
-
Make helper methods/attributes private in lib_pypy.itertools
-
Add lib_pypy.itertools tests, fix check_number in interp_itertools
-
Change is 1 to == 1 in lib_pypy.itertools tests
-
Minor fix in lib_pypy.itertools.count, added test
-
Make itertools.tee shared data a linked list
-
Remove the pure Python itertools.py. Having it around just means extra maintenance burden for very little gain.
-
a test and a fix
-
document numpypy-problems branch
-
a branch to add unicode strategies to list/dict/etc., which will be useful for py3k as well
-
add a UnicodeListStrategy
-
fix this test
-
extend more test with UnicodeListStrategy (and make lines a bit shorter by using space and w instead of self.space.wrap)
-
extend more tests
-
Attach the FILE to the Python file object from CFFI. This lets the FILE pointer stay valid for C code after the call to the function, and implement support for 'new("FILE **", f)'.
-
Update to cffi rev. 65574fb4a819.
-
bah, remove pdb
-
Move import
-
add a unicode dict strategy
-
add a test about string set strategy
-
start to implement space.listview_unicode; it works only for lists for now
-
unicode.join uses listview_unicode
-
one more test
-
yet another listview_unicode test
-
enable listview_unicode also for subclasses which do not ovverride iter
-
implement listview_unicode for dicts
-
implement unicode set strategy
-
implement iterator for unicode sets
-
implement listview_unicode for sets
-
progress on sorting
-
mark this as unroll safe - it's going to be almost always constant-folded away
-
shuffle stuff around and pass argsort tests
-
mention why we do that
-
Merge change bf651562fa0c from pyrepl:
-
When the history file contains non-utf8 character sequences, don't crash but just replace them with the "unknown" unicode char.
-
When writing out text to the terminal, use "?" instead of crashing when the text cannot be encoded.
-
-
Oups, my fault for leaving the option "--jit-backend=llvm" around when the llvm jit backend was removed long ago.
-
Kill these lines too.
-
Don't write directly to "SomeBool().knowntypedata"; instead use a setter. This lets us do more checking, and fixes a hard-to-reproduce-in-a-small-test issue whereby sometimes an empty knowntypedata attribute gets attached, confusing contains().
-
close branch about to be merged
-
a passing test
-
promote shape a bit everywhere
-
promote the LENGTH of shape, not the pointer to shape
-
Skip this test when running on a version of Python where a "python -S" cannot import extension modules, like a non-installed version on Posix. (See the bug report.)
-
start numpypy.float16 to implement float16 dtype on numpypy
-
float16 is a container for floats
-
basic tests and framework in place, start to implement
-
implement astype
-
make sure that shape is nonresizable
-
A very ugly commit :( Implement base. Unfortunately it means slice has to carry the original array a bit everywhere
-
A bug and fix in the dict insertion code. Interestingly, CPython has the same bug until changes in 3.3 fixed it.
-
implement unrolling of arraycopy over non-virtual and small sources
-
fix imports
-
remove an import * and fix import locations
-
fix some imports
-
disable the optimization until we find a better way
-
a failing test
-
Tweak ll_arraycopy() to fix again the issue of the missing arraydescr among the calldescr.get_extra_info().
-
Fix the test.
-
readd the hack. will find something better
-
some speedups
-
seems my hacks made assertion worse
-
grr, my font sucks
-
make it possible to compare rbigints with == and != for testing
-
work in progress
-
fix promotion of UInt64 -> Float64, obscure use of indexes in builtin_types
-
flesh out Float16 type
-
remove old cruft
-
Test and fix.
-
Update to cffi/15e763a4ae27.
-
Add a sanity check and fix test_ztranslation.
-
Fix.
-
Fix tests for missing 'itertools'.
-
Fix more tests for missing 'itertools'.
-
Fix more tests for missing 'itertools'.
-
Fix more tests for missing 'itertools'.
-
Don't import 'collections' but only '_abcoll' from here. collections requires itertools.
-
promote lengths of strides and backstrides
-
one more
-
one more
-
Don't import 'collections' but only '_collections' or '_abcoll' from here. 'collections' imports the world, including itertools.
-
two more
-
Move the test to an "expected" place and don't import 'collections' at app-level.
-
byteswap on floats
-
improve singlefloat byteswap
-
implement non-native floats
-
implement byteswap
-
shape agreement is unroll_safe
-
calc_strides too
-
oops missed that one
-
write choose tests
-
implement ndarray.choose
-
shuffle stuff around and implement clip
-
remove all immutable references as they don't work the way I expected ...
-
A branch to remove most calls to gettestobjspace(). The goal is to move code outside conftest.py
-
Simplify test setup_class: replace gettestobjspace() by a spaceconfig.
-
Progress
-
Progress. Also set "cls.option", this avoids one conftest import.
-
Progress. Fix for spaceconfig={}
-
Progress
-
Progress. cppyy tests could probably share more code.
-
Progress: cpyext module.
-
progress.
-
progress
-
progress
-
progress
-
progress
-
progress
-
progress
-
progress
-
progress
-
progress
-
progress: removed many usages of gettestobjspace from objspace/std tests.
-
progress
-
progress
-
Only export cls.runappdirect instead of the whole option object.
-
Remove extra import
-
Finlly move gettestobjspace and maketestobjspace to their own file.
-
Oops, move TinyObjSpace as well, to fix -A tests.
-
For now, disable buffering on the FILE object, to avoid issues.
-
Import from cffi/c7af62d13de6.
-
Import cffi/b516da9bebb9.
-
Fix many tests
-
conjugate
-
numpy has opinions. It has it's own opinion what's a sequence and it's own opinion what's an int. Deal with that
-
Attempt a fix. Hard to test.
-
cumsum and cumprod
-
Add the '--opt=..' option to py.py, as a way to enable all pypy-specific options at a certain optimization level.
-
Add a sanity check.
-
Simplify the logic.
-
Hopefully, fixes for 'test_buffer' after O2 or Ojit translation. Hard to test...
-
data
-
simple case of diagonal
-
implement diagonal. I wonder if the jit would help here
-
fix test_stressdict
-
implement listview_unicode for W_UnicodeObject
-
Tweak tweak. Unclear if this gives enough win any more to care...
-
Comment it out until we figure out (1) if it has a measurable performance impact nowadays, and (2) if it's really really really correct
-
fix this test
-
fix this test too
-
document merged branch
-
close to-be-merged branch
-
issue920: wrote a small test. Passes on CPython but not on PyPy.
-
Fix.
-
fix test_whatsnew
-
skip this test for ropes: they are not opimized yet, too bad
-
add halffloat bit conversion, tests
-
check overflow, underflow in halffloat bitconvert to float
-
test, implement float16bits to doublebits and back
-
_write, _read works
-
cleanup
-
Fix an obscure race condition.
-
Fix: 'newshortcut' is commented out for now
-
Trying to fix the micronumpy tests
-
Fix non-obvious annotation bug.
-
Don't create VStringPlainValues corresponding to long strings: limit them to, arbitrarily, 100 characters. This may fix a MemoryError issue in test_pypy_c/test_alloc.py
-
Confusion between rel_err and abs_err. Fix the test.
-
Translation fix. Hack differently, only when we actually make a SomePBC containing several classes.
-
another passing test
-
translation fixes
-
fix tests, float16 now exists
-
Port the special-casing needed for libffi_msvc here.
-
Fix.
-
Import from cffi/a9b7746a6a20.
-
Import cffi/d3febaf49a87
-
Import cffi/30115faf8019
-
GetLastError/SetLastError support
-
Support for a machine where /tmp is actually a symlink
-
Issue1313: When sqlite cursor is an insert statement, list(cursor) would execute it twice :-(
-
Fix one more test
-
Close branch about to be merged
-
A branch to move AppTest support out of conftest. Goal: conftest.py should be importable by python3.
-
Split the various implementations for Test classes out of conftest.py
-
Found a nice way to isolate leakfinder from the rest of conftest.
-
Move the import at module level. Should fix test_thunkobjspace.
-
Add a warning.
-
Give rbigint.eq a faster path (atleast it benchmarks slightly faster)
-
Remove this assert, it's a condition for the while loop
-
add and test size=2 to ieee float_pack, float_unpack
-
remove halffloat, use rstruct/ieee instead
-
remove untested and unused pack_str
-
slightly rework the bytearray to float fix mostly for the sake of py3k
-
Move support for KeyboardInterrupt
-
This check is not necessary: appdirect only collects AppTest classes
-
Close branch to be merged
-
Do sign checks directly.
-
This assert seems necessary, to prove that rbigint.size is always positive.
-
Import and fix cffi/a988b91f31fc.
-
Add a missing import
-
clarify LICENSE
-
clean up the title
-
kill now-dead code
-
Tweak the gc.get_*() functions to give them hopefully reasonable performance, based on the new ability to set and clear a flag in the object headers from RPython.
-
C implementation.
-
Should make the "extra" flag really independent from any other flag used in the GC.
-
Test and fix.
-
A better fix
-
Mention this even though it was not in a branch
-
fix termios tests
-
Backout part of 9dc6cd01cad3, looks like checked in by mistake.
-
Hacking around, but I believe that this is correct.
-
fix issue1317 - fd returned by os.popen is always a context manager
-
fix translation
-
fix test_whatsnew
-
translation fix
-
promote to float64
-
fix for 32 bit
-
document float16 numpypy branch
-
Try again from scratch: step 1 is removing the globals from the run-time in the JIT-generated code.
-
The goal.
-
Add this too.
-
Copy over the state of the llgraph backend as it is in the 'no-failargs' branch. In particular, it's a major simplification at the cost of not being 'half-RPython' any more.
-
tweak tweak
-
in-progress
-
Big no-op change: try to standardize the order of the arguments when there is a "descr". The descr is now last, after the ptr-or-boxes arguments.
-
in-progress
-
Import and fix cffi/b22bc0909265.
-
Test from cffi/2f3f5a229adb and fix.
-
fix translation I believe
-
use a dict instead of a list, this is WAY faster
-
this isn't rpython, so it can be a set
-
Update to cffi/d63ceb231d7c.
-
Fix translation
-
Compactify a bit the code, reducing the proliferation of virtual methods.
-
restore the original list init special cases for now
-
unskip&fix test_{upper,lower}_char for ootype (this fixes also the correspondent CLI tests)
-
a branch where to experiment with 'automatic reds' in the JIT
-
it took 2 days of experiments, playing around and understand JIT details I never knew about :), but I finally managed to find a simple way to have red variables automatically detected by the JIT; still in-progress, but the basic idea should work
-
add support for FLOAT and REF automatic reds
-
add a sanity check
-
don't crash if we use jitdrivers with explicit reds
-
add support for live variables which are between the start of the block and the jit_marker
-
make sure that we cannot use autoreds with confirm_enter_jit
-
Update to cffi/86564854139f.
-
unnecessary w/ the restored list init special cases
-
Give test a better name
-
Add RPython support for 'replace' and 'ignore' error handlers.
-
forbid autoreds when using can_enter_jit, and explain why
-
crash even when unstralsated if you call can_enter_jit on an autoreds driver
-
remove 2.4 support in tests
-
of course we need to do the can_enter_jit check only if we are using autoreds, else everything breaks
-
GNU library declares those things as ints. hopefully fix tests?
-
Create a release-2.0-beta1 branch
-
Start writing the release announcement
-
various tweaks (mostly english tweaks)
-
Fix the test, with explanation of why.
-
move autodetect_jit_markers_redvars out of split_graph_and_record_jitdriver: it doesn't change anything, but it just makes more sense to have it as a separate step
-
the test to show the whole point of the excercise, i.e. the possibility to automatically create jit portals by iterating over a specially-decorated RPython iterator
-
bah. "typo" which made all the jit tests failing"
-
fix immutable directives
-
Tweaks.
-
add a few words about ARM
-
fix this test
-
make sure to set .autoreds and .numreds even when the reds are given as class attributes
-
fix test_warmspot.test_void_red_variable
-
crash very early if we try to use JitDriver hooks with reds='auto', and detect it anyway in warmspot.py, giving a better assertion message
-
close to-be-merged branch
-
Fix test_version: give PYPY_VERSION a format following the standard, and fix the test to correctly expect the "-beta1".
-
Progress, by fighting the urge to fix seven things in the same branch.
-
Finish test_llgraph.
-
Starting to fix the front-end
-
Cancel the change to resoperation, which breaks things (it ignores 'opnum'). Fix differently.
-
progress
-
progress
-
Fix
-
fix fix
-
fix
-
fix test
-
Another round of fixes for the front-end, getting close.
-
fix test
-
Kill this test, now that the llgraph backend is not translatable at all.
-
Fix tests.
-
shift the tests where they belong
-
I believe we don't support void reds, at least it's fine not to
-
move tests to the correct class
-
Make a newlist_hint an official interface both from ObjSpace and from pypy
-
use the more official interface instead of hacks
-
make sure we test the actual specialization
-
a failing test and the fix: it is not enough to manually call inline_function, we need the full auto_inline logic to correctly handle calls to graphs which raise exceptions
-
Fix signatures for helper functions implementing instructions not provided by the architecture on ARM
-
Unroll dict(key=value) when the set of keys is constant
-
In-progress: kill kill kill failargs_xyz and related data on the Assembler386 class.
-
Pass the first test.
-
Progress.
-
Remove old method.
-
Kill an old, unused-any-more method.
-
Fix exceptions.
-
Fix force().
-
Fix fix fix, with a hack for now
-
Fix, progress.
-
Forgot to check this in.
-
Give up using a union for now, which simplifies things.
-
More work on exceptions. Propagate MemoryError.
-
Fix test.
-
Fix test
-
Fix test
-
Fix test
-
INSTANCE_PTR_{EQ,NE} also do not escape their arguments in the JIT
-
Fix translation. Or at least, test_zrpy_gc.py's test_compile_boehm passes.
-
enable single_floats on ARM and import some test from the x86 backen
-
implement cast_float_to_singlefloat and cast_singlefloat_to_float
-
a test for the last commit
-
Correct this "assert": it can really fail, e.g. when trying to open /dev/null.
-
completely change the strategy for inlining jit_merge_points in the caller. The old one did not work in complex cases involving raising graphs. In particular, this case did not work:
def bar(): "something which cannot be inlined and raises"
@inline_in_portal def foo(): driver.jit_merge_point() return bar()
def fn(): try: foo(): except StopIteration: pass
that's because that the backendopt inliner is not able to inline calls to raising graphs inside a try/except block.
To work around the issue, we put the actual driver.jit_merge_point in a separate function, which needs to be called as soon as we enter foo(). Then, we move only this call from foo() to fn(), and finally inline the jit_merge_point in fn().
Next step is to provide a nice decorator to do everythin automatically
-
factor out the logic for how to create an rpython wrapper from enforceargs, and put it in sourcetools
-
implement @jitdriver.inline() and test that it's correctly recognized by warmspot
-
add support for calling the @jitdriver.inline()d function multiple times
-
add a test case which previously crashed with the first @inline_in_portal strategy
-
Yay! test_zrpy_gc passes.
-
Be more subtle in set.difference_update: for "big_set -= small_set", we should not make a copy of the big_set, but just remove all items of the small_set one by one.
-
Simplify a bit.
-
don't rely on threshold but explicitly set always_inline
-
close again this branch
-
Fix lib-python.2.7.test.test_builtin. See comments.
-
Revert the last usage of rerased in the jit. It just doesn't work. Fix it differently.
-
Translation fixes for test_zrpy_gc.
-
Tweak the implementation of math.log1p in RPython to be more similar to math.log and math.log10. Also, this lets us add a special-case, backported recently to Python 2.7: math.log1p(-0.0) == -0.0.
-
significantly improve the performance of cProfile for calling 'builtin' functions
-
Start whatsnew-head from scratch again.
-
Test and fix.
-
untabbify.
-
For now, if you can't compile something needed by CLI, silently skip the test.
-
Skip a failing test on CLI.
-
Backed out changeset 915fc220d488: it should already be skipped by d4ef7d213222.
-
These must be declared "static". We don't want the names "buffer" and "buflen" globally visible throughout our C source.
-
Add os.fchown() and os.fchmod().
-
Add quotes around the PYPYDIR path in the generated Makefile, in case there are spaces in the path
-
Update to cffi/dd928004c3bf (release-0.4).
-
Don't raise uncaught RPython-level OSError
-
finish the release announcement
-
update installation docs
-
Link from the mention of pip.
-
fix broken links
-
update docs
-
improve the emacs mode for pypy traces: now you can type C-x n d to narrow the buffer to the current section limited by { }, e.g. the current loop
-
fix the link maybe?
-
Added tag release-2.0-beta1 for changeset 7e4f0faa3d51
-
Added tag release-2.0-beta-1 for changeset 07e08e9c885c
-
remove the tag that conflicts with a branch name
-
It's actually easy to fix this assumption by making sure this particular descr doesn't move any more.
-
Fix (I think) log1p on Windows.
-
fix for cond_call_gc_wb.
The code was based on the wrong assumption that the operation only has 2 arguments
-
Kill these options. They are not used anywhere else in the code :-(
-
Update to cffi/63bf01f22e80 and fix.
-
Document how to update _backend_test.py.
-
Add comments and inline code manually (after I found out that it was not actually inlined due to try:except: in the caller).
-
Move things around, for always_inline to work
-
Change always_inline=True to crash if inlining fails. Use always_inline='try' to not crash if it fails. Fixes left and right.
-
improve docs slightly
-
make stats a bit more useful\
-
make the key available
-
make the key consistent with stats
-
test and fix the repr of stuff with no args and a descr
-
Remove unneeded extend in _sre
-
kill the key - it does not do what we want it to do
-
uncomment these constants, it's useful to have all constants in one place for alternate regexp compilers
-
Disable the pretty logger, it makes it impossible to disable the logger
-
expose another constant in rsre
-
rsre_re.compile can have specialize.memo, it can't be colled with non-constants anyway
-
fix a compile error and warnings
-
add a project idea
-
Turn the link into an absolute link to bitbucket's repo
-
Include stacklet.c in separate_module_files directly.
-
Compile stack.c/threadlocal.c only when needed.
-
Issue 1323: don't use the PTHREAD_*_INITIALIZER macros. They might initialize the mutexes and condition variables, but after a fork(), on some systems, these become completely broken. Instead, always assume they contain garbage and initialize them properly.
This fixes test_threading.test_3_join_in_forked_from_thread on OS/X.
-
Kill remaining code attempting to support prebuilt locks, which doesn't really work (e.g. on OS/X the mutexes and condition variables need to be reinitialized after fork()).
-
A fix for a compiler warning, and a test. The test did not fail before; but it still works, and you can check that it no longer gives compiler warnings...
-
try to show shorter paths by using ~/ instead of /home/user/
-
Backed out changeset 44c4e9c635ea: this breaks the loading of cource code in the jitviewer: it's better for directly implement the feature there
-
Test and fix for Issue 1338: Don't raise an error when closing an epoll fd twice.
-
create branch for longdouble container type, actual implementation is float64 or float96
-
test, implement dtype as container for long double
-
add test, but it is incorrectly skipped for now
-
Remove this warning: it works with hybrid, which is the default GC.
-
Import changes to cffi's test_c.py
-
Fix this test when run together with test_posix2.py.
-
Update to cffi/92bdeb9ef3e2
-
use a proper if/else instead of a conditional expression, which seems to be handled well by g++: this is necessary to (try to) compile boost-python against pypy
-
Baaaah. After a fork(), we change gil_ready to False and then back to True, which has the effect of throwing away all JIT assembler. :-( Fixed.
-
Update to cffi/12a797fcf465.
-
malloc.h appears to not be needed anymore (and it breaks things on os x)
-
kill deadcode
-
Remove rope support from std objspace
-
Removed mutable_builtintypes flag
-
Delete unused logspaceops option
-
Remove unused strjoin option
-
Remove unused config docs
-
removed unused strjoin objects
-
Kill the "marksweep" GC and the "markcompact" GC. The former was here for historical reasons only but never made much sense performance-wise. The latter is not maintained and slightly broken for now; it's revivable if there is interest.
-
Remove the demo directory. It's not used (and not everything works there)
-
remove dump, thunk, and trace objspaces which were unused
-
remove long-unused space.timing option
-
Remove insist translation option, which has long been useless.
-
remove vanilla option, which is totally unused
-
removed long unused logbytescodes option
-
Optimized calling re_match.groups() where re_match's regexp is known
-
remove some unused imports
-
Also unroll this function sometimes
-
remove dead code (plus some random import cleanup)
-
this whole file is evil, but apply is especially evil
-
remove an import *
-
First stab, objspace tests pass, next step interpreter, then module!
-
improve the performance of JSON by not doing weird default hacks
-
replace some more globals
-
remove one last use of gross default binding
-
Remove extra copy of _x_mul
-
Backport frombytes() and tobytes() from the py3k branch.
-
random.getrandbits() is no longer quadratic.
-
This filter is needed to avoid a conflict with options in bin/py.py
-
unroll this function when the size of the list is constant and small
-
Remove outdated test
-
Fix tests
-
Fix these tests
-
fix config tests
-
fix test_whatsnew
-
Issue1333: Use the macosx-version-min gcc flags.
-
fix the jit hook test
-
Fix the first half of test_gc_integration.
-
Fix the second half of test_gc_integration.
-
(fijal, alex, mike) initial work
-
Skip these two tests when run from backend/x86/test. The issue is obscure and has to do with hide()/show() not working with ll2ctypes.
-
Test fixes
-
More tests to skip when running untranslated in a real backend...
-
fix tests and oopspecs + look_inside_iff
-
Closing to be merged branch
-
Made the invalidation of boxes more intelligent at calls in the heapcache.
-
(alex, fijal): fix interpreter tests
-
really fix all of interpreter
-
get bz2 going
-
fix a bunch of tests
-
make another test pass
-
fix thread tests
-
fix test_insecure_pickle
-
Add a sanity check.
-
Fix
-
fix _contiuation
-
fix ast tests
-
fixed _codecs tests
-
fix _file test
-
fix _lsprof tests
-
encoding error handlers now return unicode or strs to encoders so they can special case bytes results on py3
-
fix some of the md5 tests
-
fixed _random tests
-
fix _sha tests
-
fix _ssl tests
-
fix up the micronumpy test
-
fix posix tests
-
fix rctime tests
-
fixed signal and epoll tests
-
fixed zipimport tests
-
remove a test for a feature which was removed
-
fix _ffi tests
-
fix pypy tests (removed isfake, nothing is fake!)
-
Pff, this test passes when run untranslated, but crashes translated.
-
Kill outdated code
-
Found out the magic incantation that makes ll2ctypes happy.
-
fixed _multiprocessing tests
-
fixed select tests
-
Fixed test_pwd tests
-
fix codewriter tests
-
Documented fix-lookinside-iff-oopspec
-
a bit of progress on teh math tests
-
Fixed _hashlib, _md5, and _sha tests.
-
get the rest of math tests passing
-
kill some left over faking stuff
-
kill one more thing
-
make this comment more accurate
-
Bah, it's actually never None.
-
Trying it out now: re-enable the JIT with continulets
-
more pythonic: use decorator to replace direct invocation of taskdef
-
Fix two small typos.
-
Quasi-test and fix for warnings given by the C compiler.
-
Bah? The warning given by GCC is relevant: this code was broken at least on 64-bit big-endian machines.
-
Backed out changeset 4ed15aefc3f0: the jit frames are still in the C stack, so it really solves nothing apart from maybe one bug case.
-
Fix when bin/py.py calls posix.fork() and the cpyext module is loaded.
-
Fixes for cpyext module: use space.applevel instead of wrapping everything
-
Close branch about to be merged
-
really fix translation (transplanted from 2465cf96bcd1)
-
Simple nop signature decorator, just bookkeeping so far
-
Add stub pypy.annotation.types module and then fix imports.
-
One more absolute import
-
Apply signature to arguments, and add some basic types
-
Check actual arguments against signature
-
(price, arigato) Apply signature to return type
-
(price, arigato) On signature return-type mismatch, give halfway-decent message
-
refactor signature tests
-
Basic support for list types in signatures
-
Add char to signature types
-
Refactor signature tests a bit more
-
Test list types in signatures are immutable
-
Add "array" signature type for non-resizable lists
-
Move signature to its own module
-
Small rearrangement in test_signature for clarity
-
Cut out complex interpretation of signature types
This was copied from "enforceargs", but our little DSL will be different.
-
Basic support for instance types in signatures
-
Support floats in signatures
-
Support None in signatures (handy for return types!)
-
Support Unicode string type in signatures
-
Basic support for dict types in signatures
-
Add types.self notation, for signatures on methods
-
fix bz2 tests under -A
-
Fix cpyext.test_getargs. Actually a simplification.
-
update visual studio version that usually runs tests
-
adapt to changes in test harness
-
Tentative fix. Seems to not occur on Linux64: an often-prebuilt descr is always at an address that fits 32 bits.
-
fix frombytes on empty strings (transplanted from b1a4f4d62d78)
-
Fixed _ffi tests with -A
-
Fixed bz2 tests
-
close about to be merged branch
-
Move signature types to rlib
-
fix test_posix2, it inherits space from the module scope
-
fix test_list_unicode on osx (ported from py3k)
-
Add a FAQ entry "Could we use LLVM?"
-
Fix "bin/py.py --withmod-_ssl --withmod-thread"
-
flesh out missing attributes of TinyObjSpace for -A tests
-
cleanup (@Alex_Gaynor, amaury)
-
add failing tests for float128 (64 bit linux)
-
fix tests for -A
-
prefer OverflowError for log{,10,1p} math edge cases
-
no bonus points for trying too hard
-
do not wrap callable if testing -A
-
try to wrap socket.error for testing
-
Ported cffi/012670e62732
-
Change the Makefile to contain "-Os" instead of "-O3" on Linux. It seems to give executables that are a bit faster, and definitely smaller.
-
readd rfloat tests that seem to have been mistakenly removed in d7a6c72e96db
-
add a half even rounding mode to round_double for py3k
-
support isalpha on strings
-
isdigit on strings
-
Add yet another layer of caching. This is useful when we have to merge a few direct calls way too often
-
Fix few strange ufuncs on ints
-
Don't cache bogus results in case one of the analyze_direct_call() returned a non-cached result (because of 'seen').
-
Backout 6df0aaf4caf2: it seems that the interpreter part is indeed a tiny bit faster, but the rest of the runtime code (which is also used by JITted code) becomes markably slower.
-
improve fcntl.test_flock/test_lockf so they actually test locking
-
cleanup fcntl.flock and fix fcntl.lockf ignoring return value
-
make sure fcntl.ioctl tests aren't unnecessarily skipped
-
make fcntl.test_ioctl failure reproducible
-
attempted fix for fcntl.test_ioctl failure
-
Lets try these cflags with the official benchmark. Great results locally (14% better pidigits etc).
-
Backout 3b95bf4a907e. No significans
-
fix test for untranslated
-
Add another test for the graph analyzer's handling of recursion.
-
Trying to improve the performance of the GraphAnalyzer in case of recursion: clean up the various caches and