Unicode et Locales

L'objectif du stage est d'améliorer le support d'Unicode pour le langage Nit. On s'intéressera plus particulièrement dans ce cas aux opérations liées aux locales et aux spécificités des langues et à leur support.

Dans le cadre de ce stage, on s'intéressera principalement aux opérations courantes sur les chaînes de caractères dont le comportement est différent lors du passage à Unicode et à ses règles (collation par exemple). L'idée principale du stage est de s'interfacer à des bibliothèques éprouvées et matures pour aider au support des règles avancées d'Unicode dans le cadre de la bibliothèque standard du langage Nit.

Le support actuel d'Unicode dans le langage est présentement assez basique, mais permet d'effectuer les opérations standards sur les chaînes de caractères (accès indexé, concaténation, sous-chaînage) de façon efficace et sûre du point de vue du respect du standard. Chaque chaîne de caractères en Nit est codée en UTF-8.

Cependant, les opérations comme to_upper, to_lower, les comparaisons, etc. sont toujours effectuées byte à byte ou sur la range ASCII, ce que nous voudrions améliorer pour être plus conformes au standard.

Taches

  • Étudier le standard Unicode (idéalement le stagiaire serait déjà au fait des bases de la norme)
  • Étudier et comparer les bibliothèques tierces pour le support d'opérations avancées sur des chaînes de caractères Unicode
  • Implémenter un wrapper vers une bibliothèque externe et ajouter le support desdites opérations à la bibliothèque standard de Nit.

Les deux objectifs à garder en tête sont l'efficacité et la simplicité de l'API, ce qui implique l'implémentation et la conception d'une abstraction élégante du côté de Nit pour faciliter la vie des utilisateurs et mainteneurs de la bibliothèque.