Hey:
a fix could be:
diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c
index eb35a51..f738e34 100644
--- a/Zend/zend_ast.c
+++ b/Zend/zend_ast.c
@@ -33,11 +33,11 @@ static inline void *zend_ast_realloc(void *old,
size_t old_size, size_t new_size
return new;
}
-size_t zend_ast_size(zend_uint children) {
+size_t zend_ast_size(int children) {
return sizeof(zend_ast) + sizeof(zend_ast *) * (children - 1);
}
-size_t zend_ast_list_size(zend_uint children) {
+size_t zend_ast_list_size(int children) {
return sizeof(zend_ast_list) + sizeof(zend_ast *) * (children - 1);
}
my compiler must take (children -1) as a unsigned
thanks
On Tue, Aug 19, 2014 at 5:21 PM, Laruence <[email protected]> wrote:
> Hey:
>
> the problem came from zend_ast_size for 0 children node..
>
> backtrace:
>
> Program terminated with signal 6, Aborted.
> #0 0x00000034dc030285 in raise () from /lib64/libc.so.6
> (gdb) bt
> #0 0x00000034dc030285 in raise () from /lib64/libc.so.6
> #1 0x00000034dc031d30 in abort () from /lib64/libc.so.6
> #2 0x00000000009d271c in _zend_mm_alloc_int (heap=0x82fff40,
> size=34359738400,
> __zend_filename=0xfc5c78
> "/home/huixinchen/opensource/github/php-src/Zend/zend_arena.h",
> __zend_lineno=69,
> __zend_orig_filename=0x0, __zend_orig_lineno=0)
> at /home/huixinchen/opensource/github/php-src/Zend/zend_alloc.c:2003
> #3 0x00000000009d4354 in _emalloc (size=34359738400,
> __zend_filename=0xfc5c78
> "/home/huixinchen/opensource/github/php-src/Zend/zend_arena.h",
> __zend_lineno=69,
> __zend_orig_filename=0x0, __zend_orig_lineno=0)
> at /home/huixinchen/opensource/github/php-src/Zend/zend_alloc.c:2442
> #4 0x0000000000a42c05 in zend_arena_alloc (arena_ptr=0x135e698,
> size=34359738376)
> at /home/huixinchen/opensource/github/php-src/Zend/zend_arena.h:69
> #5 0x0000000000a42b0e in zend_ast_alloc (size=34359738376)
> at /home/huixinchen/opensource/github/php-src/Zend/zend_ast.c:27
> #6 0x0000000000a42dcb in zend_ast_create_from_va_list (kind=1,
> attr=7, va=0x7fff2be64550)
> at /home/huixinchen/opensource/github/php-src/Zend/zend_ast.c:89
> #7 0x0000000000a4303e in zend_ast_create_ex (kind=1, attr=7)
> at /home/huixinchen/opensource/github/php-src/Zend/zend_ast.c:116
> #8 0x00000000009aa0a3 in zendparse () at
> /home/huixinchen/opensource/github/php-src/Zend/zend_language_parser.y:551
> #9 0x00000000009aed81 in compile_file (file_handle=0x7fff2be68850,
> type=8) at Zend/zend_language_scanner.l:586
> #10 0x0000000000784de6 in phar_compile_file (file_handle=0x7fff2be68850,
> type=8)
> at /home/huixinchen/opensource/github/php-src/ext/phar/phar.c:3358
> #11 0x0000000000a0bab2 in zend_execute_scripts (type=8, retval=0x0,
> file_count=3)
> at /home/huixinchen/opensource/github/php-src/Zend/zend.c:1301
> #12 0x000000000097529b in php_execute_script (primary_file=0x7fff2be68850)
> at /home/huixinchen/opensource/github/php-src/main/main.c:2564
> #13 0x0000000000ac44b1 in do_cli (argc=31, argv=0x82ff680)
> at /home/huixinchen/opensource/github/php-src/sapi/cli/php_cli.c:980
> #14 0x0000000000ac55de in main (argc=31, argv=0x82ff680)
> at /home/huixinchen/opensource/github/php-src/sapi/cli/php_cli.c:1358
> (gdb) f 6
> #6 0x0000000000a42dcb in zend_ast_create_from_va_list (kind=1,
> attr=7, va=0x7fff2be64550)
> at /home/huixinchen/opensource/github/php-src/Zend/zend_ast.c:89
> 89 zend_ast *ast = zend_ast_alloc(zend_ast_size(children) TSRMLS_CC);
> (gdb) p children
> $1 = 0
>
> thanks
>
> On Tue, Aug 19, 2014 at 5:12 PM, Laruence <[email protected]> wrote:
>> Hey:
>>
>> I find a problem while I was trying play with the patch
>>
>> Generating phar.php
>> Generating phar.phar
>>
>> Fatal error: Out of memory (allocated 786432) at
>> /home/huixinchen/opensource/github/php-src/Zend/zend_arena.h:69 (tried
>> to allocate 34359738400 bytes) in
>> /home/huixinchen/opensource/github/php-src/ext/phar/phar.php on line
>> 163
>> make: *** [ext/phar/phar.phar] Error 255
>> make: *** Waiting for unfinished jobs....
>>
>> is this a knew issue?
>>
>> thanks
>>
>> On Tue, Aug 19, 2014 at 2:36 PM, Dmitry Stogov <[email protected]> wrote:
>>> Hi Andi,
>>>
>>> We already discussed most of semantic changes introduced in AST patch.
>>> Most of them came from another approved RFC
>>> https://wiki.php.net/rfc/uniform_variable_syntax
>>>
>>> Thanks. Dmitry.
>>>
>>>
>>> On Tue, Aug 19, 2014 at 6:32 AM, Andi Gutmans <[email protected]> wrote:
>>>
>>>> Hi Nikita,
>>>>
>>>> I reviewed the AST RFC on my way to vote but there was something that
>>>> wasn’t clear to me.
>>>> This patch introduces some semantic/behavioral changes in addition to the
>>>> AST.
>>>> Are these as a side-effect of how AST was implemented? Or are they
>>>> unrelated to the AST patch?
>>>> I think some of them make sense but I’m having a bit of a hard time
>>>> separating out the benefits of the AST (which I really like) and making
>>>> other changes to semantics w/o really understanding if they are
>>>> side-effects and we have no choice vs. we’re trying to solve for two
>>>> separate items in one RFC.
>>>> Any BC breaks here we think could bite us?
>>>>
>>>> Any insight would be much appreciated.
>>>> Thanks!
>>>> Andi
>>>>
>>>> On Aug 18, 2014, at 9:41 AM, Nikita Popov <[email protected]> wrote:
>>>>
>>>> > Hi internals!
>>>> >
>>>> > I've opened the vote on the Abstract Syntax Tree RFC:
>>>> >
>>>> > https://wiki.php.net/rfc/abstract_syntax_tree#vote
>>>> >
>>>> > Thanks,
>>>> > Nikita
>>>>
>>>>
>>>> --
>>>> PHP Internals - PHP Runtime Development Mailing List
>>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>>
>>>>
>>
>>
>>
>> --
>> Laruence Xinchen Hui
>> http://www.laruence.com/
>
>
>
> --
> Laruence Xinchen Hui
> http://www.laruence.com/
--
Laruence Xinchen Hui
http://www.laruence.com/
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php