Absender: Simon Siemens
Datum: Do, 17.03.2011 14:21:52
In-reply-to:
<3E0088EE-0445-4491-ABF5-26D0ACB5A62E@xxxxxxxxxxxxxxx>
References:
<1300113254.2830.20.camel@wbam-laptop> <ED53C8B8-A510-4333-B1FC-EF04BAEB2FB6@xxxxxxxxxxxxxxx> <AANLkTinDzHyAGV5e_mcyuTYyOmkh-CfkVJ8jqRyDQhpY@xxxxxxxxxxxxxx> <BABA8C2D-442E-4E5E-AF85-9F2FABFAE50A@xxxxxxxxxxxxxxx> <1300279238.1554.38.camel@wbam-desktop> <C80EDE0C-9375-4A1F-8F54-7ECB2EF3F797@xxxxxxxxxxxxxxx> <1300354622.1889.13.camel@wbam-laptop> <3E0088EE-0445-4491-ABF5-26D0ACB5A62E@xxxxxxxxxxxxxxx>
Ah OK. Ich werde mich um ein Paket fÃr openSUSE bemÃhen, dass die nÃtigen Erweiterungen beinhaltet. Danke fÃr die ErklÃrung, Simon Am Donnerstag, den 17.03.2011, 14:03 +0100 schrieb Timo Sandmann: > Am 17.03.2011 um 10:37 schrieb Simon Siemens: > > Hi Timo, > > > > ich habe mit Matthias Hopf, dem openSUSE-Paketbauer, Ãber den Patch > > gesprochen. Er findet die FreeBSD-Patches sehr interessant und kann sich > > gut vorstellen, dass ein Ãhnliches Paket in openSUSE aufgenommen wÃrde. > > Gleichzeitig warf er aber auch die Frage auf, warum wir denn nicht die > > Bibliotheksfunktion cli (und andere, z.B. in avr/interrupt.h) benutzten. > > Diese seien schlieÃlich fÃr Anwendungsprogrammierer gedacht. Da habe ich > > nun keine Ahnung. Warum? > > Das Problem ist bei cli, dass dieser Befehl, wenn er im Code steht, in der Regel auch sofort ausgefÃhrt werden sollte, also genau dort, wo er im Programm vorkommt. Der Compiler erkennt dort aber keine AbhÃngigkeiten, weshalb er den cli-Befehl unter UmstÃnden verschiebt (falls der Code optimiert werden soll). > Das ist z.B. dann kritisch, wenn man erreichen mÃchte, dass ein 16 Bit oder 32 Bit Speicherzugriff atomar erfolgt. Oder bei der Implementierung eines Locking-Mechanismus oder wenn das Programm den Stackpointer verÃndern mÃchte (was zwei Speicherzugriffe erfordert). > Darum gibt es die Builtin-Funktion dafÃr, dann weià der Compiler, dass er dort nichts umordnen sollte. Ich weià nicht mehr genau wo, aber ich hatte das Problem, dass cli vom Compiler verschoben wurde an einer Stelle und habe deshalb seitdem die Builtin-Funktion dafÃr verwendet, um dem Problem aus dem Weg zu gehen und auÃerdem den Sachverhalt nicht bei jeder neuen Compiler-Version erneut ÃberprÃfen zu mÃssen. Entsprechende Fehler sind extrem schwer zu finden. > Das Delay-Builtin ist mehr eine Optimierung, die das Delay exakter macht und Code spart, wenn man aus o.a. GrÃnden aber sowieso die Builtins braucht, kann man davon auch gleich profitieren. > > GrÃÃe, > Timo > > > _______________________________________________ > ct-bot-entwickler Mailingliste > ct-bot-entwickler@xxxxxxxxxxxxxxxxx > http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler