RFC: Always available hash extension
- Version: 1.0
- Date: 2018-09-04
- Author: Kalle Sommer Nielsen, email@example.com
- Status: Voting
- First Published at: http://wiki.php.net/rfc/permanent_hash_ext
This RFC proposes to make the hash extension (`ext/hash`) always available, similar to the `date`, `spl` & `pcre` extensions.
The hash extension provides a very rich utility with many hashing algorithms which is extremely useful in modern day applications, not only in userland code but also very much in internals.
After a recent discussion on Github, Johannes proposed that the hash extension should be treated as special extension which cannot be disabled.
Backward Incompatible Changes
Build configurations that contain `–enable-hash` will have to be updated, as the argument will cease to exists. The `–with-mhash` argument will continue to stay.
Proposed PHP Version(s)
Target PHP version is the next master, which at the time of writing is most likely 7.4.
To SAPIs and Existing Extensions
The only impact on SAPIs, Extensions and PECL extensions is that they can now always rely on the `hash` extension to be available and utilize its API without having external dependencies for such.
This naturally also means that minimal builds of PHP will slightly grow in size.
Unaffected PHP Functionality
Any already existing userland code will continue to work as before. Userland may remove calls to `extension_loaded('hash')` as they will now always return true.
The hash extension does not have any external dependencies, so this will not add any more dependencies for a minimal build of PHP.
Proposed Voting Choices
Since this touches a major component in the php-src source, the voting will require a 2/3 majority to pass.
As this is a language change, a 2/3 majority is required.
Patches and Tests
If the voting passes, a patch to alter the extension build configurations for Windows and Unix will be committed.