Carl Sassenrath, CTO REBOL Technologies 10-Apr-2006 20:00 GMT Article #0009

Cette question est dans un coin de ma tête depuis déjà quelques mois.

Pour le moment, REBOL 3.0 utilisera encore des nombres entiers sur 32 bits afin de le mettre en service et de le faire fonctionner aussi rapidement que possible.

Cependant, le temps va venir au cours des prochaines semaines de faire le grand saut à 64 bits. Bien sûr, l'intérêt est que les nombres entiers puissent avoir des valeurs beaucoup plus grandes, donc des tailles très grandes de fichiers , etc... L'inconvénient est que les valeurs 64 bits exigent plus de temps CPU pour les opérations d'accès mémoire et mathématiques. Elles prennent également deux fois plus d'espace mémoire, cependant REBOL assigne déjà cet espace, de sorte que la plupart des programmes ne verront pas cette augmentation.

Le changement vers le 64 bit affectera plus que les valeurs des nombres entiers. Par exemple, voulons nous permettre des séries (exemple : chaînes de caractères, binaires) plus grandes que 2/4GB ? Je ne suis pas en train de parler des fichiers (voir ci-dessous) ; je parle des séries courantes en mémoire. Si nous voulons cela, non seulement la structure de gestion (ex. la position de fin, tail) va grandir, mais le pointeur pour indexer la série aussi (pour être capable d'adresser des séries de grande taille). Bien que ce ne soit pas une grosse affaire pour les définitions de structure, c'est en une pour le code run-time ; REBOL est en effet complètement packagé avec des références à des choses comme la fin (tail) et l'index de série (pour du contrôle de limites, etc.).

Et finalement, il y a l'idée que peut-être, nous pourrions utiliser une compilation variable en 32 ou 64 bits pour produire des versions correspondantes. Une version 32 bits peut avoir plus de sens pour des choses comme des téléphones mobiles et des PDAs. Mais, cela soulève la question que ces versions de REBOL devront être étroitement compatibles, mais pas parfaitement compatibles. Peut-être pourraient-elles être améliorées en employant des nombres entiers sur 64 bit, mais des séries sur 32 bits.

Comme avec tout processus de conception, il y a diverses possibilités à considérer. Certainement, les besoins des utilisateurs de REBOL devraient nous aider à déterminer le meilleur compromis entre les choix. Personnellement, j'aime l'idée des maths avec des nombres entiers sur 64 bits, mais la restriction des séries sur 32 bits me va bien.

D'ores et déjà, j'avais l'habitude d'utiliser seek pour adresser les grands fichiers .

Et, en ce qui concerne les fichiers, je dois noter que j'envisage une nouvelle version du datatype port! qui autorise l'accès à des index sur 64 bits. Ces nouveaux ports ne stockeront plus leurs positions d'index dans leurs références, mais dans l'objet lui-même. L'objet system fonctionnera davantage comme dans l'accès traditionnel aux fichiers, qu'il ne l'a fait dans le passé.

(Traduction : Philippe Le Goff)