[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [pdt-dev] PHP 5.6 support

Hi,

On 29 wrzeÅnia 2014 at 15:19:34, MichaÅ NiewrzaÅ (michal.n@xxxxxxxx) wrote:

Hi,
I started implementation of variadic parameters. Actually I'm not sure how exactly it should be done correctly, I don't know every part of PDT so it is hard to predict all implications.

Probably none know now ;)

 I'm talking mainly about AST nodes structure. My first shot was to just extend FormalParameter with 'isVariadic' flag, but maybe it is to simple approach:) I will be grateful for every suggestion :)

PHP 7 will introduce AST-based compilation, and as I see in parser [1] isReference and isVariadic are just a flags. So we can also use just a flag. 

We should remember about this flag in in TI, CA, Formatter and label providers. FormatParameter#isVariadic should simplify an access.

But, if you introduce special field (like isOptional), you have to remember about ASTMatcher.

[1] - https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y#L546



Michal

On Fri, Sep 26, 2014 at 12:23 PM, MichaÅ NiewrzaÅ <michal.n@xxxxxxxx> wrote:
Hi,
I prepared first commit for PHP 5.6 support. It is just initial draft with 2 new elements:
* Constant Scalar Expressions - https://wiki.php.net/rfc/const_scalar_exprs

These two elements can be tested already. Any feedback (positive or negative) is appreciated :) 

BTW, Language model is still not regenerated. Is there a simple way to install all necessary extensions? I tried to install them with pecl, but it is pretty slow method :)

Thanks,
Michal 

On Mon, Sep 22, 2014 at 2:58 PM, Dawid PakuÅa <zulus@xxxxxxxxx> wrote:
Hi,

Hi,
I have some additional questions:

 2. Generate code stubs and register it. Same for keywords
Which part of code you are talking about exactly? 

See IPHPKeywordsInitializer and subclasses.

Code stubs org.eclipse.php.core/Resources/language/php_ver (see README.txt howto generate it). Remember to update DefaultLanguageModelProvider after generation.

5. Copy/paste and extend parser. Current pdt parser are very close to original php parser, so their source code may be helpful + tests
Can you point me place where I can find this original PHP parser? 

https://github.com/php/php-src/blob/PHP-5.6.1/Zend/zend_language_parser.y

And one more question about generating language model. File "generate.php" is generating code based on loaded extensions. Is there a list of modules that need to be enabled during generation?

This was my mistake while initial php 5.5 implementation. File names in languages/php5.5 are your list. Module_name.php ;)



Thanks,
Michal

On Thu, Sep 18, 2014 at 12:12 AM, Dawid PakuÅa <zulus@xxxxxxxxx> wrote:
Hi,

most elements you will find in one commit : [1].
bug for php 5.6 is open [2]

Steps:
1. Extend PHPVersion and where is used (projects wizard, project preferences and moreâ)
2. Generate code stubs and register it. Same for keywords
3. Copy/paste php 5.5 flexer and extend it. Two or three new tokens as I see(pow operator, variadicâ) + tests
4. Create new AST nodes for DOM and Compiler tree
5. Copy/paste and extend parser. Current pdt parser are very close to original php parser, so their source code may be helpful + tests
6. Extend occurrences finder + tests
7. Extend formatter / syntax coloring + tests
8. Extend ASTMatcher + tests
9. Modify inference engine + tests
10. Modify CA + tests

php 5.5 was in general easy to implement. 
With php 5.6 will be harder due new use function and use constant

DLTK doesnât allow to add additional informations to imports. Patch: [3]

I hope itâs helpful. 


--
Dawid PakuÅa 

ul. GrabiszyÅska 108/10
53-437 WrocÅaw
NIP: 894-293-95-95
REGON: 340769757

From: MichaÅ NiewrzaÅ <michal.n@xxxxxxxx>
Reply: PDT Developers <pdt-dev@xxxxxxxxxxx>>
Date: 17 wrzeÅnia 2014 at 23:53:02
To: PDT Developers <pdt-dev@xxxxxxxxxxx>>
Subject:  [pdt-dev] PHP 5.6 support

Hi All,
We (Zend Studio team) begin to think about support for PHP 5.6. Of course we need to start from PDT. It looks that I will be person most involved from our team and I want to start this conversation with at least general idea what need to be done. I heard that previous version 5.5 was implemented mostly by Dawid:) Dawid, can you write short (I hope) list with PDT parts that needs to be adjusted/extended? 

Thanks,
Michal
_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev

_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev

_______________________________________________ 
pdt-dev mailing list 
pdt-dev@xxxxxxxxxxx 
To change your delivery options, retrieve your password, or unsubscribe from this list, visit 
https://dev.eclipse.org/mailman/listinfo/pdt-dev

_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev


_______________________________________________ 
pdt-dev mailing list 
pdt-dev@xxxxxxxxxxx 
To change your delivery options, retrieve your password, or unsubscribe from this list, visit 
https://dev.eclipse.org/mailman/listinfo/pdt-dev