Forum: Mikrocontroller und Digitale Elektronik Übersetzungsversuche zählen Compiler


von Jan H. (janiiix3)


Lesenswert?

Nabend,

Ist es möglich die Anzahl der Compilevorgänge zu zählen? Sprich wenn ich 
mit Atmel Studio jetzt ein Programm kompiliere das irgendwie in eine 
Variablen schreibe, die bleibt?

von A. S. (Gast)


Lesenswert?

Du kannst z.b. im makefile jeweils ein X an die Datei X.h hängen.

Das kannst Du mir auswerten, indem Du die Filegröße nimmst oder einen 
String daraus machst.

Wenn Du dich ein wenig mit Kommandozeilen auskennst, auch direkt die 
Zahl erhöhen und neu schreiben.

von Axel S. (a-za-z0-9)


Lesenswert?

Auch wenn mir nicht klar ist, wozu das gut sein sollte, und vor allem 
auch, wie man "Anzahl Übersetzungsversuche" sinnvoll definieren würde - 
mit einer kleine Prise Shell-Magie geht das:
1
$echo 0 > foo
2
$cat foo
3
0
4
5
$make increment
6
$cat foo
7
1
8
9
$make increment
10
$cat foo
11
2
12
13
$cat Makefile 
14
increment:
15
        @echo $$(($$(cat foo)+1)) >foo

und wenn man mag, auch das noch:
1
$make show
2
2
3
4
$make increment
5
$make show
6
3
7
8
$cat Makefile 
9
increment:
10
        @echo $$(($$(cat foo)+1)) >foo
11
12
show:
13
        @cat foo

von Kommandozeile vor dem Frühstück für Alle! (Gast)


Lesenswert?

Axel S. schrieb:
> Auch wenn mir nicht klar ist, wozu das gut sein sollte, und vor allem
> auch, wie man "Anzahl Übersetzungsversuche" sinnvoll definieren würde -
> mit einer kleine Prise Shell-Magie geht das:

Nun, das sind alles nur Buildvorgänge und da make mit von der Partie 
ist, kann es auch Durchgänge geben wo gar kein Compileraufruf getätigt 
wird...

Aber zu QA-Zwecke will ich es jeweils so haben dass mindestens zu den 
Formell wichtigen Builddurchläufe ("Release"-Kandidaten) eben auch 
getimestampte Buildlogs genauso zu den Buildartefakte (vulgo: binaries) 
gehören und mitarchiviert werden.
Also schreibe ich mir meine Makefiles so dass pro Durchlauf individuelle 
Namen für die Logdateien gezimmert werden.
Ja, ich habe jeweils viele "Müll"-Logdateien wegzulöschen, aber es ist 
immer aufschlussreich auch (genug) Logdateien zum auswerten zu haben 
(wurde tatsächlich auch ALLES kompiliert, was muss? Ist noch was dabei, 
was NICHT soll/darf? Wie ist der zeitliche/geschichtliche Verlauf der 
GRÖSSE der Binaries? ...der Kompiledauer? ...bei Variantenkompilation? 
u.v.a)

Mit CI/Build-&Testautomation braucht man halt auch passende Helferlein 
wie Jenkins und so.

Nein, sture prozedurale Builds welche sequentiell immer alles bauen sind 
nicht Alltagstauglich: make kann da viel Zeit sparen. Erst wenn in den 
Makefiles die Abhängikeiten korrekt UND vollständig erfasst sind kann 
die autom. Parallelisierung voll greifen und die vielen CPUs des 
Buildhosts simultan nutzen.

von Alex G. (dragongamer)


Lesenswert?

Denke mal er will einen automatischen "Build" counter wie es den häufig 
bei größerer (Desktop) Software gibt. Windows gibt den z.B. immer an.
Das macht aber in der Regel die Entwicklungsumgebung.

: Bearbeitet durch User
von Kommandozeile vor dem Frühstück für Alle! (Gast)


Lesenswert?

> Das macht aber in der Regel die Entwicklungsumgebung.

Jagenau: das IST bei mir make - zumindest weitgehend :-P

von Alex G. (dragongamer)


Lesenswert?

Ja, in dem Fall wird man wohl um die "Shell Magic" nicht drum rum 
kommen, da make alleine dieses Feature ja nicht bietet.

EDIT: Du bist aber nicht der ursprüngliche Fragesteller. Er hat 
eigentlich garnicht gesagt womit er arbeitet.
Z.B bei Arduino dürfte es andere Möglichkeiten geben.

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?


von Sheeva P. (sheevaplug)


Lesenswert?

Alex G. schrieb:
> Denke mal er will einen automatischen "Build" counter wie es den häufig
> bei größerer (Desktop) Software gibt. Windows gibt den z.B. immer an.
> Das macht aber in der Regel die Entwicklungsumgebung.

Macht das nicht das Versionskontrollsystem?

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

> Macht das nicht das Versionskontrollsystem?

Seit wann kuemmert sich das um Builds?
Zwischen Auschecken und Wiedereinchecken macht es nichts.

von Sheeva P. (sheevaplug)


Lesenswert?

(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#5263958:
> Sheeva P. schrieb:
>> Macht das nicht das Versionskontrollsystem?
>
> Seit wann kuemmert sich das um Builds?

Nicht Builds. Build Counter.

von Axel S. (a-za-z0-9)


Lesenswert?

Kommandozeile vor dem Frühstück für Alle! schrieb:
> Axel S. schrieb:
>> Auch wenn mir nicht klar ist, wozu das gut sein sollte, und vor allem
>> auch, wie man "Anzahl Übersetzungsversuche" sinnvoll definieren würde -
>> mit einer kleine Prise Shell-Magie geht das:
>
> Nun, das sind alles nur Buildvorgänge und da make mit von der Partie
> ist, kann es auch Durchgänge geben wo gar kein Compileraufruf getätigt
> wird...

Ja. Eben. Mir ist nicht annähernd klar, wie man "Übersetzungsversuch" 
sinnvoll definieren würde. Und darum kann mein Vorschlag mit einem 
extra Target im Makefile auch komplett daneben liegen.

> Aber zu QA-Zwecke will ich es jeweils so haben dass mindestens zu den
> Formell wichtigen Builddurchläufe ("Release"-Kandidaten) eben auch
> getimestampte Buildlogs genauso zu den Buildartefakte (vulgo: binaries)
> gehören und mitarchiviert werden.

Meinetwegen. Zwei Punkte:

1. du bist nicht der TE, kannst also (m)eine Frage an ihn gar nicht 
beantworten.

2. deine Antwort hat auch nichts mit seiner Frage zu tun.

"Release Build" != "Übersetzungsversuch". Und um die Buildlogs zu 
benennen, braucht man i.d.R. auch keinen externen Zähler, da reicht ein 
Timestamp - wenn man nicht sowieso die Release-Nummer nehmen will, die 
man ja typischerweise sowohl im Quellcode als auch im VCS (z.B. in Form 
eines Tags) dokumentiert.

Wenn man dann vielleicht noch einen CI Prozeß hat, fallen Builds mit 
durchlaufender Nummerierung mitsamt den zugehörigen Build+Test Logs 
automatisch an.

> sture prozedurale Builds welche sequentiell immer alles bauen sind
> nicht Alltagstauglich: make kann da viel Zeit sparen.

Da bin ich ganz bei dir. Und ich würde gerne einem Gespräch lauschen, wo 
du das mit W.S. diskutierst ;)


Sheeva P. schrieb:
> (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im
> Beitrag
> #5263958:
>> Sheeva P. schrieb:
>>> Macht das nicht das Versionskontrollsystem?
>>
>> Seit wann kuemmert sich das um Builds?
>
> Nicht Builds. Build Counter.

Seit wann kümmert sich das VCS um Build Counter?

: Bearbeitet durch User
von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

> > Nicht Builds. Build Counter.

> Seit wann kümmert sich das VCS um Build Counter?

Ja, das ist nur rhetorisches Geplaenkel.
Das kannst du ignorieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.