[Nitération 10] Nouvelles de septembre

13 views
Skip to first unread message

Jean Privat

unread,
Oct 1, 2014, 8:07:24 PM10/1/14
to nit...@googlegroups.com

Nous avons le plaisir de vous présenter le dixième numéro de « Nitération », la lettre d’information du projet Nit.

Les statistiques combinées pour le mois de septembre donnent:

$ git diff --shortstat v0.6.8..v0.6.9
558 files changed, 81952 insertions(+), 30458 deletions(-)
$ git log --first-parent v0.6.8..v0.6.9 | grep 'Pull-Request: #' | wc -l
61

Ont contribué (ou ont eu des patchs intégrés): Jean Privat, Alexis Laferrière, Alexandre Terrasa, Lucas Bajolet, Julien Pagès, Jean-Christophe Beaupré.

Ce mois-ci d'autres barrières psychologiques sont tombées:

  • Le dépôt Git de Nit contient plus de 5000 commits ; des commits de qualité.
  • Le programme nitg est composé de plus de 100 modules (dont plusieurs inutilisés mais fournis par standard)

Nettoyage d'automne

C'est le nettoyage de la rentrée: vieux code éliminé, grammaire purgée, vieux commits intégrés.

Au niveau de la syntaxe, les formes strictes des méthodes ont été converties en les nouvelles à base d'annotation, plus souples.36fea21 et 110d11f

Les derniers attributs vieux styles ont été migrés et définitivement supprimés. 073d581 et 0cf0ff7

Au niveau de l'infrastructure du dépôt, plusieurs nettoyages aussi :

Enfin, le code du compilateur profite maintenant des projets et groupes, et sa documentation est améliorée. 9bc23b4d3805c2 eta664a52

Pour les programmeurs

Outils

nitunit permet d'exécuter des tests autonomes à la JUnit. bbf1fba

Nouvel outil nitpretty: un pretty printer de code source Nit. 54f6767

Nouvel outil nitpick, un lintian rapide pour Nit. Utilisé dans le plugin vim. c833719

Nouvel outil nituml, pour extraire des diagrammes UML à partir de code Nit. 9cfab85

De nouveaux warnings ont été ajoutés et chacun possède maintenant un nom ce qui permet de les catégoriser automatiquement(onglet "types"). L'option -w (en minuscule) permet aussi de forcer leur activation et désactivation. 14710ce9391c4f et 97dbc21

L'option --compile-dir fonctionne maintenant avec des répertoires situés n'importe-où. La question du meilleur emplacement par défaut reste cependant ouverte97dbc21

Langage

L'annotation pkgconfig utilise par défaut le nom du module, si rien n'est spécifié. d6a58d7

Nouvelle annotation deprecated. Pour annoter les méthodes dépréciées, et donner un warning aux utilisateurs. 07aecab

Les classes externes sont enfin polymorphes. Les hiérarchies C++ pourront être mieux représentées en Nit. 86c2509

Nouvelle syntaxe pour typer les tableaux littéraux (pour quand le type automatique est insuffisant). f8d914f

Les noms des paramètres formels des classes deviennent invariants pour les classdefs de la classe. Ça simplifie le code, la doc et le modèle (on se demande encore pourquoi on avait pas fait ça avant). 06a62b6

La saga des constructeurs continue avec la suppression des anciennes heuristiques historiques associées aux constructeurs nommés. Aussi, une nouvelle annotation autoinit permet de marquer les setters manuels comme faisant partie de l'initialisation automatique. f0bf9b45d77ad2 et 71dafe3

Un manuel de la FFI avec Java est en cours de rédaction. Il se joint au manuel de la FFI avec C et celui de Nit sur Android.

Bibliothèques

Nouvelle bibliothèques template::macro pour utiliser des templates simples provenant de fichiers externes. 09a5b75

Nouvelle bibliothèque crypto avec quelques algos de cryptographie. eaee09a

Nouvelle bibliothèque markdown d'analyse et traitement du format markdown. 95fb2eb et 3364c49

Nouveau module standard re pour les expressions régulières. 22588b0

Nouveau module standard error comme point de rationalisation de la gestion des erreurs (il reste du travail, mais il faut bien commencer quelque part). 3b952d2

Nouveaux services dans String pour la gestion des chemins de fichiers. e48cfb3

Méthodes de capitalisation sur les Strings. 45a2c10

Copy-on-write pour optimiser les FlatBuffer52c0673

Gestion du datastore généralisée (sauvegardes locales) dans App.nit. e736020

android::java_io est généralisé et renommé en java::io e8ea1e3

Contrib

Le serveur de fichier de Nitcorn redirige les requêtes de dossiers mal-formées et évite les double-Tnits. Une interface web pour benitlux est également disponible. 11ce4ef546ccaa et 1486817

Nouvelles images pour shoot, tirées de PyCaptain. d697845

Améliorations internes

Pour les développeurs des outils Nit, plusieurs améliorations (en plus du nettoyage indiqué en première section).

Les moteurs ont un système de chaînage d'implémentation pour les méthodes. Par exemple, une méthode peut avoir un corps mais être taguée interne. Ainsi, si le moteur ne sait pas gérer la version interne, il peut se rattraper en utilisant le corps (qui correspond éventuellement à un mode dégradé). On trouve des choses analogues dans plusieurs versions de Smalltalk. L'approche fonctionne potientiellement aussi pour les méthodes externes, sauf qu'on ne sait pas trop quelle syntaxe utiliser (la grammaire reste à modifier donc). 19fb738

Le make docs génère la documentation pour tous les modules de la lib. a449263

Neo4j a une documentation plus complète et à jour. 102b2ff et b3cce22

modèle: introduction de MGroup::default_mmoduled0b7d70

phases: n'analyse plus les modules de façon multiple. 653fdf9

Reply all
Reply to author
Forward
0 new messages