Bug JMP16 fataleQuesta non è una domanda, ma solo portare consapevolezza su un problema che ho notato di recente nei miei script da quando sono passato a JMP16, vale a dire, suppongo che È lo spazio dei nomi(...) non restituirebbe un valore di verità per uno spazio dei nomi eliminato, ma lo fa in JMP16.2 (ma non in JMP14.3)
Per questo motivo, il seguente script blocca JMP16.2:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
If( Is Namespace( ns:ns ),
ns:ns:__item__ = 4;
);
Ho dovuto modificare i miei script in modo equivalente a questo per aggirare il problema:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
If( Is Namespace( ns:ns ) & !Is Missing( ns:ns << Get Name ),
ns:ns:__item__ = 4;
);
Automazione e scriptingRi: Bug fatale di JMP16qualche aggiornamento qui?
sembra un candidato per Piccole trappole in Jmp e JSL ...
Ri: Bug fatale di JMP16In realtà mi sono appena ricordato perché... Lo spazio dei nomi esiste esaminerà il valore della variabile e ti dirà se il valore può rappresentare uno spazio dei nomi, mentre Spazio dei nomi dovrebbe indicare se la variabile è direttamente uno spazio dei nomi o un riferimento allo spazio dei nomi:
Per questo motivo, questo codice fallisce:
ns = New Namespace( "test ns" );
ns:item = "variable";
ns name = "test ns";
If( Namespace Exists( ns name ),
Show( ns name:item )
);
Mentre questo non:
ns = New Namespace( "test ns" );
ns:item = "variable";
ns name = "test ns";
If( Is Namespace( ns name ),
Show( ns name:item )
);
Ri: Bug fatale di JMP16ahah non avevo letto con molta attenzione il tuo post!Hai ragione sul fatto che sembra funzionare, ma ho la vaga sensazione di non aver utilizzato questo metodo per qualche motivo nel mio codice, anche se non riesco a ricordare il motivo in questo momento.
Ri: Bug fatale di JMP16Intendevo Namespace Exists() che sembra differire da Is Namespace (o forse mi manca qualcosa qui)
Names Default To Here(1);
Clear Log();
Delete Namespaces();
ns = New Namespace();
ns:ns = New Namespace();
Show(Namespace Exists(ns:ns), Is Namespace(ns:ns));
ns:ns << Delete Namespace();
Show(Namespace Exists(ns:ns), Is Namespace(ns:ns));
/*Namespace Exists(ns:ns) = 1;
Is Namespace(ns:ns) = 1;
Namespace Exists(ns:ns) = 0;
Is Namespace(ns:ns) = 1;*/
Ri: Bug fatale di JMP16@jthi , lo fa per uno spazio dei nomi semplice, ma non quando si fornisce uno spazio dei nomi con ambito, come mostra questo:
ns = New Namespace();
ns:ns = New Namespace();
ns:ns << Delete Namespace();
Show( Is Namespace( ns:ns ) );
Ri: Bug fatale di JMP16Grazie mille per questa informazione Uno sviluppatore JMP ha analizzato e registrato i problemi riscontrati in modo che possano essere corretti in una versione futura!
Ri: Bug fatale di JMP16Grazie per aver trovato questo. Sono riuscito a replicarlo e ho inviato il rapporto al supporto JMP per indagare.
Dan
Gestione del prodotto JMP.
Ri: Bug fatale di JMP16Bella presa! Spero che non sia troppo tardi per le prossime 17 beta.
Ri: Bug fatale di JMP16Lo spazio dei nomi esiste() sembra restituire 0 per lo spazio dei nomi eliminato.
Ri: Bug fatale di JMP16Sì, l'ho segnalato anche oggi.Pubblicherò qui eventuali aggiornamenti, ma presumo che il team probabilmente sia già a conoscenza del problema.
Ri: Bug fatale di JMP16Questo è stato segnalato al personale del supporto JMP?