Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2015:08_21

Commit 2015-08-21

Conflit mvcrt90.dll et libgcc_s_dw2-1.dll

Correction d'un bug lié à l'allocation de mémoire dans l'interpréteur python utilisé par l'interface graphique. J'utilisais PyMem_MALLOC au lieu de PyMem_Malloc. Le premier est un malloc (un peu amélioré) et le second utilise une fonction python qui doit faire un malloc également. La différence vient du fait que le premier appel utilise le compilateur utilisé pour compiler Metafor alors que le second utilise le malloc du compilateur utilisé par python.

Puisque dans le cas où on utilise MinGW, on utilise également les binaires de python officiels (compilés avec VS2008), on observe donc un problème lorsque VS2008 essaye de libérer la mémoire provenant allouée par MinGW.

Luc observait un même problème avec son MetaforGUI (mémoire allouée par VS2012 patché alors que son python est compilé avec un VS2012 non patché - les libs runtime sont différentes).

Conséquence: il est inutile de recompiler python avec gcc sous Windows. Tout est prévu pour que ça marche (tant qu'on alloue correctement la mémoire)

CMakeList.txt

J'ai nettoyé les CMakeList.txt:

  • suppression de TABs
  • nettoyage d'includes MKL inutiles dans le cas METAFOR_USE_MKL=OFF
  • création d'une MACRO pour ajouter le _d lorsqu'on compile avec le Visual Studio (idéalement il faudrait que la condition soit: “compilation en debug et on possède une version debug de python sous Windows” - j ai pas réussi à formuler ça proprement).
  • Le nom de nos macros (on en a 2) débutent avec le prefix MACRO_ - ça me semble plus clair.
  • Les includes TBB sont maintenant définies au niveau du CMakeList principal.
La batterie a tourné mais n'a pas été commitée vu que les modifs n'impactent que Metafor.exe et la procédure de compilation.

Romain BOMAN 2015/08/21 08:07

commit/2015/08_21.txt · Last modified: 2016/03/30 15:23 (external edit)