Exécuter un fichier CpcdosC+, Win32, LLVM

Commande :

EXE/ {&, &+} [FichierProgramme[.CPC, .EXE, .BC, .LL] {/l:Label, /l:#NoLigne}

Aperçu visuel :

Contenu du fichier toto.cpc :

Execution


Fonctionnalité :

Cette commande permet l’exécution d’un fichier exécutable CpcdosC+.
Ce fichier est de format TEXTE, vous pouvez écrire votre code depuis un simple bloc-notes et ne
requiert aucune compilation !
Par défaut, cette commande utilise la tâche asynchrone courant pour s'exécuter. Elle peut bien évidement être exécutée dans un autre thread afin de ne pas bloquer le thread courant grâce au paramètre « & ».
Elle termine également l'exécution du précédent fichier exécutable parent sans reprise. Sauf si
vous spécifiez le paramètre « & ».

Vous pouvez exécuter un fichier Win32 au format PE (Portable Executable) seulement. Il est très recommandé d'utiliser un exécutable avec le minimum de dépendances du noyau NT/Windows et de DLL (d'où son attribut précisé entre parenthèses, ce qui peut planter le programme ou ne pas fonctionner tout simplement. Nous vous conseillons d'utiliser le compilateur CWC si vous voulez développer un programme mixte Win32/Cpcdos, présent sur la page de téléchargement.

Vous pouvez exécuter un fichier CLang LLVM, avec les mêmes contraintes que le fichier Windows (ci-dessus). Vous trouverez également les outils de compilation sur la page de téléchargement.


Paramètres disponibles :

  • Permet d’exécuter un autre fichier CpcdosC+ dans le même thread et SANS mettre fin au thread parent. Elle attend la fin de l'enfant pour reprendre son exécution.

    &

  • Permet d’exécuter un fichier CpcdosC+ dans un nouveau thread. (Exécution asynchrone)

    &+

  • Permet d’exécuter le code à une zone spécifique du fichier via un nom de label.

    /L:

  • Permet d'exécuter un programme IR compilé avec CLANG, depuis une LLVM.

    /LLVM

  • Permet d'exécuter un programme Win32 au format PE.

    /PE


Exemples :

Exemple 1

Exécuter un fichier CpcdosC+ sur le même thread en fermant le précédent fichier exécuté :

EXE/ MonProgramme.cpc

Exemple 2

Exécuter un fichier CpcdosC+ sur le même thread sans fermer le précédent fichier exécuté :

EXE/ & MonProgramme.cpc

Exemple 3

Exécuter un fichier CpcdosC+ sur un nouveau thread en parallèle en continuant l’exécution du précédent :

EXE/ &+ MonProg.cpc

Exemple 4

MonProg.CPC

TXT/ On execute notre premier programme
EXE/ & MonProg1.cpc
TXT/ On execute notre 2eme programme dans un nouveau thread
EXE/ &+ MonProg2.cpc
TXT/ On execute un autre programme
EXE/ MonProg3.cpc
TXT/ Ce texte ne sera jamais affiche.

MonProg1.CPC

TXT/ Hello, je suis le programme 1, au revoir!

MonProg2.CPC

TXT/ Hello, je suis le programme 2
CCP/ /PAUSE 1000
TXT/ Je suis toujours le programme 2, \#R
TXT/ je viens de faire une pause de 1 seconde. Au revoir!

MonProg3.CPC

TXT/ Hello, je suis le programme 3, au revoir!

Affiche sur la console :

On execute notre premier programme
Hello, je suis le programme 1, au revoir!
On execute notre 2eme programme dans un nouveau thread
On execute un autre programme
Hello, je suis le programme 3, au revoir!
Hello, je suis le programme 2
Je suis toujours le programme 2, je viens de faire une pause de 1 seconde. Au revoir!


Exécuter une LLVM via CLANG :

Ce paramètre permet l’exécution du code IR (NDD: précision manquante) généré via un compilateur Clang (Windows, Linux, Mac OS...) avec les paramètres dédiés à Cpcdos, le tout dans une LLVM (Low Level Virtual Machine) inclus nativement dans CPinti Core; ce qui vous donne la possibilité de développer vos applications en C/C++ et de l’exécuter nativement ici même ! Les formats acceptés sont : .BC et .LL

Concernant la compilation, il est fortement recommandé d'utiliser ces arguments suivants :

-std=c++14 -m32 -fno-exceptions -target i686-pc-mingw32-elf -S -emit-llvm

« -std=c++11» peut être remplacé par «-std=c++14» ou «-std=c++17 »; à vous de choisir la convention voulue.


Exemple 1

Exécuter une LLVM avec un fichier .BC :

EXE/ /LLVM MonProgramme.bc

Exemple 2

Exécuter une LLVM avec un fichier .LL :

Exe/ /LLVM MonProgramme.ll