[Nitération 5] Nouvelles de décembre, janvier et février

12 views
Skip to first unread message

Jean Privat

unread,
Feb 28, 2014, 4:12:47 PM2/28/14
to nit...@googlegroups.com

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

Les statistiques combinées, pour les mois de décembre, janvier et février donnent:

$ git diff --shortstat v0.6.3..v0.6.4
1634 files changed, 16938 insertions(+), 36857 deletions(-)

Ont contribué (ou ont eu des patchs intégrés): Jean Privat, Alexis Laferrière, Alexandre Terrasa, Romain Chanoir, Lucas Bajolet, Geoffrey Hecht, Christophe Gigax, Clément De Figueiredo, Johan Kayser, Jean-Philippe Caissy et Guillaume Auger.

Workflow

Les contributeurs étant de plus en plus nombreux et motivés, un document indiquant l'organisation du travail a été rédigé.

Nous espérons que cela améliorera l'efficacité des développeurs pour que leur code soit intégré.

Site web et documentation

Le site http://nitlanguage.org à été amélioré, en particulier il est plus lisible sur les téléphones.

Une version PDF et EPUB du manuel du langage sont également disponibles (et automatiquement synchronisés lors des éditions).

nitdoc

Quelques bug-fixes ont été intégrés depuis janvier. 7c99077ab892 09b01633b294 88e5f6fcaaf0 d146038a8335 7aa4b14b462a

Ainsi que plusieurs améliorations:

  • Ajout d'un plugin web analytics pour monitorer l'usage de la nitdoc par les utilisateurs 19a0c9b0a27d
  • Possibilité de préciser un chemin vers les ressources (js, css, assets) ec094a6de107 (plus pratique pour développer)
  • Meilleur algorithme de ranking pour la quicksearch f03b9ca6254e
  • Réécriture du plugin GitHub pour faciliter la modification des commentaires dans l'API ae777610fa9d.

De plus, un gros travail de nettoyage et de réorganisation du javascript embarqué a été fait pour le rendre plus maintenable et évolutif. c0ef94484e41.

nitmetrics

Un gros effort de réorganisation à été fait sur les métriques (bfe4ece3ee57).

Avec la nouvelle architecture, les métriques sont plus indépendantes et mieux documentées. De plus, il est maintenant possible d'importer le calcul des métriques depuis d'autre outils.

La prochaine étape est maintenant d'utiliser ces métriques pour améliorer l'affichage de la documentation dans les outils nitmetrics et nitx.

nitc est mort, vive nitc

Le vieux compilateur est supprimé dans le dépôt principal. b121ea7c218

La plupart des choses fonctionnent encore, voir mieux. Bien que cela puisse passer pour une régression, cela va permettre d'améliorer le développement de choses réellement utiles.

Projets

Les projets (nouveau nom des packages), sont entrés dans le dépôt. 892b3ad6d87d et 6f286420f

Le modèle à été augmenté de MProject (un projet) et de MGroup (un paquet de modules et groupes) et de l'API qui va bien.

L'ancienne API d'imbrication des modules est conservée par compatibilité en attendant que les outils (comme nitdoc) profitent des projets.

Le loader a également été mis-à-jour. Le code est plus simple et plus robuste. Le loader est également capable de charger et d'analyser correctement un fichier même profond dans une hiérarchie des répertoires. Cela permet par exemple au plugin syntactic de vim de fonctionner sur des fichier nit sans avoir à configurer un module principal.

Ce qu'il reste à déterminer c'est :

  • le nom du fichier de méta-données des projets. propositions: nit_projetnit_infonit_description, etc.
  • le format du fichier: .ini, .xml, .json, entête d'email (RFC 2822), etc.
  • le contenu du fichier (les méta-données, la doc, etc).

Injection de code à l'interprétation

L'interpréteur est capable d’analyser et d'injecter du code dans un programme en cours d'exécution. 5d34da20e77

L'exploit est original dans le sens où le code activant la fonctionnalité n'est pas monstrueux et à marché quasiment du premier coup. L'infrastructure existante (frontend) est utilisée "telle quelle" pour parser et analyser du code arbitraire.

Trace de pile

nitg gagne l'affichage de la trace de pile en cas d'erreur au runtime (ou de signal reçu). On utilise pour ça la bibliothèque libunwind.43fe3be0deee

L'option de compilation --nit-stacktrace permet en outre d'afficher les noms des méthodes Nit au lieu des noms des fonctions C (pour un coût additionnel modique et une dépendance vers le logiciel gperf). ecaafae6d

nitg-e sans RTA

RTA est désactivé pour le moteur d'exécution nitg-e (nitg --erasure). Cela permet d'utiliser des constructions génériques récursivement (qui génère un nombre de types infini et donc ne sont pas RTAisables). f1542db4e6fb830

Pour nitg-s, plus de travail est demandé pour des raisons d'implémentation de la résolution des types ouverts et pour les tests de types.

Plus d'abort automatique à la fin des constructeurs

Des demandes de part et d'autre pour élargir l'utilisation des nullables fait que le test automatique à la fin des constructions est désactivé. e26533d6bc

Ainsi, un objet peut contenir des attributs non-initialisés (qui échoueront au premier accès). On va voir ce que ça va donner en pratique. b80e39e4c6c

Sérialisation

Une preuve de concept de sérialisation (1f4bea4967d49) et dé-sérialisation (c874bc818a7be5) automatique est disponible. Des objets Nit(*) peuvent désormais se dumper dans un fichier JSON et être récupéré plus tard.

(*) certaines restrictions s'appliquent, voir détails en magasin.

FFI

La nouvelle interface native a enfin été intégrée! 5eed51f47 30525001407771f6dc.

Au programme: binding vers C, preview technologique vers C++ et début du travail vers java.

Avec la nouvelle FFI, de nouveaux bindings arrivent également comme OpenGL ES et l'amélioration du binding GTK.

Seule restriction, c'est seulement compatible avec nitg-g pour l'instant.

Strings

Après être restée plusieurs mois dans les tuyaux, la nouvelle API de manipulation des chaînes de caractères est entrain d'être intégrée progressivement dans le dépôt principal.

Pour le moment, seule une partie de l'API a été intégrée au dépôt principal (vues sur chaînes de caractères), et le reste (Abstractions supplémentaires et détachement du bloc des Collections) devrait suivre dans les prochaines semaines. 5bf9e0212e

Nouveaux constructeurs

Les nouveaux constructeurs, cf constructeurs2 sont en cours de développement. Toutefois, leur mise en oeuvre ont pour l'instant nécessité de nombreux commits de préparation et de bug-fixes comme 51591894049 et b3075d86c0.

On espère avoir prochainement quelque chose de montrable.

Documentation et bibliothèques

Plusieurs patchs améliorant la documentation de la bibliothèque standard ont été intégrés.

Reply all
Reply to author
Forward
0 new messages