amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Amiga, AmigaOS 4 > Schwerwiegende Bugs im "Version"-Befehl: [ - Suche - Neue Beiträge - Registrieren - Login - ]

1 -2- [ - Beitrag schreiben - ]

25.11.2008, 16:36 Uhr

Darksun
Posts: 178
Nutzer
@uho:

Ähm, nur mal so Rande: Das von dir geschilderte und als Bug betrachtete Verhalten wurde Mitte der 90er Jahre reihenweise von diversen Amiga-Magazinen (Amiga-Magazin, Amiga-Plus und Special) behandelt. Dabei wurden auch verschiedene Alternativen zu Version erörtert, ich glaube eine sehr beliebte war VersionWB .
Nur meine 5 Cents.



--
Bye,
Darksun.

[ - Antworten - Zitieren - Direktlink - ]

25.11.2008, 19:41 Uhr

Andreas_Wolf
Posts: 2980
Nutzer
> Im Übrigen ist das mit dem "V" auch kein "Ausrutscher" eines Autors -
> auch in folgenden Libraries habe ich es gefunden:
> [...] HUFF, [...] IDEA

Hier befindet sich da weder "V" noch "Version", sondern "xpkHUFF 0.64 (01.04.1997)" und "xpkIDEA 1.3 (17.06.1997)", also völlig nach Spezifikation.


> Vermutlich eine weitere Person. Schließlich handelt es sich bei all
> den vielen Libraries ausschließlich um xpk-Module aus derselben Quelle.
> Vielleicht waren es auch zwei Autoren, einer schrieb "V", der andere
> "Version".

Hier sind es mindestens 5 Entwickler der von uho genannten Bibliotheken:

CBR0: Bilbo 1st of Hypenosis
DLTA: Stephan Fuhrmann
HFMN: Martin Hauner
RAKE: Karsten Dageförde
SHRI: Matthias Meixner

Bei FAST, HUFF, IDEA und MASH fehlt hier die Autorenangabe.

> Und diese ein oder zwei Entwickler scheinen, wie man den neueren
> Versionen entnehmen kann, auch seit 1993 dazugelernt zu haben.

Das könnte in uhos Auswahl dann nur die Autoren von FAST, HUFF und IDEA betreffen; also genau einen, zwei oder drei Entwickler.


> Dabei wurden auch verschiedene Alternativen zu Version erörtert, ich
> glaube eine sehr beliebte war VersionWB .

Ja, VersionWB verhält sich -- auch unabhängig von dessen "Smart Version String Search" -- in der Tat anders als die offiziellen Version-Befehle.

[ - Antworten - Zitieren - Direktlink - ]

25.11.2008, 20:12 Uhr

Andreas_Wolf
Posts: 2980
Nutzer
Nachtrag:

Laut http://www.dstoecker.eu/xpklibs.html sind die Autoren von FAST, HUFF, IDEA und MASH:

FAST: Christian von Roques
HUFF: Marc Zimmermann
IDEA: André Beck
MASH: Zdenek Kabelac

Damit ist jede der 9 genannten Bibliotheken von einem anderen Entwickler, ergo: 9 Entwickler.
"Dazugelernt" haben -- wie bereits festgestellt -- die Autoren von FAST, HUFF und IDEA, also 3 Entwickler.

[ - Antworten - Zitieren - Direktlink - ]

30.11.2008, 18:21 Uhr

uho
Posts: 114
Nutzer
Hallo zusammen,

erstmal danke für die verschiedenen Tips !

Die OS-Changes-Datei hatte ich übersehen. Normalerweise lasse ich nur
Includes&Autodocs durchsuchen bzw. nehme irgendein Buch zur Hand.
Die "tutorials"-Schublade ist als offizielle Quelle wohl über die Jahre
in Vergessenheit geraten B).
Im "User Interface Style Guide" hätte ich allerdings nicht gesucht.
Hab' ich mal bei E-Bay gesehen, aber nicht mitgesteigert, da ich annahm,
daß es da nur um die Anordnung von GUI-Elementen u. dgl. geht.


Der "VersionWB"-Befehl ist eine sehr gute Alternative (und mit entspr.
gesetzter Umgebungsvariable kriegt man auch die lästigen Requester
weg :) ).
Eine korrekte Versionsausgabe ist also keine Magie !

Das hier tatsächlich Handlungsbedarf besteht, legt schon die Existenz
eines solchen Tools nahe.
O-Ton des Autors:

(it includes)
"* All other features which AmigaDos Version has, as far as I know 8-),
except for the bugs :) "

Danke an DarkSun - das war ein wirklich heißer Tip !


Bei der Diskussion um das "V" in den Version-Strings haben wir fast aus den
Augen verloren, daß sich das Commodore"-Version (39.4) sich auch bei
"korrekten" Strings falsch verhält:

Beispiel: reqtools.library 38.1387

code:
8.RamDisk:> version libs:reqtools.library 
reqtools.library 38.1387
8.RamDisk:> version libs:reqtools.library file
Workbench:Libs/reqtools.library
8.RamDisk:> version libs:reqtools.library file full
Workbench:Libs/reqtools.library (12.05.96)
8.RamDisk:>


Wie schon ganz am Anfang erwähnt (und hier leider angezweifelt) unterdrückt
der Parameter "FILE" die Versionsausgabe auch hier. Stattdessen wird
(sinnloserweise) der komplette Pfad ausgegeben.

code:
8.RamDisk:> type libs:reqtools.library opt h
0000: 000003F3 00000000 00000003 00000000    ...ó............     
0010: 00000002 00002B35 40000012 00000045    ......+5@......E     
0020: 000003E9 00002B35 70FF4E75 72657174    ...é..+5p.Nureqt     
0030: 6F6F6C73 2E6C6962 72617279 00726571    ools.library.req     
0040: 746F6F6C 73203338 2E313338 37202831    tools 38.1387 (1     
0050: 322E352E 3936290D 0A004AFC 00000032    2.5.96)...Jü...2     
0060: 00000078 80260900 00000004 00000015    ...x.&..........     
0070: 00000078 E0000008 0900C000 000A0000    ...xà.....À.....     
0080: 0004E000 000E0600 D0000014 0026D000    ..à.....Ð....&Ð.     
*** Abbruch


Wie man sieht, steht die Versionsnummer allein - und trotzdem geht's nicht...

Dies ist übrigens kein Einzelfall - bei keiner einzigen der achtzehn Libraries
auf der WB3.1-Disk z.B. wird der Versionsstring angezeigt !
Liegt evtl. daran, daß "$VER" ebenfalls nicht vorhanden ist...

Nachtrag: Version 40.1 dagegen verhält sich korrekt. Das war mir bis eben
entgangen B-( . Also war der Befehl "nur" die allermeisten - aber nicht alle -
Amiga-Jahre fehlerhaft...

Damit hat die Sache doch noch ein (genaugenommen sogar zwei) gute Enden
gefunden und ein eigenes Programm erübrigt sich - wie erhofft.


Da ich mich aber schon vor dem VersionWB-Tip durch die Bits und Bytes gewühlt
(mangels Masse aber noch nicht zu fragen getraut) hatte, hier noch eine
Frage, für die Ihr mich wohl lynchen werdet :-) :

In keiner einzigen Commo-Lib beginnen die Versionsstrings mit $VER, was
einer einfachen Suche im Wege steht.

Also habe ich in den RKRMs und dem Intern gelesen. In der dort aufgeführten
Library-Struktur sollte der String ab Offset 24 (Zählung ab 0) beginnen.

Da ich aber nicht weiß, wieviel Bytes der Linker davorschreibt (und dies sowieso
von Lib zu Lib verschieden ist) und ob sonst nochwas davorsteht, habe ich
versucht, einen Zeiger darauf zu finden. Und das möglichst ohne die Hunk-Struktur
anlysieren zu müssen (quick-and-dirty).

Da Libs, um beim Aufruf nicht zu crashen, mit moveq #0,d0 / rts (bzw. -1 statt 0)
beginnen, was zu 0x70004e75 bzw. 0x70ff4e75 assembliert, sollte man sich damit -
zumindest bei Libs - schonmal an der richtigen Position befinden.
(Ansonsten wird diese Methode sicher in die Hose gehen, da ja praktisch jedes
Prog diese Kombination irgendwo enthält).

Durch Intuition .-) habe ich herausgefunden, daß ab dieser Adresse ab Offset 22
ein LW mit dem Offset des Versionsstrings der Lib, gerechnet ab moveq, steht.
Habe es bisher noch nicht gecoded, manuelle Auszählung hat aber bei mehreren
Libs geklappt...
Stimmt aber nicht mit Offset 24 aus der Struktur für lib_IDString überein
(nach moveq/rts ergibt sich noch ein Offset von 18). Welche sechs Bytes habe
ich da nicht beachtet ?

Gibt es eine zuverlässigere "Startposition" für die Offsetberechnung als die
moveq/rts-Suche ?
(Ich könnte auch lib_Revision/Version verwenden - das Problem, den richtigen
Startpunkt zu finden, bleibt aber.)

Wie gesagt, hat jetzt nur noch akademischen Wert - aber dazulernen kann man immer.

Schöner wäre natürlich gewesen, wenn sich die Commo-Leute auf
_eine_ Art von Versionsstring hätten einigen können.
Dafür hätte noch nichtmal das Betriebbsystem geändert werden müssen - eine
entsprechende Richtlinie in den RKRMs hätte genügt, um die einfache Suche
nach $VER unabhängig vom Filetyp zu ermöglichen (was ja der Sinn einer
derartigen Kennung sein sollte)...


Soweit erstmal

uho

[ - Antworten - Zitieren - Direktlink - ]

30.11.2008, 19:19 Uhr

DaxB
Posts: 1421
Nutzer
Ich nutze schon ewig DoVer V1.9 (04.07.97) by Bert Jahn. :P

[ - Antworten - Zitieren - Direktlink - ]


1 -2- [ - Beitrag schreiben - ]


amiga-news.de Forum > Amiga, AmigaOS 4 > Schwerwiegende Bugs im "Version"-Befehl: [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.