Grand blackboard
Un article de SmartEiffelWiki, l'encyclopéde libre.
Le grand tableau collectif au jour le jour. Utiliser cette page pour les discussions que vous ne voyez pas ou placer. Attention, cette page n'est absolument pas obligé de correspondre à ce qui se passe dans la version Anglaise.
| Sommaire |
|
|
short
short pourrait-il dire si une procedure est deferred ?
En fait il faudrait deux outils:
- short pour l'utilisateur
- view plus bavard pour la mise au point.
Il n'est pas tres bon d'utiliser short pour cela. Dans la bonne tradition unix more/less, je propose de l'appeler long. Cyril 09:56, 17 Jun 2005 (MET DST)
En fait, view, c'est eiffeldoc. Colnet 8 jul 2005 à 09:14 (CEST)
undefine
undefine is equivalent to deferred
la complétion des mots sous emacs
Ctrl-/ (global-set-key [(meta /)] `dabbrev-expand)
comment on masque une fonction dans une classe fille ?
Messages d'Erreur
style
- éviter les ****
- mettre le nom de la classe en toute première position
la forme générale des message
Line 66 column 8 in TRIANGLE (./triangle.e):
l'information la plus importante le nom de la classe n'apparait pas en premier
puis-je proposer qqchse comme:
TRIANGLE (./triangle.e) at line 66 column 8 :
****** Fatal Error: Bad assignment (VJAR). Error detected while
checking this code in the VECTOR_3D_KEY context. Cannot assign
`storage.reference_at(Current)' which is of type VECTOR into `Result'
which is of type VECTOR_3D.
Line 59 columns 4, 22 in OBJECT_PERSISTENT_KEY (./object_persistent_key.e):
Result := storage.reference_at (Current)
^ ^
je préfèrerais :
VECTOR_3D_KEY context of OBJECT_PERSISTENT_KEY
Fatal Error detected while checking code : Bad assignment (VJAR).
Cannot assign
`storage.reference_at(Current)' of type VECTOR
into
`Result' of type VECTOR_3D.
code file (./object_persistent_key.e) :
at line 59 columns 4, 22
Result := storage.reference_at (Current)
^ ^
ensure then
****** Warning: Keyword "ensure" replaced with "ensure then" because
there is an inherited ensure assertion.
Line 44 column 4 in VECTOR_3D_KEY (./vector_3d_key.e):
ensure
^
j'aimerais bien :
- avoir le nom de la procédure
- avoir le texte de l'ensure de la classe mère
1.
****** Warning: The "feature" clause declares a narrower client list than the conforming parent(s). This can lead to catcalls! The final export list is {OBJECT_PERSISTENT_KEY} . Line 223 column 9 in TRIANGLE (./triangle.e): feature {OBJECT_PERSISTENT_KEY} ^ Line 225 column 2 in TRIANGLE (./triangle.e): build_and_store (triangle_key_a : TRIANGLE_KEY) is ^ Line 40 column 9 in OBJECT_PERSISTENT (./object_persistent.e): feature {ANY}
on pourrait le rendre plus clair ?
2.
line 61 column 44 file /usr/local/EIFFEL/SmartEiffel//lib/kernel/general.e ------------------------------------------------------------------------ 56 -- current object ? 57 require 58 other /= Void 59 external "built_in" 60 ensure >61++ generating_type = other.generating_type implies Result = other.is_equal(Current) 62 end 63
generating_type ? je ne comprends pas l'origine de l'erreur. J'ai redéfini is_equal c'est sans doute par cela, mais que dois-je faire ?
mauvais pointage de l'erreur et texte
FRA@fec>short segment
****** Fatal Error: The local definition in VECTOR_3D (given first) can't be accepted because a concrete definition is inherited. Missing redefine or undefine? Line 11 column 2 in VECTOR_3D (/home/FRAMES/TRIANGLE_V2/vector_3d.e): VECTOR ^ Line 47 column 2 in VECTOR_3D (/home/FRAMES/TRIANGLE_V2/vector_3d.e): divide, infix "/" (v : REAL_64) : like Current is ^ Line 67 column 2 in VECTOR (/home/FRAMES/TRIANGLE_V2/vector.e): divide, infix "/" (v : REAL_64) : like Current is
C'est pas divide c'est infix "/" qui devrait être pointé
d'autre part, je ne comprends pas la phrase The local definition of what ?
ni la suite (given first)
Notation des Réels
****** Fatal Error: Keyword "end" expected at the end of a class. Line 122 column 27 in MANAGEMENT (../management.e): epsilon_64 : REAL_64 is 1.e-15
end ? la bonne syntaxe est : 1.0e-15.
pas compris
FRA@fec>short vector_3d
****** Warning: Unknown path: "xml/" in /usr/local/EIFFEL/SmartEiffel/lib/loadpath.se. ------ ****** Fatal Error: Can't join these two concrete features. (CDJR2) Line 12 column 2 in VECTOR_3D (/home/FRAMES/TRIANGLE_V2/vector_3d.e): VECTOR ^ Line 73 column 2 in VECTOR (/home/FRAMES/TRIANGLE_V2/vector.e): is_filled: BOOLEAN is ^ Line 81 column 2 in OBJECT_ONE_VALUED (/home/FRAMES/TRIANGLE_V2/object_one_valued.e): is_filled: BOOLEAN is ^
VECTOR_3D
- inherit VECTOR
et n'a rien à voir avec OBJECT_ONE_VALUED
j'ai renommé la classe OBJECT_ONE_VALUED => OBJECT_ONE_VALUE
maintenant ça marche ! Bizarre.
****** Fatal Error: Cannot pass `object_a' which is of type OBJECT_PERSISTENT
into formal type OBJECT_LEAF.
Line 77 column 17 in OBJECT_PERSISTENT_KEY (/home/FRAMES/TRIANGLE_V2/object_persistent_key.e):
storage.add (object_a, Current)
^
c'est ici non ?
Line 151 column 10 in BIJECTIVE_DICTIONARY
(/usr/local/EIFFEL/SmartEiffel/lib/storage/bijective_dictionary.e):
add (v: V; k: K) is
^
OBJECT_LEAF hérite de OBJECT_PERSISTENT
l'erreur vient de OBJECT_LEAF_KEY (qui ne figure pas dans le message) dans la quelle object_persistent est du type OBJECT_PERSISTENT au lieu de OBJECT_LEAF
message plus précis ?
****** Fatal Error: Type mark expected.
Line 66 column 8 in TRIANGLE (./triangle.e):
i := triangle_key.leaves_declarations.index_of ("sides@3:SEGMENT")
^
un Type mark est-il vraiment expected et peut-il commencer par = ?
C'est de la syntaxe pure. Je ne sais pas faire (qui a dit ça ?).
****** Fatal Error: Type OBJECT_PERSISTENT_TIME has no creation
list. You must use the default creation method (named `default_create'
in class GENERAL, or just omit the method name).
Line 34 columns 4, 18 in TRIANGLE_KEY (../triangle_key.e):
create Result.make
^ ^
On pourrait avoir le type de Result ?
obviously expanded
****** Fatal Error: The declaration type of `names_dictionary.has(object_name_a)' is obviously expanded (i.e. the written type mark is "BOOLEAN").
pourquoi obviously ?
pb dans io.put_string
io.put_string (" for each sides item add %"leaves_declarations.put %(%"sides@1:SEGMENT%", n%)%"%N")
donne ce resultat
for each sides item add "leaves_declarations.put ["sides@1:SEGMENT", n]"
^ ^
%( et %) ont donne [ et ]
Ca c'est normal, voir ETL2 Cyril 10:43, 16 Jun 2005 (MET DST)
Avis de pini
Je prends la discussion en cours de route, mais :
- ) Une rubrique New Askings aurait toute sa place sur un wiki, mais il faudra bien préciser que ce ne sont que des demandes, et non une TO_DO List.
- ) Pour la rubrique avec les éléments du langage et leur graphe syntaxique, je suis pour. Paul Brauner (Polux) m'avait aussi parlé de faire un article sur la grammaire du langage, à voir avec lui.
- ) Pour les messages d'erreur, c'est vrai que la forme proposée est plus claire et plus facile à lire (je trouve)
- ) Ensure then : pourquoi ne pas mettre aussi le ensure de la classe fille en plus du ensure de la classe mère ? Je dis ça pour permettre de voir si par hasard (ou par erreur) on n'aurait pas remis une partie de la post-condition héritée, ce qui m'est déjà arrivé (par exemple pour le widget opengleux).
- ) pas compris : est-ce que cette erreur a quelque chose à voir avec l'héritage en diamant ?
- ) pb dans io.put_string : donc ce pb est normal si ( donne "(" et %( donne "[". pourquoi ne pas utiliser %[ au lieu de %( ?
Avis de Cyril 15:03, 17 Jun 2005 (MET DST)
- On est d'accord sur le New Askings.
- pour la syntaxe, il existe déjà pas mal de choses faites par Dominique sur le site de SmartEiffel (http://smarteiffel.loria.fr/technical/syntax.html).
- Pour io.put_string : ETL définit très précisément les caractères qu'on peut mettre après un % qui joue le même rôle que \ en C. En particulier, %( et %) correspondent aux crochets, %< et %> correspondent aux accolades, etc. Il est vrai que de nos jours, à part %N et %T... Bref, si on veut insérer le signe pourcent il faut écrire %%. L'origine est historique : il semblerait que certains tty n'avaient pas tout le jeu de caractères.
Oui, et on va dégager les vieux truc un de ces jours. Colnet 8 jul 2005 à 09:14 (CEST)
Sinon, c'est bien le bazard sur cette page... mais c'est fait pour cela non ? Colnet 8 jul 2005 à 09:14 (CEST)





