• =?UTF-8?Q?Fwd=3a_bogue_dlopen_crois=c3=a9_dans_RefPerSys_=28commit_?= =

    From Basile Starynkevitch@21:1/5 to All on Thu Jul 29 21:50:01 2021
    This is a multi-part message in MIME format.
    Bonsoir,


    Une demande d'aide, que j'ai postée vers une liste April, mais qui
    concerne un logiciel libre sous Debian/Testing/x86-64 (ou Ubuntu 21.04)

    -------- Forwarded Message --------
    Subject: bogue dlopen croisé dans RefPerSys (commit 8553aeaa8442)
    Date: Thu, 29 Jul 2021 21:40:04 +0200
    From: Basile Starynkevitch <basile@starynkevitch.net>
    To: technique@april.org



    Bonsoir à tous,

    RefPerSys <http://refpersys.org/> est un logiciel libre d'intelligence artificielle symbolique (sous licence GPLv3+) sous Linux. La
    philosophie, c'est /méta-connaissances déclaratives/ (vous lirez avec
    profit le livre: /Méta-connaissances, futur de l'Intelligence
    Artificielle/  ISBN  2-86601-247-X, Hermès 1997) auto-génération du système (j'en suis encore loin, mais grâce à d'autres je m'en rapproche...).

    Pour les curieux, voir les exposés en https://afia.asso.fr/journee-hommage-j-pitrat/ <https://afia.asso.fr/journee-hommage-j-pitrat/> et surtout, lire le
    dernier livre de Pitrat (en anglais) /Artificial Beings : the Conscience
    of a Conscious Machine/ ISBN-13: 978-1848211018. Ce livre se lit bien et
    ne nécessite pas de connaissances informatiques poussées.

    Le code C++ (actuellement écrit à la main, hélas; je voudrais en générer davantage) de RefPerSys (commenté en anglais) est en https://github.com/RefPerSys/RefPerSys
    <https://github.com/RefPerSys/RefPerSys>

    et ce message concerne le git commit 8553aeaa8442 <https://github.com/RefPerSys/RefPerSys/commit/8553aeaa84429a15d52d961e632210c93dc1f8ae>

    L'idée directrice (insuffisamment suivie) est de traduire un formalisme
    de règles (systèmes experts) en du code généré C++, actuellement
    utilisant Qt5. L'état persistant de RefPerSys est stocké dans des
    fichiers textuels (sous persistore/ ...) dans un format inspiré de JSON.

    La configuration de RefPerSys est artisanale: un banal Makefile, avec un fichier inclus $HOME/.refpersys.mk qui contient par exemple

    # file ~/.refpersys.mk
    RPS_BUILD_CC= /usr/bin/gcc-10
    RPS_BUILD_CXX= /usr/bin/g++-10

    (on peut remplacer gcc-10 par gcc-11 ou clang-12, etc...)


    Après avoir compilé RefPerSys (par un make -j7 refpersys && make all) je
    le lance avec ./refpersys --Qt -AGUI,WEB et j'obtiens (depuis un commit
    ou deux) systématiquement l'erreur:

    rimski.x86_64 ~/RefPerSys 20:53 .0 % ./refpersys --Qt -AGUI,WEB


    *** RefPerSys INFORM: main_rps.cc:754: <int main(int, char**)>
     !-!-! starting RefPerSys !-!-! ./refpersys process 10298 on host rimski
    ... gitid 8553aeaa84429a15 built Thu 29 Jul 2021 08:53:24 PM MEST (main@0x555c2cba177d) interactive mode (3 jobs)

    make: Entering directory '/home/basile/RefPerSys'
    make: Leaving directory '/home/basile/RefPerSys'
    ** RefPerSys INFORM! main_rps.cc:586: void rps_check_mtime_files() rps_check_mtime_files: did make -t -C /home/basile/RefPerSys -q objects successfully
    ** RefPerSys INFORM! store_rps.cc:749: void
    Rps_Loader::load_all_state_files() loaded 1 space files in second pass
    with 196 objects and 0 todos

    ** RefPerSys INFORM! store_rps.cc:2721: void rps_load_from(const
    string&) rps_load_from completed
    ... from directory /home/basile/RefPerSys with RefPerSys built Thu 29
    Jul 2021 08:53:24 PM MEST
     lastgitcommit 8553aeaa8442 more code in RpsTemp_ObjectBrowser::refresh_object_browser - the loop to display
    object is incomplete
     md5sum 45449edd9382713d22f67e2b8edad88b
     loaded 196 objects in 0.004 elapsed, 0.004 cpu seconds
     so 22.165 elapsed µs/ob, 22.161 cpu µs/ob, in 7434 memory words. =============================================================================




    *** RefPerSys INFORM: main_rps.cc:1120: <void rps_run_application(int&, char**)>
     rps_run_application: start of ./refpersys
    .. gitid 8553aeaa84429a15d52d961e632210c93dc1f8ae+
    .. build timestamp Thu 29 Jul 2021 08:53:24 PM MEST
    .. last git commit 8553aeaa8442 more code in RpsTemp_ObjectBrowser::refresh_object_browser - the loop to display
    object is incomplete
    .. md5sum 45449edd9382713d22f67e2b8edad88b
    .. in /home/basile/RefPerSys
    .. on host rimski pid 10298


    ** RefPerSys INFORM! main_rps.cc:1675: bool rps_set_debug_flag(const
    string&) setting debugging flag GUI
    ** RefPerSys INFORM! main_rps.cc:1675: bool rps_set_debug_flag(const
    string&) setting debugging flag WEB


    *** RefPerSys INFORM: main_rps.cc:1138: <void rps_run_application(int&, char**)>
     rps_run_application did set debug after load to GUI,WEB

    ** RefPerSys INFORM! main_rps.cc:1206: void rps_run_application(int&,
    char**) rps_run_application will do Qt from pid 10298 on rimski so make tempgui-qrps.so
    make: 'tempgui-qrps.so' is up to date.


    ** RefPerSys FATAL! main_rps.cc:1214:: dlopen tempgui-qrps.so failed : ./tempgui-qrps.so: undefined symbol: _ZN17Rps_PayloadStrBuf12clear_bufferEv

    RPS FATAL:
     RefPerSys gitid 8553aeaa84429a15d52d961e632210c93dc1f8ae+,
         built timestamp Thu 29 Jul 2021 08:53:24 PM MEST,
         on host rimski, md5sum 45449edd9382713d22f67e2b8edad88b,
         elapsed 0.068, process 0.022 sec
    [001] main_rps.cc:1214°: rps_run_application @0x555c2cb9f84b
    [002] main_rps.cc:768°: main @0x555c2cba242d
    ===== end fatal error at main_rps.cc:1214 ====== --------------------------------/ main_rps.cc:1214
    zsh: IOT instruction (core dumped)  ./refpersys --Qt -AGUI,WEB


    Ca fait plusieurs jours que je n'arrive pas à comprendre cette erreur,
    et à corriger mon bogue.

    Avez vous des idées, une stratégie de déboguage? Je ne suis pas un
    expert de /binutils/. Je suis sensé avoir été un expert de GCC.


    Librement.

    PS. Je cherche aussi des "mécènes", concrètement des partenaires pour
    des soumissions ITEA ou HorizonEurope. Le site http://refpersys.org/ <http://refpersys.org/> donne des références possibles d'appels à
    projets dans le cadre HorizonEurope, et des futures applications.


    NB: je cherche aussi des relecteurs pour un papier en cours de
    soumission à ROIA (revue ouverte d'intelligence artificielle). Contactez
    moi pour en obtenir le PDF actuel.

    --

    Basile Starynkevitch<basile@starynkevitch.net>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/


    <html>
    <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p><br>
    </p>
    <div class="moz-forward-container">Bonsoir,</div>
    <div class="moz-forward-container"><br>
    </div>
    <div class="moz-forward-container"><br>
    </div>
    <div class="moz-forward-container">Une demande d'aide, que j'ai
    postée vers une liste April, mais qui concerne un logiciel libre
    sous Debian/Testing/x86-64 (ou Ubuntu 21.04)</div>
    <div class="moz-forward-container"> <br>
    -------- Forwarded Message --------
    <table class="moz-email-headers-table" cellspacing="0"
    cellpadding="0" border="0">
    <tbody>
    <tr>
    <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Subject:
    </th>
    <td>bogue dlopen croisé dans RefPerSys (commit 8553aeaa8442)</td>
    </tr>
    <tr>
    <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Date: </th>
    <td>Thu, 29 Jul 2021 21:40:04 +0200</td>
    </tr>
    <tr>
    <th valign="BASELINE" nowrap="nowrap" align="RIGHT">From: </th>
    <td>Basile Starynkevitch <a class="moz-txt-link-rfc2396E" href="mailto:basile@starynkevitch.net">&lt;basile@starynkevitch.net&gt;</a></td>
    </tr>
    <tr>
    <th valign="BASELINE" nowrap="nowrap" align="RIGHT">To: </th>
    <td><a class="moz-txt-link-abbreviated" href="mailto:technique@april.org">technique@april.org</a></td>
    </tr>
    </tbody>
    </table>
    <br>
    <br>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <p>Bonsoir à tous,</p>
    <p><a moz-do-not-send="true" href="http://refpersys.org/">RefPerSys</a>
    est un logiciel libre d'intelligence artificielle symbolique
    (sous licence GPLv3+) sous Linux. La philosophie, c'est <i>méta-connaissances
    déclaratives</i> (vous lirez avec profit le livre: <i>Méta-connaissances,
    futur de l'Intelligence Artificielle</i>  ISBN  2-86601-247-X,
    Hermès 1997) auto-génération du système (j'en suis encore loin,
    mais grâce à d'autres je m'en rapproche...).<br>
    </p>
    <p>Pour les curieux, voir les exposés en <a
    moz-do-not-send="true"
    href="https://afia.asso.fr/journee-hommage-j-pitrat/">https://afia.asso.fr/journee-hommage-j-pitrat/</a>
    et surtout, lire le dernier livre de Pitrat (en anglais) <i>Artificial
    Beings : the Conscience of a Conscious Machine</i> <span
    class="a-size-base a-color-base a-text-bold">ISBN-13:</span> <span
    class="a-size-base a-color-base"> 978-1848211018. </span>Ce
    livre se lit bien et ne nécessite pas de connaissances
    informatiques poussées.<br>
    </p>
    <p>Le code C++ (actuellement écrit à la main, hélas; je voudrais
    en générer davantage) de RefPerSys (commenté en anglais) est en
    <a moz-do-not-send="true"
    href="https://github.com/RefPerSys/RefPerSys">https://github.com/RefPerSys/RefPerSys<br>
    </a></p>
    <p>et ce message concerne le git commit <a moz-do-not-send="true" href="https://github.com/RefPerSys/RefPerSys/commit/8553aeaa84429a15d52d961e632210c93dc1f8ae">8553aeaa8442</a><br>
    </p>
    <p>L'idée directrice (insuffisamment suivie) est de traduire un
    formalisme de règles (systèmes experts) en du code généré C++,
    actuellement utilisant Qt5. L'état persistant de RefPerSys est
    stocké dans des fichiers textuels (sous <font face="monospace">persistore/</font>
    ...) dans un format inspiré de JSON.<br>
    </p>
    <p>La configuration de RefPerSys est artisanale: un banal
    Makefile, avec un fichier inclus <font face="monospace">$HOME/.refpersys.mk
    </font>qui contient par exemple</p>
    <p><font face="monospace"># file ~/.refpersys.mk<br>
    RPS_BUILD_CC= /usr/bin/gcc-10<br>
    RPS_BUILD_CXX= /usr/bin/g++-10</font><br>
    </p>
    <p>(on peut remplacer <font face="monospace">gcc-10</font> par <font
    face="monospace">gcc-11</font> ou <font face="monospace">clang-12</font>,
    etc...)</p>
    <p><br>
    </p>
    <p>Après avoir compilé RefPerSys (par un <font face="monospace">make
    -j7 refpersys &amp;&amp; make all</font>) je le lance avec <font
    face="monospace">./refpersys --Qt -AGUI,WEB</font> et
    j'obtiens (depuis un commit ou deux) systématiquement l'erreur:</p>
    <p>rimski.x86_64 ~/RefPerSys 20:53 .0 % ./refpersys --Qt -AGUI,WEB<br>
    <font face="monospace"><br>
    <br>
    *** RefPerSys INFORM: main_rps.cc:754: &lt;int main(int,
    char**)&gt;<br>
     !-!-! starting RefPerSys !-!-! ./refpersys process 10298 on
    host rimski<br>
    ... gitid 8553aeaa84429a15 built Thu 29 Jul 2021 08:53:24 PM
    MEST (main@0x555c2cba177d) interactive mode (3 jobs)<br>
    <br>
    make: Entering directory '/home/basile/RefPerSys'<br>
    make: Leaving directory '/home/basile/RefPerSys'<br>
    ** RefPerSys INFORM! main_rps.cc:586: void
    rps_check_mtime_files() rps_check_mtime_files: did make -t -C
    /home/basile/RefPerSys -q objects successfully<br>
    ** RefPerSys INFORM! store_rps.cc:749: void
    Rps_Loader::load_all_state_files() loaded 1 space files in
    second pass with 196 objects and 0 todos<br>
    <br>
    ** RefPerSys INFORM! store_rps.cc:2721: void
    rps_load_from(const string&amp;) rps_load_from completed<br>
    ... from directory /home/basile/RefPerSys with RefPerSys built
    Thu 29 Jul 2021 08:53:24 PM MEST<br>
     lastgitcommit 8553aeaa8442 more code in
    RpsTemp_ObjectBrowser::refresh_object_browser - the loop to
    display object is incomplete<br>
     md5sum 45449edd9382713d22f67e2b8edad88b<br>
     loaded 196 objects in 0.004 elapsed, 0.004 cpu seconds<br>
     so 22.165 elapsed µs/ob, 22.161 cpu µs/ob, in 7434 memory
    words.<br> =============================================================================<br>
    <br>
    <br>
    <br>
    <br>
    *** RefPerSys INFORM: main_rps.cc:1120: &lt;void
    rps_run_application(int&amp;, char**)&gt;<br>
     rps_run_application: start of ./refpersys<br>
    .. gitid 8553aeaa84429a15d52d961e632210c93dc1f8ae+<br>
    .. build timestamp Thu 29 Jul 2021 08:53:24 PM MEST<br>
    .. last git commit 8553aeaa8442 more code in
    RpsTemp_ObjectBrowser::refresh_object_browser - the loop to
    display object is incomplete<br>
    .. md5sum 45449edd9382713d22f67e2b8edad88b<br>
    .. in /home/basile/RefPerSys<br>
    .. on host rimski pid 10298<br>
    <br>
    <br>
    ** RefPerSys INFORM! main_rps.cc:1675: bool
    rps_set_debug_flag(const string&amp;) setting debugging flag
    GUI<br>
    ** RefPerSys INFORM! main_rps.cc:1675: bool
    rps_set_debug_flag(const string&amp;) setting debugging flag
    WEB<br>
    <br>
    <br>
    *** RefPerSys INFORM: main_rps.cc:1138: &lt;void
    rps_run_application(int&amp;, char**)&gt;<br>
     rps_run_application did set debug after load to GUI,WEB<br>
    <br>
    ** RefPerSys INFORM! main_rps.cc:1206: void
    rps_run_application(int&amp;, char**) rps_run_application will
    do Qt from pid 10298 on rimski so make tempgui-qrps.so<br>
    make: 'tempgui-qrps.so' is up to date.<br>
    <br>
    <br>
    ** RefPerSys FATAL! main_rps.cc:1214:: dlopen tempgui-qrps.so
    failed : ./tempgui-qrps.so: undefined symbol:
    _ZN17Rps_PayloadStrBuf12clear_bufferEv<br>
    <br>
    RPS FATAL:<br>
     RefPerSys gitid 8553aeaa84429a15d52d961e632210c93dc1f8ae+,<br>
         built timestamp Thu 29 Jul 2021 08:53:24 PM MEST,<br>
         on host rimski, md5sum 45449edd9382713d22f67e2b8edad88b,<br>
         elapsed 0.068, process 0.022 sec<br>
    [001] main_rps.cc:1214°: rps_run_application @0x555c2cb9f84b<br>
    [002] main_rps.cc:768°: main @0x555c2cba242d<br>
    ===== end fatal error at main_rps.cc:1214 ======<br>
    --------------------------------/ main_rps.cc:1214<br>
    zsh: IOT instruction (core dumped)  ./refpersys --Qt -AGUI,WEB</font></p>
    <p><br>
    </p>
    <p>Ca fait plusieurs jours que je n'arrive pas à comprendre cette
    erreur, et à corriger mon bogue.</p>
    <p>Avez vous des idées, une stratégie de déboguage? Je ne suis pas
    un expert de <i>binutils</i>. Je suis sensé avoir été un expert
    de GCC.<br>
    </p>
    <p><br>
    </p>
    <p>Librement.<br>
    </p>
    <p>PS. Je cherche aussi des "mécènes", concrètement des
    partenaires pour des soumissions ITEA ou HorizonEurope. Le site
    <a moz-do-not-send="true" href="http://refpersys.org/">http://refpersys.org/</a>
    donne des références possibles d'appels à projets dans le cadre
    HorizonEurope, et des futures applications.</p>
    <p><br>
    </p>
    <p>NB: je cherche aussi des relecteurs pour un papier en cours de
    soumission à ROIA (revue ouverte d'intelligence artificielle).
    Contactez moi pour en obtenir le PDF actuel.<br>
    </p>
    <p>-- </p>
    <pre class="moz-signature" cols="72">Basile Starynkevitch <a class="moz-txt-link-rfc2396E" href="mailto:basile@starynkevitch.net" moz-do-not-send="true">&lt;basile@starynkevitch.net&gt;</a>
    (only mine opinions / les opinions sont miennes uniquement)
    92340 Bourg-la-Reine, France
    web page: starynkevitch.net/Basile/

    </pre>
    </div>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From didier gaumet@21:1/5 to All on Fri Jul 30 00:20:01 2021
    (je modofie le titre en Hors-Sujet parce que c'est vrai que ça ,'a pas
    un rapport direct avec Debian...)

    Bonjour,

    Comme d'hab', vu mon niveau, pendre ce que je dis avec des (grosses)
    pincettes.

    Je suppose que l'erreur intervient sur le code généré dynamiquement,
    alors peut-être que, temporairement, rajouter l'option --no-undefined à l'intruction gcc/g++ de ton programme qui te sert à cette génération dynamique pourrait t'indiquer plus précisément quel est le problème?

    cf https://stackoverflow.com/questions/37834283/undefined-symbol-in-shared-library

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)