PureBasic 6.01 LTS est disponible !

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

PureBasic 6.01 LTS est disponible !

Message par Marc56 »

8 mars 2023
PureBasic 6.01 LTS is released !

--

9 juin - Beta 10
https://www.purebasic.fr/english/viewto ... 72#p585372

5 Juin - Beta 9
https://www.purebasic.fr/english/viewtopic.php?t=77272

30 mai 2022 - Beta 8
5 mai 2022 - Beta 7
4 février 2022 - Beta 4 released
28 septembre 2021 Alpha 5
7 sep 2021 Alpha 4
Alpha 1
Traduction automatique de l'annonce de Fred sur le forum us)

Bonjour à tous,

Après des mois de développement, nous sommes très fiers de sortir la prochaine génération de PureBasic! Tel que partagé sur le blog (https://blog.purebasic.com), nous avons ajouté un nouveau backend C pour résoudre le problème des nouvelles architectures CPU.

Pour l'instant, seule la version Windows x64 est disponible pour les tests. C'est une version alpha, alors ne vous attendez pas à ce que vos gros programmes se compilent et s'exécutent sans faille dessus. Le but principal pour l'instant est d'écraser tous les bogues restants (et il en aura probablement une tonne) pour avoir le backend C au même niveau que le backend ASM actuel. Pour cela, nous avons ouvert un nouveau forum spécifique pour signaler le C lié soutenu.

Comment procéder:
- Dans l'EDI, ajoutez un nouveau compilateur (Fichier -> Préférences -> Compilateur -> Choisissez le fichier 'pbcompilerc' avec le demandeur de fichier -> Ajouter). Il devrait maintenant apparaître dans la liste. Dans les 'Options du compilateur', vous devriez pouvoir le sélectionner dans la liste déroulante.
- Compilez un petit programme. Si quelque chose ne va pas, essayez de réduire le code défectueux au plus petit extrait de code et postez-le dans le forum de bogues.
- Veuillez également tester vos gros programmes avec le compilateur backend ASM standard pour vous assurer que tout fonctionne toujours, car nous avons également modifié beaucoup de code. [...]


PS.
- Installez dans un répertoire différent de vos autres versions de PB


:wink:
Dernière modification par Marc56 le ven. 10/juin/2022 7:45, modifié 8 fois.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par falsam »

Merci pour la traduction Marc :wink:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par falsam »

J'ai crée un exe avec un code de 40 lignes environ.

Pb Version 5.73 : 39.5K
Pb Version 6.00 : 59K

Puis j'ai crée l'éxécutable d'un jeu de casse brique de 1000 lignes environ.

Pb Version 5.73 : 218K
Pb Version 6.00 : 273K

Test 3D avec ce code viewtopic.php?p=198862#p198862
Pb Version 5.73 : 102K
Pb Version 6.00 : 148K
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par venom »

Merci Marc56 et merci falsam pour tes tests.
Ça va niveau taille c'est plus que raisonnable. 8)
Bravo la team PB







@++
Dernière modification par venom le jeu. 20/mai/2021 12:16, modifié 1 fois.
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Mindphazer
Messages : 635
Inscription : mer. 24/août/2005 10:42

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par Mindphazer »

falsam a écrit : jeu. 20/mai/2021 10:51 J'ai crée un exe avec un code de 40 lignes environ.

Pb Version 5.73 : 39.5K
Pb Version 6.00 : 59K

Puis j'ai crée l'éxécutable d'un jeu de casse brique de 1000 lignes environ.

Pb Version 5.73 : 218K
Pb Version 6.00 : 273K

Test 3D avec ce code viewtopic.php?p=198862#p198862
Pb Version 5.73 : 102K
Pb Version 6.00 : 148K
Même constat, les codes que j'arrive à compiler donnent un exe environ 30 à 35% plus gros qu'avec le PBCompiler "historique"

Sachant qu'on est au stade alpha et que rien ou presque n'est optimisé, c'est plutôt pas mal !
Bureau : Win10 64bits
Maison : Macbook Pro M1 14" SSD 512 Go / Ram 16 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par Marc56 »

Heureusement on n'est plus à l'époque des disquettes et des modems 56k, souvenez-vous... :)

Comme dans toutes compilation, il y a souvent une taille minimale. Par exemple les exe Lazarus on souvent une taille minimale de 2 Mo! (optimisée!) mais qui n'augmente pas de beaucoup ensuite car les "briques" de base sont déjà là.

Mon plus "gros projet" (ACME Desk, 11000 lignes, 1.2 Mo) n'augmente que de 8% (1.2 Mo -> 1.3 Mo) une fois compilé avec le nouveau compilo C et le temps de compilation sur mon petit i7 est plus long de 2 secondes :P

Chapeau Fred :!:
et je me réjouit d'avances des nouvelles possibilités qui vont venir grâce aux possibilités d'accès étendues au libs tiers.

:wink:
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par ChrisR »

Super de voir déjà la 1ère mouture du future C Backend, si peu de temps après le 1ère annonce!
Et super de voir que Fred et la team restent motivés pour continuer à améliorer le bébé

Ca me semble également plus que bien pour la taille des exe et le temps de compilation à ce pré-stade Alpha
Je ne connais pas grand chose sur le sujet mais voici le dessin de la chaine de compil :

Code : Tout sélectionner

pbcompilerc.exe  E:\PureBasic\Test\Source.pb /EXE E:\PureBasic\Test\Source.exe
  |- gcc.exe -O0 -Wno-incompatible-pointer-types -Wno-overflow -Wno-int-conversion -c -o PureBasic.obj "purebasic.c"
     |- cc1.exe -quiet -iprefix E:/PureBasic/Portable/PureBasic_6.00_x64/Compilers/../lib/gcc/x86_64-w64-mingw32/8.1.0/ -D_REENTRANT purebasic.c -quiet -dumpbase purebasic.c -mtune=core2 -march=nocona -auxbase-strip PureBasic.obj -O0 -Wno-incompatible-pointer-types -Wno-overflow -Wno-int-conversion -o C:\Users\ChrisR\AppData\Local\Temp\cceswBGX.s
     |- as.exe -o PureBasic.obj C:\Users\ChrisR\AppData\Local\Temp\cceswBGX.s
  |- polink.exe" /FORCE:MULTIPLE /OUT:"E:\PureBasic\Test\Source.exe" /SUBSYSTEM:Windows /NODEFAULTLIB /LIBPATH:"E:\PureBasic\Portable\PureBasic_6.00_x64\Compilers" /LIBPATH:"E:\PureBasic\Portable\PureBasic_6.00_x64\PureLibraries\Windows\Libraries" PureBasic.obj SystemBase.lib StringUtility.lib UnicodeFunctions.lib MSVCRT.lib KERNEL32.lib USER32.lib GDI32.lib COMDLG32.lib ADVAPI32.lib COMCTL32.lib OLEAUT32.lib  SysTray.lib Process.lib Cipher.lib Menu.lib Window.lib Gadget.lib System.lib Desktop.lib AlphaImage.lib Image.lib LinkedList.lib ImagePluginBMP.lib ImagePlugin.lib VectorDrawing.lib String.lib Memory.lib Font.lib 2DDrawing.lib FileSystem.lib Date.lib Event.lib Map.lib "E:\PureBasic\Portable\PureBasic_6.00_x64\compilers/objectmanager.lib" SimpleList.lib "E:\PureBasic\Portable\PureBasic_6.00_x64\compilers/stringmanagerc.lib"  SHELL32.LIB SHELL32.LIB OLEAUT32.LIB ADVAPI32.LIB OLE32.LIB SHELL32.LIB COMCTL32.LIB UUID.LIB SHELL32.LIB WINMM.LIB MSVCRT.LIB GdiPlus.LIB Shell32.LIB Shlwapi.LIB Ole32.LIB kernel32.lib user32.lib
Le niveau d'optilisation dans gcc est fonction du switch -O[n]

Code : Tout sélectionner

-O[n]   ;n controls the optimization level
n = 0   ;No optimization, the default setting if no -O appears
n = 1   ;Normal optimization, the default if you specify -O without an operand. A good compromise between code quality and compilation time.
n = 2   ;Extensive optimization, may improve execution time, possibly at the cost of substantially increased compilation time.
n = 3   ;Same as -O2, and also includes inline expansion for small subprograms in the same unit.
n = s   ;Optimize space usage
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par Marc56 »

Actuellement, #PB_Compiler_Processor indique le type de CPU en se basant sur le compilateur ASM utilisé.
Cette fonction ne donne plus la même constante avec le backend C, par contre elle retourne bien une valeur numérique : 6

Fred va sans doute créer une nouvelle constante (mais avec un système compatible avec les anciens codes)
Voir ce topic https://www.purebasic.fr/english/viewto ... 48#p570348

Si, comme moi vous utilisez cette constante pour charger une DLL différente dans un projet multi architecture, il suffit d'ajouter 6 à la détection du CPU x64.
Exemple:

Code : Tout sélectionner

    Select #PB_Compiler_Processor
        Case #PB_Processor_x86
            Dll_WebRadio = "fmodex.dll"
        Case #PB_Processor_x64
        Case 6 ;  <--- Ajout provisoire pour les compilation en Backend C
            Dll_WebRadio = "fmodex64.dll"
:wink:
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par Ar-S »

Pas trop le temps de tester pour le moment mais très heureux de vois qu'une alpha est dans les bac(kend ^^)
J'ai aussi l'espoir qu'avec ce nouveau compilo, les antivirus et leur p.... de faux positifs se calment.
La taille des exe est relativement faible pour de l'alpha. Je me dis qu'ils seront forcement un peu plus gros que via asm mais vos retours sont encourageants !
Bravo à la team. :P
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 112
Inscription : mer. 28/janv./2009 13:28

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par Philippe_GEORGES »

Bonjour

Résultat : Pour les petits programmes, pas de soucis si ce n'est un temps de compilation un peu plus long.

Pour les grosses applications: Plantage suite à gestion mémoire, mais c'est sans doute normal à ce stade !

La question est : comment avoir le source C généré pour voir ?

Bravo pour ce travail, tout ceci est prometteur.

Phil
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par Marc56 »

Bonjour Philippe,
La question est : comment avoir le source C généré pour voir ?
Comme pour la version ASM: en utilisant le paramètre -c (ou --commented ou /COMMENTED) avec le compilateur en ligne de commande (pbcompilerc.exe)

Si on a plusieurs versions de PB, mettre le PATH dans le répertoire du nouveau PB
(pas toujours nécessaire, mais permet de compiler depuis le répertoire, source sans avoir à donner les chemins complets)

Code : Tout sélectionner

path %path%;C:\Program Files\PureBasicC\Compilers
Ensuite compiler

Code : Tout sélectionner

pbcompilerc.exe helloworld.pb -c -e helloworld.exe

On obtient en plus de l'exe, un fichier .c qui commence par exemple comme ceci

Code : Tout sélectionner

// 
// PureBasic 6.00 Alpha 1 - C Backend (Windows - x64) generated code
// 
// (c) 2021 Fantaisie Software
// 
// The header must remain intact for Re-Assembly
// 
// Requester
// Desktop
// FileSystem
// Date
// Object
// SimpleList
// :System
// 
#pragma warning(disable: 4024)
// 
typedef long long quad;
typedef quad integer;
typedef struct pb_array { void *a; } pb_array;
...
:wink:
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: PureBasic 6.00 Alpha 1 est disponible!

Message par venom »

Tiens je n'avais jamais pensé à récupéré le code ASM :oops:
Merci pour l'astuce Marc56 :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Marc56
Messages : 2146
Inscription : sam. 08/févr./2014 15:19

Re: PureBasic 6.00 Alpha 2 est disponible!

Message par Marc56 »

https://www.purebasic.fr/english/viewto ... 54#p571654

Alpha is 2 est sorti ! Merci beaucoup d'avoir passé du temps à tester la nouvelle version, nous avons corrigé la plupart des bugs signalés, alors n'hésitez pas à réessayer pour qu'elle soit aussi bonne que possible. Veuillez également tester le compilateur standard (backend ASM) pour vous assurer qu'il n'y a pas de régression sur ce compilateur.
Voici la liste des modifications alpha 2 :

Code : Tout sélectionner

- Removed #PB_Compiler_C constant and replaced it with #PB_Compiler_Backend, with #PB_Backend_C and #PB_Backend_Asm values
- Added Purifier support
- Updated fasm, polink, polib and porc to lastest versions
Have fun !

Edit: Si vous installez cette version (V6.00 A2) dans un répertoire contenant des espaces, vous pouvez avoir une erreur (en compilation C)
POLINK: fatal error: File not found: 'C:\Program.obj'
Dernière modification par Marc56 le sam. 19/juin/2021 16:57, modifié 1 fois.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: PureBasic 6.00 Alpha 2 est disponible!

Message par Kwai chang caine »

Merci Marc 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 112
Inscription : mer. 28/janv./2009 13:28

Re: PureBasic 6.00 Alpha 2 est disponible!

Message par Philippe_GEORGES »

Je viens de faire un test avec un gros programme, contenant des centaines de fonctions graphiques, génération de PDF, bases de données SqlLite...etc.
Le programme se compile sans problème, le .EXE fonctionne parfaitement !

Je suis époustouflé ! comment en si peu de temps peut on arriver à un résultat si spectaculaire ? Vous êtes vraiment des chefs !

La taille est un peu plus importante qu'avec le compilateur FASM, mais franchement, c'est un détail.

Bravo, grand merci pour ce travail phénoménal !

Philippe
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Répondre