Commits

Alex Gaynor committed 7c640eb

Remove an unused library from rlib

Comments (0)

Files changed (2)

rpython/rlib/bitmanipulation.py

-from rpython.rlib import unroll
-
-
-class BitSplitter(dict):
-    def __getitem__(self, lengths):
-        if isinstance(lengths, int):
-            lengths = (lengths, )
-        if lengths in self:
-            return dict.__getitem__(self, lengths)
-        unrolling_lenghts = unroll.unrolling_iterable(lengths)
-        def splitbits(integer):
-            result = ()
-            sum = 0
-            for length in unrolling_lenghts:
-                sum += length
-                n = integer & ((1<<length) - 1)
-                assert n >= 0
-                result += (n, )
-                integer = integer >> length
-            assert sum <= 32
-            return result
-        splitbits.func_name += "_" + "_".join([str(i) for i in lengths])
-        self[lengths] = splitbits
-        return splitbits
-
-    def _freeze_(self):
-        # as this class is not in __builtin__, we need to explicitly tell
-        # the flow space that the object is frozen and the accesses can
-        # be constant-folded.
-        return True
-
-splitter = BitSplitter()

rpython/rlib/test/test_bitmanipulation.py

-from rpython.rlib.bitmanipulation import splitter
-
-
-def test_simple_splitbits():
-    assert ((1, ) * 4) == splitter[8,8,8,8](0x01010101)
-    assert ((255, ) * 4) == splitter[8,8,8,8](0xFfFfFfFf)
-
-def test_fancy_splitbits():
-    assert (4,3,2,1) == splitter[8,8,8,8](0x01020304)
-    assert (1,3,7,15) == splitter[1,2,3,4](0xFfFfFfFf)
-    
-def test_format_splitbits():
-    x = 0xAA
-    assert (x & 3, ) == splitter[2](x)
-