Software > Alternative Betriebssysteme

EmuTOS selbst compilieren

<< < (19/30) > >>

Thorsten Otto:

--- Zitat von: Lukas Frank am Sa 06.10.2018, 18:53:25 ---Gibt es irgendwo die aktuelle gcc Version für MiNT?

--- Ende Zitat ---

Für mint bisher nicht, nur als cross-compiler. Die Scripts und Patches sind aber praktisch identisch zu 7.3, kann also nur ne Frage der Zeit sein bis Miro den gebastelt hat ;)

goetz @ 3rz:

--- Zitat von: Lukas Frank am Sa 06.10.2018, 19:50:11 ---
--- Zitat von: czietz am Sa 06.10.2018, 16:21:47 ---Auf meinem Notebook baut ein komplettes EmuTOS 192k in 17 Sekunden(!).

--- Ende Zitat ---

17 Sekunden zu 4 Stunden ist ja eine Hausnummer.

--- Ende Zitat ---

Nunja, in Zeiten, wo fast der gesamte Sourcecode in den Level-2-Cache von modernen, potenteren CPUs paßt … ein TT hat halt nur 3-5 MIPS. Ein 68060 liegt bei über 100 MIPS. Ein PowerPC 750/333 läuft Kreise um den - selbst wenn er ihn emulieren muss. Und das ist Prozessortechnik von 1999, nur 8 Jahre nach Ende des TT. Seitdem sind fast 20 Jahre vergangen.

Der L2-Cache in meinem Server ist größer als meine erste Festplatte, eine SH205.

Lukas Frank:
Es ist ja schön das es überhaupt noch geht !

ari.tao:
Glückwunsch, Frank! Da hast Du etwas geschafft, wovon ich noch meilenweit entfernt bin.

Ziemlich irritiert bin ich über die gemeldeten Zeiten und Größen. Wie hat denn Atari damals, sagen wir 1987, das TOS kompiliert? Weiß das jemand? Ich kann mir weder vorstellen, daß ein TOS zu kompilieren viele Stunden gebraucht hat, noch, daß da Bibliotheken & Tools von 1GB Größe nötig waren.

mfro:

--- Zitat von: ari.tao am So 07.10.2018, 00:51:00 ---Ziemlich irritiert bin ich über die gemeldeten Zeiten und Größen. Wie hat denn Atari damals, sagen wir 1987, das TOS kompiliert? Weiß das jemand? Ich kann mir weder vorstellen, daß ein TOS zu kompilieren viele Stunden gebraucht hat, noch, daß da Bibliotheken & Tools von 1GB Größe nötig waren.

--- Ende Zitat ---

Atari hat den Alcyon-Compiler verwendet (der Standard-Compiler für CP/M 68K).

Der ist im Vergleich zu einem aktuellen gcc knalldoof, optimiert so gut wie nichts und kann - natürlich - nix von dem, was sich in den letzten 30 Jahren am C-Standard weiterentwickelt hat (und noch nicht mal all das, was damals schon Standard war). Der Alcyon war berüchtigt dafür, daß man mit ihm ganz leicht fehlerhafte Programme schreiben konnte, weil er nur eine sehr rudimentäre Fehlerbehandlung hatte.
Eigentlich nur ein Makroassembler, der ein wenig C versteht.

Im Vergleich dazu sind aktuelle C-Compiler Raketentechnik.

Sie finden (wenn man sie läßt) nahezu jeden Fehler, übersetzen den Quellcode zunächst in eine eigene "Zwischensprache", in der aufwendige Codeoptimierungen durchgeführt werden (gut für uns, weil wir so auch von Weiterentwicklungen der Optimierungsfunktionen profitieren können, obwohl niemand mehr das m68k-Backend pflegt), aber das kostet natürlich Ressourcen. Hinzu kommt, daß gcc eine "universelle" Compiler Collection darstellt, die nicht nur als Grundlage für C-Compiler, sondern auch für eine Vielzahl von anderen Sprachen verwendet wird. Und das nicht nur für m68k, sondern auch für -zig andere Architekturen. Das erzeugt natürlich Overhead, der der Geschwindigkeit nicht zuträglich ist.
 
Die originalen TOS-Sourcen kriegst Du nicht durch einen aktuellen C-Compiler (genausowenig, wie man ein aktuelles EmuTOS mit dem Alcyon-Compiler übersetzen könnte). Dazu hat sich die Sprache in 30 Jahren viel zu sehr weiterentwickelt (zum Glück!). Das ist so, wie wenn wir hier plötzlich Mittelhochdeutsch miteinander reden wollten.

Dazu kommt, das EmuTOS überwiegend in C geschrieben ist, während in den originalen TOS-Sourcen der Assembleranteil (das damalige C war viel zu lahm und doof für zeitkritische Dinge) deutlich überwiegt. Assembler läßt sich natürlich deutlich unaufwendiger übersetzen.

Weiterhin setzen alte Compiler mehr oder weniger direkt auf TOS auf, während gcc auf dem MiNT-Überbau aufsetzt, der ihm ein Unix-System vorspielt. Das macht die Sache natürlich auch nicht unbedingt schneller und ressourcenschonender.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln