Page 22 sur 26

Re: Moebius

Publié : mer. 21/oct./2009 10:40
par Anonyme2
Je viens de télécharger Moebius et j'ai passé mon projet à Moebius, en ne voulant que les asm (pas la lib).

A un moment, j'ai une fenêtre me disant que FASM a retourné une erreur mais il serait intéressant d'avoir le texte d'erreur de FASM.

Ensuite plus rien, la progressbar reste au 1/3. J'ai plein de fichier asm mais je ne sais pas si j'ai tout.

Je suspecte le fait que j'utilise un peu d'asm directement dans mon code (pour des problèmes liés aux listes chainées) et il serait bien que Moebius propose d'activer l'asm en ligne comme dans les options du compilateur.

Tu peux ajouter ça et mettre en ligne une version modifiée que je teste ?

Serait-il possible d'utiliser un projet pb dont l'extension est .pbp, c'est du xml (enfin je crois).

Par exemple, dans mon projet j'ai ça, il y a le fichier principal, les options asm, les skinxp, le mode debug mais inutile pour pour l'asm.

Code : Tout sélectionner

 <section name="targets">
    <target name="Cible par défaut" enabled="1" default="1">
      <inputfile value="PureIconManager_Main.pbi"/>
      <outputfile value="PueIconManager.exe"/>
      <options asm="1" xpskin="1" debug="1"/>
      <temporaryexe value="source"/>
    </target>
  </section>
</project>

Re: Moebius

Publié : mer. 21/oct./2009 12:44
par Progi1984
@Denis :
Ouah... j'aime les questions techniques comme ca...
Denis a écrit :Je viens de télécharger Moebius et j'ai passé mon projet à Moebius, en ne voulant que les asm (pas la lib).
Quel version de Moebius ? Quel version de PB ?
Denis a écrit :A un moment, j'ai une fenêtre me disant que FASM a retourné une erreur mais il serait intéressant d'avoir le texte d'erreur de FASM.
Peux tu regarder dans le dossier temporaire/LOGS, les logs ?
Denis a écrit :Ensuite plus rien, la progressbar reste au 1/3. J'ai plein de fichier asm mais je ne sais pas si j'ai tout.
Normalement, il y a n+2 (n = nb de fonctions + shared + init)
Denis a écrit :Je suspecte le fait que j'utilise un peu d'asm directement dans mon code (pour des problèmes liés aux listes chainées) et il serait bien que Moebius propose d'activer l'asm en ligne comme dans les options du compilateur.
Je confirme, je n'active pas /INLINEASM lors de la compilation. je l'avais activé dans le code puis désactivé (bug de Dobro). Je pense que je vais l'"optionner" via ligne de commande & interface graphique, si ca te convient.
Denis a écrit :Serait-il possible d'utiliser un projet pb dont l'extension est .pbp, c'est du xml (enfin je crois).

Par exemple, dans mon projet j'ai ça, il y a le fichier principal, les options asm, les skinxp, le mode debug mais inutile pour pour l'asm.

Code : Tout sélectionner

 <section name="targets">
    <target name="Cible par défaut" enabled="1" default="1">
      <inputfile value="PureIconManager_Main.pbi"/>
      <outputfile value="PueIconManager.exe"/>
      <options asm="1" xpskin="1" debug="1"/>
      <temporaryexe value="source"/>
    </target>
  </section>
</project>
En fait, tu souhaites que je pompe les options et les chemins directement du pbp ?

Re: Moebius

Publié : mer. 21/oct./2009 13:03
par Anonyme2
@Quel version de Moebius
Celle de ta signature

@ ? Quel version de PB ?
PB 4.40 beta 5

@Peux tu regarder dans le dossier temporaire/LOGS, les logs ?
Pas activé le log, mais si c'est si important je le ferais

@Normalement, il y a n+2 (n = nb de fonctions + shared + init)
J'ai 25000 lignes de codes avec plein de fichiers include et j'ai pas compté les procedures :roll:
J'ai déjà 255 fichiers asm de créés, mais je ne vais pas compter les procédurs pb, c'est imbuvable.
Tu pourrais d'ailleurs afficher le nombre de procédures que Moebius trouve et comparer le nombres de fichiers asm

@Je confirme, je n'active pas /INLINEASM lors de la compilation. je l'avais activé dans le code puis désactivé (bug de Dobro). Je pense que je vais l'"optionner" via ligne de commande & interface graphique, si ca te convient.
Oui, ça me va

@En fait, tu souhaites que je pompe les options et les chemins directement du pbp ?
T'as tout compris :D

Re: Moebius

Publié : mer. 21/oct./2009 14:52
par Progi1984
Denis a écrit :@ ? Quel version de PB ?
PB 4.40 beta 5
La PB 4.40 beta 5 n'est pas encore supporté à cause de nombreux pbs genre le RunProgram qui fonctionne mal avec Fasm.
Denis a écrit :@Peux tu regarder dans le dossier temporaire/LOGS, les logs ?
Pas activé le log, mais si c'est si important je le ferais
Peux tu activer le log et voir le message d'erreur lors de la sortie.
Denis a écrit :@Normalement, il y a n+2 (n = nb de fonctions + shared + init)
J'ai 25000 lignes de codes avec plein de fichiers include et j'ai pas compté les procedures :roll:
J'ai déjà 255 fichiers asm de créés, mais je ne vais pas compter les procédurs pb, c'est imbuvable.
Tu pourrais d'ailleurs afficher le nombre de procédures que Moebius trouve et comparer le nombres de fichiers asm
Je note pour les prochaines versions une sortie de stats.
Denis a écrit :@En fait, tu souhaites que je pompe les options et les chemins directement du pbp ?
T'as tout compris
Dans les prochaines versions...

Re: Moebius

Publié : mer. 21/oct./2009 15:32
par Anonyme2
Le log (erreur FASM étape 3)

Comme le log est trop long, j'ai mis la fin, là où est l'erreur
16:27:47 FASM String
16:27:47 flat assembler version 1.67.26 (1840914 kilobytes memory)
2 passes, 451 bytes.

16:27:47
16:27:47 "K:\PureBasic\compilers\fasm.exe" "C:\Users\jj\AppData\Local\Temp\Moebius\PureIconManger_Viewer_Main\ASM\PureIconManager_Init.asm" "C:\Users\jj\AppData\Local\Temp\Moebius\PureIconManger_Viewer_Main\OBJ\PureIconManager_Init.obj"
16:27:47 FASM String
16:27:47 flat assembler version 1.67.26 (1838010 kilobytes memory)

16:27:47 FASM Error
16:27:47 C:\Users\jj\AppData\Local\Temp\Moebius\PureIconManger_Viewer_Main\ASM\PureIconManager_Init.asm [35]:
JMP _PB_EOP_NoValue
error: undefined symbol '_PB_EOP_NoValue'.

16:27:47
16:27:47 Step3 > Error > 18
Je te met le fichier asm correspondant
On a un saut à l'étiquette _PB_EOP_NoValue qui n'existe pas dans le fichier.

J'ai coché "générer un fichier log" et je n'ai pas coché "activer le log" et je n'ai pas de fichier log.

Si tu veux le fichier Purebasic.asm pour tes essais, envoies-moi ton email par MP et je te l'envoie (1968 Ko).

Code : Tout sélectionner

format MS COFF

public PB_PureIconManager_Init

extrn _GetProcessHeap@0
extrn _OleInitialize@4
extrn _PB_CloseLibrary@4
extrn _PB_GetFunction@8
extrn _PB_OpenLibrary@8
extrn _S1
extrn _S2
extrn _SYS_InitString@0
extrn PB_PIM_Display_Error
extrn PB_PIM_SetError_Code
extrn _SYS_InitString@0

PB_PureIconManager_Init:
CALL _SYS_InitString@0
PB_PureIconManager_Init:
CALL _SYS_InitString@0
_Procedure82:
PUSH   ebx
PS82=24
XOR    eax,eax
PUSH   eax
PUSH   eax
PUSH   eax
PUSH   eax
PUSH   dword 0
CALL  _OleInitialize@4
MOV    ebx,eax
AND    ebx,ebx
JE    _EndIf4
PUSH   dword 79
CALL  PB_PIM_SetError_Code
PUSH   dword 626
CALL  PB_PIM_Display_Error
JMP   _PB_EOP_NoValue
_EndIf4:
PUSH   dword _S1
PUSH   dword -1
CALL  _PB_OpenLibrary@8
MOV    dword [esp],eax
CMP    dword [esp],0
JE    _EndIf6
PUSH   dword _S2
PUSH   dword [esp+4]
CALL  _PB_GetFunction@8
MOV    dword [esp+4],eax
MOV    dword [esp+8],2
MOV    eax,dword [esp+4]
MOV    dword [esp+12],eax
PUSH   dword 4
LEA    eax,[esp+12]
PUSH   eax
PUSH   dword 0
CALL  _GetProcessHeap@0
PUSH   eax
CALL   dword [esp+28]
PUSH   dword [esp]
CALL  _PB_CloseLibrary@4
_EndIf6:
XOR    eax,eax
_EndProcedure83:
ADD    esp,16
POP    ebx
RET
_Procedure82:
PUSH   ebx
PS82=24
XOR    eax,eax
PUSH   eax
PUSH   eax
PUSH   eax
PUSH   eax
PUSH   dword 0
CALL  _OleInitialize@4
MOV    ebx,eax
AND    ebx,ebx
JE    _EndIf4
PUSH   dword 79
CALL  PB_PIM_SetError_Code
PUSH   dword 626
CALL  PB_PIM_Display_Error
JMP   _PB_EOP_NoValue
_EndIf4:
PUSH   dword _S1
PUSH   dword -1
CALL  _PB_OpenLibrary@8
MOV    dword [esp],eax
CMP    dword [esp],0
JE    _EndIf6
PUSH   dword _S2
PUSH   dword [esp+4]
CALL  _PB_GetFunction@8
MOV    dword [esp+4],eax
MOV    dword [esp+8],2
MOV    eax,dword [esp+4]
MOV    dword [esp+12],eax
PUSH   dword 4
LEA    eax,[esp+12]
PUSH   eax
PUSH   dword 0
CALL  _GetProcessHeap@0
PUSH   eax
CALL   dword [esp+28]
PUSH   dword [esp]
CALL  _PB_CloseLibrary@4
_EndIf6:
XOR    eax,eax
_EndProcedure83:
ADD    esp,16
POP    ebx
RET
Il y a aussi un petit problème mais qui n'a pas de conséquences (il me semble), certains fichiers asm on deux fois la même étiquette, par exemple le fichier BytesPerLine.asm (je met le début)

Code : Tout sélectionner

format MS COFF

public PureIconManger_Viewer_Main_BytesPerLine


PureIconManger_Viewer_Main_BytesPerLine:
PureIconManger_Viewer_Main_BytesPerLine:
_Procedure86:
PUSH   ebp
PUSH   ebx
PUSH   edi
PS86=16
par exemple le fichier CalculateImageOffset.asm

Code : Tout sélectionner

format MS COFF

public PureIconManger_Viewer_Main_CalculateImageOffset


PureIconManger_Viewer_Main_CalculateImageOffset:
PureIconManger_Viewer_Main_CalculateImageOffset:
_Procedure88:
PUSH   ebp
PUSH   ebx
PUSH   edi
PS88=24
XOR    eax,eax
PUSH   eax
PUSH   eax

Re: Moebius

Publié : mer. 21/oct./2009 22:08
par Progi1984
Concernant les deux bugs, si je pouvais avoir les codes sources, ca serait plus facile pour enquêter bien que je pense avoir une idée.

Dans mon code source, je ne fais rien concernant un fichier asm qui libère les ressources de la librairie :
http://code.google.com/p/moebius-pb/sou ... p2.pb#1149
Dans Tailbite, cela est fait :
http://tailbite.svn.sourceforge.net/vie ... kup#l_2009

Peux tu me me dire si ca compile bien avec Tailbite et dans ce cas là me faire parvenir les dossiers temporaires Tailbite & Moebius ?

Mail : mon pseudo chez gmail en .com !

Re: Moebius

Publié : jeu. 22/oct./2009 15:14
par Anonyme2
Ca compile sans erreur avec TailBite.

Je t'ai envoyé ce que tu demandes sauf les sources pour l'instant.
S'il y a un problème avec les ressources, essaye de faire un exemple simple avec un fichier ressource et regardes si tu as une erreur.

Re: Moebius

Publié : dim. 25/oct./2009 7:39
par Anonyme2
J'ai un plantage de Moebius_GUI avec une de mes librairie, je t'ai envoyé le code de la lib par mail.

Ca plante et ça ferme Moebius_GUI.
Rien n'est créé.

La lib compile parfaitement sous TaiBite et fonctionne bien.

voilà ce que j'ai (j'ai activé le "onerror" mais je n'ai pas plus d'informations)

Image

Re: Moebius

Publié : dim. 13/déc./2009 15:58
par Progi1984
Et voilà, la sortie de la bêta 5 qui s'améliore encore un peu plus.

Merci à Denis (pour les codes sources & logs qui ont permis d'avancer), Dobro, Oliv (pour MacOs, on va y arriver un jour), Ollivier

Lien : http://partage.rootslabs.net/Moebius_beta5.zip

Important : Normalement, d'un clic dans la GUI, vous pouvez l'inclure dans JaPBe ou l'Editeur de PB.

Code : Tout sélectionner

Beta #5		r271		2009 - 12 - 13
	REMOVED		project.cfg
	REMOVED		Old Code 

	IMPROVED	Improve Regex for being not case sensitive
	IMPROVED	Cleaning of the main file
	IMPROVED	Moebius GUI
	IMPROVED	Logging 
	IMPROVED	Sample*.sh & Sample*.bat
	IMPROVED	For Resident, change the output editorgadget
	IMPROVED	Some variables verifications
	IMPROVED	some error output
	IMPROVED	PB 4.4 > Pb with LibMaker
	IMPROVED	Prefs & New Prefs for the GUI
	IMPROVED	Batch
	IMPROVED	Thanks
	IMPROVED	Language Translations
	IMPROVED	MacOs port
	IMPROVED	Clean parameters
	IMPROVED	Optimization
	IMPROVED	Thanks for some users
	IMPROVED	Name of a sample
	IMPROVED	ASM Files writing 
	IMPROVED	Dichotomic search for labels in function

	FIXED		Extrn which was referenced when it has the same name than asm function under Windows.
	FIXED		The GUI doesn't output the good error !
	FIXED		The GUI doesn't output log in EditorGadget
	FIXED		The GUI doesn't permit to output a log
	FIXED		Issue #2		The userlib is not deleted in Moebius_Compile_Step0() 
	FIXED		The batch file is not closed at the end of building 
	FIXED		GUI		Crash at the start because the init function search the existence of a file, rather than this non-existence
	FIXED		End of a condition 
	FIXED		Bug in some declarations of libs in DESC File 
	FIXED		Linux : PB_GetFolder()

	ADDED		Get Precise Error Message
	ADDED		Support of InlineASM in option
	ADDED		Sample_12.bat 
	ADDED		Resident Creation
	ADDED		Samples 

Re: Moebius

Publié : mer. 16/déc./2009 14:10
par Anonyme2
Dans le GUI, lorsque je clique sur le bouton 'Enregistrer le Plugin de l'IDE', j'ai un boite avec un message qui me dit :

Function PureBasic_RegisterPlungin() : Where is the tools prefs file ?

Dans la boite, il n'y a qu'un bouton OK, on peut juste faire OK mais il ne se passe rien.
Je suppose que le GUI ne trouve pas le fichier tools.prefs de PB


Je suis sous Seven 32 mais c'est le même dossier que sous Vista, à savoir :

C:\Users\<username>\AppData\Roaming\PureBasic

Le disque est spécifique à ma machine. Le code qui suit fonctionne sous Vista/Seven/XP et c'est dérivé d'un code du forum anglais (Je l'utilise dans PureIconManager).

Il retourne sous SEVEN : C:\Users\<username>\AppData\Roaming\
Il retourne sous VISTA : C:\Users\<username>\AppData\Roaming\
Il retourne sous XP : C:\Documents And Settings\<username>\Application Data\

Il faut ajouter PureBasic à la fin pour obtenir le chemin des prefs

Code : Tout sélectionner

Procedure.s GetSpecialFolderLocation(val)
       Protected id, path$ = "", var$
     
     If SHGetSpecialFolderLocation_(0,val,@id) = #False
          path$ = Space(#MAX_PATH)
          
          If SHGetPathFromIDList_(id,@path$) = #False
               Select val
                    Case   #CSIDL_PROGRAM_FILES
                         var$="ProgramFiles"
               EndSelect
               
               If var$
                    path$=GetEnvironmentVariable(var$)
               EndIf
          EndIf
          
          If  path$
               If Right(path$,1)<>"\"
                    path$+"\"
               EndIf
          EndIf
          
          ;// teste que c'est bien un dossier
          If  FileSize(path$) <> - 2
               path$ = ""
          EndIf
     EndIf
     ProcedureReturn path$
EndProcedure



Path$ = GetSpecialFolderLocation(#CSIDL_APPDATA)

Debug Path$

Re: Moebius

Publié : mer. 16/déc./2009 14:22
par Anonyme2
J'ai fait une tentative de compilation mais il manquait une structure que j'ai ajouté.

Mais en tentant une nouvelle compilation, j'ai le message d'erreur :

Etape 0 : Ne peut effacer le répertoire bat du projet

Je pense qu'il s'agit des droits que Moebius ne possède pas pour le dossier.

Re: Moebius

Publié : mer. 16/déc./2009 21:49
par Progi1984
Denis a écrit :Dans le GUI, lorsque je clique sur le bouton 'Enregistrer le Plugin de l'IDE', j'ai un boite avec un message qui me dit :

Function PureBasic_RegisterPlungin() : Where is the tools prefs file ?

Dans la boite, il n'y a qu'un bouton OK, on peut juste faire OK mais il ne se passe rien.
Je suppose que le GUI ne trouve pas le fichier tools.prefs de PB


Je suis sous Seven 32 mais c'est le même dossier que sous Vista, à savoir :

C:\Users\<username>\AppData\Roaming\PureBasic

Le disque est spécifique à ma machine. Le code qui suit fonctionne sous Vista/Seven/XP et c'est dérivé d'un code du forum anglais (Je l'utilise dans PureIconManager).

Il retourne sous SEVEN : C:\Users\<username>\AppData\Roaming\
Il retourne sous VISTA : C:\Users\<username>\AppData\Roaming\
Il retourne sous XP : C:\Documents And Settings\<username>\Application Data\

Il faut ajouter PureBasic à la fin pour obtenir le chemin des prefs

Code : Tout sélectionner

Procedure.s GetSpecialFolderLocation(val)
       Protected id, path$ = "", var$
     
     If SHGetSpecialFolderLocation_(0,val,@id) = #False
          path$ = Space(#MAX_PATH)
          
          If SHGetPathFromIDList_(id,@path$) = #False
               Select val
                    Case   #CSIDL_PROGRAM_FILES
                         var$="ProgramFiles"
               EndSelect
               
               If var$
                    path$=GetEnvironmentVariable(var$)
               EndIf
          EndIf
          
          If  path$
               If Right(path$,1)<>"\"
                    path$+"\"
               EndIf
          EndIf
          
          ;// teste que c'est bien un dossier
          If  FileSize(path$) <> - 2
               path$ = ""
          EndIf
     EndIf
     ProcedureReturn path$
EndProcedure



Path$ = GetSpecialFolderLocation(#CSIDL_APPDATA)

Debug Path$
Peux tu tester ca et me dire si ca fonctionne sous Vista et Seven ?

Code : Tout sélectionner

PBPath.s = GetEnvironmentVariable("APPDATA")+"\PureBasic"
Debug PBPath
Debug FileSize(PBPath)
PBPath + "\Tools.prefs"
Debug PBPath
Debug FileSize(PBPath)

Re: Moebius

Publié : mer. 16/déc./2009 21:53
par Progi1984
Denis a écrit :J'ai fait une tentative de compilation mais il manquait une structure que j'ai ajouté.

Mais en tentant une nouvelle compilation, j'ai le message d'erreur :

Etape 0 : Ne peut effacer le répertoire bat du projet

Je pense qu'il s'agit des droits que Moebius ne possède pas pour le dossier.
Normalement, pour avoir le log, coche "Générer un fichier log" et il devrait se trouver dans le dossier de travail+"\LOGS".

Peux tu me dire dans ton cas quel était le dossier de travail ?

Re: Moebius

Publié : jeu. 17/déc./2009 4:48
par Anonyme2
Progi1984 a écrit :
Peux tu tester ca et me dire si ca fonctionne sous Vista et Seven ?

Code : Tout sélectionner

PBPath.s = GetEnvironmentVariable("APPDATA")+"\PureBasic"
Debug PBPath
Debug FileSize(PBPath)
PBPath + "\Tools.prefs"
Debug PBPath
Debug FileSize(PBPath)
Vista et XP sur la machine 1 sont des install de moins d'une semaine.
PB a été installé et je n'ai mis que la langue en français, le fichier Tools.prefs n'existe pas sous ces 2 install. Idem pour la machine 2 sous XP.
Ces install ne me servent qu'à tester mes codes.

Je vais adopter ton code qui est ultra simple.


Machine 1 sous SEVEN
C:\Users\Fa\AppData\Roaming\PureBasic
-2
C:\Users\Fa\AppData\Roaming\PureBasic\Tools.prefs
3353

Machine 1 sous VISTA
C:\Users\fg\AppData\Roaming\PureBasic
-2
C:\Users\fg\AppData\Roaming\PureBasic\Tools.prefs
-1

Machine 1 sous XP
C:\Documents And Settings\hb\Application Data\PureBasic
-2
C:\Documents And Settings\hb\Application Data\PureBasic\Tools.prefs
-1




Machine 2 sous VISTA
C:\Users\jj\AppData\Roaming\PureBasic
-2
C:\Users\jj\AppData\Roaming\PureBasic\Tools.prefs
3066

Machine 2 sous XP
C:\Documents And Settings\qs\Application Data\PureBasic
-2
C:\Documents And Settings\qs\Application Data\PureBasic\Tools.prefs
-1

Re: Moebius

Publié : jeu. 17/déc./2009 9:16
par Progi1984
Denis a écrit :
Progi1984 a écrit :
Peux tu tester ca et me dire si ca fonctionne sous Vista et Seven ?

Code : Tout sélectionner

PBPath.s = GetEnvironmentVariable("APPDATA")+"\PureBasic"
Debug PBPath
Debug FileSize(PBPath)
PBPath + "\Tools.prefs"
Debug PBPath
Debug FileSize(PBPath)
Vista et XP sur la machine 1 sont des install de moins d'une semaine.
PB a été installé et je n'ai mis que la langue en français, le fichier Tools.prefs n'existe pas sous ces 2 install. Idem pour la machine 2 sous XP.
Ces install ne me servent qu'à tester mes codes.

Je vais adopter ton code qui est ultra simple.


Machine 1 sous SEVEN
C:\Users\Fa\AppData\Roaming\PureBasic
-2
C:\Users\Fa\AppData\Roaming\PureBasic\Tools.prefs
3353

Machine 1 sous VISTA
C:\Users\fg\AppData\Roaming\PureBasic
-2
C:\Users\fg\AppData\Roaming\PureBasic\Tools.prefs
-1

Machine 1 sous XP
C:\Documents And Settings\hb\Application Data\PureBasic
-2
C:\Documents And Settings\hb\Application Data\PureBasic\Tools.prefs
-1




Machine 2 sous VISTA
C:\Users\jj\AppData\Roaming\PureBasic
-2
C:\Users\jj\AppData\Roaming\PureBasic\Tools.prefs
3066

Machine 2 sous XP
C:\Documents And Settings\qs\Application Data\PureBasic
-2
C:\Documents And Settings\qs\Application Data\PureBasic\Tools.prefs
-1
Bah Parfait (euh là, le copiteur de code lol) ! Me manque juste les tests sur les Windows précédant XP mais je vais mettre un warning pour demander de me contacter.
Par contre, dans le cas où le fichier n'existe pas, je vais créer le fichier Tools.prefs.