[SCM] Lisaac compiler branch, master, updated. lisaac-0.12-696-g27ba87e

ontologiae ontologiae at gmail.com
Wed Jan 26 19:22:51 UTC 2011


The following commit has been merged in the master branch:
commit 27ba87e4fb319b1d6775286b39dbb1bfb73bfcec
Author: ontologiae <ontologiae at gmail.com>
Date:   Wed Jan 26 19:56:55 2011 +0100

    adding Mildred's boolean test

diff --git a/src/CompteRenduInvestigationBugNativeArray.txt b/src/CompteRenduInvestigationBugNativeArray.txt
index 5846ea1..e5ca376 100644
--- a/src/CompteRenduInvestigationBugNativeArray.txt
+++ b/src/CompteRenduInvestigationBugNativeArray.txt
@@ -1,10 +1,58 @@
 Compte rendu investigations sur bug NativeArray :
 
-- Le bug survient lors d'un appel sur reset_last_write dans le proto VARIABLE L 193. Celui ci est défini comme deferred.
+- Le bug survient lors d'un appel sur reset_last_write dans le proto VARIABLE L 193 lors des executing pass. Celui ci est défini comme deferred.
 - VARIABLE est le père de LOCAL et SLOT_DATA. Dans ces deux proto fils de VARIABLE, le slot reset_last_write est correctement défini
 - La création de ce VARIABLE dans le graphe de code survient dans TYPE_GENERIC Line #245 Column #52 code :  native_array_variable := VARIABLE.create (proto.position) name intern_name type (gen.first);
-- Si l'on remplace VARIABLE par LOCAL, cela semble marcher, mais un problème apparait lorsqu'on utilise des variables locales dans un block :
+- Si l'on remplace VARIABLE par LOCAL, cela peut marcher (parfois, voire le code AGENT fourni avec le mail), mais un problème apparait lorsqu'on utilise des variables locales dans un block :
 This block is extern context sensitive (with `curetat' local variable).
 Line 32 column 56 in AGENTEST(...ts/Jeu_Julien/SpaceChampTest/agentest.li):
     etat3 :=  STATE(AGENTTESTER).create "Etat 3" action { x:AGENTTESTER; curetat := 3; "Etat 3\n".print; };
 
+Questions :
+A quoi correspondent les prototypes LOCAL et SLOT_DATA ? Pourquoi un variable de ARRAY est forcément l'un des deux ? Est-ce qu"il n'y aurai pas un oubli de possibilité de tableau de blocs, sachant qu'un bloc peut embarquer des variables autres que locales ?
+
+Le test blocarray.li est dans GIT/compiler/tests/bugsRc2 continue à bugguer. Note pour Matt : J'ai fait comme tu m'as dit, j'ai bien vérifié et corrigé les index dans le test et ça ne change rien
+
+-----
+
+J'investigue maintenant en assumant le fait que je remplace VARIABLE par LOCAL dans TYPE_GENERIC Line #245 Column #52 (rappel de l'appel :  native_array_variable := VARIABLE.create (proto.position) name intern_name type (gen.first); deviens :  native_array_variable := LOCAL.create (proto.position) name intern_name type (gen.first); )
+
+
+Avec le test blocarray, survient une nouvelle erreur :
+Line #41 Column #12 in ITM_TYPE_MONO (.../src/item/itm_type_mono.li).
+    deferred;
+            ^
+================ TOP ===============
+Slot deferred.
+
+Cette erreur est provoquée par le code blocarray suivant : 
+Line 16 column 43 in BLOCARRAY(.../tests/bugsRc2/blocarray.li):
+  - lstblock : FAST_ARRAY({INTEGER;INTEGER}) :=  FAST_ARRAY({INTEGER;INTEGER}).create 3;
+
+Bref, à la création du FAST_ARRAY...
+
+le deferred survient sur un appel de hash_code qui est effectué dans le parser : 
+Line #1650 Column #65 in PARSER (.../src/parser.li).
+        genericity := ALIAS_ARRAY(ITM_TYPE_MONO).alias genericity;
+
+Ce qui étonnant c'est que appel dans le parser arrive très souvent et ne provoque pas d'erreur. J'ai l'impression que c'est un peu casse gueule.
+J'ai tenté de virer le deffered et de rajouter un index propre qui s'incrémente et ya un contrat qui pète un peu plus loin :
+
+Line #74 Column #30 in ALIAS_ARRAY (.../src/tools/alias_array.li).
+        bucket.fast_add result;
+                              ^
+Line #86 Column #15 in SET (.../lib/internal/portable/collection/set.li).
+    "Added." +? {fast_has e};
+               ^
+Line #137 Column #44 in STRING_CONSTANT (.../lib/standard/string/string_constant.li).
+  - Self:SELF '+?' test:{BOOLEAN} <- test +? Self;
+                                            ^
+================ TOP ===============
+Added.
+
+
+
+
+
+
+
diff --git a/tests/bugsRc2/blocarray.li b/tests/bugsRc2/blocarray.li
index cd3b557..0bf0324 100644
--- a/tests/bugsRc2/blocarray.li
+++ b/tests/bugsRc2/blocarray.li
@@ -22,7 +22,7 @@ Section Public
     c := { a:INTEGER; a+3};
     lstblock.put a to 1;
     lstblock.put b to 2;
-    lstblock.put c to 3;
+    lstblock.put c to 0;
 
     
     (lstblock.item 1.value 4 = 5).println;
diff --git a/tests/bugsRc2/booleantest.li b/tests/bugsRc2/booleantest.li
new file mode 100644
index 0000000..35f2d17
--- /dev/null
+++ b/tests/bugsRc2/booleantest.li
@@ -0,0 +1,24 @@
+Section Header
+
+  + name      := BOOLEANTEST;
+  - copyright := "2011  - Pierre-Alexandre Voye";
+  - author    := "Pierre-Alexandre Voye";
+  - comment   := "COMMENT";
+
+Section Inherit
+
+  + parent_object : OBJECT := OBJECT;
+
+Section Private
+
+Section Public
+
+
+  - main <-
+  (
+    + a : BOOLEAN;
+    a := BOOLEAN.clone;
+
+  );
+
+

-- 
Lisaac compiler



More information about the Lisaac-commits mailing list