... und der sorgt dafür, dass unter Linux Smart Linking funktioniert?marcov hat geschrieben:Binwriter (interner Assembler) gibts schon für i386-linux
Programmiersprachen/Umgebungen
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Programmiersprachen/Umgebungen
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Programmiersprachen/Umgebungen
ld kann zumindest Smartlinking. Für mein Lazarus (ca. 15 Megabyte) braucht es da etwa 1,7 Gigabyte RAMEuklid hat geschrieben:... und der sorgt dafür, dass unter Linux Smart Linking funktioniert?marcov hat geschrieben:Binwriter (interner Assembler) gibts schon für i386-linux

Bootstrappen heißt doch soviel wie einen neuen Compiler aus den Quellen erzeugen und nicht einen Compiler mit dem gcc übersetzen. Wenn du willst kannst du mit allein mit TurboPascal zum aktuellen FPC kommen.carli hat geschrieben:Den FPC kann man nicht bootstrappen. Man kann ihn nur kompilieren, wenn man einen FPC da hat.
Hat man keinen, könnte man es mit Delphi oder so versuchen.
Ein C Compiler wird aber immer da sein, also könnte man sich zur Sicherheit immer ein automatisch übersetztes C-Programm vom FPC aufheben, schon kann man in jede neue Plattform portieren.
Und wer garantiert dir, dass immer ein C-Compiler da ist? Ich hab den bei mir auch selbst installiert und unter Windows ist gar kein Compiler dabei. Also ists am Ende wieder der Anwender, der dafür sorgen muss, dass der gewünschte Compiler da ist.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Programmiersprachen/Umgebungen
Wenn du beim Urschleim bootstrappen willst, würdest du zuerst ein Betriebssystem von Hand in Assembler schreiben und es dann von Hand übersetzen. Anschließend wäre der C-Compiler dran.Socke hat geschrieben:Bootstrappen heißt doch soviel wie einen neuen Compiler aus den Quellen erzeugen und nicht einen Compiler mit dem gcc übersetzen. Wenn du willst kannst du mit allein mit TurboPascal zum aktuellen FPC kommen.carli hat geschrieben:Den FPC kann man nicht bootstrappen. Man kann ihn nur kompilieren, wenn man einen FPC da hat.
Hat man keinen, könnte man es mit Delphi oder so versuchen.
Ein C Compiler wird aber immer da sein, also könnte man sich zur Sicherheit immer ein automatisch übersetztes C-Programm vom FPC aufheben, schon kann man in jede neue Plattform portieren.
Und wer garantiert dir, dass immer ein C-Compiler da ist? Ich hab den bei mir auch selbst installiert und unter Windows ist gar kein Compiler dabei. Also ists am Ende wieder der Anwender, der dafür sorgen muss, dass der gewünschte Compiler da ist.
Aber wenn du beim Urschleim anfangen willst, kannst du gleich wieder aufhören, das ist zu aufwändig.
Was ich damit sagen will: Du wirst auf einer XYZ-Plattform keinen fertigen FPC haben, um dir den FPC zu kompilieren. Die Wahrscheinlichkeit, dass eine Plattform einen C-Compiler hat ist nahezu 100% (und dass Windows keinen mitliefert, sollte in Zeiten des Internet kein Problem mehr sein)
-
- Beiträge: 1103
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Programmiersprachen/Umgebungen
Und du hast ein Machine mit unendliches Speicher, und undendlich Zeit? FAIL!carli hat geschrieben:Sowohl Pascal als auch C sind Turing-Vollstängig. FAILmarcov hat geschrieben:Und was wann man das Pascal programm nicht als C code ausdrucken kann?würde meiner Meinung nach voll ausreichen (der einen Gesamtprogramm-C-Code erzeugt), da eine neue eingebettete Plattform meistens nur mit einem C-Compiler "begehbar" ist.
(und das ist sowieso Quatsch, weil Turing nur ein Execution Model ist, und nichts über sagt source 2 source Konversion sagt. Es ist wie zu sagen: "man kann diese Dingen beiden in kleine Stückchen erschlagen (zb Atome), darum sind sie Äquivalent". Das ist nicht so, man muss dafür auch das wiederherstellen von B aus atomen von A beherrschen, und das kann nicht trivial sein)
Natuerlich. Habe ich schon erklärt in dieser Post. TP->alte FPC versionen -> heutige FPC Versionen.marcov hat geschrieben:Den FPC kann man nicht bootstrappen.carli hat geschrieben: Ich denke FPC bootstrappen ist einfacher als GCC bootstrappen. Also ich weiß nicht was sie hier mit meinen.
Wie kompilierst du denn gcc ohne eine C compiler?Man kann ihn nur kompilieren, wenn man einen FPC da hat.
Hat man keinen, könnte man es mit Delphi oder so versuchen.
Ein vielleicht schon. Aber kennst du wirklich einer der gcc gebootstrapt hat mit nicht gcc? Es gibt da viel Theorien, aber wenig praktisches oder etwas was zu kontrollierbar (und nach 2000) ist.Ein C Compiler wird aber immer da sein,
Auch die gcc/Linux Leute nutzen Crosscompiling, nicht bootstrapping.
Das nur Theorie. Solche dingen funktionieren nicht als die nicht praepariert sein. Und auch die Komplexität ist ein Problem. Die bootstrap-Theorien stammen aus das frühe 1980er sogenanten Computer Mittelalter, als Compiler noch 20-30000 Zeilen waren. Jeder kennte sie, weil sie in allen Textbooks stehen. Aber keiner hat Praxis informationen. Eben mit Solaris kommt eine ganze GNU Toolchain mit, so das man so etwas nicht mit Solaris kompiler versuchen mussalso könnte man sich zur Sicherheit immer ein automatisch übersetztes C-Programm vom FPC aufheben, schon kann man in jede neue Plattform portieren.
-
- Beiträge: 1103
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Programmiersprachen/Umgebungen
Das liegt etwas komplizierter:Socke hat geschrieben:ld kann zumindest Smartlinking. Für mein Lazarus (ca. 15 Megabyte) braucht es da etwa 1,7 Gigabyte RAMEuklid hat geschrieben:... und der sorgt dafür, dass unter Linux Smart Linking funktioniert?marcov hat geschrieben:Binwriter (interner Assembler) gibts schon für i386-linux. Wie das hier aussieht müsste ich mal testen.
(1)
- LD kontte "damals" (1997-1998 oder so) keines Smartlinking (kein --gc-sections usw)
- ld hatte aber ein Funktion um nicht gebrauchte "modul" (.o) Sections nicht zu linken als die nicht erreichbar sind.
- -> um effectiv Smartlinking zu nutzen macht FPC ein "modul" Section per Symbol. Das tut es immer noch.
- Die modul Sections von einem unit (viele .o's bis hunderttausend pro Unit) werden mit AR zu .a Archiv kompiliert
(2)
- Es gab kaum etwas GNU was funktionierte auf Windows.
- Der Windows Header war gigantisch groß.
- Alle FPC programma hätten ein dependancy auf _alle_ funktionen in Windows, weil es kein Smartlinking von Windows gab.
- das gab allerlei Probleme (Windows konnte keine Funktionen haben die es auf originelles Win95 nicht gab usw)
- -> Windows würde verpflicht Smartlinking gemacht im makefile
Das Problem war das das alles sehr langsam war. (und große Windows Binaries generierte). Auf Linux war das weniger ein Problem, aber auf Windows doppelt oder eben dreifach:
(1) Windows ist relativ langsam um Binaries zu starten.
(2) as --pipe funktionierte nicht -> mann muss .s alles nach Disk schreiben, und danntausende male AS anrufen, und dann alle tausende .o's pro Unit wieder lesen mit AR usw)
(3) der Windows Unit war besonders groß.
Also darum ist der Windows Binwriter geschaffen. Der macht die AS und AR Stufen innerhalb der ppc386 Binary, und das ist eine menge flotter. (kein schreiben/lesen mehr oder tausend mal as.exe starten )
Später (2005-2007) kam Lazarus richtig auf Dampf, und LD wurde immer langsamer um Lazarus zu linken. Ein bisschen logisch, weil LD nie für Millionen .o optimiert wurde. Es nutzte auch sehr viel Speicher dafür (bis 1.5 GB um ein Lazarus völlig zu smartlinken)
Da kam der interner Linker zur Tisch. Der macht das in ein drittel oder viertel der Zeit und mit nur 200MB.
(noch später)
Mit win64 dauerte es sehr lang bis es 64-bit mingw binaries gab. Jemand hat dann ein binwriter/linker für win64 gemacht, und deshalb gab es FPC früher als gcc auf win64. (das gibt auch an das der Porting/bootstrap theorie aus IT Anfänger Textbooks nicht dasselbe ist als das auch Praktisch machen, weil es ein C compiler (MSVC) auf win64 gab)
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Programmiersprachen/Umgebungen
Das hört sich ja hochgradig blödsinnig an. Wenn der neue Compiler die vorhandenen Kernel Sources nicht korrekt übersetzen kann, muss er überarbeitet werden und nicht der Sourcecode angepasst werden. Es wäre schon tödlich, wenn man die Make-Files ändern muss.carli hat geschrieben: einen komplett neuen Kernel plant,
-Michael
Zuletzt geändert von mschnell am Do 6. Jan 2011, 14:20, insgesamt 1-mal geändert.
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Programmiersprachen/Umgebungen
http://code.google.com/p/llvm-kernel/" onclick="window.open(this.href);return false;mschnell hat geschrieben:Das hört sich ja hochgradig blödsinnig an. Wenn der neue Compiler die vorhandenen Kernel Sources nicht korrekt übersetzen kann, muss er überarbeitet werden und nicht der Sourcecode angepasst werden. Es wäre schon tödlich, wenn man die Make-Files ändern muss.carli hat geschrieben:mschnell hat geschrieben: einen komplett neuen Kernel plant,
-Michael
lies selbst.
Die Turing-Maschine ist ein Berechnungsmodell und sie sagt uns lediglich, dass es keine turing-vollständige Sprache gibt, die mehr Probleme lösen kann als eine andere turing-Vollständige Sprache.(und das ist sowieso Quatsch, weil Turing nur ein Execution Model ist, und nichts über sagt source 2 source Konversion sagt. Es ist wie zu sagen: "man kann diese Dingen beiden in kleine Stückchen erschlagen (zb Atome), darum sind sie Äquivalent". Das ist nicht so, man muss dafür auch das wiederherstellen von B aus atomen von A beherrschen, und das kann nicht trivial sein)
Deine Aussage war aber, dass Pascal Probleme lösen kann, die C nicht lösen kann. Du blamierst dich mit der Aussage.
Ja, Pascal ist nicht standardisiert und deshalb muss man versionsweise durchsteppen, um den FPC zu bootstrappen.Natuerlich. Habe ich schon erklärt in dieser Post. TP->alte FPC versionen -> heutige FPC Versionen.
Hier auch wieder: es geht nicht darum, was geht und was nicht geht, denn das mal weitergesponnen können wir gleich den FPC von Hand in Maschinencode übersetzen. Es geht aber sehr wohl darum, wie ich schnellstmöglich, wenn ich meinen Compiler mehr habe, mit fremder Hilfe den schnellstmöglichst wieder kompiliert bekomme. (oder auf eine neue Plattform gebracht). Und da ist ein C-Zwischencode seehr praktisch aus obig genannten Gründen.Wie kompilierst du denn gcc ohne eine C compiler?
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Programmiersprachen/Umgebungen
Ich verstehe leider nicht, wo der Unterschied zwischen einen Compiler aus dem Internet herunterzuladen und einen Compiler aus dem Internet herunterzuladen.carli hat geschrieben:Was ich damit sagen will: Du wirst auf einer XYZ-Plattform keinen fertigen FPC haben, um dir den FPC zu kompilieren. Die Wahrscheinlichkeit, dass eine Plattform einen C-Compiler hat ist nahezu 100% (und dass Windows keinen mitliefert, sollte in Zeiten des Internet kein Problem mehr sein)
Fakt ist: Ein Compiler gehört nicht zum Betriebssystem. Es mag zwar sein, dass es Linux-Distributionen gibt, die gcc per Standard installieren, aber er übernimmt per Definition keine Betriebssystemaufgaben (beim LLVM-Kernel mag das anders sein).
Die Wahrscheinlichkeit, dass überhaupt ein Compiler vorhanden ist, mag ich nicht abschätzen. Unter einer Windows-Standardinstallation strebt sie aber wohl gegen Null, wie du richtigerweise sagst. Wenn ein beliebiger Compiler vorhanden ist, ist natürlich die Wahrscheinlichkeit ungemein höher, dass es ein C-Compiler anstatt eines Pascal-Compilers ist. Das liegt aber nicht daran, dass es ein C-Compiler ist, sondern daran, dass er die Sprache "C" unterstützt. Sie ist eben viel weiter verbreitet als Pascal.
Es gibt auch Pascal-Standards, aber keinen produktiven, modernen Compiler, der diese voll unterstützt.carli hat geschrieben:Ja, Pascal ist nicht standardisiert und deshalb muss man versionsweise durchsteppen, um den FPC zu bootstrappen.Natuerlich. Habe ich schon erklärt in dieser Post. TP->alte FPC versionen -> heutige FPC Versionen.
Unter C habe ich aber ein ähnliches Problem, wenn ich verschiedene Sprachstandards nutze. Mit einem ANSI-C-Compiler kann ich kein Programm übersetzen, dass C99 verwendet. Also auch nichts anderes als bei Pascal.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 1103
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Programmiersprachen/Umgebungen
Nein, das was du darin lesen willst. Pascal in C umsetzen, und mit entweder Pascal oder C dieselbe Problemen loesen die in dieselbe reducierbare Representation ablaufen sind zwei unterschiedliche dingen.carli hat geschrieben:
Die Turing-Maschine ist ein Berechnungsmodell und sie sagt uns lediglich, dass es keine turing-vollständige Sprache gibt, die mehr Probleme lösen kann als eine andere turing-Vollständige Sprache.(und das ist sowieso Quatsch, weil Turing nur ein Execution Model ist, und nichts über sagt source 2 source Konversion sagt. Es ist wie zu sagen: "man kann diese Dingen beiden in kleine Stückchen erschlagen (zb Atome), darum sind sie Äquivalent". Das ist nicht so, man muss dafür auch das wiederherstellen von B aus atomen von A beherrschen, und das kann nicht trivial sein)
Deine Aussage war aber, dass Pascal Probleme lösen kann, die C nicht lösen kann. Du blamierst dich mit der Aussage
C ist schon standariert, aber was ich versuche zu sagen ist das das nicht notwendig genug ist um das das einwandfrei zu lassen klappen. Auch C Compiler Leute Crosscompilen typisch, und nutzen nicht der System kompiler.Ja, Pascal ist nicht standardisiert und deshalb muss man versionsweise durchsteppen, um den FPC zu bootstrappen.Natuerlich. Habe ich schon erklärt in dieser Post. TP->alte FPC versionen -> heutige FPC Versionen.
Nur in Academische Experimenten funktioniert das so.
Ja. Aber der unterschied ist das im Praxis so nicht funktioniert. Auch nicht mit C. Als du denkst ein Kompiler suchen ist der gröbsten Aufwand, dann bist du Falsch. Aber es wird interessant wenn du etwas Beweis für deine Stellungen produciert. Also das das Heute tatsachlich so getan wird. (zb wie ich oben erwahnte das es zb mit gcc auf der damals neue x86_64 Architectur so NICHT passiert ist.Hier auch wieder: es geht nicht darum, was geht und was nicht geht, denn das mal weitergesponnen können wir gleich den FPC von Hand in Maschinencode übersetzen. Es geht aber sehr wohl darum, wie ich schnellstmöglich, wenn ich meinen Compiler mehr habe, mit fremder Hilfe den schnellstmöglichst wieder kompiliert bekomme. (oder auf eine neue Plattform gebracht). Und da ist ein C-Zwischencode seehr praktisch aus obig genannten Gründen.Wie kompilierst du denn gcc ohne eine C compiler?
Re: Programmiersprachen/Umgebungen
http://www.golem.de/1106/83981.html" onclick="window.open(this.href);return false;Christian hat geschrieben: Ich sehe es immernoch nicht kommen das Java/.net/Visual Basicjemals die Rechentechnik erobern.
Da ist Christian wohl nicht der einzige.
knight
-
- Beiträge: 1103
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Programmiersprachen/Umgebungen
Das ganze Windows 8 hoert sich an ob es nur ein Rewrite von der Sidebar ist mit was modieuzen Techniken wie Javascript und Touch* herein gemischt.knight hat geschrieben:http://www.golem.de/1106/83981.html" onclick="window.open(this.href);return false;Christian hat geschrieben: Ich sehe es immernoch nicht kommen das Java/.net/Visual Basicjemals die Rechentechnik erobern.
Da ist Christian wohl nicht der einzige.
knight
Und wer nutzt den Sidebar wirklich?
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Programmiersprachen/Umgebungen
Ich, ich hab 1 einziges, aber nützliche CPU-Last anzeige 
Wobei das ganze Java-zeug ja einfach viel zu stark von der Umgebung abhängig ist.
Man muss sicherstellen, dass Java installiert ist,welche version...

Wobei das ganze Java-zeug ja einfach viel zu stark von der Umgebung abhängig ist.
Man muss sicherstellen, dass Java installiert ist,welche version...
Code: Alles auswählen
Signatur := nil;
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Programmiersprachen/Umgebungen
Wobei man das in der Regel nicht sieht, wenn die sechs Kerne wirklich ausgelastet sindMAC hat geschrieben:Ich, ich hab 1 einziges, aber nützliche CPU-Last anzeige

Ich habs bisher bis auf zwei drei Einzelfälle nicht geschafft, beliebige Java-Anwendungen unter Windows auszuführen, und unter Linux ist das auch so eine Sache mit den verschiedenen Implementierungen.MAC hat geschrieben:Wobei das ganze Java-zeug ja einfach viel zu stark von der Umgebung abhängig ist.
Man muss sicherstellen, dass Java installiert ist,welche version...
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Programmiersprachen/Umgebungen
Also bei mir ist die GPU-Temperatur ganz normal bei den Sensoren dabei und ich lasse mir die Temperatur auch im Panel anzeigen.Socke hat geschrieben:Wobei man das in der Regel nicht sieht, wenn die sechs Kerne wirklich ausgelastet sindMAC hat geschrieben:Ich, ich hab 1 einziges, aber nützliche CPU-Last anzeige, viel interessanter finde ich eh die GPU-Temperatur, aber dazu gibts keine Anzeige (außer irgendwo versteckt im Treiber)
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Programmiersprachen/Umgebungen
Die letzten Zuckungen eine sterbenden OS.knight hat geschrieben:http://www.golem.de/1106/83981.html
-Michael