Il s'agit de la commande pycocci qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
pycocci - Wrapper Coccinelle pour le développement de patchs SmPL
pycoques [-h | --aider] [-p | --profil-cocci] [-j | --travaux ] [-v | --verbeux]
[-s | --montrer à l'épreuve] ]
DESCRIPTION
pycoques est enveloppant cracher, il active un ensemble d'arguments par défaut et utilise également un
un peu d'heuristique pour déduire les arguments que vous souhaitez probablement activer. Il faut être deux
arguments, le et ton qui peut être soit un répertoire, soit
déposer. L'exécution réelle de la commande est toujours affichée sur la sortie standard.
Coccinelle cracher est un outil très riche, il fournit un large éventail de fonctionnalités à utiliser avec
le moteur Coccinelle. Le développement de correctifs SmPL au quotidien peut ne nécessiter qu'une base
ensemble de fonctionnalités cependant, nous pouvons également déduire un ensemble de fonctionnalités en fonction de votre cible.
pycoques active un ensemble d'indicateurs qui, au fil du temps, ont été déterminés comme étant nécessaires pour la journée
au jour le développement du noyau Linux, par exemple via une tâche cron, il utilise également un ensemble de
heuristiques pour déduire un ensemble d'arguments à utiliser en fonction de votre version de Coccinelle.
pycoques vérifie également quelle version de Coccinelle vous avez installée et regarde vers
activez les arguments en fonction de la version de Coccinelle que vous avez installée.
pycoques peut également être utilisé pour aider à écrire et vérifier les correctifs SmPL lors du remplacement d'un
série de patchs. pycoques vérifie la version de cracher installé et basé sur cela permet un
ensemble de fonctionnalités. Cette page de manuel documentera les options qu'elle active toujours par défaut,
pourquoi il a fait cela et il documentera également les heuristiques utilisées et la logique qui les sous-tend.
DEFAULT ARGUMENTS
Par défaut pycoques sera toujours activé lors de l'exécution cracher:
--en place
--recursive-inclus
--relax-include-chemin
--temps libre 120
--rép
La --en place l'option est activée par défaut car la plupart des développements de nos jours se déroulent sur
les systèmes de contrôle de version et les systèmes de contrôle de version intégrés peuvent généralement afficher
mieux les différences.
--relax-include-chemin et --relax-include-chemin sont activés par défaut étant donné qu'au moins
pour le développement du noyau Linux, certains fichiers C ont tendance à inclure des en-têtes dans les chemins spécifiés uniquement
par le Makefile d'une cible via des utilitaires tels que subdir-ccflags ou ccflags-y le rendant
difficile de garantir que tous les fichiers d'en-tête requis sont lus par Coccinelle. Nous sommes agressifs
avec recherche et inclusion d'en-têtes.
Un délai d'attente par défaut de 120 secondes est utilisé par défaut. Ne pas utiliser de délai d'attente n'est généralement pas
une bonne idée. La valeur de 120 est utilisée par défaut et est considérée comme significativement élevée
suffisant pour prendre en charge la plupart des correctifs SmPL.
Nous utilisons --rép pour permettre l'utilisation d'un répertoire cible et de ses sous-répertoires
récursivement.
MULTIFIL ARGUMENT HEURISTIQUE
Coccinelle cracher avant la version 1.0.0 fournissait un support pour le multithreading mais requis
au développeur de générer chaque thread seul et de fournir un numéro de référence d'index
identifier chaque fil. Coccinelle diviserait la quantité de travail à faire
et sur la base de l'index, accordez au thread un ensemble de travail spécifique. Certains scripts shell pourraient
être utilisé pour aider à diviser le travail pour vous. pycoques a été écrit à l'origine pour remplacer
ces scripts et utilisent le support multithread de Python, tout en permettant
arguments par défaut.
Si vous avez une version de cracher plus de 1.0.2 ans pycoques fournira son propre
solution en lots multithread, le cracher L'argument --jobs est activé sur cracher >= 1.0.2.
La cracher --jobs arguments tire parti du support paramap intégré de Coccinelle, et
en termes de performances donne de meilleurs résultats que pycoquesla solution multithread de. Le nombre
de threads utilisés sera toujours par défaut le nombre de processeurs sur votre système, ce
est extrait de ce que Python multiprocessing.cpu_count() renvoie. Vous pouvez remplacer le numéro
de fils pycoques utilisera avec l'argument --jobs.
INDEXAGE ARGUMENT HEURISTIQUE
Coccinelle pycoques prend en charge l'utilisation d'une série d'alternatives d'indexation :
--use-aperçu
--use-gitgrep
--use-coccigrep
Coccinelle met la responsabilité de la fonction d'indexation à activer sur le développeur. pycoques
comprendra les choses pour vous et s'assurera que seules les options prises en charge sont utilisées dans
versions prises en charge spécifiques de coccinelle. Ainsi, par exemple, bien que --use-gitgrep ait
été disponible sur 1.0.1 pycoques le sera seulement sur 1.0.2. L'ordre de préférence pour quoi
L'option d'indexation utilise les heuristiques suivantes : Si votre répertoire cible a un
.glimpse_index, nous supposons que vous voudrez utiliser --use-glimpse. Aperçu est maintenant publié
sous la licence ISC et en termes de performances est connu pour fonctionner comme la meilleure indexation
alternative, c'est pourquoi nous vérifions toujours d'abord un indice d'aperçu. Cette heuristique est
cependant limité, vous avez besoin que le chemin cible soit le répertoire de base où le
Le fichier .glimpse_index existe, sinon pycoques ne se reproduira pas ci-dessous sur les sous-répertoires.
Si nous déterminons que l'aperçu ne peut pas être utilisé, alors pycoques utilisera jet parse-rév --haut niveau on
le chemin spécifié pour déterminer si le chemin fourni fait partie d'un répertoire git pour activer
--use-gitgrep. Bien que coccinelle fournisse un mécanisme à sécurité intégrée pour permettre l'utilisation de --use-
gitgrep et retomber sur --use-coccigrep si un arbre git n'est pas utilisé, on évite l'échec
cas à l'avance. pycoques sera ajusté à chaque version pour en déduire la meilleure indexation
option connue à utiliser sur votre chemin cible.
De plus amples informations sur Spatch sont disponibles sur http://coccinelle.lip6.fr/.
OPTIONS
Voici un résumé des options disponibles sur pycoques:
SYNOPSIS
pycoques [-h | --aider] [-p | --profil-cocci] [-j | --travaux] [-v | --verbeux] [-s |
--montrer à l'épreuve] <SmPL patch> ]
-h | --Aidez-moi
imprimer le menu d'aide court
p | --profil-cocci
Profil le lorsqu'il est exécuté contre
j | --travaux
Remplacer le nombre de tâches par défaut à utiliser avec . Vous n'avez vraiment besoin que
ceci si l'heuristique pour le nombre de travaux par défaut est déterminé comme étant
Incorrect.
v | --verbeux
Sortir toutes les informations possibles lors de l'exécution. Par défaut pycoques ne fournira aucune sortie
sauf si une erreur est trouvée.
s | --montrer à l'épreuve
Montrer que le peut remplacer une série de patchs. Les
patch.cocci> doit avoir un suffixe .cocci. Une série de correctifs devraient exister
dans le répertoire nommé d'après le avec le suffixe .cocci
enlevé. pycoques utilisera git afin de montrer une preuve d'équivalence entre les
deux. Une nouvelle branche git sera créée et utilisée pour appliquer la série de correctifs
("pycocci-patch-8-random-chars") sur le , une autre branche git sera
créé et utilisé pour appliquer le ("pycocci-smpl-8-random-chars").
pycoques affichera le nom des branches nouvellement créées et fournira enfin le
sortie de jet diff --stat ..
caractères>. Vous ne devriez voir aucun changement, et donc un parfaite SmPL pièce équivalence,
lorsque le diffstat sur la sortie ne montre aucun changement. La façon d'interpréter un positif
diffstat est que le introduit plus de changements que le patch
séries. La façon d'interpréter un diffstat négatif est que le est
manque quelques changements en place sur la série de patchs. pycoques utilisera jet parse-rév
--haut niveau contre la pour voir si le fait partie d'un arbre git. Si
les ne fait pas partie d'un arbre git un arbre git est créé pour vous sur si
est un répertoire ou sur le répertoire de base de si est un fichier.
pycoques vous ramènera à la branche précédemment définie sur le si l'on était
précédemment défini, sinon si un nouvel arbre git a été créé pour vous pycoques va définir
l'arborescence vers la branche master. Chaque série de pycoques --montrer à l'épreuve créera
deux nouvelles branches git. 8 caractères aléatoires sont postés à chaque nouvelle branche git
créé pour éviter les conflits avec les exécutions précédentes.
Utilisez les pycocci en ligne en utilisant les services onworks.net