Migration R2 vers R3
coccinelle16-Jan-2013/10:07:42+1:00
Faisant joujou avec saphir-r3, je constate que la migration des scripts de r2 vers r3 n'est pas immédiate.

Je propose que l'on répertorie les actions à entreprendre au fur et à mesure que l'on tombe dessus.

Voici déjà ce que j'ai constaté :
- les scripts doivent être encodé semble-t-il en UTF-8 sinon on tombe sur des messages style "missing header"
- les fonctions as-string et as-binary n'existent plus
- le raffinement /binary n'existe plus pour les fonction open & read
- les fonctions read-net, read-cgi et read-thru n'existent plus
- view-root n'existe plus
- get-style n'existe plus

Voilà pour le moment.
shadwolf16-Jan-2013/17:04:13+1:00
il existe toujours as-pair qui permet de construire une paire a partir de deux integer! mais c'est tout

pour connaitre les type! de r3 le mieux ca rester

read-net. read-cgi. read-thru n'existent plus pour read-thru je pense que c'est parce que c'est identique a do et pour read-net et read-cgi c'est du au manque des couche de protocol example tu a plus de coche mail il me semble...

view-root et get-style n'existent plus car view est parti integralement ou presque a la poubelle.
coccinelle16-Jan-2013/18:08:41+1:00
read-thru, load-thru, do-thru faisaient aussi partie de View et comme les sources de view avaient été publiées, yapuca.
shadwolf16-Jan-2013/23:47:15+1:00
les sources de view ont ete publiées?
VincentE17-Jan-2013/9:48:32+1:00
> les sources de view ont ete publiées?

Pas vraiment, ou seulement partiellement il me semble:

- Les sources rebol de /View viennent avec le SDK, et ne sont pas publiques.

- Le Desktop est officiellement passé open-source pour la sortie de /View 1.3:

Annonce: http://www.rebol.com/news/news3610.html
Lien direct: http://www.rebol.com/downloads/viewtop1200.zip

> Je propose que l'on répertorie les actions à entreprendre au fur et à mesure que l'on tombe dessus.

Ce que j'ai remarqué pour l'instant:

- read (r3) = read/binary (r2), write (r3) = write/binary (r2),
read (r2) = to-string read (r3), mais write (r2) = write (r3) (string! acceptées);

- "into [...]" en parsing (mode dialect) entrera dans n'importe quelle série (string!, binary!, etc.),
et pas seulement un block!: si l'on veut écrire un dialect avec une hiérarchie de block!-s,
pour garder le même comportement que r2 il faut une règle du style "pos: block! :pos into [...]";

- join "" #FFFFFF00 ne donne plus "FFFFFF00" mais "#FFFFFF00",
la conversion en string! fait visiblement un 'mold sur les issue!-s;

- les string! sont en utf-8, et ne sont plus une simple vue différente des binary!,
as-string et as-binary ne fonctionnent plus (conversion avec copie du type to-string ou to-binary obligatoire),
et binary! ne fait plus partie de any-string! - les deux doivent être traités séparément dans les entêtes de fonctions et lors du parsing;

- throw-on-error n'existe plus - un simple "throw-on-error: :do" permet de faire passer les scripts qui coincent,
mais les erreurs sont du coup moins lisibles;

- make error! "..." ne déclenche plus l'erreur automatiquement: pour cela il faut quelque-chose du style " do make error! ".." ";

- to-binary marche enfin correctement sur les integer!, et ne fait plus de to-string avant,
le résultat retourné fait 8 octets (64 bits), pour avoir 32 bits : "copy skip tail to-binary my-number -4" .

(Je repasse dans tout mes scripts pour voir ce qui coince.)
coccinelle17-Jan-2013/11:02:33+1:00
C'est juste, c'est viewtop qui avait été publié mais pour beaucoup de chose, il doit être assez facile de récupérer les sources directement dans r2.

Ce problème de string et de binary, c'est ennuyeux car je l'employais souvent pour compresser mes sources.

Maintenant ça plante et je n'ai pas encore trouvé de solution.

Pour beaucoup de chose, y'a surement moyen de moyenner et de créer une moulinette qui adapte les scripts automatiquement.
shadwolf17-Jan-2013/17:14:18+1:00
carl a fait des articles sur le blogs r3 pour ces changements il me semble ...

faut creuser de ce coté http://www.rebol.net/cgi-bin/r3blog.r?index=0

ca permetra aussi de se replonger dans les nombreuses pistes qu avait lancer carl comme celle ci par exemple :
11-Apr-2006    - Just-in-time (JIT) binding [0010] 21 Cmts

21 commentaires wow ... c'est clair que le debat sur cet aspect a ete mouvementé!
coccinelle17-Jan-2013/17:41:56+1:00
Bon pour mon problème de binary, je vais convertir tous mes as-string par des enbase/base compress ... 64 comme ça, je devrais obtenir des source compressés pas trop gros, enfin, j'espère.
DideC21-Jan-2013/10:08:27+1:00
as-binary et as-string ont effectivement disparu car il n'y a plus correspondance exacte entre un caractère et un octet du fait de l'utilisation de l'UTF-8 pour les string!.

En effet si une chaine UTF-8 contient des caractères encodés sur 2 ou 4 octets, on se retrouve avec plus d'octets que de caractères (length? d'une chaine UTF-8 n'est pas forcément égal au length? de sa représentation binaire).

C'est casse-bonbon par rapport à nos petites habitudes, mais c'est le prix à payer pour que Rebol passe à une dimension internationale (les chinois peuvent enfin s'en servir, alors que R2 pour eux est quasi inutilisable).

Je trouve que c'est une excellente idée de noter les différence entre R2 et R3.
Pour le coup, ça serait mieux de le mettre dans un Wiki sur Rebolfrance.info, que chacun puisse annoter/compléter ce qui est trouvé. Non ?

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2