Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #21263 > unrolled thread

code coverage

Started byalex <1j9448a02@lnx159sneakemail.com.invalid>
First post2016-11-17 10:12 +0100
Last post2016-11-17 20:24 +0100
Articles 20 on this page of 22 — 5 participants

Back to article view | Back to it.comp.www.php


Contents

  code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-17 10:12 +0100
    Re: code coverage Alessandro Pellizzari <shuriken@amiran.it> - 2016-11-17 10:25 +0000
      Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-17 12:42 +0100
        Re: code coverage fmassei@gmail.com - 2016-11-17 03:51 -0800
          Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-17 15:01 +0100
            Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-17 15:25 +0100
              Re: code coverage Leonardo Serni <lserni@gmail.com> - 2016-11-17 18:25 +0100
                Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-17 20:21 +0100
                  Re: code coverage fmassei@gmail.com - 2016-11-17 11:39 -0800
                    Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-18 09:21 +0100
              Re: code coverage Alessandro Pellizzari <shuriken@amiran.it> - 2016-11-18 08:13 +0000
                Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-18 17:54 +0100
                  Re: code coverage fmassei@gmail.com - 2016-11-18 09:04 -0800
                    Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-18 21:05 +0100
                      Re: code coverage fmassei@gmail.com - 2016-11-18 12:53 -0800
                        Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-19 11:17 +0100
                          Re: code coverage fmassei@gmail.com - 2016-11-19 11:11 -0800
                            Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-19 21:45 +0100
                              Re: code coverage fmassei@gmail.com - 2016-11-21 18:20 -0800
                                Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-23 14:58 +0100
        Re: code coverage "ciccio" <21669invalid@mynewsgate.net> - 2016-11-17 16:54 +0000
          Re: code coverage alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-11-17 20:24 +0100

Page 1 of 2  [1] 2  Next page →


#21263 — code coverage

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-17 10:12 +0100
Subjectcode coverage
Message-ID<o0js9c$1og1$1@gioia.aioe.org>
xdebug_start_code_coverage( XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE );

function a($a) {
     echo $a * 2.5;//non eseguita
}

function b($count) {
     for ($i = 0; $i < $count; $i++) {
         a($i + 0.17);
     }
}

b(10);

print_r(xdebug_get_code_coverage());

Si ottiene

Array
         (
             [4] => 1
             [5] => 1
             [6] => 1
             [8] => 1
             [9] => 1
             [10] => 1
             [12] => 1
             [14] => 1
             [16] => 1
         )

Ma perchè viene indicato ***[5] => 1*** che anche la riga 5 viene eseguita?

[toc] | [next] | [standalone]


#21264

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-11-17 10:25 +0000
Message-ID<e95es8F6rctU1@mid.individual.net>
In reply to#21263
On 17/11/2016 09:12, alex wrote:

> function a($a) {
>     echo $a * 2.5;//non eseguita
> }
>
> function b($count) {
>     for ($i = 0; $i < $count; $i++) {
>         a($i + 0.17);
>     }
> }
>
> b(10);

> Ma perchè viene indicato ***[5] => 1*** che anche la riga 5 viene eseguita?

Da quel che vedo io viene eseguita 10 volte...

Bye.

[toc] | [prev] | [next] | [standalone]


#21265

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-17 12:42 +0100
Message-ID<o0k52e$8a1$1@gioia.aioe.org>
In reply to#21264
Il 17/11/2016 11:25, Alessandro Pellizzari ha scritto:
> On 17/11/2016 09:12, alex wrote:
>
>> function a($a) {
>>     echo $a * 2.5;//non eseguita
>> }
>>
>> function b($count) {
>>     for ($i = 0; $i < $count; $i++) {
>>         a($i + 0.17);
>>     }
>> }
>>
>> b(10);
>
>> Ma perchè viene indicato ***[5] => 1*** che anche la riga 5 viene
>> eseguita?
>
> Da quel che vedo io viene eseguita 10 volte...
>
> Bye.
>

mi sa che hai visto male.
cmq piccola precisazione: alla riga 1 ci sarebbe il tag <?php che ho 
omesso...

[toc] | [prev] | [next] | [standalone]


#21266

Fromfmassei@gmail.com
Date2016-11-17 03:51 -0800
Message-ID<26d62cae-89d0-49a9-9e41-8a68361c36a1@googlegroups.com>
In reply to#21265
On Thursday, November 17, 2016 at 6:42:08 AM UTC-5, alex wrote:
> Il 17/11/2016 11:25, Alessandro Pellizzari ha scritto:
> > On 17/11/2016 09:12, alex wrote:
> >
> >> function a($a) {
> >>     echo $a * 2.5;//non eseguita
> >> }
> >>
> >> function b($count) {
> >>     for ($i = 0; $i < $count; $i++) {
> >>         a($i + 0.17);
> >>     }
> >> }
> >>
> >> b(10);
> >
> >> Ma perchè viene indicato ***[5] => 1*** che anche la riga 5 viene
> >> eseguita?
> >
> > Da quel che vedo io viene eseguita 10 volte...
> >
> 
> mi sa che hai visto male.
>

Ha visto bene.

Ciao!

[toc] | [prev] | [next] | [standalone]


#21267

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-17 15:01 +0100
Message-ID<o0kd6h$m0i$1@gioia.aioe.org>
In reply to#21266
Il 17/11/2016 12:51, fmassei@gmail.com ha scritto:
> Ha visto bene.

chiedo scusa, ma allora le funzioni in oggetto a cosa servono?
in pratica io vorrei sapere quali righe sono/nonSono state eseguite...

[toc] | [prev] | [next] | [standalone]


#21268

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-17 15:25 +0100
Message-ID<o0kekh$ofr$1@gioia.aioe.org>
In reply to#21267
Il 17/11/2016 15:01, alex ha scritto:
> Il 17/11/2016 12:51, fmassei@gmail.com ha scritto:
>> Ha visto bene.
>
> chiedo scusa, ma allora le funzioni in oggetto a cosa servono?
> in pratica io vorrei sapere quali righe sono/nonSono state eseguite...

e mi sa anche che di deve seguire ciò che c'è scritto qui
https://phpunit.de/manual/current/en/code-coverage-analysis.html

Ma bisogna per forza creare test-case con appositi doc-blocks?

[toc] | [prev] | [next] | [standalone]


#21270

FromLeonardo Serni <lserni@gmail.com>
Date2016-11-17 18:25 +0100
Message-ID<40qr2c9gsnqomveu8v411memphi850egsf@L.Serni>
In reply to#21268
On Thu, 17 Nov 2016 15:25:49 +0100, alex <1j9448a02@lnx159sneakemail.com.invalid> wrote:

>Il 17/11/2016 15:01, alex ha scritto:
>> Il 17/11/2016 12:51, fmassei@gmail.com ha scritto:
>>> Ha visto bene.
>>
>> chiedo scusa, ma allora le funzioni in oggetto a cosa servono?
>> in pratica io vorrei sapere quali righe sono/nonSono state eseguite...
>
>e mi sa anche che di deve seguire ciò che c'è scritto qui
>https://phpunit.de/manual/current/en/code-coverage-analysis.html
>
>Ma bisogna per forza creare test-case con appositi doc-blocks?

Sostanzialmente, sì.

Poi è lavoro che ti ritrovi, credimi :-)

Consideralo un investimento.

Leonardo
-- 

A terrible beauty is born.
                                     - W. B. Yeats, Easter 1916

[toc] | [prev] | [next] | [standalone]


#21271

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-17 20:21 +0100
Message-ID<o0kvv4$1mva$1@gioia.aioe.org>
In reply to#21270
Il 17/11/2016 18:25, Leonardo Serni ha scritto:
> Sostanzialmente, sì.
>
> Poi è lavoro che ti ritrovi, credimi :-)
>
> Consideralo un investimento.

anche se è probabile che in futuro queste funzionalità saranno già 
integrate in php, senza installare pacchi extra :)

[toc] | [prev] | [next] | [standalone]


#21273

Fromfmassei@gmail.com
Date2016-11-17 11:39 -0800
Message-ID<6e428265-0a3b-4ffa-9b53-6f3368daad99@googlegroups.com>
In reply to#21271
On Thursday, November 17, 2016 at 2:21:12 PM UTC-5, alex wrote:
> Il 17/11/2016 18:25, Leonardo Serni ha scritto:
> > Sostanzialmente, sì.
> >
> > Poi è lavoro che ti ritrovi, credimi :-)
> >
> > Consideralo un investimento.
> 
> anche se è probabile che in futuro queste funzionalità saranno già 
> integrate in php, senza installare pacchi extra :)
>

Non credo: la scelta dei meccanismi di testing dipendono dal processo di
sviluppo, che è diverso da azienda a azienda. :)

Ciao!

[toc] | [prev] | [next] | [standalone]


#21275

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-18 09:21 +0100
Message-ID<o0mdmb$1e7m$1@gioia.aioe.org>
In reply to#21273
Il 17/11/2016 20:39, fmassei@gmail.com ha scritto:
> On Thursday, November 17, 2016 at 2:21:12 PM UTC-5, alex wrote:
>> Il 17/11/2016 18:25, Leonardo Serni ha scritto:
>>> Sostanzialmente, sì.
>>>
>>> Poi è lavoro che ti ritrovi, credimi :-)
>>>
>>> Consideralo un investimento.
>>
>> anche se è probabile che in futuro queste funzionalità saranno già
>> integrate in php, senza installare pacchi extra :)
>>
>
> Non credo: la scelta dei meccanismi di testing dipendono dal processo di
> sviluppo, che è diverso da azienda a azienda. :)
>
> Ciao!
>

inserire qualche funzione ad uso immediato tipo covered_lines() non 
sarebbe cmq male, a prescindere...

[toc] | [prev] | [next] | [standalone]


#21274

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-11-18 08:13 +0000
Message-ID<e97rhoFog06U1@mid.individual.net>
In reply to#21268
Il Thu, 17 Nov 2016 15:25:49 +0100, alex ha scritto:

> Il 17/11/2016 15:01, alex ha scritto:
>> Il 17/11/2016 12:51, fmassei@gmail.com ha scritto:
>>> Ha visto bene.
>>
>> chiedo scusa, ma allora le funzioni in oggetto a cosa servono?
>> in pratica io vorrei sapere quali righe sono/nonSono state eseguite...

Ma infatti ti sta dicendo quali sono state eseguite e quali no.
Nel tuo codice tutte le righe non vuote vengono eseguite.

> e mi sa anche che di deve seguire ciò che c'è scritto qui
> https://phpunit.de/manual/current/en/code-coverage-analysis.html
> 
> Ma bisogna per forza creare test-case con appositi doc-blocks?

No. I docblock servono se vuoi disattivare il code coverage per alcuni 
test. PHPUnit si interfaccia automaticamente (o quasi) con xdebug per 
calcolare il code coverage dei test.

Creare test è praticamente obbligatorio quando il tuo codice inizia a 
crescere di dimensioni, ma ti conviene iniziare quando è piccolo per non 
trovarti a scrivere centinaia di test in un colpo solo, che 
obiettivamente è abbastanza noioso.

In alcuni casi è conveniente addirittura scrivere i test prima del 
codice, anche se io non sono un grande fan di questa metodologia.

Non verrà integrato in PHP perché ci sono decine di test framework, con 
pro e contro, e non avrebbe senso integrarne uno per lasciare fuori tutti 
gli altri.

Bye.

[toc] | [prev] | [next] | [standalone]


#21276

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-18 17:54 +0100
Message-ID<o0nblf$10h9$1@gioia.aioe.org>
In reply to#21274
Il 18/11/2016 09:13, Alessandro Pellizzari ha scritto:
> Il Thu, 17 Nov 2016 15:25:49 +0100, alex ha scritto:
>
>> Il 17/11/2016 15:01, alex ha scritto:
>>> Il 17/11/2016 12:51, fmassei@gmail.com ha scritto:
>>>> Ha visto bene.
>>>
>>> chiedo scusa, ma allora le funzioni in oggetto a cosa servono?
>>> in pratica io vorrei sapere quali righe sono/nonSono state eseguite...
>
> Ma infatti ti sta dicendo quali sono state eseguite e quali no.
> Nel tuo codice tutte le righe non vuote vengono eseguite.
>

La funzione a() non viene richiamata, o sbaglio?

> Creare test è praticamente obbligatorio quando il tuo codice inizia a
> crescere di dimensioni, ma ti conviene iniziare quando è piccolo per non
> trovarti a scrivere centinaia di test in un colpo solo, che
> obiettivamente è abbastanza noioso.
>

Certo.

> In alcuni casi è conveniente addirittura scrivere i test prima del
> codice, anche se io non sono un grande fan di questa metodologia.
>

Ma è l'approccio più corretto.
Dopo ci si annoia a scrivere il test, tanto tutto funziona...
Ma il momento in cui ci si pente non tarderà ad arrivare :D

> Non verrà integrato in PHP perché ci sono decine di test framework, con
> pro e contro, e non avrebbe senso integrarne uno per lasciare fuori tutti
> gli altri.
>

Cosa c'entrano i test-framework?
Come già detto, è bene che nelle future versioni, php integri funzioni 
di code-covering a prescintere dal TF che si adrà ad usare (io me lo 
sono autocostruito).
Del resto, funzioni di debugging come var_dump, print_r, 
debug_backtrace, ecc. sono già disponibili senza installare/importare 
nient'altro.

[toc] | [prev] | [next] | [standalone]


#21277

Fromfmassei@gmail.com
Date2016-11-18 09:04 -0800
Message-ID<decaa6ec-0bd6-438d-9b14-78f62e0a18cb@googlegroups.com>
In reply to#21276
On Friday, November 18, 2016 at 11:53:07 AM UTC-5, alex wrote:
> Il 18/11/2016 09:13, Alessandro Pellizzari ha scritto:
> > Ma infatti ti sta dicendo quali sono state eseguite e quali no.
> > Nel tuo codice tutte le righe non vuote vengono eseguite.
> >
> 
> La funzione a() non viene richiamata, o sbaglio?
> 

Come no! Forse hai copiato qui un'altra versione rispetto a quello che guardi
te, controlla il tuo primo post!

> > Non verrà integrato in PHP perché ci sono decine di test framework, con
> > pro e contro, e non avrebbe senso integrarne uno per lasciare fuori tutti
> > gli altri.
> >
> 
> Cosa c'entrano i test-framework?
> Come già detto, è bene che nelle future versioni, php integri funzioni 
> di code-covering a prescintere dal TF che si adrà ad usare (io me lo 
> sono autocostruito).
> Del resto, funzioni di debugging come var_dump, print_r, 
> debug_backtrace, ecc. sono già disponibili senza installare/importare 
> nient'altro.
>

La code coverage è una misura relativa ad una specifica test suite, quindi non
ha molto senso senza avere un test framework (per quanto minimale o generico
possa essere).

Ciao!

[toc] | [prev] | [next] | [standalone]


#21278

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-18 21:05 +0100
Message-ID<o0nmum$1jf2$1@gioia.aioe.org>
In reply to#21277
Il 18/11/2016 18:04, fmassei@gmail.com ha scritto:
>> > La funzione a() non viene richiamata, o sbaglio?
>> >
> Come no! Forse hai copiato qui un'altra versione rispetto a quello che guardi
> te, controlla il tuo primo post!
>

Forse ho dimenticato di commentare la call dentro il for, chiedo scusa.
Ad ogni modo, se volessi avere solo i numeri delle righe non eseguite?

[toc] | [prev] | [next] | [standalone]


#21279

Fromfmassei@gmail.com
Date2016-11-18 12:53 -0800
Message-ID<8c0979c4-021b-44bd-be7a-7db82be6b9d3@googlegroups.com>
In reply to#21278
On Friday, November 18, 2016 at 3:05:46 PM UTC-5, alex wrote:
> Il 18/11/2016 18:04, fmassei@gmail.com ha scritto:
> >> > La funzione a() non viene richiamata, o sbaglio?
> >> >
> > Come no! Forse hai copiato qui un'altra versione rispetto a quello che guardi
> > te, controlla il tuo primo post!
> >
> 
> Forse ho dimenticato di commentare la call dentro il for, chiedo scusa.
> Ad ogni modo, se volessi avere solo i numeri delle righe non eseguite?
>

Stando alla documentazione qui:
https://xdebug.org/docs/code_coverage
passi alla xdebug_start_code_coverage() XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE
e conti i -1 e -2, a seconda di cosa cerchi.

Comunque, per te, per il futuro: le domande sono sempre ben accette, ma se uno
che sa la risposta ha il dubbio che il domandante non ha fatto le sue ricerche
da solo, o non ha neppure controllato i suoi post dopo che glielo si è fatto
notare, difficilmente risponderà.
Per questo molti thread qui non hanno seguito: non che non ci sia nessuno che
legge che sappia cosa dire, ma spesso non ha voglia di replicare perché pensa
sia inutile.

Ciao!

[toc] | [prev] | [next] | [standalone]


#21280

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-19 11:17 +0100
Message-ID<o0p8rm$1hjf$1@gioia.aioe.org>
In reply to#21279
Il 18/11/2016 21:53, fmassei@gmail.com ha scritto:
> Stando alla documentazione qui:
> https://xdebug.org/docs/code_coverage
> passi alla xdebug_start_code_coverage() XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE
> e conti i -1 e -2, a seconda di cosa cerchi.
>

Quindi

<?php
xdebug_start_code_coverage(
     XDEBUG_CC_UNUSED |
     XDEBUG_CC_DEAD_CODE
);

function a()
{
     echo 123;// riga 9
}

print_r(xdebug_get_code_coverage());
?>

Array
(
     [/test/index.php] => Array
         (
             [7] => 1
             [12] => 1
         )

)

La riga 9 non dovrebbe essere contrassegnata come non eseguita (-1)?
Anzi nell'array non è proprio presente.

> Comunque, per te, per il futuro: le domande sono sempre ben accette, ma se uno
> che sa la risposta ha il dubbio che il domandante non ha fatto le sue ricerche
> da solo, o non ha neppure controllato i suoi post dopo che glielo si è fatto
> notare, difficilmente risponderà.
> Per questo molti thread qui non hanno seguito: non che non ci sia nessuno che
> legge che sappia cosa dire, ma spesso non ha voglia di replicare perché pensa
> sia inutile.

Troppe cose da fare...
Hai totalmente ragione, ma non è per svogliataggine, bensì per 
tutt'altro: come appena accennato, troppo lavoro non aiuta a concentrarsi.
Pardon :D

[toc] | [prev] | [next] | [standalone]


#21281

Fromfmassei@gmail.com
Date2016-11-19 11:11 -0800
Message-ID<e8083c90-f31c-44f7-a1f3-9014204f2c7b@googlegroups.com>
In reply to#21280
On Saturday, November 19, 2016 at 5:17:28 AM UTC-5, alex wrote:
> <snip>
> La riga 9 non dovrebbe essere contrassegnata come non eseguita (-1)?
> Anzi nell'array non è proprio presente.
> 

Putroppo sulla mia macchina di sviluppo xdebug non è installato e non ho
intenzione di installarlo :) (sul perché magari aspetto un post relativo in cui
potrò dire la mia). Per cui mi spiace, più che girarti la documentazione
non posso fare! :D
Forse c'è qualcuno che lo usa e che ti saprà dare una mano in tal senso!

> Troppe cose da fare...
> Hai totalmente ragione, ma non è per svogliataggine, bensì per 
> tutt'altro: come appena accennato, troppo lavoro non aiuta a concentrarsi.
> Pardon :D
>

Sono contento che non l'hai presa come una critica, perché assolutamente non
lo era! :) Anch'io faccio centinaia di post su NG che trattano di cose che non
mastico per nulla (su ism, fisf, ihe o ihs per esempio di sicuro non ho una buona
fama :D ). A volte quando so l'argomento faccio il saccente, ma negli anni ho
dovuto cercare di trovare un modo di scrivere i post che faccia venir voglia
di rispondere alle cose che non so..

Alla fine è solo questione di forma, visto che sulla sostanza sono tutti sempre
pronti a dire la loro! ;)

Ciao!

[toc] | [prev] | [next] | [standalone]


#21282

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-19 21:45 +0100
Message-ID<o0qdkv$1enp$1@gioia.aioe.org>
In reply to#21281
Il 19/11/2016 20:11, fmassei@gmail.com ha scritto:
> On Saturday, November 19, 2016 at 5:17:28 AM UTC-5, alex wrote:
>> <snip>
>> La riga 9 non dovrebbe essere contrassegnata come non eseguita (-1)?
>> Anzi nell'array non è proprio presente.
>>
>
> Putroppo sulla mia macchina di sviluppo xdebug non è installato e non ho
> intenzione di installarlo :) (sul perché magari aspetto un post relativo in cui
> potrò dire la mia). Per cui mi spiace, più che girarti la documentazione
> non posso fare! :D
> Forse c'è qualcuno che lo usa e che ti saprà dare una mano in tal senso!
>

Vedi che nonostante sono stordito dal lavoro, qualcosa che non va c'è 
d'avvero?
E cmq se *qualcuno* parlava di integrare alcune funzioni nel 
compilatore, forse un motivo c'è.

[toc] | [prev] | [next] | [standalone]


#21283

Fromfmassei@gmail.com
Date2016-11-21 18:20 -0800
Message-ID<3d32ce2a-691c-420a-8350-5466b107f29b@googlegroups.com>
In reply to#21282
On Saturday, November 19, 2016 at 3:45:23 PM UTC-5, alex wrote:
> E cmq se *qualcuno* parlava di integrare alcune funzioni nel 
> compilatore, forse un motivo c'è.
>

Ho letto la risposta solo adesso (o l'avevo letta ma ero troppo ubriaco per
rispondere, e poi mi son scordato :) ).

Questa funzionalità, ovvero quella di sapere quali righe hanno girato e quali
no, mica è uno scherzo: è tecnicamente il classico paletto in quel posto, sia
dal punto di vista teorico che pratico.

Cominciamo a dire che non è possibile farlo a compile time, tantomeno con un
check statico. Non è possibile per un motivo *matematico*. Il problema di
sapere se una riga è stata eseguita o no è riducibile al problema della
terminazione (che come tutti sappiamo è stato dimostrato indecidibile da
Turing - se non sapete come sia riconducibile dateci un'occhiata, è veramente
carino).

Quindi è fattibile sono a runtime. Per un linguaggio tendenzialmente interpretato 
come PHP questo significa prevedere due o più modalità di corsa, una in cui 
precompilatore e ottimizzazioni sono attive, una in cui non lo sono (insieme
ovviamente a JIT e simili).

A meno di non voler complicare un architettura già abbastanza complessa,
anch'io sposterei la logica in componenti esterni (tipo appunto xdebug).

Ciao!

[toc] | [prev] | [next] | [standalone]


#21284

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-11-23 14:58 +0100
Message-ID<o147aj$5fl$1@gioia.aioe.org>
In reply to#21283
Il 22/11/2016 03:20, fmassei@gmail.com ha scritto:
> On Saturday, November 19, 2016 at 3:45:23 PM UTC-5, alex wrote:
>> E cmq se *qualcuno* parlava di integrare alcune funzioni nel
>> compilatore, forse un motivo c'è.
>>
>
> Ho letto la risposta solo adesso (o l'avevo letta ma ero troppo ubriaco per
> rispondere, e poi mi son scordato :) ).
>
> Questa funzionalità, ovvero quella di sapere quali righe hanno girato e quali
> no, mica è uno scherzo: è tecnicamente il classico paletto in quel posto, sia
> dal punto di vista teorico che pratico.
>
> Cominciamo a dire che non è possibile farlo a compile time, tantomeno con un

Ohiii qui si parla di compile-time, quindi è ovvio che lo reputo un 
discorso fin troppo scontato :)))

> check statico. Non è possibile per un motivo *matematico*. Il problema di
> sapere se una riga è stata eseguita o no è riducibile al problema della
> terminazione (che come tutti sappiamo è stato dimostrato indecidibile da
> Turing - se non sapete come sia riconducibile dateci un'occhiata, è veramente
> carino).
>
> Quindi è fattibile sono a runtime. Per un linguaggio tendenzialmente interpretato
> come PHP questo significa prevedere due o più modalità di corsa, una in cui
> precompilatore e ottimizzazioni sono attive, una in cui non lo sono (insieme
> ovviamente a JIT e simili).
>
> A meno di non voler complicare un architettura già abbastanza complessa,
> anch'io sposterei la logica in componenti esterni (tipo appunto xdebug).

vabè per il momento vedrò di fare a meno di questa code-coverage

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | it.comp.www.php


csiph-web