Intégration du moteur R

Objectif

Améliorer l'intégration actuelle de R dans TXM, en terme d'architecture (performance) et d'UI (expérience utilisateur).

Méthode

  • Architecture : intégrer R par JNI plutôt qu'Rserve (R devient une librairie dynamique de la JVM, plus de communication par sockets)
  • UI : utiliser les plugins Eclipse intégrant R
  • Vérifier la cohérence des packages R installés

État de l'art

Composant R

Implémentation des nombres dans R

Voir la section “Numerical Characteristics of the Machine” : http://stat.ethz.ch/R-manual/R-devel/library/base/html/zMachine.html

Par exemple, le nombre flottant le plus proche de zéro n'étant pas zéro est indiqué par la constante ”.Machine$double.xmin”. Sa valeur sur la machine de MD est 2,225074e-308.

Architecture

Le projet Rosuda produit JRI qui encapsule R par JNI.

JRI fait partie de rJava.

Attention : le rôle de rJava est d'appeler une JVM depuis R, celui de JRI est inverse, appeler R depuis une JVM. JRI a du être intégré à ce projet pour faciliter sa maintenance.

Voir aussi RCaller https://github.com/jbytecode/rcaller.

UI

StatET est un plugin Eclipse intégrant R et offrant au moins 3 services fondamentaux :

  • une console R interactive avec coloration syntaxique, complétion, historique, etc.
  • une vue d'exploration des objets R (il y a aussi une vue listant les packages R)
  • une intégration de la documentation R dans le système de documentation Eclipse

Il scénarise une session de travail R comme un travail dans un projet Eclipse.

On en trouve une description rapide ici : http://lukemiller.org/index.php/2010/04/eclipse-and-statet-a-nice-working-environment-for-r.

Ce plugin présente beaucoup d'intérêt. Il semble par ailleurs offrir plus de services que les environnements intégrant R usuels voire la console R standard : par exemple la recherche dans l'historique de la console R. Ça semble être un concurrent sérieux de JGR et c'est vivant en 2013.

Voir aussi :

Vérification des packages

Tickets : 635

La 1ere version a été d'ajouter de vérifier l'installation des packages R lors de l'installation. Or, l'installation peut échouée alors que le package fonctionne correctement. La 2e version a été d'ajouter une vérification du chargement des packages R de TXM lors du job (Eclipse) de démarrage de TXM. Or, ce test pose des problèmes de synchronisation (thread) qui font crasher TXM. La 3e version est de rajouter une commande “Vérifier les packages R” (EN= Check R packages) dans le menu Aide de TXM. Cette commande reprend exactement le même test que la version 2 et affiche une fenêtre de dialogue pour indiquer le succès ou non du test.

Code de test des packages :

library("textometry")
library("FactoMineR") # cette ligne échoue lors du job de démarrage de TXM.

Suivi des versions de R

R-cran publie des nouvelles versions mineures tous les 3 mois environs. Les packages ne suivent pas forcement ce rythme et des décalages de publications se font.

Mac OS X

Depuis la version 10.10 de Mac OS X, il est nécessaire d'installer XQuartz pour pouvoir produire des graphiques SVG avec R. cela est du au faite que Mac OS X ne livre plus X11 par défaut. (il faut installer XCode)

R maintient une version de R (3.2.1 - 2015-06-19) qui fonctionne pour les Mac OS X antérieur à la version 10.9 (Maverick) de Mac OS X. Mais cette version n'est plus maintenue et n'ai pas conseillée pour les versions suivantes de Mac OS X.

Dans la version courante de R (3.3.3), l’exécutable de R (ligne de commande) est installé dans /usr/local/bin anciennement /usr/bin/R → c'est pourquoi lorsqu'on installe R-3.3.3, il faut indiquer à TXM le nouveau chemin.

Version de R par version de setup TXM :

  • TXM 0.7.7 - R 3.2.1
  • TXM 0.7.8 - R 3.3.2
Linux

Versions de R en fonction de la version d'Ubuntu :

  • Ubuntu 12.04 installe par défaut 2.14.1
  • Ubuntu 14.04 installe par défaut 3.0.2
  • Ubuntu 16.04 installe par défaut 3.2.3

Solution

R :

  • installation :
    • Windows : installé par TXM
    • Mac OS X : installé par TXM si absent ou version incompatible
    • Ubuntu : délégation d'installation a dpkg
  • packages :
    • Rserve : module client-serveur basé sur socket (réseau ou pas)
    • textometry
    • FactoMineR
    • + dependances

TXM :

  • préférences de réglages de lancement de R
    • local : chemin vers le binaire + options
    • distant : Adresse du serveur Rserve + options
  • client Java de Rserve (Rosuda)
  • surcouche Java de manipulation des objets R : (manipulation des Tables lexicales, résultats d'AFC…)
    • RWorkspace : wrappeur Java de code R bas niveau
    • LexicalTableImpl
    • MatrixImpl
    • SpecificitiesResult
    • etc.

TXM 0.7.7

La version de R dépend de l'OS et du contexte d'installation :

  • Windows : 3.1.2 embarqué dans TXM
  • Max OS X :
    • si R n'est pas présent lors de l'installation : 3.1.2 est installé (livré dans l'archive d'installation de TXM)
  • Linux : utilise le R installé sinon installe R à l'aide de apt-get (pas de contrôle de version)
    • Ubuntu 12.04 installe par défaut 2.14.1
    • Ubuntu 14.04 installe par défaut 3.0.2
    • Ubuntu 16.04 installe par défaut 3.2.3

TXM 0.7.8

Embarquer R dans le setup Ubuntu de TXM pour s'assurer de :

  • la version de R
  • l'installation correcte des packages R

TXM X.X

Embèder R dans tous les setups de TXM pour s'assurer de :

  • la version de R
  • l'installation correcte des packages R

Recette

État courant

public/specs_r_engine.txt · Dernière modification: 2017/04/06 15:15 par matthieu.decorde@ens-lyon.fr