Extension Upgrade Tracking ========================== ext/standard ------------ Status: In Progress array.c ------- error_log() Params API, what encoding to use for the message, handling email option set_include_path(), get_include_path(), restore_include_path() Params API, depends on INI mechanism ini_get(), ini_get_all(), ini_set(), ini_restore() Params API, Unicode support per discussion get_cfg_var() IS_UNICODE support for varname parse_ini_file() Params API, unicode filename support, depends on INI mechaniem getopt() Will use ASCII for options. $_SERVER['argv'] should not be converted to Unicode and should stay binary, since we can't be sure of the encoding on CLI. Console_Getopt may be changed to support encodings. array.c ------- natsort(), natcasesort() Params API Either port strnatcmp() to support Unicode or maybe use ICU's numeric collation. Update: can't seem to get the right collation parameters to duplicate strnatcmp() functionality. Conclusion: port to support Unicode. string.c -------- hebrev(), hebrevc() Figure out if this is something we can use ICU for, internally. Check with Zeev. parse_str() Params API. How do we deal with encoding of the data? sscanf() Params API. Rest - no idea yet. strnatcmp(), strnatcasecmp() Params API. The rest depends on porting of strnatcmp.c strtr() Check on Derick's progress. wordwrap() Upgrade, do wordwrapping on codepoint (or glyph ?) level, maybe use additional whitespace chars instead of just space. ext/filter ------------ Status: To be discussed The unicode support must be discussed with the filter maintainers and Andrei (sapi maintainers too?). Please mail them and the list prior to any work or commits. ext/gd ------------ Status: In Progress A preliminary version has been commited by Sara. Pierre is working on the migration of the GD extension for php6. ext/openssl ------------ Status: In Progress (Pierre) ext/zip ------------ Status: Initial implementation done. Waiting for reviews/feedbacks. (Pierre) Completed ========= ext/bcmath ---------- Completed: bcadd() bcsub() bcmul() bcdiv() bcmod() bcpowmod() bcpow() bcsqrt() bccomp() bcscale() ext/bz2 ------- TBD: bz2_filter.c Completed: bzread() bzopen() bzerrno() bzerrstr() bzerror() bzcompress() bzdecompress() ext/gettext ------------ Completed: textdomain() gettext() _() dgettext() dcgettext() bindtextdomain() ngettext() dngettext() dcngettext() bind_textdomain_codeset() ext/gmp ------- Completed: gmp_abs() gmp_add() gmp_and() gmp_clrbit() gmp_cmp() gmp_com() gmp_divexact() gmp_div_q() gmp_div_qr() gmp_div_r() gmp_fact() gmp_gcd() gmp_gcdext() gmp_hamdist() gmp_init() gmp_intval() gmp_invert() gmp_jacobi() gmp_legendre() gmp_mod() gmp_mul() gmp_neg() gmp_nextprime() gmp_or() gmp_perfect_square() gmp_popcount() gmp_pow() gmp_powm() gmp_prob_prime() gmp_random() gmp_scan0() gmp_scan1() gmp_setbit() gmp_sign() gmp_sqrt() gmp_sqrtrem() gmp_strval() gmp_sub() gmp_xor() ext/hash -------- Completed: hash() hash_file() hash_hmac() hash_hmac_file() hash_init() hash_update() hash_update_stream() hash_update_file() hash_final() hash_algos() ext/json -------- Completed: json_encode() json_decode() ext/mcrypt ------------ Completed: mcrypt_ecb() mcrypt_cbc() mcrypt_cfb() mcrypt_ofb() mcrypt_get_key_size() mcrypt_get_block_size() mcrypt_get_cipher_name() mcrypt_create_iv() mcrypt_list_algorithms() mcrypt_list_modes() mcrypt_get_iv_size() mcrypt_encrypt() mcrypt_decrypt() mcrypt_module_open() mcrypt_generic_init() mcrypt_generic() mdecrypt_generic() mcrypt_generic_end() mcrypt_generic_deinit() mcrypt_enc_self_test() mcrypt_enc_is_block_algorithm_mode() mcrypt_enc_is_block_algorithm() mcrypt_enc_is_block_mode() mcrypt_enc_get_block_size() mcrypt_enc_get_key_size() mcrypt_enc_get_supported_key_sizes() mcrypt_enc_get_iv_size() mcrypt_enc_get_algorithms_name() mcrypt_enc_get_modes_name() mcrypt_module_self_test() mcrypt_module_is_block_algorithm_mode() mcrypt_module_is_block_algorithm() mcrypt_module_is_block_mode() mcrypt_module_get_algo_block_size() mcrypt_module_get_algo_key_size() mcrypt_module_get_supported_key_sizes() mcrypt_module_close() ext/mhash ------------ Completed: mhash_count() mhash_get_block_size() mhash_get_hash_name() mhash_keygen_count() mhash_get_keygen_name() mhash_keygen_uses_hash() mhash_keygen_uses_salt() mhash_get_keygen_salt_size() mhash_keygen_uses_count() mhash() mhash_keygen() mhash_keygen_s2k() ext/mysqli ---------- TBD: mysqli_embedded_server_start() mysqli_embedded_server_end() mysqli_disable_reads_from_master() mysqli_disable_rpl_parse() mysqli_enable_reads_from_master() mysqli_enable_rpl_parse() mysqli_master_query() mysqli_rpl_parse_enabled() mysqli_rpl_probe() mysqli_rpl_query_type() mysqli_send_query() mysqli_slave_query() Completed: mysqli_affected_rows() mysqli_autocommit() mysqli_change_user() mysqli_character_set_name() mysqli_close() mysqli_commit() mysqli_connect() mysqli_connect_errno() mysqli_connect_error() mysqli_data_seek() mysqli_debug() mysqli_dump_debug_info() mysqli_errno() mysqli_error() mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field mysqli_fetch_field_direct mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count() mysqli_field_seek() mysqli_field_tell() mysqli_free_result() mysqli_get_charset() mysqli_get_client_info() mysqli_get_client_version() mysqli_get_host_info mysqli_get_proto_info() mysqli_get_server_info() mysqli_get_server_version() mysqli_get_warnings() mysqli_info() mysqli_init() mysqli_insert_id() mysqli_kill() mysqli_more_results() mysqli_multi_query() mysqli_next_result() mysqli_num_fields() mysqli_num_rows() mysqli_options() mysqli_ping() mysqli_prepare() mysqli_query() mysqli_real_connect() mysqli_real_escape_string() mysqli_real_query() mysqli_report() mysqli_rollback() mysqli_select_db() mysqli_set_charset() mysqli_set_local_infile_default() mysqli_set_local_infile_handler() mysqli_sqlstate() mysqli_ssl_set() mysqli_stat() mysqli_stmt_affected_rows() mysqli_stmt_attr_get() mysqli_stmt_attr_set() mysqli_stmt_bind_param() mysqli_stmt_bind_result() mysqli_stmt_close() mysqli_stmt_data_seek() mysqli_stmt_errno() mysqli_stmt_error() mysqli_stmt_execute() mysqli_stmt_fetch() mysqli_stmt_field_count() mysqli_stmt_free_result() mysqli_stmt_get_warnings() mysqli_stmt_init() mysqli_stmt_insert_id() mysqli_stmt_num_rows() mysqli_stmt_param_count() mysqli_stmt_prepare() mysqli_stmt_reset() mysqli_stmt_result_metadata() mysqli_stmt_send_long_data() mysqli_stmt_sqlstate() mysqli_stmt_store_result() mysqli_store_result() mysqli_thread_id() mysqli_thread_safe() mysqli_use_result() mysqli_warning_count ext/reflection -------------- TBD: `grep -E 'FIXME|UTODO'` Completed: ReflectionClass::__construct() ReflectionClass::getConstant() ReflectionClass::getConstants() ReflectionClass::getConstructor() ReflectionClass::getDefaultProperties() ReflectionClass::getDocComment() ReflectionClass::getEndLine() ReflectionClass::getExtension() ReflectionClass::getExtensionName() ReflectionClass::getFileName() ReflectionClass::getInterfaceNames() ReflectionClass::getInterfaces() ReflectionClass::getMethod() ReflectionClass::getMethods() ReflectionClass::getModifiers() ReflectionClass::getName() ReflectionClass::getParentClass() ReflectionClass::getProperties() ReflectionClass::getProperty() ReflectionClass::getStartLine() ReflectionClass::getStaticProperties() ReflectionClass::getStaticPropertyValue() ReflectionClass::hasConstant() ReflectionClass::hasMethod() ReflectionClass::hasProperty() ReflectionClass::implementsInterface() ReflectionClass::isAbstract() ReflectionClass::isFinal() ReflectionClass::isInstance() ReflectionClass::isInstantiable() ReflectionClass::isInterface() ReflectionClass::isInternal() ReflectionClass::isIterateable() ReflectionClass::isSubclassOf() ReflectionClass::isUserDefined() ReflectionClass::newInstance() ReflectionClass::newInstanceArgs() ReflectionClass::setStaticPropertyValue() ReflectionClass::__toString() ReflectionExtension::__construct() ReflectionExtension::getClasses() ReflectionExtension::getClassNames() ReflectionExtension::getConstants() ReflectionExtension::getDependencies() ReflectionExtension::getFunctions() ReflectionExtension::getINIEntries() ReflectionExtension::getName() ReflectionExtension::getVersion() ReflectionExtension::__toString() ReflectionFunction::__construct() ReflectionFunction::getDocComment() ReflectionFunction::getEndLine() ReflectionFunction::getExtension() ReflectionFunction::getExtensionName() ReflectionFunction::getFileName() ReflectionFunction::getName() ReflectionFunction::getNumberOfParameters() ReflectionFunction::getNumberOfRequiredParameters() ReflectionFunction::getParameters() ReflectionFunction::getStartLine() ReflectionFunction::getStaticVariables() ReflectionFunction::invoke() ReflectionFunction::invokeArgs() ReflectionFunction::isDeprecated() ReflectionFunction::isDisabled() ReflectionFunction::isInternal() ReflectionFunction::isUserDefined() ReflectionFunction::returnsReference() ReflectionFunction::__toString() ReflectionMethod::__construct() ReflectionMethod::getDeclaringClass() ReflectionMethod::getModifiers() ReflectionMethod::getPrototype() ReflectionMethod::invoke() ReflectionMethod::invokeArgs() ReflectionMethod::isAbstract() ReflectionMethod::isConstructor() ReflectionMethod::isDestructor() ReflectionMethod::isFinal() ReflectionMethod::isPrivate() ReflectionMethod::isProtected() ReflectionMethod::isPublic() ReflectionMethod::isStatic() ReflectionMethod::__toString() ReflectionObject::__construct() ReflectionParameter::allowsNull() ReflectionParameter::__construct() ReflectionParameter::getClass() ReflectionParameter::getDeclaringClass() ReflectionParameter::getDeclaringFunction() ReflectionParameter::getDefaultValue() ReflectionParameter::getName() ReflectionParameter::getPosition() ReflectionParameter::isArray() ReflectionParameter::isDefaultValueAvailable() ReflectionParameter::isOptional() ReflectionParameter::isPassedByReference() ReflectionParameter::__toString() ReflectionProperty::__construct() ReflectionProperty::getDeclaringClass() ReflectionProperty::getDefaultValue() ReflectionProperty::getDocComment() ReflectionProperty::getModifiers() ReflectionProperty::getName() ReflectionProperty::getValue() ReflectionProperty::isDefault() ReflectionProperty::isPrivate() ReflectionProperty::isProtected() ReflectionProperty::isPublic() ReflectionProperty::isStatic() ReflectionProperty::setValue() ReflectionProperty::__toString() ext/simplexml ------------- TBD: SimpleXMLElement::getDocNamespaces() SimpleXMLElement::getNamespaces() Completed: SimpleXMLElement::addAttribute() SimpleXMLElement::addChild() SimpleXMLElement::asXML() SimpleXMLElement::attributes() SimpleXMLElement::children() SimpleXMLElement::getName() SimpleXMLElement::registerXPathNamespace() SimpleXMLElement::xpath() simplexml_import_dom() simplexml_load_file() simplexml_load_string() ext/soap -------- TBD: SoapServer::setObject() Completed: is_soap_fault() SoapClient::__call() SoapClient::__doRequest() SoapClient::__getCookies() SoapClient::__getFunctions() SoapClient::__getLastRequest() SoapClient::__getLastRequestHeaders() SoapClient::__getLastResponse() SoapClient::__getLastResponseHeaders() SoapClient::__getTypes() SoapClient::__setCookie() SoapClient::__setLocation() SoapClient::__setSoapHeaders() SoapClient::SoapClient() SoapFault::SoapFault() SoapFault::__toString() SoapHeader::SoapHeader() SoapParam::SoapParam() SoapServer::addFunction() SoapServer::getFunctions() SoapServer::handle() SoapServer::setClass() SoapServer::setPersistence() SoapServer::SoapServer() SoapVar::SoapVar() ext/standard ------------ array.c ------- array_change_key_case() array_chunk() array_combine() array_count_values() array_fill() array_filter() array_flip() array_key_exists() array_keys() array_map() array_merge() array_merge_recursive() array_multisort() array_product() array_push(), array_pop(), array_shift(), array_unshift() array_pad() array_rand() array_reduce() array_reverse() array_search() array_slice() array_splice() array_sum() array_values() array_unique() array_walk() array_walk_recursive() compact() count() extract() in_array() min() max() range() shuffle() end(), prev(), next(), reset(), current(), key() sort(), rsort() asort(), arsort() ksort(), krsort() usort(), uasort(), uksort() array_diff(), array_udiff() array_diff_assoc(), array_diff_uassoc(), array_udiff_assoc(), array_udiff_uassoc() array_diff_key(), array_diff_ukey() array_intersect(), array_uintersect() array_intersect_assoc(), array_uintersect_assoc() array_intersect_uassoc(), array_uintersect_uassoc() array_intersect_key(), array_intersect_ukey() string.c -------- addcslashes() addslashes() basename() bin2hex() chr() chunk_split() count_chars() dirname() explode() implode() levenshtein() localeconv() money_format() nl_langinfo() nl2br() ord() pathinfo() quotemeta() range() similar_text() str_pad() str_repeat() str_replace() stri_replace() str_rot13() str_shuffle() str_split() str_word_count() strcoll() strcspn() strip_tags() stripcslashes() stripslashes() stripos() stristr() strpbrk() strpos() strrchr() strripos() strrev() strrpos() strspn() strstr() strtok() strtolower() strtoupper() substr() substr_compare() substr_count() substr_replace() trim() ucfirst() ucwords() ext/sysvmsg ----------- Completed: msg_get_queue() msg_send() msg_receive() msg_remove_queue() msg_stat_queue() msg_set_queue() ext/sysvsem ----------- Completed: sem_get() sem_acquire() sem_release() sem_remove() ext/sysvshm ----------- Completed: shm_attach() shm_remove() shm_detach() shm_put_var() shm_has_var() shm_get_var() shm_remove_var() ext/tidy -------- TBD: tidy_get_body() tidy_get_head() tidy_get_html() tidy_get_root() tidy_parse_file() tidy_repair_file() tidy_repair_string() Completed: tidy_access_count() tidy_clean_repair() tidy_config_count() tidy_diagnose() tidy_error_count() tidy_get_config() tidy_get_error_buffer() tidy_get_html_ver() tidy_getopt() tidy_get_opt_doc() tidy_get_output() tidy_get_release() tidy_get_status() tidy_is_xhtml() tidy_is_xml() tidy_parse_string() tidy_warning_count() tidyNode::getParent() tidyNode::hasChildren() tidyNode::hasSiblings() tidyNode::isAsp() tidyNode::isComment() tidyNode::isHtml() tidyNode::isJste() tidyNode::isPhp() tidyNode::isText() ext/xml ------- TBD: xml_parse() xml_parse_into_struct() xml_parser_create() xml_parser_create_ns() xml_parser_set_option() Completed: utf8_decode() utf8_encode() xml_error_string() xml_get_current_byte_index() xml_get_current_column_number() xml_get_current_line_number() xml_get_error_code() xml_parser_free() xml_parser_get_option() xml_set_character_data_handler() xml_set_default_handler() xml_set_element_handler() xml_set_end_namespace_decl_handler() xml_set_external_entity_ref_handler() xml_set_notation_decl_handler() xml_set_object() xml_set_processing_instruction_handler() xml_set_start_namespace_decl_handler() xml_set_unparsed_entity_decl_handler() ext/xmlreader ------------- Completed: XMLReader::close() XMLReader::expand() XMLReader::getAttribute() XMLReader::getAttributeNo() XMLReader::getAttributeNs() XMLReader::getParserProperty() XMLReader::isValid() XMLReader::lookupNamespace() XMLReader::moveToAttribute() XMLReader::moveToAttributeNo() XMLReader::moveToAttributeNs() XMLReader::moveToElement() XMLReader::moveToFirstAttribute() XMLReader::moveToNextAttribute() XMLReader::next() XMLReader::open() XMLReader::read() XMLReader::readInnerXml() XMLReader::readOuterXml() XMLReader::readString() XMLReader::setParserProperty() XMLReader::setRelaxNGSchema() XMLReader::setRelaxNGSchemaSource() XMLReader::setSchema() XMLReader::XML() ext/xmlwriter ------------- Completed: xmlwriter_end_attribute() xmlwriter_end_cdata() xmlwriter_end_comment() xmlwriter_end_document() xmlwriter_end_dtd() xmlwriter_end_dtd_attlist() xmlwriter_end_dtd_element() xmlwriter_end_dtd_entity() xmlwriter_end_element() xmlwriter_end_pi() xmlwriter_flush() xmlwriter_full_end_element() xmlwriter_open_memory() xmlwriter_open_uri() xmlwriter_output_memory() xmlwriter_set_indent() xmlwriter_set_indent_string() xmlwriter_start_attribute() xmlwriter_start_attribute_ns() xmlwriter_start_cdata() xmlwriter_start_comment() xmlwriter_start_document() xmlwriter_start_dtd() xmlwriter_start_dtd_attlist() xmlwriter_start_dtd_element() xmlwriter_start_dtd_entity() xmlwriter_start_element() xmlwriter_start_element_ns() xmlwriter_start_pi() xmlwriter_text() xmlwriter_write_attribute() xmlwriter_write_attribute_ns() xmlwriter_write_cdata() xmlwriter_write_comment() xmlwriter_write_dtd() xmlwriter_write_dtd_attlist() xmlwriter_write_dtd_element() xmlwriter_write_dtd_entity() xmlwriter_write_element() xmlwriter_write_element_ns() xmlwriter_write_pi() xmlwriter_write_raw() ext/xsl ------- Completed: xsl_xsltprocessor_get_parameter() xsl_xsltprocessor_has_exslt_support() xsl_xsltprocessor_import_stylesheet() xsl_xsltprocessor_register_php_functions() xsl_xsltprocessor_remove_parameter() xsl_xsltprocessor_set_parameter() xsl_xsltprocessor_transform_to_doc() xsl_xsltprocessor_transform_to_uri() xsl_xsltprocessor_transform_to_xml() ext/zlib -------- TBD: zlib_filter.c zlib_fopen_wrapper.c Completed: gzcompress() gzuncompress() gzdeflate() gzinflate() gzencode() gzdecode() zlib_encode() zlib_decode() zlib_get_coding_type() readgzfile() gzrewind() gzclose() gzeof() gzgetc() gzgets() gzgetss() gzread() gzopen() gzpassthru() gzseek() gztell() gzwrite() gzputs() gzfile() gzcompress() gzuncompress() Zend Engine ----------- Status: In Progress TBD: debug_backtrace() Completed: class_exists() create_function() debug_print_backtrace() define() defined() each() error_reporting() extension_loaded() func_get_arg() func_get_args() func_num_args() function_exists() get_class() get_class_methods() get_class_vars() get_declared_classes() get_declared_interfaces() get_defined_constants() get_defined_functions() get_defined_vars() get_extension_funcs() get_included_files() get_loaded_extensions() get_object_vars() get_parent_class() get_resource_type() interface_exists() is_a() is_subclass_of() method_exists() property_exists() restore_error_handler() restore_exception_handler() set_error_handler() set_exception_handler() strcasecmp() strcmp() strlen() strncasecmp() strncmp() trigger_error() zend_thread_id() zend_version() vim: set et ts=4 sts=4: