• # oubli

    Posté par . En réponse au journal quick start pour coco/R. Évalué à 4.

    Zut, j'ai oublié de préciser quelques détails au sujet des fichiers .frame fournis par l'upstream:

    • ils sont écrit dans du C++ pré-2011 (et ça warn dur, même si j'ai patché les miens pour résoudre ce problème), qui n'utilise pas std::auto_ptr
    • clang --analyze détecte un bug
    • de même, au moins une variable n'est jamais utilisée
    • pas mal de padding qui peut être réduit dans le code généré
    • le copyright utilise des fins de lignes de type CR/LF, «à la Windows», un petit coup de dos2unix sur les fichiers .frame résout le problème à la source

    Concernant mes patchs perso:

    correctif du bug (je pense que c'est le seul patch vraiment important):

    diff --git a/coco-cpp-20120102/Scanner.frame b/coco-cpp-20120102/Scanner.frame
    index 35c4dc7..cc42ec6 100644
    --- a/coco-cpp-20120102/Scanner.frame
    +++ b/coco-cpp-20120102/Scanner.frame
    @@ -339,7 +339,7 @@ wchar_t* coco_string_create(const wchar_t *value, size_t startIndex, size_t leng
     if (value) { len = length; }
     data = new wchar_t[len + 1];
    - wcsncpy(data, &(value[startIndex]), len);
    + if (value) { wcsncpy(data, &(value[startIndex]), len); };
     data[len] = 0;
     return data;

    Mon log actuel (je pousserais sûrement upstream (dommage qu'ils aient pas importé l'historique quand même) quand j'aurai un peu plus de connaissance sur le code de base):

    fbdf15a fixed using nullptr as non-null param (found with clang analyzer)
    d96c82a removed unused charSetSize
    627b6de fix weak-vtable
    662fe62 fixed remaining implicit conversions warnings
    8ee6cab fixed most implict sign conversions
    dd097f8 fixed most shortens 64 to 32 warnings
    43fb34f fix extra-semi
    548b34a no longer use 0 as nullptr
    d50ecea slightly reduce padding
    1a76de4 generated code no longer use reserved macros
    6cd6446 no more shadown vars
    12b8daa no longer generate code with old-style cast
    b1ccb79 NULL -> nullptr
    68aa815 dos2unix
    5fb038c initial commit