PB 6

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Guillot
Messages : 522
Inscription : jeu. 25/juin/2015 16:18

PB 6

Message par Guillot »

salut les codeurs,

j'ai installée la v6 hier pour la testé
eh ben j'suis pas déçu !!
en compilation c + optimisation, j'ai invariablement x3
(je parle du langage hors instruction)
ça concerne le traitement d'image, les demos old school, ...

je devrai etre content, ben non !
maintenant je me dis que c'est trop con de devoir garder l'ancien backend pour les codes ASM
on pourrai moderniser d'un coup PB en integrant les avantage du c (fonctions retournant structure ou tableau, operateurs vectoriel etc)
(jespere que fred trouvera une solution pour integrer les code ASM au backend C)
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: PB 6

Message par Micoute »

Parfois, il faut se contenter de ce qu'on a, mais ça n'empêche pas de rechercher des solutions.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Guillot
Messages : 522
Inscription : jeu. 25/juin/2015 16:18

Re: PB 6

Message par Guillot »

bien d'accord, faut apprendre a se demerder avec ce qu'on a
y' toujours moyen
mais ça nous simplifierai bien la tache si il se modernisai un peu
faut avouer que pb est tres archaïque au niveau du langage de base (mais puissant !)
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: PB 6

Message par Micoute »

Oui, je trouve ça merveilleux que ce logiciel de développement soit aussi facile à utiliser et puisse compiler dans divers autres langages de programmation tels que le C ou l'assembleur, espérons qu'un jour on puisse mélanger les deux.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: PB 6

Message par blendman »

coucou

X3, tu veux parler de la vitesse ?

Moi, j'ai testé mon logiciel de 2D animatoon,
[edit]
et après avoir testé pas mal, j'ai l'impression que ça va au moins 2 fois plus vite ! (en tout, j'ai vraiment cette impression sur ce logiciel, ce qui est quand même assez énorme).
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: PB 6

Message par Ollivier »

Guillot a écrit :(jespere que fred trouvera une solution pour integrer les code ASM au backend C)
Salut Guillot,

le C intègre déjà l'ASM. Il est juste un peu plus chiant à coder, quoique...

En fait, Fred assure le fonctionnement long terme au cas où l'ASM X86/X64 disparaisse. Et puis parce que le compilateur ASM actuel ne s'est pas adapté aux nouvelles fonctions.

Ton programme en C peut fonctionner sur ARM théoriquement.

Et pour l'ASM, tu as une directive C qui te permet d'en intégrer.
Mais surtout tu as l'ensemble des instructions ASM standard Intel/AMD disponibles en C, sans (pour Kcc) avoir besoin de connaître la moindre facette de coucougnette en ASM. Ce sont des directives propres à chaque instruction. Je suppose que les concepteurs du C ont fait ça pour que le programme fonctionne qu'il soit sur Intel/Amd ou bien sur Arm.

Pour schématiser succintement, en pureBasic, on pourrait avoir ça :

Code : Tout sélectionner

Macro XegalY(x, y)
CompilerIf #X64
! mov rax, [v_x]
! mov [v_y], rax
CompilerElse
XegalY_Arm(x, y)
CompilerEndIf
EndMacro
Et en C, il y a déjà tout ça.
Avatar de l’utilisateur
Guillot
Messages : 522
Inscription : jeu. 25/juin/2015 16:18

Re: PB 6

Message par Guillot »

à blendman
ouai 3 fois plus rapide
j'ai fais quelque tests sur des routines n'utilisant pas d'instructions (uniquement oprérateur/ affectation / condition)
le genre de truc en traitement d'image

à Ollivier :
je dis pas qu'on ne peut pas programmer en ASM avec le backend C
mais si les codes ASM sont incompatibles, PB devra garder l'ancien backend
donc, aux oubliettes les améliorations qu'il aurait été facile d'apporter à PB si on avais pu se limiter à une traduction en c
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: PB 6

Message par Kwai chang caine »

Ollivier a écrit :Mais surtout tu as l'ensemble des instructions ASM standard Intel/AMD disponibles en C
Je sent vraiment que les portes du paradis vont pouvoir s'ouvrir devant nous avec le nouveau Backend, déjà qu'avec PB on en découvre toujours, mais là, je pense que même le meilleur de tous les forums PB, ne pourra jamais aller au bout des possibilités de PB 8O
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: PB 6

Message par Ollivier »

Guillot a écrit :donc, aux oubliettes les améliorations qu'il aurait été facile d'apporter à PB si on avais pu se limiter à une traduction en c
Ben des oubliettes comme ça mon pote, ça s'oublie pas !
Avatar de l’utilisateur
Guillot
Messages : 522
Inscription : jeu. 25/juin/2015 16:18

Re: PB 6

Message par Guillot »

à Ollivier:
t'aurai pas aimé avoir :
- les procedures retournant structure ou tableau
- les operateurs vectoriels
- les tableaux en littéral ( dim t(3)=[ 0, 1, 2, 3] )
etc
il y aurai eu quantité d'amélioration à apporter à PB pour pas un rond

toi qui connais l'ASM, tu pense qu'il y aurai moyen techniquement de faire fonctionner du code ASM ancienne version en c
en sauvegardant / restituant les registres en entrée / sortie de code ?
(dans l'absolue, pas en l'état de la v6 bien entendu)
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: PB 6

Message par G-Rom »

Salut guillot , gcc supporte l'asm inline , quand on pourra faire du c inline, l'asm sera aussi à portée , un peu différent de fasm , mais fondamentalement
les instructions resteront les mêmes.

Code : Tout sélectionner

asm("code assembleur");
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: PB 6

Message par Ollivier »

Source

Code : Tout sélectionner

; printf under PB_C
CompilerIf #PB_Compiler_ExecutableFormat<>#PB_Compiler_Console 
  CompilerError "Exec-Format must be Console in Compiler-Option"
CompilerEndIf  
Define *string=UTF8("Hello visible universe. ")
Define *string2=UTF8("Value is now: %lld ")
Define *string3=UTF8("CPU-Time: %lld ")
Define value.q=42 
OpenConsole()
! printf(p_string); 
! printf(p_string2,++v_value);
! long long myrdtsc(void) { asm volatile ("rdtsc\n\t" "shl $32,%rdx\n\t" "or %rdx ,%rax"); }
! printf(p_string3,myrdtsc()); 
Input()
CloseConsole()
FreeMemory(*string) 
FreeMemory(*string2)
FreeMemory(*string3)
; Hello visible universe. Value is now: 43 CPU-Time: 3181639470065
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: PB 6

Message par G-Rom »

Faut que je teste alors la nouvelle version, merci oliv !
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: PB 6

Message par Ollivier »

Yes, tous les remerciements peuvent aller à Juergenkulow.

Et le EnableC/DisableC est sûrement dans les étrennes : de toute façon, c'est, quelquepart l'IDE, le plus contraignant, car le compilateur permet d'inclure n'importe quoi en ligne complète dans une zone balisée CompilerIf 0 puis de lire cette zone en pre-process. Juste l'IDE qui fait des indentations et des surbrillances faites pour pureBasic.
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: PB 6

Message par G-Rom »

bon, aucun code en C ne marche avec le compilo pbcompilerc. ( conflit avec des compilo déjà installé ) ? :/
Répondre