PB 6
PB 6
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)
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)
Re: PB 6
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 !
Un homme doit être poli, mais il doit aussi être libre !
Re: PB 6
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 !)
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 !)
Re: PB 6
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 !
Un homme doit être poli, mais il doit aussi être libre !
Re: PB 6
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).
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).
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: PB 6
Salut Guillot,Guillot a écrit :(jespere que fred trouvera une solution pour integrer les code ASM au backend C)
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
Re: PB 6
à 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
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
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: PB 6
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 PBOllivier a écrit :Mais surtout tu as l'ensemble des instructions ASM standard Intel/AMD disponibles en C
Re: PB 6
Ben des oubliettes comme ça mon pote, ça s'oublie pas !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
Re: PB 6
à 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)
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)
Re: PB 6
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.
les instructions resteront les mêmes.
Code : Tout sélectionner
asm("code assembleur");
Re: PB 6
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
Re: PB 6
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.
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.