Hi, I'm going to commit the same patch into PHP_5_3 tomorrow.
Thanks. Dmitry. > -----Original Message----- > From: Dmitry Stogov [mailto:[EMAIL PROTECTED] > Sent: Tuesday, November 06, 2007 10:30 AM > To: [EMAIL PROTECTED] > Subject: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_compile.c > zend_compile.h zend_language_parser.y zend_language_scanner.l > /tests bug42859.phpt ns_002.phpt ns_010.phpt ns_012.phpt > ns_020.phpt ns_022.phpt ns_029.phpt ns_030.phpt ns_033.phpt ns_034.ph > > > dmitry Tue Nov 6 07:29:41 2007 UTC > > Modified files: > /ZendEngine2 zend_compile.c zend_compile.h > zend_language_parser.y > zend_language_scanner.l > /ZendEngine2/tests bug42859.phpt ns_002.phpt ns_010.phpt > ns_012.phpt ns_020.phpt > ns_022.phpt ns_029.phpt > ns_030.phpt ns_033.phpt > ns_034.phpt ns_036.phpt > ns_037.phpt ns_040.phpt ns_042.phpt > Log: > T_IMPORT -> T_USE > > >
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.c?r1=1.777&r2=1.778&diff_format=u Index: ZendEngine2/zend_compile.c diff -u ZendEngine2/zend_compile.c:1.777 ZendEngine2/zend_compile.c:1.778 --- ZendEngine2/zend_compile.c:1.777 Fri Nov 2 10:11:58 2007 +++ ZendEngine2/zend_compile.c Tue Nov 6 07:29:41 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.c,v 1.777 2007/11/02 10:11:58 dmitry Exp $ */ +/* $Id: zend_compile.c,v 1.778 2007/11/06 07:29:41 dmitry Exp $ */ #include <zend_language_parser.h> #include "zend.h" @@ -5113,7 +5113,7 @@ } /* }}} */ -void zend_do_import(znode *ns_name, znode *new_name TSRMLS_DC) /* {{{ */ +void zend_do_use(znode *ns_name, znode *new_name TSRMLS_DC) /* {{{ */ { unsigned int lcname_len; zstr lcname; @@ -5130,8 +5130,8 @@ if (new_name) { name = &new_name->u.constant; } else { - /* The form "import A::B" is eqivalent to "import A::B as B". - So we extract the last part of compound name ti use as a new_name */ + /* The form "use A::B" is eqivalent to "use A::B as B". + So we extract the last part of compound name to use as a new_name */ name = &tmp; if (UG(unicode)) { UChar *p = u_memrchr(Z_USTRVAL_P(ns), ':', Z_USTRLEN_P(ns)); @@ -5191,7 +5191,7 @@ zend_error(E_COMPILE_ERROR, "Cannot reuse import name"); } if (warn) { - zend_error(E_WARNING, "The import statement with non-compound name '%R' has no effect", Z_TYPE_P(name), Z_UNIVAL_P(name)); + zend_error(E_WARNING, "The use statement with non-compound name '%R' has no effect", Z_TYPE_P(name), Z_UNIVAL_P(name)); } efree(lcname.v); zval_dtor(name); http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.h?r1=1.367&r2=1.368&diff_format=u Index: ZendEngine2/zend_compile.h diff -u ZendEngine2/zend_compile.h:1.367 ZendEngine2/zend_compile.h:1.368 --- ZendEngine2/zend_compile.h:1.367 Tue Oct 23 12:52:51 2007 +++ ZendEngine2/zend_compile.h Tue Nov 6 07:29:41 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.h,v 1.367 2007/10/23 12:52:51 dmitry Exp $ */ +/* $Id: zend_compile.h,v 1.368 2007/11/06 07:29:41 dmitry Exp $ */ #ifndef ZEND_COMPILE_H #define ZEND_COMPILE_H @@ -521,7 +521,7 @@ void zend_do_declare_constant(znode *name, znode *value TSRMLS_DC); void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRMLS_DC); void zend_do_namespace(znode *name TSRMLS_DC); -void zend_do_import(znode *name, znode *new_name TSRMLS_DC); +void zend_do_use(znode *name, znode *new_name TSRMLS_DC); void zend_do_end_compilation(TSRMLS_D); ZEND_API void function_add_ref(zend_function *function TSRMLS_DC); http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_parser.y?r1=1.192&r2=1.193&diff_format=u Index: ZendEngine2/zend_language_parser.y diff -u ZendEngine2/zend_language_parser.y:1.192 ZendEngine2/zend_language_parser.y:1.193 --- ZendEngine2/zend_language_parser.y:1.192 Tue Oct 23 09:55:25 2007 +++ ZendEngine2/zend_language_parser.y Tue Nov 6 07:29:41 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_parser.y,v 1.192 2007/10/23 09:55:25 dmitry Exp $ */ +/* $Id: zend_language_parser.y,v 1.193 2007/11/06 07:29:41 dmitry Exp $ */ /* * LALR shift/reduce conflicts and how they are resolved: @@ -147,7 +147,6 @@ %token T_BINARY_DOUBLE %token T_BINARY_HEREDOC %token T_NAMESPACE -%token T_IMPORT %token T_NS_C %% /* Rules */ @@ -172,8 +171,8 @@ | class_declaration_statement { zend_do_early_binding(TSRMLS_C); } | T_HALT_COMPILER '(' ')' ';' { zend_do_halt_compiler_register(TSRMLS_C); YYACCEPT; } | T_NAMESPACE namespace_name ';' { zend_do_namespace(&$2 TSRMLS_CC); } - | T_IMPORT namespace_name ';' { zend_do_import(&$2, NULL TSRMLS_CC); } - | T_IMPORT namespace_name T_AS T_STRING ';' { zend_do_import(&$2, &$4 TSRMLS_CC); } + | T_USE namespace_name ';' { zend_do_use(&$2, NULL TSRMLS_CC); } + | T_USE namespace_name T_AS T_STRING ';' { zend_do_use(&$2, &$4 TSRMLS_CC); } | constant_declaration ';' ; @@ -229,7 +228,6 @@ | T_ECHO echo_expr_list ';' | T_INLINE_HTML { zend_do_echo(&$1, 1 TSRMLS_CC); } | expr ';' { zend_do_free(&$1 TSRMLS_CC); } - | T_USE use_filename ';' { zend_error(E_COMPILE_ERROR,"use: Not yet supported. Please use include_once() or require_once()"); zval_dtor(&$2.u.constant); } | T_UNSET '(' unset_variables ')' ';' | T_FOREACH '(' variable T_AS { zend_do_foreach_begin(&$1, &$2, &$3, &$4, 1 TSRMLS_CC); } @@ -277,12 +275,6 @@ variable { zend_do_end_variable_parse(BP_VAR_UNSET, 0 TSRMLS_CC); zend_do_unset(&$1 TSRMLS_CC); } ; -use_filename: - T_CONSTANT_ENCAPSED_STRING { $$ = $1; } - | '(' T_CONSTANT_ENCAPSED_STRING ')' { $$ = $2; } -; - - function_declaration_statement: unticked_function_declaration_statement { zend_do_ticks(TSRMLS_C); } ; http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner.l?r1=1.172&r2=1.173&diff_format=u Index: ZendEngine2/zend_language_scanner.l diff -u ZendEngine2/zend_language_scanner.l:1.172 ZendEngine2/zend_language_scanner.l:1.173 --- ZendEngine2/zend_language_scanner.l:1.172 Sun Oct 7 05:15:03 2007 +++ ZendEngine2/zend_language_scanner.l Tue Nov 6 07:29:41 2007 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.l,v 1.172 2007/10/07 05:15:03 davidw Exp $ */ +/* $Id: zend_language_scanner.l,v 1.173 2007/11/06 07:29:41 dmitry Exp $ */ #define yyleng SCNG(yy_leng) #define yytext SCNG(yy_text) @@ -1661,10 +1661,6 @@ return T_NAMESPACE; } -<ST_IN_SCRIPTING>"import" { - return T_IMPORT; -} - <ST_IN_SCRIPTING>"use" { return T_USE; } http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/bug42859.phpt?r1=1.2&r2=1.3&diff_format=u Index: ZendEngine2/tests/bug42859.phpt diff -u ZendEngine2/tests/bug42859.phpt:1.2 ZendEngine2/tests/bug42859.phpt:1.3 --- ZendEngine2/tests/bug42859.phpt:1.2 Wed Oct 17 10:01:37 2007 +++ ZendEngine2/tests/bug42859.phpt Tue Nov 6 07:29:41 2007 @@ -5,8 +5,8 @@ namespace Foo; class Ex {} -import Blah::Exception; -import Blah::Ex; +use Blah::Exception; +use Blah::Ex; ?> --EXPECTF-- Fatal error: Import name 'Ex' conflicts with defined class in %sbug42859.php on line 6 \ No newline at end of file http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_002.phpt?r1=1.1&r2=1.2&diff_format=u Index: ZendEngine2/tests/ns_002.phpt diff -u ZendEngine2/tests/ns_002.phpt:1.1 ZendEngine2/tests/ns_002.phpt:1.2 --- ZendEngine2/tests/ns_002.phpt:1.1 Thu Jul 12 09:23:48 2007 +++ ZendEngine2/tests/ns_002.phpt Tue Nov 6 07:29:41 2007 @@ -10,9 +10,9 @@ } } -import test::ns1::Foo as Bar; -import test::ns1 as ns2; -import test::ns1; +use test::ns1::Foo as Bar; +use test::ns1 as ns2; +use test::ns1; Foo::bar(); test::ns1::Foo::bar(); http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_010.phpt?r1=1.2&r2=1.3&diff_format=u Index: ZendEngine2/tests/ns_010.phpt diff -u ZendEngine2/tests/ns_010.phpt:1.2 ZendEngine2/tests/ns_010.phpt:1.3 --- ZendEngine2/tests/ns_010.phpt:1.2 Fri Jul 27 14:53:23 2007 +++ ZendEngine2/tests/ns_010.phpt Tue Nov 6 07:29:41 2007 @@ -3,7 +3,7 @@ --FILE-- <?php namespace X; -import X as Y; +use X as Y; class Foo { const C = "const ok\n"; static $var = "var ok\n"; http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_012.phpt?r1=1.1&r2=1.2&diff_format=u Index: ZendEngine2/tests/ns_012.phpt diff -u ZendEngine2/tests/ns_012.phpt:1.1 ZendEngine2/tests/ns_012.phpt:1.2 --- ZendEngine2/tests/ns_012.phpt:1.1 Thu Jul 12 09:23:48 2007 +++ ZendEngine2/tests/ns_012.phpt Tue Nov 6 07:29:41 2007 @@ -8,8 +8,8 @@ echo __FUNCTION__,"\n"; } -import test::ns1 as ns2; -import test as ns3; +use test::ns1 as ns2; +use test as ns3; foo(); bar(); http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_020.phpt?r1=1.1&r2=1.2&diff_format=u Index: ZendEngine2/tests/ns_020.phpt diff -u ZendEngine2/tests/ns_020.phpt:1.1 ZendEngine2/tests/ns_020.phpt:1.2 --- ZendEngine2/tests/ns_020.phpt:1.1 Fri Jul 27 13:41:36 2007 +++ ZendEngine2/tests/ns_020.phpt Tue Nov 6 07:29:41 2007 @@ -3,7 +3,7 @@ --FILE-- <?php namespace X; -import X as Y; +use X as Y; function foo() { echo __FUNCTION__,"\n"; } http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_022.phpt?r1=1.2&r2=1.3&diff_format=u Index: ZendEngine2/tests/ns_022.phpt diff -u ZendEngine2/tests/ns_022.phpt:1.2 ZendEngine2/tests/ns_022.phpt:1.3 --- ZendEngine2/tests/ns_022.phpt:1.2 Thu Jul 26 08:32:52 2007 +++ ZendEngine2/tests/ns_022.phpt Tue Nov 6 07:29:41 2007 @@ -4,7 +4,7 @@ <?php namespace a::b::c; -import a::b::c as test; +use a::b::c as test; require "ns_022.inc"; http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_029.phpt?r1=1.2&r2=1.3&diff_format=u Index: ZendEngine2/tests/ns_029.phpt diff -u ZendEngine2/tests/ns_029.phpt:1.2 ZendEngine2/tests/ns_029.phpt:1.3 --- ZendEngine2/tests/ns_029.phpt:1.2 Wed Aug 22 06:33:25 2007 +++ ZendEngine2/tests/ns_029.phpt Tue Nov 6 07:29:41 2007 @@ -2,7 +2,7 @@ 029: Name ambiguity (class name & import name) --FILE-- <?php -import A::B as Foo; +use A::B as Foo; class Foo { } http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_030.phpt?r1=1.2&r2=1.3&diff_format=u Index: ZendEngine2/tests/ns_030.phpt diff -u ZendEngine2/tests/ns_030.phpt:1.2 ZendEngine2/tests/ns_030.phpt:1.3 --- ZendEngine2/tests/ns_030.phpt:1.2 Wed Aug 22 06:33:25 2007 +++ ZendEngine2/tests/ns_030.phpt Tue Nov 6 07:29:41 2007 @@ -5,7 +5,7 @@ class Foo { } -import A::B as Foo; +use A::B as Foo; new Foo(); --EXPECTF-- http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_033.phpt?r1=1.1&r2=1.2&diff_format=u Index: ZendEngine2/tests/ns_033.phpt diff -u ZendEngine2/tests/ns_033.phpt:1.1 ZendEngine2/tests/ns_033.phpt:1.2 --- ZendEngine2/tests/ns_033.phpt:1.1 Thu Jul 26 08:57:52 2007 +++ ZendEngine2/tests/ns_033.phpt Tue Nov 6 07:29:41 2007 @@ -2,7 +2,7 @@ 033: Import statement with non-compound name --FILE-- <?php -import A; +use A; --EXPECTF-- -Warning: The import statement with non-compound name 'A' has no effect in %sns_033.php on line 2 +Warning: The use statement with non-compound name 'A' has no effect in %sns_033.php on line 2 http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_034.phpt?r1=1.1&r2=1.2&diff_format=u Index: ZendEngine2/tests/ns_034.phpt diff -u ZendEngine2/tests/ns_034.phpt:1.1 ZendEngine2/tests/ns_034.phpt:1.2 --- ZendEngine2/tests/ns_034.phpt:1.1 Fri Jul 27 09:04:12 2007 +++ ZendEngine2/tests/ns_034.phpt Tue Nov 6 07:29:41 2007 @@ -3,7 +3,7 @@ --FILE-- <?php namespace A; -import A as B; +use A as B; class Foo { const C = "ok\n"; } http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_036.phpt?r1=1.2&r2=1.3&diff_format=u Index: ZendEngine2/tests/ns_036.phpt diff -u ZendEngine2/tests/ns_036.phpt:1.2 ZendEngine2/tests/ns_036.phpt:1.3 --- ZendEngine2/tests/ns_036.phpt:1.2 Sat Aug 25 16:02:11 2007 +++ ZendEngine2/tests/ns_036.phpt Tue Nov 6 07:29:41 2007 @@ -5,7 +5,7 @@ --FILE-- <?php namespace A; -import A as B; +use A as B; class ArrayObject { const STD_PROP_LIST = 2; } http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_037.phpt?r1=1.2&r2=1.3&diff_format=u Index: ZendEngine2/tests/ns_037.phpt diff -u ZendEngine2/tests/ns_037.phpt:1.2 ZendEngine2/tests/ns_037.phpt:1.3 --- ZendEngine2/tests/ns_037.phpt:1.2 Fri Jul 27 14:53:23 2007 +++ ZendEngine2/tests/ns_037.phpt Tue Nov 6 07:29:41 2007 @@ -3,7 +3,7 @@ --FILE-- <?php namespace X; -import X as Y; +use X as Y; class X { const C = "const ok\n"; static $var = "var ok\n"; http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_040.phpt?r1=1.1&r2=1.2&diff_format=u Index: ZendEngine2/tests/ns_040.phpt diff -u ZendEngine2/tests/ns_040.phpt:1.1 ZendEngine2/tests/ns_040.phpt:1.2 --- ZendEngine2/tests/ns_040.phpt:1.1 Fri Aug 24 13:50:52 2007 +++ ZendEngine2/tests/ns_040.phpt Tue Nov 6 07:29:41 2007 @@ -3,7 +3,7 @@ --FILE-- <?php namespace X; -import X as Y; +use X as Y; const A = "ok\n"; const B = A; const C = array(A); http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/ns_042.phpt?r1=1.1&r2=1.2&diff_format=u Index: ZendEngine2/tests/ns_042.phpt diff -u ZendEngine2/tests/ns_042.phpt:1.1 ZendEngine2/tests/ns_042.phpt:1.2 --- ZendEngine2/tests/ns_042.phpt:1.1 Fri Aug 24 13:50:52 2007 +++ ZendEngine2/tests/ns_042.phpt Tue Nov 6 07:29:41 2007 @@ -6,8 +6,8 @@ const FOO = "ok\n"; -import test::ns1 as ns2; -import test as ns3; +use test::ns1 as ns2; +use test as ns3; echo FOO; echo test::ns1::FOO;
-- Zend Engine CVS Mailing List (http://cvs.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php