Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #21263 > unrolled thread
| Started by | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| First post | 2016-11-17 10:12 +0100 |
| Last post | 2016-11-17 20:24 +0100 |
| Articles | 20 on this page of 22 — 5 participants |
Back to article view | Back to it.comp.www.php
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 →
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-11-17 10:12 +0100 |
| Subject | code 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]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | Leonardo Serni <lserni@gmail.com> |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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