Actualité du Projet GL 2014

De Ensiwiki
Aller à : navigation, rechercher
AttentionCette page est maintenue par les enseignants et utilisée par les élèves de la matière concernée. Vos contributions sont les bienvenues, mais merci d'en discuter avant de faire des modifications non triviales de la page, pour être sûr de ne pas perturber le déroulement du cours.

Utilisation de cette page

Il est impératif de consulter régulièrement cette page. Une solution simple est de la mettre comme page d'accueil de votre navigateur pour la durée du projet. Sinon, vous pouvez aussi utiliser un des flux suivant :

Atom: https://ensiwiki.ensimag.fr/index.php?title=Actualit%C3%A9_du_Projet_GL_2014&feed=atom&action=history
RSS: https://ensiwiki.ensimag.fr/index.php?title=Actualit%C3%A9_du_Projet_GL_2014&feed=rss&action=history

(A donner à un agrégateur RSS comme Thunderbird, Feedly, netvibes, ... Voir par exemple ces explications pour suivre un fil RSS depuis Thunderbird). La page Ensiwiki:Suivre les modifications du wiki sur ce Wiki donne quelques informations supplémentaires.

Les Nouvelles

27/01/2014 : report de l'heure de remise compilateurs + tests: 20h

En raison de la faible disponibilité des salles machines jusqu'à 15h30 ce lundi 27 janvier, l'heure limite de rendu de vos compilateurs et de vos tests est alignée sur celle du rendu du manuel utilisateur. Elle est repoussée de 4h, et la collecte automatique se fera donc sur la version résultant du dernier commit avant 20h dans la branche master.

Vous bénéficiez donc de 4h de plus pour vos dernières mises au point si vous le souhaitez.

25/01/2014 (bis) : correction de bug dans ima

Un petit bug a été corrigé dans ima : lorsqu'on donnait un immédiat entier en premier opérande d'une opération FMA, une erreur interne se produisait, sans message d'erreur pour l'utilisateur. La même situation produit maintenant un message d'erreur syntaxique plus explicite.

En principe, la correction ne change rien pour les programmes IMA syntaxiquement corrects.

La correction est déployée à l'Ensimag. Ceux qui travaillent sur machine personnelle peuvent faire un git pull dans GL/global pour la récupérer (ima -v doit afficher 2014b).

25/01/2014 : petite incohérence dans [ConventionsLiaison]

On nous signale une petite incohérence dans [ConventionsLiaison] : le document impose que le compilateur ne génère pas d'étiquette commençant par '_', ce qui est correct. En revanche, utiliser des étiquettes dont le nom commence par '_' dans le code assembleur écrit par l'utilisateur est impossible, car ce code ne serait pas accepté par ima.

Le dernier paragraphe de [ConventionsLiaison] doit donc être modifié comme ceci :

Le compilateur ne doit générer aucune étiquette dont le nom commence par la séquence de caractères 'user.'. En revanche, un programme Deca peut utiliser des étiquettes dont le nom commence par 'user.' dans des méthodes écrites en assembleur.

23/01/2014 : pénurie de salles TP du 24/01

Plusieurs examens de TP sont programmés demain vendredi, et occuperont une part importante des salles machines. Il n'y aura que 4 à 6 (selon les horaires) petites salles de TP libres ce vendredi soit 60 à 95 PC accessibles.

Pour éviter une pénurie de machines, merci à ceux qui ont une machine personnelle d'essayer de travailler dessus en priorité pendant la journée de demain.

Si vous n'avez pas encore installé l'environnement du projet sur votre machine perso, vous pouvez travailler dans l'environnement des PCs de l'école (voir point suivant).

23/01/2014 : travail à distance sur l'environnement des PCs l'école

Intérêt de cette solution vous travaillez sur votre machine (éventuellement chez vous), mais vous êtes dans l'environnement graphique d'un PC de l'école, avec votre HOME et toute votre configuration personnelle (par exemple sous "netbeans"). La compatibilité avec le fonctionnement sur un PC de l'école est garantie à 99% (par exemple, "decac -P" ne va pas fonctionner comme sur un PC de l'école).

AVERTISSEMENT cette solution est en bêta-test par le service info et le service décrit ici n'est garanti que jusqu'à mardi 28/01/2014 soir !

Voilà la procédure:

  • Se connecter sur votre VPN Ensimag.
  • Sous firefox (de préférence), aller sur http://ensivm.imag.fr/ndvapclient. Ceci télécharge une application java qui émule l'environnement de l'école: on la désigne ci-dessous sous le nom de "VM" (à ne pas confondre avec la VM java). Avec la dernière version de java (7 update 51), il faut pour l'instant descendre le niveau de sécurité à moyen (cf. tableau de bord java).
  • Entrer les identifiants ensimag, clic sur le bouton "s'identifier" puis clic sur la VM dédiée à l'utilisateur qui apparait.
  • La VM boote sur CentOs: il faut alors redonner ses identifiants ensimag sur l'écran de connexion (comme sur un PC de l'école).
  • Pour sortir de l'environnement graphique de l'école, il faut passer votre souris en haut de l'écran (vers le milieu): une icône de sortie apparaît.
  • Si la connection à la VM se freeze pour une raison ou pour une autre, il suffit de se reconnecter via le portail http://ensivm.imag.fr/ndvapclient et on retrouve sa VM dans l'état où on l'avait laissée.

17/01/2014 : fichier basic-gencode.sh manquant dans votre dépôt

Un script de test d'exemple basic-gencode.sh était prévu dans votre archive, et appelé par « mvn test » dans votre pom.xml. Ce fichier a été oublié par erreur de votre squelette. Vous pouvez le récupérer avec la commande suivante :

git pull ssh://ensibm.imag.fr/~moy/GL/Projet_GL/ master

14/01/2014 : explications erronées sur le TSTO dans [Gencode]

Le document [Gencode] parlait d'une possibilité du package pseudocode de modifier les opérandes des instructions. Cette possibilité n'existe en fait pas dans votre squelette. Vous avez deux possibilités pour générer le TSTO :

  • Ajouter l'instruction TSTO en début de bloc, après avoir généré le bloc (addFirst() dans pseudocode).
  • Éventuellement, ajouter une fonction setOperand() à la classe TSTO où à une de ses classes de base pour muter l'opérande comme le suggère le polycopié.

Le polycopié a été mis à jour, vous pouvez faire un git pull dans l'arborescence globale.

10/01/2014 (bis) : Correction de bug lié au #include dans test_lex

L'implémentation du #include du squelette se comporte mal quand DecaLexer est utilisé par test_lex (il cherchait les fichiers dans le répertoire courant, et non celui contenant le fichier source). Un correctif est disponible, pour l'appliquer à votre archive, faites :

git pull ssh://ensibm.imag.fr/~moy/GL/Projet_GL/ fix-test-lex

(en remplacant ensibm.imag.fr par votre-login@ensibm.imag.fr si besoin)

10/01/2014 : Version électronique du polycopié

Certains d'entre vous ne l'avaient pas trouvé (il faut reconnaitre que le nom du fichier n'est pas très explicite), mais un PDF rassemblant l'ensemble des deux polycopiés papiers (orange et vert) est disponible dans l'archive globale, dans doc/main_etu.pdf.

9/01/2014 : Transparents sur Scrum et corrections diverses

De nouveaux transparents sur Scrum et l'agilité sont disponibles dans votre archive globale (ainsi que quelques corrections mineures dans les transparents et le polycopié).

Si vous travaillez sur vos machines personnelles, vous pouvez récupérer le tout avec « git pull ». Si vous travaillez à l'Ensimag, tout est déjà dans ~moy/GL/global.

  • doc/stage/stage-agilite-trans.pdf : transparents sur Scrum et son application possible dans le cadre du projet.
  • doc/agilite-pour-les-nulls-2014.pdf : transparents présentés par Jean-François Jagodzinski en décembre 2013.

5/01/2014 : Netbeans

Un exemple d'utilisation de netbeans pour naviguer dans un code source est disponible ici.

5/01/2014 : Correction sur le document [Lexicographie]

La règle de lexicographie donnée dans le polycopié papier pour l'inclusion de fichier autorisait l'inclusion d'un fichier avec un nom vide (#include "").

Pour corriger cela, il faut remplacer la règle

FILENAME = (LETTER + DIGIT + '.' + '-' + '_')*

par

FILENAME = (LETTER + DIGIT + '.' + '-' + '_')+

(l'étoile est remplacée par un +). La version électronique est corrigée.

Erratum

Syntaxe concrète, page 50 : dans le cadre de la règle de dérivation associée au non terminal assign_expr, la condition pour le non terminal or_expr est que l'expression reconnue doit être une LVALUE

Addendum

Deux nouvelles instructions ont été ajoutées à la machine abstraite par rapport à la documentation papier que vous avez reçue. Ce sont le décalage arithmétique gauche et droite.

  • SHL : shift left, positionne OV et CP
  • SHR : shift right, positionne CP

La version électronique de la documentation de la machine abstraite présente dans votre arborescence git est à jour.