DANAJ / Data-BitStream-XS-0.07 / Changes

Revision history for Perl extension Data::BitStream::XS.

0.07    ?? ??? 2012
  - Cleanup C code using pedantic and extra warnings.
  - Create a few primes on startup.
  - Transition Goldbach codes from a big list to using the mod 30 sieve.
    Huge memory savings, but slower (_much_ slower for huge num decode).
    However, it's all based on the speed of prime_count and nth_prime, so
    we can speed those up to get back some of our performance.
  - Better near-limit behavior for Goldbach / primes, but still needs testing.
  - Add nth_prime function.
  - Add a rudimentary segment siever.
  - Default primes method tries to be smart about what method is used, and keep
    memory use reasonable.

0.06    28 May 2012
  - Fix compile issue on some strict C platforms.
  - More allocation croaks.
  - Make a number of methods private.
  - Pod coverage.
  - Add prime_count functions, including tight upper/lower bounds.
  - Add prime sieving.  Currently faster than anything else on CPAN.

0.05    17 May 2012
  - include guard for .h files
  - infrastructure updates (pod/perlcritic/kwalitee tests, Makefile.PL, LICENSE)

0.04    17 May 2012
  - get sub was using POPul -- should use either POPu or POPul/POPuq.  Changed
    to POPu and added a simple test.  Data::BitStream has more extensive tests
    that found this when testing the 'xs' implementation (this module) on LLP64
    systems (generally 64-bit Perl on 32-bit O/S).  This did not effect LP64
    systems (generally 64-bit Perl on 64-bit O/S).
  - Use Inline C when possible for image compression example.
  - Add put_raw implementation.
  - Unified internal stack code.  A little faster.
  - Add Generalized Fibonacci, Goldbach G1/G2, Comma, and Block Taboo codes.
  - is_prime and next_prime are available for export if you want them for some
    reason.  They're quite fast, though other packages have some advantages
    (e.g. Math::Primality is very slow for small numbers but can work with
    GMP arbitrary size numbers, Math::Prime::XS is faster for generating a
    range of primes, and Math::Prime::FastSieve should be better if you're
    doing many operations over a finite range and have some memory).

0.03    23 Nov 2011
  - Tracked down the LLP64 (32-bit long, 64-bit long long) issue down to using
    an unsigned long in the .xs get_* macro.  Fixed.  After v0.02, pure 32-bit
    and pure 64-bit systems would work, but 64-bit Perl on 32-bit O/S didn't.
    It should work now.
  - Allow Omega to encode 0 - ~0 instead of 0 - ~0-1.  All codes are full range.
  - Better use of const pointers.
  - Code run through valgrind.
  - More consistent error status.
  - On code errors or reading off end of stream, position should remain
    unchanged (if they trap the croak).  Many codes have changes to make this
    happen, and a new test is added to find a lot of these issues.  It is not
    complete.
  - Added examples, mainly copied from Data::BitStream.
  - New fheader() and new(fheader => ...) methods added to finish off the
    compatibility with Data::BitStream in file I/O.


0.02     9 Nov 2011
  - Fix tests on 5.6/5.8 that broke things at the last minute.
  - Change // comments and mixed declarations to allow compilation with
    old C compilers (--std=c89 --ansi -pedantic).
    Variadic macros still being used however.
  - Try to match word size with Perl word size.  Hopefully will fix
    issues with LLP64 model machines using 64-bit Perl.


0.01  Mon Nov  7 06:00:00 2011
  - Initial version



Hosting generously
sponsored by Bytemark