Autrement dit, tel M. Jourdain, tu utilises Eval sans le savoir
dès que tu inclus un fichier.
Merci de me prendre pour un con.
??? Sache que j'ai beaucoup plus d'estime pour M. Jourdain
que pour son créateur qui se moque des mal-nés qui veulent s'instruire,
moquerie odieuse, réactionnaire et facile.
Mais bon, je veux bien retirer cette maladresse, si tu m'accordes
qu'elle n'est pas pire que de parler de système "couillu"
à une correspondante de cette liste.
Maintenant, ce que tu dis sur eval confirme quand même
que ta vue d'un interprète est superficielle: l'include d'un
fichier et l'eval d'une chaine déclenchent l'exécution de la
même séquence de code dans l'interprète (en particulier la
transformation en byte-code) aucun n'est plus dangereux que l'autre.
Je ne te prends pas pour un con, mais pour qq qui n'a jamais écrit d'interprète;
mais tu as fait d'autres choses très bien que moi je n'ai pas faites.
D'accord ?
Tu peux relire ma phrase ? Je dis qu'eval() peut _gêner_ des
optimisations extérieures.
Là effectivement, j'ai lu trop vite. Mais le problème
est la compilation des squelettes de Spip, qui n'ont
jamais été optimisés par php_accelerator ou autres. Et ça n'aurait
d'ailleurs rien apporté, car le code compilé actuel comporte
des doubles dollars, qui sont une abréviation pour un cas particulier
de ... eval (puisque ça va chercher la valeur d'une variable inconnue à la lecture)
ce qui, comme tu l'as dit, empeche les optimiseurs d'optimiser.
Je suis assez estomaqué que tu rales parce que je conseille de remplacer
include par eval (la seule différence étant dans le gain d'un accès disque en faveur d'eval)
alors que dans le même temps tu te permets le $$ dans ton compilo,
ce qui n'est pas le cas du mien.
Tu n'as pas compris. Le PHP ajouté automatiquement _par SPIP_ ne peut
pas être éliminé de façon générale. C'est tout.
J'ai parfaitement compris, et je soutiens le contraire.
Tu parlais du formulaire_admin dans ton précédent mail, tu peux aller
voir dans mon compilo comment je me suis débrouillé pour le traiter
sans <?php rajouté. Il y a peut-etre des bugs parce que
ce n'est pas facile, certes, mais le principe est universellement applicable.
explique-nous comment tu vas faire pour éviter
que le webmestre envoie ses propres données à l'écran sans informer
SPIP. On en revient toujours au même problème : tu veux que SPIP se
comporte comme si le contenu envoyé à l'écran provenait uniquement des
squelettes, alors que rien ne garantit un tel comportement, à quelque
niveau que ce soit.
J'aimerais que tu répondes à l'objection que j'ai déjà faite:
à partir du moment où Spip génère des headers, c'est qu'il suppose
que personne n'émet en dehors de lui. C'est implicite dans la définition de Spip,
je ne fais qu'officialiser un état de fait, ce qui est toujours une bonne chose.
Encore plus compliqué à traiter : les balises <INCLURE...>.
Le compilateur que j'ai proposé est réentrant car il n'utilise aucune
variable globale:
Et quel est le rapport avec la génération du Content-Length ?? Tu ne
réponds pas au problème.
Je voulais seulement dire que pour cette inclusion de PHP, effectivement
la plus délicate, le calcul du content-length ne posera pas pb.
j'ai déjà fait l'essai de réaliser l'include au moment de la
compilation
Ce n'est pas la sémantique actuelle de l'inclusion et ce n'est pas
souhaitable car on veut pouvoir gérer des délais de recalcul différents
pour les squelettes incluant et inclus.
Je mentionnais une solution parmi d'autres permises par un compilateur réentrant.
Cela dit, ayant aussi travaillé sur la mise à jour automatique des caches,
je ne crois pas que cette possibilité reste utile à terme, et je serais
curieux de savoir s'il existe des sites SPIP où elle est vraiment utilisée.
Encore une fois tu veux nous
faire modifier et la sémantique de SPIP et un énorme morceau du code
pour traiter un soi-disant "problème" extrêmement mineur.
Je ferai remarquer que c'est Fil qui a soulevé le pb des fermetures
de connexion qui doivent attendre la fin d'exécution des scripts.
Mon intervention est seulement de dire que ca ne me semble possible qu'en implémentant
le content-length, et que ceci n'est pas aussi infaisable ou risqué
que tu l'affirmes. Sur l'opportunité de le faire dans votre distribution,
c'est à vous de voir, mais en ce qui me concerne je ne vois que des avantages
et aucun inconvénient.
A+
Emmanuel