Questo è il comando creduce che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
creduce - Riduttore di programmi C e C++
DESCRIZIONE
creduce 2.5.0 (sconosciuto) -- un riduttore di programmi C e C++
C-Reduce richiede un "test di interesse" e uno o più file da ridurre, che deve essere
scrivibile. Il test di interesse è un programma eseguibile (di solito uno script di shell) che
restituisce 0 quando un file parzialmente ridotto è interessante (un candidato per un'ulteriore riduzione)
e restituisce un valore diverso da zero quando un file parzialmente ridotto non è interessante (non è candidato per
ulteriore riduzione -- tutti i file non interessanti vengono eliminati).
C-Reduce esegue il test di interesse in una nuova directory temporanea contenente solo il
file parzialmente ridotti. Pertanto, quando il test di interesse esamina un parzialmente
ridotto, deve farlo utilizzando un percorso relativo alla directory di lavoro corrente. Sul
d'altra parte, quando il test di interesse si riferisce a qualsiasi file che non viene ridotto,
questo dovrebbe essere fatto usando un percorso assoluto.
Il test di interesse non dovrebbe aspettarsi alcun argomento della riga di comando. Dovrebbe essere
deterministico e potrebbe voler imporre limiti di risorse ai sottocomandi che richiama
(ad es. utilizzando ulimit). In particolare, è noto che C-Reduce introduce talvolta un infinito
loop nel programma in fase di riduzione. Pertanto, se il test di interesse viene eseguito il
programma compilato, probabilmente dovrebbe farlo in un timeout.
Per fare un rapido esempio, se ritieni che un file sia interessante se il vectorizer di GCC si attiva
mentre lo compili, potresti usare questo test di interesse:
gcc -w -O3 foo.c -S && grep xmm foo.s
Per vedere se il tuo test di interesse funziona, prova a eseguire questi comandi:
DIR=`mktemp -d` cp file_to_reduce [opzionalmente, più file da ridurre] $DIR cd $DIR
/percorso/per/test_di_interesse eco $?
Ciò dovrebbe comportare l'eco di "0" sul terminale. Se ciò non accade, il
il test di interesse è difettoso e C-Reduce non sarà in grado di utilizzarlo.
Se non hai mai scritto un test di interesse prima, fai riferimento a questo tutorial per
indicazioni aggiuntive:
https://embed.cs.utah.edu/creduce/using/
Se possibile, esegui C-Reduce su codice preelaborato, generato ad esempio utilizzando:
gcc -E -P file.c
Se non puoi ridurre il codice preelaborato, puoi ridurre solo il codice non preelaborato
file oppure eseguire una riduzione multifile sul file e sui suoi include transitivi (o
un loro sottoinsieme). Nel primo caso è necessario impostare il CREDUCE_INCLUDE_PATH
variabile d'ambiente in un elenco separato da due punti di directory di inclusione per
clang_delta per trovarli.
Se il tuo test di interesse coinvolge un compilatore incrociato e le caratteristiche del
il target incrociato è diverso dall'host, dovrai impostare CREDUCE_TARGET_TRIPLE in modo che corrisponda a
bersaglio incrociato. Questo è particolarmente importante se stai lavorando con codice non preelaborato
e usa CREDUCE_INCLUDE_PATH.
Premi "s" in qualsiasi momento per passare al passaggio successivo (questa funzione è disabilitata a meno che il Perl
modulo Term::ReadKey è disponibile sul sistema).
Sintesi of opzioni:
--aggiungi-passaggio
Aggiungi il passaggio specificato alla pianificazione
--anche-interessante
Un codice di uscita del processo (da qualche parte nell'intervallo 64-113 sarebbe normale) che, quando
restituito dal test di interesse, farà sì che C-Reduce salvi una copia del
variante [predefinito: -uno]
- debug
Stampa informazioni di debug
--die-on-pass-bug
Termina C-Reduce se un passaggio incontra un problema altrimenti non fatale
--max-miglioramento
Il più grande miglioramento nella dimensione del file da una singola trasformazione che C-Reduce dovrebbe
accetta (utile solo per rallentare C-Riduci)
-N
Numero di core da utilizzare; C-Reduce cerca di selezionare automaticamente una buona impostazione ma è
la scelta potrebbe essere troppo bassa o troppo alta per la tua situazione [predefinito: 2]
--no-default-pass
Inizia con un programma di abbonamento vuoto
--no-rinunciare
Non rinunciare a un passaggio che non ha fatto progressi per 50000 iterazioni
--nokill
Attendi che le istanze parallele terminino da sole invece di ucciderle (solo
utile per il debug)
--stampa-diff
Mostra le modifiche apportate dalle trasformazioni, per il debug
--igienizzare
Tentativo di oscurare i dettagli dal file sorgente originale
--salva-temps
Non cancellare /tmp/creduce-x directory in chiusura
--shaddap
Sopprimere l'output sugli errori interni non fatali
--skip-iniziali-pass
Salta i passaggi iniziali (utile se l'input è già parzialmente ridotto)
--skip-key-off
Disabilita il salto del resto del passaggio corrente quando viene premuto "s"
--slloww
Cerca di ridurre di più, ma forse impiega molto tempo per farlo
--ordinato Non fare una copia di backup di ogni file da ridurre come file.orig
--temporizzazione
Stampa timestamp sull'avanzamento della riduzione
utilizzo: creduce [opzioni] interestness_test file_to_reduce [opzionalmente, più file da
ridurre]
credere --Aiuto per maggiori informazioni
Utilizzare creduce online utilizzando i servizi onworks.net