Environment & StringUtils

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Environment & StringUtils

Marc Bennewitz (private)
Hi all,

because of the last discussion about the environment we were going to address a detection of binary save string functions (mbstring.func_overload) but a simple detection of it doesn't help using it binary save. It's better to implement such string functions to make it binary save. In addition to we have the the class Zend\Text\MultiByte to address some functionalities on multi-byte string.
For me it would make sense to move this class to Zend\Stdlib\StringUtils (like ArrayUtils) and also put binary save string functions in it.

What do you say?
If you agree with me I'll update the RFC Environment.

namespace Zend\Stdlib;

class StringUtils {
    // moved from Zend\Text\MultiByte
    public static function wordWrap($string, $width = 75, $break = "\n", $cut = false, $charset = 'utf-8')
    public static function strPad($input, $padLength, $padString = ' ', $padType = STR_PAD_RIGHT, $charset = 'utf-8')
   
    // new methods
    public static function strLength($str, $charset = 'utf-8')
    public static function byteLength($bin)
    // ... other methods affected by mbstring.func_overload
}

class Enviroment {
 
    public static function isLittleEndian();
    public static function isBigEndian();
 
    public static function is32Bit();
    public static function is64Bit();
 
    public static function isWindows();
    public static function isUnix();
    /*
    public static function isSolaris();
    public static function isLinux();
    public static function isMacOsX();
    ...
    */
 
    // /proc/meminfo
    // or win32_ps_stat_mem();
    public static function getSystemMemoryStatus();
     
    public static function isPcreUnicodeAware();
}

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

DeNix
On 15.04.2012 19:08, Marc Bennewitz wrote:
Hi all,

because of the last discussion about the environment we were going to address a detection of binary save string functions (mbstring.func_overload) but a simple detection of it doesn't help using it binary save. It's better to implement such string functions to make it binary save. In addition to we have the the class Zend\Text\MultiByte to address some functionalities on multi-byte string.
For me it would make sense to move this class to Zend\Stdlib\StringUtils (like ArrayUtils) and also put binary save string functions in it.

What do you say?
I'm all for it. I would also add substr, strpos & str_repeat.
Also there are so many components that use iconv, so it's either iconv should be a hard requirement and all respective classes should use iconv str functions, or
iconv usage should be refactored to use Stblib\StringUtils.

On env class. With StringUtils , PCRE check could also go there, memory checks to Memory\Utils, then it's basically no need for Stblib\Environment
Btw, is it ok to have exe files in a code tree? I mean Cache/_win/GlobalMemoryStatus.exe . Whouldn't it be a probem for PHAR ?

Denis
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

Marc Bennewitz (private)


On 15.04.2012 18:02, Denis Portnov wrote:
On 15.04.2012 19:08, Marc Bennewitz wrote:
Hi all,

because of the last discussion about the environment we were going to address a detection of binary save string functions (mbstring.func_overload) but a simple detection of it doesn't help using it binary save. It's better to implement such string functions to make it binary save. In addition to we have the the class Zend\Text\MultiByte to address some functionalities on multi-byte string.
For me it would make sense to move this class to Zend\Stdlib\StringUtils (like ArrayUtils) and also put binary save string functions in it.

What do you say?
I'm all for it. I would also add substr, strpos & str_repeat.
Also there are so many components that use iconv, so it's either iconv should be a hard requirement and all respective classes should use iconv str functions, or
iconv usage should be refactored to use Stblib\StringUtils.
Because Zend\Stdlib is a required component for all other it could make sense to rewrite it using StringUtils instead of iconv directly. Than it's possible to remove the required iconv with mbstring to support more character sets and functions.


On env class. With StringUtils , PCRE check could also go there, memory checks to Memory\Utils, then it's basically no need for Stblib\Environment
Btw, is it ok to have exe files in a code tree? I mean Cache/_win/GlobalMemoryStatus.exe . Whouldn't it be a probem for PHAR ?
I'm unsure about the pcre check because it's inly a check function and not a wrapper function.
You missed the OS checks
The system memory detection is more a hack for both *nix/windows systems !
On *nix systems you have to read a file that could out of base path and I don't know about possible permission issues.
On windows there exists an extension but this is very unknown ( I nether sow a system this was installed ) or you need the cli call to get the information. There are issues with phar files and possible disabled exec functions.
-> If it's not possible to detect the systems memory status you'll get an exception.
-> If someone knows a better way please call me

Btw. I needed it on Zend\Cache to detect the storage capacity of the memory adapter if PHP's memory limit is disabled (-1) This should be fixed know because the memory adapter has it's own limit configurable.

I simply knows such check is very hard or impossible to be done with PHP and that was the claim to put it into it so others have a chance using it if it's works for them.
-> It's also ok for me removing it from ZF - but I would like to get meanings of more people ;)

Marc

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

DeNix
-- StringUtils  as unified way for all framework classes, I completely agree
-- memory util, we don't have to remove, just I think resources dir is the right place for it, current locale uses resources dir for CLDR data
though I've missed the decision on resources dir
-- Environment, I agree, moving memory & disk capacity checks there makes stronger argument for env class
but I think that way those checks shouldn't throw exceptions, just return NULL if check failed


On 15.04.2012 20:35, Marc Bennewitz wrote:


On 15.04.2012 18:02, Denis Portnov wrote:
On 15.04.2012 19:08, Marc Bennewitz wrote:
Hi all,

because of the last discussion about the environment we were going to address a detection of binary save string functions (mbstring.func_overload) but a simple detection of it doesn't help using it binary save. It's better to implement such string functions to make it binary save. In addition to we have the the class Zend\Text\MultiByte to address some functionalities on multi-byte string.
For me it would make sense to move this class to Zend\Stdlib\StringUtils (like ArrayUtils) and also put binary save string functions in it.

What do you say?
I'm all for it. I would also add substr, strpos & str_repeat.
Also there are so many components that use iconv, so it's either iconv should be a hard requirement and all respective classes should use iconv str functions, or
iconv usage should be refactored to use Stblib\StringUtils.
Because Zend\Stdlib is a required component for all other it could make sense to rewrite it using StringUtils instead of iconv directly. Than it's possible to remove the required iconv with mbstring to support more character sets and functions.


On env class. With StringUtils , PCRE check could also go there, memory checks to Memory\Utils, then it's basically no need for Stblib\Environment
Btw, is it ok to have exe files in a code tree? I mean Cache/_win/GlobalMemoryStatus.exe . Whouldn't it be a probem for PHAR ?
I'm unsure about the pcre check because it's inly a check function and not a wrapper function.
You missed the OS checks
The system memory detection is more a hack for both *nix/windows systems !
On *nix systems you have to read a file that could out of base path and I don't know about possible permission issues.
On windows there exists an extension but this is very unknown ( I nether sow a system this was installed ) or you need the cli call to get the information. There are issues with phar files and possible disabled exec functions.
-> If it's not possible to detect the systems memory status you'll get an exception.
-> If someone knows a better way please call me

Btw. I needed it on Zend\Cache to detect the storage capacity of the memory adapter if PHP's memory limit is disabled (-1) This should be fixed know because the memory adapter has it's own limit configurable.

I simply knows such check is very hard or impossible to be done with PHP and that was the claim to put it into it so others have a chance using it if it's works for them.
-> It's also ok for me removing it from ZF - but I would like to get meanings of more people ;)

Marc


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

Tomáš Fejfar
In reply to this post by Marc Bennewitz (private)
Having an exe file stored in ZF's tree?! That looks like a complete non-sense. It looks like it breaks the single responsibility principle. Fixing OS problems in NOT ZF's responsibility! 

The fix should be published as separate project. If such functionality is crucial for Zend_Cache to work, than make it a requirement and throw exception "missing ZF MemorySize binary utility, please download and install it from github.com/xy". 

If we can have exe file in repo... what about rewriting part of ZF as php extension? :) Many people would like that :) And it may also be faster IMO. 

2012/4/15 Marc Bennewitz <[hidden email]>


On 15.04.2012 18:02, Denis Portnov wrote:
On 15.04.2012 19:08, Marc Bennewitz wrote:
Hi all,

because of the last discussion about the environment we were going to address a detection of binary save string functions (mbstring.func_overload) but a simple detection of it doesn't help using it binary save. It's better to implement such string functions to make it binary save. In addition to we have the the class Zend\Text\MultiByte to address some functionalities on multi-byte string.
For me it would make sense to move this class to Zend\Stdlib\StringUtils (like ArrayUtils) and also put binary save string functions in it.

What do you say?
I'm all for it. I would also add substr, strpos & str_repeat.
Also there are so many components that use iconv, so it's either iconv should be a hard requirement and all respective classes should use iconv str functions, or
iconv usage should be refactored to use Stblib\StringUtils.
Because Zend\Stdlib is a required component for all other it could make sense to rewrite it using StringUtils instead of iconv directly. Than it's possible to remove the required iconv with mbstring to support more character sets and functions.



On env class. With StringUtils , PCRE check could also go there, memory checks to Memory\Utils, then it's basically no need for Stblib\Environment
Btw, is it ok to have exe files in a code tree? I mean Cache/_win/GlobalMemoryStatus.exe . Whouldn't it be a probem for PHAR ?
I'm unsure about the pcre check because it's inly a check function and not a wrapper function.
You missed the OS checks
The system memory detection is more a hack for both *nix/windows systems !
On *nix systems you have to read a file that could out of base path and I don't know about possible permission issues.
On windows there exists an extension but this is very unknown ( I nether sow a system this was installed ) or you need the cli call to get the information. There are issues with phar files and possible disabled exec functions.
-> If it's not possible to detect the systems memory status you'll get an exception.
-> If someone knows a better way please call me

Btw. I needed it on Zend\Cache to detect the storage capacity of the memory adapter if PHP's memory limit is disabled (-1) This should be fixed know because the memory adapter has it's own limit configurable.

I simply knows such check is very hard or impossible to be done with PHP and that was the claim to put it into it so others have a chance using it if it's works for them.
-> It's also ok for me removing it from ZF - but I would like to get meanings of more people ;)

Marc


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

DeNix
In reply to this post by Marc Bennewitz (private)
On 15.04.2012 19:08, Marc Bennewitz wrote:
Hi all,

because of the last discussion about the environment we were going to address a detection of binary save string functions (mbstring.func_overload) but a simple detection of it doesn't help using it binary save. It's better to implement such string functions to make it binary save. In addition to we have the the class Zend\Text\MultiByte to address some functionalities on multi-byte string.
For me it would make sense to move this class to Zend\Stdlib\StringUtils (like ArrayUtils) and also put binary save string functions in it.

What do you say?
If you agree with me I'll update the RFC Environment.

namespace Zend\Stdlib;

class StringUtils {
    // moved from Zend\Text\MultiByte
    public static function wordWrap($string, $width = 75, $break = "\n", $cut = false, $charset = 'utf-8')
    public static function strPad($input, $padLength, $padString = ' ', $padType = STR_PAD_RIGHT, $charset = 'utf-8')
   
    // new methods
    public static function strLength($str, $charset = 'utf-8')
    public static function byteLength($bin)
    // ... other methods affected by mbstring.func_overload
}
On the second thought, is it a good idea to mix bytes and strings in one class? Mabe a separate calss? Beyond binary safe strlen and substr it could also have:
-- testBit(), setBit()
-- hex2bin() (if PHP 5.4 is not a minimal required version)
-- addressing unpack()  dependence on endianess
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

Marc Bennewitz (private)
In reply to this post by Tomáš Fejfar
Tomáš,

thanks for your answer.
It sounds good writing it as a php extension :)

Greetings
Marc

On 15.04.2012 20:33, Tomáš Fejfar wrote:
Having an exe file stored in ZF's tree?! That looks like a complete non-sense. It looks like it breaks the single responsibility principle. Fixing OS problems in NOT ZF's responsibility! 

The fix should be published as separate project. If such functionality is crucial for Zend_Cache to work, than make it a requirement and throw exception "missing ZF MemorySize binary utility, please download and install it from github.com/xy". 

If we can have exe file in repo... what about rewriting part of ZF as php extension? :) Many people would like that :) And it may also be faster IMO. 

2012/4/15 Marc Bennewitz <[hidden email]>


On 15.04.2012 18:02, Denis Portnov wrote:
On 15.04.2012 19:08, Marc Bennewitz wrote:
Hi all,

because of the last discussion about the environment we were going to address a detection of binary save string functions (mbstring.func_overload) but a simple detection of it doesn't help using it binary save. It's better to implement such string functions to make it binary save. In addition to we have the the class Zend\Text\MultiByte to address some functionalities on multi-byte string.
For me it would make sense to move this class to Zend\Stdlib\StringUtils (like ArrayUtils) and also put binary save string functions in it.

What do you say?
I'm all for it. I would also add substr, strpos & str_repeat.
Also there are so many components that use iconv, so it's either iconv should be a hard requirement and all respective classes should use iconv str functions, or
iconv usage should be refactored to use Stblib\StringUtils.
Because Zend\Stdlib is a required component for all other it could make sense to rewrite it using StringUtils instead of iconv directly. Than it's possible to remove the required iconv with mbstring to support more character sets and functions.



On env class. With StringUtils , PCRE check could also go there, memory checks to Memory\Utils, then it's basically no need for Stblib\Environment
Btw, is it ok to have exe files in a code tree? I mean Cache/_win/GlobalMemoryStatus.exe . Whouldn't it be a probem for PHAR ?
I'm unsure about the pcre check because it's inly a check function and not a wrapper function.
You missed the OS checks
The system memory detection is more a hack for both *nix/windows systems !
On *nix systems you have to read a file that could out of base path and I don't know about possible permission issues.
On windows there exists an extension but this is very unknown ( I nether sow a system this was installed ) or you need the cli call to get the information. There are issues with phar files and possible disabled exec functions.
-> If it's not possible to detect the systems memory status you'll get an exception.
-> If someone knows a better way please call me

Btw. I needed it on Zend\Cache to detect the storage capacity of the memory adapter if PHP's memory limit is disabled (-1) This should be fixed know because the memory adapter has it's own limit configurable.

I simply knows such check is very hard or impossible to be done with PHP and that was the claim to put it into it so others have a chance using it if it's works for them.
-> It's also ok for me removing it from ZF - but I would like to get meanings of more people ;)

Marc


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

Marc Bennewitz (private)
In reply to this post by DeNix
With this we have 3 classes for it:

Environment:
 - isWindows
 - ...

StringUtils:
 - Working with strings on different charsets based on iconv/mbstring
 - pcre unicode detection

BinaryUtils:
 - Working with binary strings
 - detection for endianness
 - extended pack/unpack

As noted by Tomáš the memory detection should be out of ZF because of it's unusable on some systems / installations and should be implemented as a php extension to make sure it's working well.

Greetings
Marc

On 16.04.2012 04:37, Denis Portnov wrote:
On 15.04.2012 19:08, Marc Bennewitz wrote:
Hi all,

because of the last discussion about the environment we were going to address a detection of binary save string functions (mbstring.func_overload) but a simple detection of it doesn't help using it binary save. It's better to implement such string functions to make it binary save. In addition to we have the the class Zend\Text\MultiByte to address some functionalities on multi-byte string.
For me it would make sense to move this class to Zend\Stdlib\StringUtils (like ArrayUtils) and also put binary save string functions in it.

What do you say?
If you agree with me I'll update the RFC Environment.

namespace Zend\Stdlib;

class StringUtils {
    // moved from Zend\Text\MultiByte
    public static function wordWrap($string, $width = 75, $break = "\n", $cut = false, $charset = 'utf-8')
    public static function strPad($input, $padLength, $padString = ' ', $padType = STR_PAD_RIGHT, $charset = 'utf-8')
   
    // new methods
    public static function strLength($str, $charset = 'utf-8')
    public static function byteLength($bin)
    // ... other methods affected by mbstring.func_overload
}
On the second thought, is it a good idea to mix bytes and strings in one class? Mabe a separate calss? Beyond binary safe strlen and substr it could also have:
-- testBit(), setBit()
-- hex2bin() (if PHP 5.4 is not a minimal required version)
-- addressing unpack()  dependence on endianess
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

DeNix
In reply to this post by Marc Bennewitz (private)
On 15.04.2012 20:35, Marc Bennewitz wrote:

The system memory detection is more a hack for both *nix/windows systems !
On *nix systems you have to read a file that could out of base path and I don't know about possible permission issues.
On windows there exists an extension but this is very unknown ( I nether sow a system this was installed ) or you need the cli call to get the information. There are issues with phar files and possible disabled exec functions.
-> If it's not possible to detect the systems memory status you'll get an exception.
-> If someone knows a better way please call me

there is a way to access windows WMI using COM class http://stackoverflow.com/questions/3848707/query-wmi-remotely-with-php
so you can get FreePhysicalMemory param from Win32_OperatingSystem, though I don't know the details
also there is a way to parse wmic command output
> wmic OS get FreePhysicalMemory


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

Ben Scholzen 'DASPRiD'
In reply to this post by Marc Bennewitz (private)
Hi Marc,

I'm fine with moving wordWrapd and strPad from Zend\Text\MultiByte to
the Stdlib. What I really dislike is wrapping/replacing iconv_strlen()
with a strLength method there. The entire framework relies on strlen()
always returning the byte length (especially our parsers). Emulating
byte length detection would highly reduce performance. A user using
mbstring.func_overload (and thus breaking ZF) is also able to break ZF
in other ways (enabling safe_mode is one thing). Thus I highly disagree
with writing wrappers for that.

Cheers,
Ben

Am 15.04.2012 17:08, schrieb Marc Bennewitz:

> Hi all,
>
>  because of the last discussion about the environment we were going
> to
> address a detection of binary save string functions
> (mbstring.func_overload) but a simple detection of it doesn't help
> using it binary save. It's better to implement such string functions
> to make it binary save. In addition to we have the the class
> ZendTextMultiByte to address some functionalities on multi-byte
> string.
>  For me it would make sense to move this class to
> ZendStdlibStringUtils (like ArrayUtils) and also put binary save
> string functions in it.
>
>  What do you say?
>  If you agree with me I'll update the RFC Environment.
>
>  namespace ZendStdlib;
>
>  class StringUtils {
>  // moved from ZendTextMultiByte
>  public static function wordWrap($string, $width = 75, $break = "n",
> $cut = false, $charset = 'utf-8')
>  public static function strPad($input, $padLength, $padString = ' ',
> $padType = STR_PAD_RIGHT, $charset = 'utf-8')
>
>  // new methods
>  public static function strLength($str, $charset = 'utf-8')
>  public static function byteLength($bin)
>  // ... other methods affected by mbstring.func_overload
>  }
>
> class Enviroment {
>
>  public static function isLittleEndian();
>  public static function isBigEndian();
>
>  public static function is32Bit();
>  public static function is64Bit();
>
>  public static function isWindows();
>  public static function isUnix();
>  /*
>  public static function isSolaris();
>  public static function isLinux();
>  public static function isMacOsX();
>  ...
>  */
>
>  // /proc/meminfo
>  // or win32_ps_stat_mem();
>  // or
>
> https://github.com/zendframework/zf2/tree/master/library/Zend/Cache/_win
> [1]
>  public static function getSystemMemoryStatus();
>
>  public static function isPcreUnicodeAware(); }
>
>
>
> Links:
> ------
> [1]
> https://github.com/zendframework/zf2/tree/master/library/Zend/Cache/_win

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

Artur Bodera
On Tue, Apr 17, 2012 at 10:05 AM, Ben Scholzen <[hidden email]> wrote:
A user using mbstring.func_overload (and thus breaking ZF) is also able to break ZF in other ways (enabling safe_mode is one thing). Thus I highly disagree with writing wrappers for that.

I agree. 

That's not a "standard php distribution". Same goes for all magic_* stuff, disabling streams, restrictive suhosin, enabling other extensions that perform built-in function overloading etc. There are too many possible configurations we'd need to take into account, thus deeply reducing performance (because we'd have to sniff for everything).

btw: we could list some "common ways to break ZF2" in docs - i.e. in README.md or in "installation" chapter. 


-- 
      __
     /.)\   +48 695 600 936
     \(./   [hidden email]




Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

sasezaki
I agree Ben's opinion, too.
 func_overload overriding system environment is minor.

2012/4/17 Artur Bodera <[hidden email]>:

> On Tue, Apr 17, 2012 at 10:05 AM, Ben Scholzen <[hidden email]> wrote:
>>
>> A user using mbstring.func_overload (and thus breaking ZF) is also able to
>> break ZF in other ways (enabling safe_mode is one thing). Thus I highly
>> disagree with writing wrappers for that.
>
>
> I agree.
>
> That's not a "standard php distribution". Same goes for all magic_* stuff,
> disabling streams, restrictive suhosin, enabling other extensions that
> perform built-in function overloading etc. There are too many possible
> configurations we'd need to take into account, thus deeply reducing
> performance (because we'd have to sniff for everything).
>
> btw: we could list some "common ways to break ZF2" in docs - i.e. in
> README.md or in "installation" chapter.
>
>
> --
>       __
>      /.)\   +48 695 600 936
>      \(./   [hidden email]
>
>
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

sasezaki
By the way, I started discuss to mbstring maintainer for removing
func_overload's feature.
http://ml.php.gr.jp/pipermail/php-dev/2012-April/thread.html

Main maintainer Rui Hirokawa answered, "I agree to be obsolete in
future versions" "It being used beyond the initial assumption".

2012/4/17 sasezaki <[hidden email]>:

> I agree Ben's opinion, too.
>  func_overload overriding system environment is minor.
>
> 2012/4/17 Artur Bodera <[hidden email]>:
>> On Tue, Apr 17, 2012 at 10:05 AM, Ben Scholzen <[hidden email]> wrote:
>>>
>>> A user using mbstring.func_overload (and thus breaking ZF) is also able to
>>> break ZF in other ways (enabling safe_mode is one thing). Thus I highly
>>> disagree with writing wrappers for that.
>>
>>
>> I agree.
>>
>> That's not a "standard php distribution". Same goes for all magic_* stuff,
>> disabling streams, restrictive suhosin, enabling other extensions that
>> perform built-in function overloading etc. There are too many possible
>> configurations we'd need to take into account, thus deeply reducing
>> performance (because we'd have to sniff for everything).
>>
>> btw: we could list some "common ways to break ZF2" in docs - i.e. in
>> README.md or in "installation" chapter.
>>
>>
>> --
>>       __
>>      /.)\   +48 695 600 936
>>      \(./   [hidden email]
>>
>>
>>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Environment & StringUtils

DeNix
In reply to this post by Ben Scholzen 'DASPRiD'
On 17.04.2012 12:05, Ben Scholzen wrote:

> Hi Marc,
>
> I'm fine with moving wordWrapd and strPad from Zend\Text\MultiByte to
> the Stdlib. What I really dislike is wrapping/replacing iconv_strlen()
> with a strLength method there. The entire framework relies on strlen()
> always returning the byte length (especially our parsers). Emulating
> byte length detection would highly reduce performance. A user using
> mbstring.func_overload (and thus breaking ZF) is also able to break ZF
> in other ways (enabling safe_mode is one thing). Thus I highly
> disagree with writing wrappers for that.
>
Then mbstring.func_overload = Off should be a requirement for ZF2, and
all wrappers should be removed (there are at least 3 components right
now that wrap strlen)
Still there are arguments for StringUtils
And defenetly arguments for BinaryUtils - machine endianess. Again there
are several functions to extract int/uint, set/check bit  etc
(Pdf/BinaryParser, Serializer)
Also AFAIK unpack behaviour on 32bit machines is not yet addresses even
in 5.4

Regards
Denis
Loading...