Objet : Liste pour les discussions techniques (liste à inscription publique)
Archives de la liste
[April technique] bogue dlopen croisé dans RefPerSys (commit 8553aeaa8442)
Chronologique Discussions
- From: Basile Starynkevitch <basile AT starynkevitch.net>
- To: technique AT april.org
- Subject: [April technique] bogue dlopen croisé dans RefPerSys (commit 8553aeaa8442)
- Date: Thu, 29 Jul 2021 21:40:04 +0200
Bonsoir à tous,
RefPerSys
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/
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
et ce message concerne le git commit 8553aeaa8442
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/ 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 AT starynkevitch.net> (only mine opinions / les opinions sont miennes uniquement) 92340 Bourg-la-Reine, France web page: starynkevitch.net/Basile/
- [April technique] bogue dlopen croisé dans RefPerSys (commit 8553aeaa8442), Basile Starynkevitch, 29/07/2021
Archives gérées par MHonArc 2.6.19+.