Die finale Nagel’sche Archive-Ausgabe

Vor einiger Zeit – genauer gesagt im März diesen Jahres – erreichte die RISC OS-Szene die betrübliche Nachricht vom Tode von Jim Nagel, Herausgeber der Archive (einem der ältesten Magazine rund um RISC OS, 20 Jahre lang ab 1987 (und damit sogar älter als RISC OS 2) von Paul Beverley herausgegeben und unter anderem bekannt für den “God Slot”) seit 2007 und damit auch schon 13 lange Jahre. Vorher hatte Jim die Acorn-Fahne im “Computer Shopper” hochgehalten, eines der größten IT-Magazine auf der Insel.

Wer es nicht weiß: Jim hatte Verwandschaft in Deutschland und tauchte unter anderem deshalb ab und an auf RISC OS-Treffen hierzulande auf. Ich habe ihn mal auf einem A.U.T.O in Wolfen getroffen und konnte mich länger mit ihm unterhalten – unsere Unterredungen auf Messen auf der Insel waren meist nur ganz kurz, weil er stets in journalistischer Mission unterwegs war. Ein stets angenehmer und sympathischer Zeitgenosse. Nicht zuletzt natürlich, weil er durchaus öfter lobende Worte zu CDBurn fand.

Zurück zur Archive. Nun hat der Rest der Nagel-Familie mit Jims Sohn Bart als Herausgeber die Ausgabe 24:6 fertiggestellt und zum Gedenken an Jim frei zum Download verfügbar gemacht – hier kann man das Exemplar vollständig als PDF in Augenschein nehmen.

Ab der kommenden Ausgabe 25:1 wird Gavin Smith die Archive weiterführen. Ich wünsche ihm alles Gute bei diesem Unterfangen, und möge er zukünftig die korrekte Groß-/Kleinschreibweise von “RISC OS” berücksichtigen, und möge das der einzige Bruch mit der Archive-Tradition sein.

RPCEmu für MacOS X

Für die Freunde des angebissenen Apfels aus Cupertino gibt es eine gute Nachricht: Timothy Coltman hat die Verfügbarkeit von RPCEmu 0.9.2 für Mac OS X verkündet. Binaries (DMGs 0 “Disc ImaGe”, wie sie im MacOS-Jargon heißen, quasi ein Anwendungs-Bundle in Form eines Mini-Festplattenimages) sind auf GitHub verfügbar, alle bekannten Probleme mit MacOS sollten damit behoben sein, von Tastaturproblemen (Low-Level-Gedöns in Qt, das nur unter Windows gut funktionierte) über die Netzwerkanbindung, den Follow-Host-Mouse-Modus bis zu einem alternativen Hotkey zum Verlassen des Fullscreen-Modes, damit die armen MacBook-Anwender auch vernünftig arbeiten können. Ein größeres gelöstes Problem war wohl der Recompiler, der aufgrund von verschärften Sicherheitsvorkehrungen in Mac OS X 10.13 aka “High Sierra” nicht mehr funktionierte.

Meines Wissens sind die Patches noch nicht zurück im Hauptentwicklungsrepo von RPCEmu angekommen, die Sourcen sind aber auch unter o.g. GitHub-Link verfügbar für die “ich compiliere selbst”-Fraktion.

Im Laufe der Diskussion hat Andrew Hodgkinson von ROOL, selbst Mac-User und Autor einiger Patches für RPCEmu, übrigens am Rand erwähnt, dass RISC OS 5.28 quasi in der Finalisierungsphase ist. Da 5.28 released werden sollte, sobald der RPi4-Support vollständig ist, ist das eine sehr gute Nachricht.

Frischfleisch: FontInfo von Anton Reiser

Anton “Toni” Reiser hat die Verfügbarkeit eines neuen Tools verkündet, und FontInfo ist der Name.

Der Name ist Programm: FontInfo zeigt allerhand nützliche Informationen zu beliebigen RISC OS Outline-Fonts an, und zwar auf Glyphen-Basis. Dazu zieht man entweder die Outline-Datei eines Fonts auf das FontInfo-Icon auf der Iconbar, oder man bedient sich des Menüs zur Auswahl eines beliebigen dem System bekannten Font. Es öffnet sich ein Übersichtsfenster aller Glyphen, die im jeweiligen Font definiert sind. Eine Glyphe kann dann zusätzlich per Click (Tipp: es gibt einen cleveren Unterschied zwischen Links- und Rechtsclick) im Detail inspiziert werden, mit verschiedenen Visualisierungsoptionen: nur die Outline oder “richtig” gefüllt, die Baseline, die Bounding Box, die Definition der Outline mit den Scaffolds und den Handles – eben alles, was so eine Glyphe im RISC OS-Fontmanager ausmacht. Zusätzlich können die Glyphen als Draw-Datei exportiert werden.

Auf der Fontebene gibt es zusätzliche Informationen zu den Unicode-Blocks, zu denen die Glyphen jeweils gehören. Klickt man einen Block an, werden die zugehörigen Glyphen farbig hinterlegt.

Vorsichtig, wie Toni ist, heißt die derzeitige Versionsnummer 0.02. Für dieses frühe Stadium macht das Tool aber schon einen sehr schicken Eindruck. Also: runterladen und Fonts inspizieren gehen.

GCC 8.2.0-Update

Im Oktober letzten Jahres hatte ich über erste Anzeichen auf eine baldige Verfügbarkeit von GCC 8.2.0 für unser aller Lieblingsbetriebssystem berichtet. Es gibt hier erfreuliche Fortschritte zu vermelden. Lee Noar ist fleißig am Werkeln und es steht nun ein experimenteller nativer Build zur Verfügung, sprich ein Compiler, der unter RISC OS selbst läuft und nicht nur als Crosscompiler unter Linux.

Allerdings gibt es noch einige Einschränkungen: GCC 8.2.0 kann noch keine Module erzeugen und ist zudem zwingend auf UnixLib angewiesen, compilieren und linken gegen die SharedCLibrary geht (noch?) nicht.

Auch das gute alte GNU Fortran, schon seit Urzeiten Teil von GCC, wurde der bekannten C/C++-Fraktion hinzugefügt. Zumindest “Hello World” war erfolgreich compilierbar, vermeldete die GCCSDK-Mailingliste. Mein unerschütterlicher Optimismus lässt mich auf einen aktuellen GNAT hoffen, aber da gibt es so oft Unpässlichkeiten generell auf ARM-Plattformen, dass es schon unverschämtes Glück wäre, wenn das was werden würde.

Wer es genauer wissen will, kann die Änderungen im GCCSDK-SVN verfolgen.

Aktueller Status RISC OS auf Raspberry Pi 4

Nachdem nun schon Aemulor in einer RPi 4-kompatiblen Version verfügbar ist, wie steht es derzeit denn um RISC OS selbst auf dieser vielversprechenden Plattform?

Zunächst eine kurze Zusammenfassung, warum man überhaupt einen RPi 4 haben will gegenüber einem seiner zahlreichen Vorgängern. Die CPU ist deutlich schneller, sowohl pro Takt als auch im Maximaltakt, und die Caches sind größer. Speicher ist deutlich schneller und bis zu 4 GiB groß (das vermutlich wichtigste Feature für die Linux-Jünger, und das vermutlich unwichtigste Feature für RISC OS-Nutzer). Gigabit Ethernet über einen schnellen internen Bus. USB3 über PCIe. Offizielle Unterstützung für 4K@60Hz-Bildschirmauflösung (früher war das eher Glücksache @30Hz). Dual-Head-Unterstützung.

Schon der derzeitige Zustand von RISC OS zeigt deutliche Fortschritte in den Benchmarks. Man darf sich also nicht nur auf theoretische Performancegewinne freuen, sondern tatsächlich auf spürbare Verbesserungen in der Praxis. Die CPU liegt auf einem Niveau mit den bisher schnellsten RISC OS-tauglichen Boards mit TI OMAP5 (Cortex-A15-Basis – Titanium und IGEPv5). An der Grafikbeschleunigung lässt sich sicher noch arbeiten, aber das ist “nur” eine Softwarefrage.

Und wie weit ist diese Praxis nun noch entfernt? Es fehlt prinzipiell an zwei Dingen: USB3 und Ethernet. D.h. man kann sich heute “from source” ein RPi 4-kompatibles ROM bauen, aber man muss Ethernet über das alte USB2.0 anbinden, ebenso wie zusätzliche Massenspeicher jenseits des microSD-Slots. Das ist aber nicht ganz einfach, weil alle “normalen” USB-Ports des Boards über den kombinierten USB3/USB2-Chip (VIA VL805) gehen, für den es eben noch keinen Treiber gibt. Das alte USB2.0 ist nur über den USB-C OTG verfügbar, über den auch die Stromversorgung normalerweise läuft. Deshalb sind bei der Inbetriebnahme noch ein paar Handstände vonnöten, beispielsweise indem man die GPIOs für die Stromversorgung nimmt und den USB-C stattdessen als USB-Port statt zur Stromversorgung.

Wer eher Code-affin ist, kann hier in Gitlab die Entwicklung nachverfolgen. Wer eher auf verständlichere Prosa setzt, verfolgt die Entwicklung im ROOL-Forum oder schaut sich den Port-Status im ROOL-Wiki an.

Bleibt noch die Frage: warum dauert es denn nun so lange? Da gibt es eine Vielzahl an Gründen. Beispielsweise hatte RISC OS bisher keinen XHCI-USB-Treiber (für USB3). Beispielsweise ist die Memory Map für die 4-GiB-Variante zu berücksichtigen (alle bisherigen 4 GiB-Plattformen hatten die “oberen” 2 GiB außerhalb des 4 GiB-Adressbereichs). Beispielsweise sind die Datenblätter bis heute nicht in der notwendigen Ausführlichkeit zu haben. Beispielsweise scheint es im PCIe-Bereich interessante Bugs in der Pi-Firmware gegeben zu haben. Selbst die Aktivierung des UARTs für serielles Debugging gestaltete sich als schwierig. Letztlich also eine ungewöhnliche Anzahl von nicklichen Detailproblemen, die dem geneigten Entwickler den Tag vermiesen. Aber wenn ich die Commits richtig deute, ist die Zielgerade nicht mehr weit entfernt.

Und dann wird es spannend, inwiefern RISC OS ebenfalls – vor allem in schlecht kühlbaren Gehäusen – in “thermal throttling”-Probleme laufen wird, die so manchem experimentierfreudigen RPi4-Besitzer fast schon klassisches PC-Feeling inklusive Lüfter eingebrockt hat. Gut gekühlt kann der RPi4 wohl durchaus 2 GHz und mehr ab, bei Einsatz aller 4 Cores. Ungekühlt in den üblichen beinahe dichten Plastikgehäusen könnte es eher schwierig werden mit den neuen Performance-Höhen.

Aemulor 2.53 verfügbar

Der erste Artikel im neuen Jahr erst Ende Februar. Schande über mich.

Adrian Lees hat die Verfügbarkeit der neuesten “Development Version” (also eine Testversion im weitesten Sinne) von Aemulor mit der schönen Versionsnummer 2.53 verkündet. Download wie immer hier.

Die große Neuigkeit ist die Verfügbarkeit einer Variante für den Raspberry Pi 4 (und das vor offiziellem Release der RISC OS-Version für diese Maschine!) und ggf. weitere Boards mit einem Cortex-A72 als ARM-Core. Ansonsten gab es kleinere UI-Verbesserungen und einfacherer Zugang zur Online-Dokumentation sowie etwas hilfreichere Fehlermeldungen beim Start der RPCEmu-Version in Verbindung mit ungepatchten RISC OS 5-Versionen. Wenn ich es richtig verfolgt habe, müssen die allerneuesten RISC OS 5.27-Varianten nicht mehr gepatcht werden.

Die Veröffentlichung von 2.51 hatte ich noch hier auf dem Schirm, aber 2.52 ist mir irgendwie durchgerutscht. Die damaligen Verbesserungen betrafen hauptsächlich Impression, sobald die upgedateten 32bit-Module wie GDraw und DitherExtend am Start waren anstatt der originalen 26bit-Varianten, um auf RGB-Zielsystemen wie Titanium und ARMbook stets korrekte Farben auf den Bildschirm zu bringen.

Und irgendwann schreibe ich auch noch einen Blogartikel über das RISC OS-Spriteformat und BGR-vs.-RGB. Versprochen.

In der Zwischenzeit: Happy Aemuloring!

Arculator v2.0 ist da

Sarah Walker hat heute die Verfügbarkeit von Arculator v2.0 verkündet. Die letzte releaste Version, 0.99, hatte Mitte des Jahres 10 Jahre Geburtstag gefeiert. Wahnsinn. Sollte jemand Arculator noch nicht kennen: während RPCEmu sich um die Emulation der Maschinengeneration Risc PC und A7000 kümmert (und damit um RISC OS-Versionen ab 3.50 aufwärts), nimmt sich Arculator dem Namen entsprechend der Generation Archimedes an – vom A310 bis zum A5000, also alles, was mit RISC OS bis einschließlich Version 3.19 lief.

Was ist neu in der Version 2.0? Ein so großer Versionssprung legt ja doch gewisse tiefgreifende Verbesserungen nahe, aber Zahlen sind bekanntlich geduldig. Also gehen wir ins Detail. Ich habe noch nicht alles durchgetestet, das ist nur ein erster Eindruck. Vorab: die Beschäftigung mit der neuen Version lohnt auf jeden Fall!

Neu ist die Maschinenkonfiguration. Bisher startete Arculator mit den letzten Einstellungen, was maschinenspezifische Dinge anging – ARM2 oder ARM3, old-style I/O (A540 und früher) oder new-style I/O (A5000 und später), Betriebssystemversion, RAM. Gewisse Dinge waren dann fest mit anderen Details verhenkelt – wenn man beispielsweise old-style I/O konfigurierte, wurde automatisch das Risc Developments IDE-Podule emuliert mit IDEFS, bei new-style I/O hingegen das IDE-Interface vom A5000 über ADFS. Beide verwendeten hartcodiert hd4.hdf und hd5.hdf als Festplattenimages. Jetzt ist alles anders: man kann eine beliebige Anzahl von zu emulierenden Maschinen konfigurieren – man nimmt eine Basismaschine (A310, A540, A3000, A5000…) und stellt dann die Details ein – ARM2 oder ARM3, welche Frequenz. MEMC1 oder MEMC1a, RAM mit 8 MHz oder 12 MHz, FPA10 oder nicht, welches Betriebssystem steckt drin (Arthur 0.30 bis RISC OS 3.19), wieviel RAM ist an Bord, gibt es ein Joystick-Interface und sind Podules aktiv. Vor allem letztes eröffnet schöne neue Möglichkeiten, denn es wird eine illustre Reihe an Podules angeboten: das klassische Acorn SCSI-Podule, das sowohl Festplatten als auch CD-ROMs emulieren kann (virtuell oder aufs Host-CD-Laufwerk mappend – für die Detailverliebten: es wird ein Toshiba XM3301 emuliert, ein alter Caddy-Recke, der von den stets mit CDFS gelieferten CDFSSoftEESOX-Treibern unterstützt wird). Verschiedene IDE-Podules. Das Acorn ST506-Podule (MFM-Platten, die Älteren erinnern sich). Dazu noch das Wild Vision Midi-Podule und das Computer Concepts Lark-Podule, eine in freier Wildbahn selten gesehene Sound-Erweiterung (auch von Wild Vision designed) mit MIDI, 16bit-Stereo-Output und 16bit-Sound-Sampler. Eher exotisch: das HCCS Ultimate CD-ROM-Podule, das den Betrieb eines der damals gängigen Mitsumi-Laufwerken erlaubte, bevor IDE-ATAPI-CD-ROMs die Herrschaft übernahmen. Auch hier kann man ein physisches oder virtuelles Laufwerk zuordnen, aber da es diese Möglichkeit ja auch schon beim SCSI-Podule gibt, ist der Zusatznutzen eher gering.

Bei der Maschinenkonfiguration ist zu beachten, dass man nicht beliebig kombinieren kann – so ist ein A3000 mit Arthur als OS nicht möglich, genausowenig wie mit dem MEMC1. Ein ARM3 geht stets nur mit dem MEMC1a zusammen. FPA10 erfordert zwingend einen ARM3. Und in einen A5000 kann man keinen ARM2 reinkonfigurieren. So viel Realismus muss sein.

Und noch mehr Liebe zum Detail ist erkennbar: so kann man pro Maschine die “Unique ID” einstellen. Das ist eine Acorn-Erfindung, die seit dem A5000 sein Unwesen treibt. Damit konnte Software sich bei der Installation an diese ID binden und so als eine Art Kopierschutz fungieren. Da aber ältere Maschinen ohne diese ID kamen, haben clevere Zeitgenossen einfach die ID so manipuliert, dass sie als nicht initialisiert galt und damit der Software vorgaukelte, eine alte Maschine ohne ID zu sein. Kurz gesagt: eine Flop-Idee. Allerdings könnte es natürlich sein, dass jemand noch Originaldisketten im Bestand hat, die an eine bestimmte ID gebunden sind. Von daher ist die Simulation der ID eine lobenswerte Sache für diese seltenen Fälle.

Was gibt es unter der Haube zu vermelden? Das ungeliebte Allegro-Framework ist Geschichte, jetzt ist alles SDL2-basiert, mit wxWidgets für die grafische Oberfläche. Daran ist höchstens schade, dass damit eine Portierung nach RISC OS sehr aufwändig wird, weil beide Bibliotheken noch(?) nicht portiert wurden. Aber unter RISC OS gibt es mit ArcEm, ArchiEmu und ADFFS ja sowieso reichlich Auswahl zum Zwecke der Retro-Archimedes-Emulation.

Jedenfalls soll die CPU- und MEMC-Emulation nun deutlich präziser sein, weshalb die feine Unterscheidung von MEMC1 und MEMC1a jetzt Sinn ergibt. ARM2 mit 8 MHz, ARM250 mit 12 MHz, ARM3 mit irgendwas zwischen 20 und 35 MHz (je nach konfigurierter Basismaschine ist die Auswahl beschränkt), dazu ein Turbo-RAM-Modus mit 16 MHz – alles ist möglich. Der direkte Floppy-Zugriff wurde auch neu implementiert.

Auch videotechnisch sind einige Optionen dazugekommen, Direct3D und OpenGL kann nun als Methode ausgewählt werden, was letztlich der SDL2-Basis zu verdanken ist. Aber auch Software-Rendering ist weiterhin möglich.

Noch eine gute Nachricht: das sich öfter etwas merkwürdig verhaltende ArculFS als native Zugriffsmöglichkeit auf das Host-Dateisystem wurde kurzerhand durch HostFS von RPCEmu ersetzt. Eine gute Entscheidung.

Und zum guten Schluss: es gibt nun Floppy-Geräusche!

Sowohl die Windows- als auch die Linux-Version gibt es direkt zum Download, Sourcecode ist mit im Archiv. Also, downloaden und experimentieren.

MIST Archimedes-Core jetzt mit IDE

MIST und MISTer, die beiden genialen Open-Source-FPGA-Plattformen zur Emulation bzw. Simulation älterer Computer, Spielkonsolen und Arcade-Automaten waren schon mehrfach hier und in meinem IT-Blog Thema. Seit 2015 experimentiere ich mit dem MIST und dort vor allem mit dem Archimedes-Core.

Jetzt hat dank Slingshot aka gyurco (Usernamen aus dem Atari-Forum bzw. von GitHub) der Archimedes-Core einen großen Schritt nach vorne gemacht. Es ist jetzt ein Risc Developments IDE-Podule integriert, so dass man mit von den Emulatoren bekannten Festplattenimages (typischerweise mit der .hdf-Extension) arbeiten kann – gegenüber der bisherigen Floppy-Images-Only-Betriebsweise ein riesiger Schritt nach vorne.

Der Core kann auch ein CMOS.RAM von der MIST-SD-Karte laden, leider aber geänderte Settings noch nicht speichern.

Zur Feier des Tages habe ich ein entsprechendes Image zusammengebaut und zur Verfügung gestellt. Es basiert auf dem RISC OS 3.1-UniBoot aus den letzten Acorn-Tagen inklusive aller Standardanwendungen wie ChangeFSI oder Printers, zusätzlich angereichert um aktualisierte Toolbox-Module, den lebensnotwendigen Utilities wie SparkPlug, die Read-Only-Version von SparkFS und PackDir. Und dazu noch drei der inzwischen freigegebenen Spieleklassikern: Burn’Out, Elite und Star Fighter 3000. Ersteres und letzteres zeigen allerdings, dass noch etwas Feintuning am ARM-Core notwendig ist, um hier adäquate Performance für diese Spiele bereitzustellen.

Ich gedenke, das Image noch weiter anzureichern mit lizenztechnisch unproblematischen Dingen – GCC, Template-Editoren, Zap und StrongEd, DrawPlus, Ovation, Impression Style (vor kurzem kostenlos freigegeben), Pipedream sowie ein paar der essentiellen Tools, an die ich mich schon gar nicht mehr erinnere – da muss ich mal wieder den FTP-Server der Uni Stuttgart konsultieren sowie mein altes A3000-Image. Der Test von ADFFS steht noch aus, jetzt wo nicht mehr ADFS-Floppy das einzige unterstützte Medium ist gibt es da durchaus Hoffnung, und das würde bezüglich der möglichen Retro-Experience die Sache stark vereinfachen.

Für die Detaildiskussion kann man alles im Atari-Forum (quasi das offizielle MIST-Forum, weil das MIST bekanntlich mit dem Atari-ST-Core geboren wurde) nachlesen. Hier der Link zum GitHub-Repo des Archimedes-Core.

Natürlich gibt es weiterhin viele zusätzliche Wünsche an den Core – schnellere CPU (der verwendete Amber-ARM-Core hat eigentlich einen Cache a la ARM3 intus, aufgrund von Zuverlässigkeitsproblemen ist der aber derzeit deaktiviert), Quad-MEMC-Emulation für bis zu 16 MiB RAM, Anbindung des MIST-Scandoublers um auch auf VGA-Monitoren die 15 kHz-Modes ohne Letterboxing und RAM-bandbreitenfressende Bildwiederholrate verwenden zu können, und natürlich das Schreiben der CMOS-Values. Direkte Unterstützung der zwei anderen Disketten-Image-Formaten APD und JFD wäre super. FPA10-Emulation wäre wohl eher aus der Kategorie “weil man es kann”, bekanntlich konnte man Floating-Point-intensive Software mit der Lupe suchen. Endgültig Kür wäre dann Netzwerkunterstützung, das wäre dann aber eher der Bereich des MISTer, für den der aktuelle Core aber noch nicht portiert wurde. Und wie wäre es mit Econet?

RPCEmu 0.9.2 ist da – mit vereinfachter Netzwerkunterstützung!

Gestern wurde die neue Version von RPCEmu veröffentlicht, namentlich 0.9.2. Aus meiner Sicht als Windows-Benutzer ein riesiger Fortschritt.

Wie schon in meinem Artikel zu Version 0.9.1 angekündigt und sehnlichst erhofft, ist die Hauptneuigkeit ein Modus zur vereinfachten Netzwerkanbindung zur Host-Maschine. Bisher war das – zumindest unter Windows – eine sehr komplexe bis fehlerträchtige Angelegenheit, wo man von Hand nach der Installation einer bestimmten Version von OpenVPN (bzw. dessen TAP-Treiber) eine Netzwerk-Bridge im Windows anlegen musste. Die dann manchmal verschwand, manchmal auch das restliche Netzwerken von Windows beeinflusste, und generell sehr unpopulär war. Unter Linux war das Tunneling, das eigentlich einfacher sein sollte, seit neuestem faktisch unmöglich weil die Root-Elevation nicht mehr korrekt mit Qt funktionierte. Ein sehr unbefriedigender Zustand.

Jetzt ist alles neu und besser und hört auf den Namen “NAT networking”. Noch immer nicht ganz so problemlos und elegant integriert wie bei V-RPC, aber deutlich einfacher als vorher. Aber ein wichtiger Hinweis: man sollte nicht “wie gewohnt” das RISC OS-Netzwerk konfigurieren (wie ich es zunächst erfolglos versucht habe), da es sich tatsächlich um echte NAT handelt – intern bekommt das emulierte RISC OS also eine eigene IP-Adresse, die immer 10.10.10.10 ist, und RPCEmu faked drumrum einen Router (10.10.10.2) und einen DNS-Server (10.10.10.3) dazu, und die Host-Maschine bekommt im Prinzip nichts davon mit. Also unbedingt die (sehr gute) Anleitung lesen. Hat man ein RISC OS, das DHCP unterstützt (also RISC OS 4.29 aka “Select 1” aufwärts), ist es wirklich sehr einfach.

Wichtige Einschränkungen: ping funktioniert nicht, ShareFS funktioniert nicht (weil nicht auf routebarem IP basierend), und die RISC OS-Maschine ist von außerhalb z.B. als Server nicht ansprechbar, weil kein Port-Forwarding implementiert ist. Die Abwesenheit von ShareFS ist natürlich bitter, weil oft die mit Abstand einfachste Möglichkeit, zwischen RISC OS-Rechnern Dateien zu sharen. Aber es braucht ja noch Luft für die 0.9.3.

Eine kleine Verbesserung wartet im Bereich “Diskettenlaufwerk” – hier kann jetzt neben dem bekannten .adf auch .img, also gewöhnliche DOS-Images, als virtuelles Diskettenlaufwerk gemountet werden.

Ein kleiner Wermutstropfen ist die Tatsache, dass aufgrund der verwendeten neuen Qt-Version nun nur noch Windows ab Version 7 aufwärts offiziell unterstützt wird. Für Retro-Zwecke leicht suboptimal, weil die PCs, die noch eine “echte” Floppy intus haben (und damit Filecore-formatierte Disketten vernünftig ansprechen können), oft unter Windows XP laufen. Aber es gibt ja Alternativen (wenn schon Retro, dann Arculator oder VA5000).

Erste Anzeichen für GCC 8.2.0

Bekanntlich ist die neueste für RISC OS verfügbare GCC-Version die 4.7.4. So alt, so gut. Normalerweise ist das auch kein größeres Problem, RISC OS ist ja eher so retro und verfolgt nicht gerade den Ansatz, alles was nicht bei drei auf den Bäumen ist aus der Linux-Ecke zu portieren. Aufgrund der Unterschiedlichkeit der Ansätze von RISC OS und Linux macht das sowieso nur Ärger und Aufwand (vom Dateisystem bis zu so profanen Dingen wie Forken neuer Prozesse), und das Resultat ist oft auch gerade performancetechnisch unbefriedigend. Aber gerade bei C++ ist die Zeit nicht stehen geblieben, und da wäre ein aktueller Compiler schon von Vorteil. Ganz zu schweigen von neuen hippen Sprachen wie D oder Go, die von neuen GCC-Versionen unterstützt werden.

Ich vermute aufgrund der beteiligten Personen, dass die aktuellen Browser-Projekte (WebKit-Portierung und OWB-WebKit-Portierung) aufgrund der C++-Problematik nun Bemühungen getriggert haben, eine aktuellere GCC-Version an den Start zu bringen. Lee Noar, seines Zeichens Mastermind hinter dem RISC OS-ELF-Support, hat aktuell im riscos.info-GCCSDK-Repo eine ganze Menge Änderungen einfließen lassen, die auf eine baldige Verfügbarkeit von GCC 8.2.0 für unser aller Lieblingsbetriebssystem hoffen lassen. Hier die Details. Wie immer erst die GCCSDK-Version zum Crosscompile, dann hoffentlich auch eine native Version.

Was sind die Fortschritte zwischen 4.7.x und 8.x.x? Für eine Einschätzung des Versionssprunges ist zunächst wichtig zu wissen, dass das GCC-Projekt irgendwann mal das System der Versionsvergabe umgestellt hat. Früher wurde nur alle Schaltjahre mal die Major-Version erhöht – 2.x erblickte 1992 das Licht der Welt (die gängigen Versionen für RISC OS waren 2.3.3, 2.4.5, 2.7.2 und 2.95), 3.x dann ab 2001, 4.x ab 2005, und ab 5.x (2015) gab es dann die Major-Versionen in schnellerer Folge, ungefähr jährlich. Von 4.7.x ist es also nicht ganz so weit bis zur aktuellsten 9.x-Version wie es zunächst den Anschein haben könnte. Auch C++ hat bei der Standardisierung von neuen Versionen ja einen Zahn zugelegt, da passt beides recht gut zusammen. Beispielsweise die Variante C++11 wurde experimentell seit GCC 4.8 unterstützt, GCC 5.x enthielt erste Unterstützung für C++14, GCC 6.x hatte dann C++14 schon als Default und enthielt erste Features von C++17. GCC 8.x beginnt schon mit Draft-Features aus C++2X, das vermutlich 2020 als Standard C++20 verabschiedet werden wird.

Also: Daumen drücken, dass das RISC OS-GCC-Ein-Mann-Team bald Erfolge vermelden kann. Eine aktuelle C++-Toolchain wird immer gebraucht. Wenn jetzt noch jemand sich an LLVM und Clang versuchen würde…und dem aktuellen GCC wieder die Erzeugung von ARMv2-Code nahebringen könnte…aber wer mal das ARM-Backend des GCC angeschaut hat, das ist eine 30000-Zeilen-Codewüste…