Rust: Hot-Code-Ersatz

Erstellt am 10. Mai 2013  ·  6Kommentare  ·  Quelle: rust-lang/rust

Hallo, ich habe mir dieses http://www.youtube.com/watch?v=apZYqHPqzYo angesehen und dachte, es wäre schön, auch in Rust heißen Code zu ersetzen.

In Java haben Sie das OSGi-Projekt ( http://www.osgi.org/Main/HomePage ) und Hotswap ( http://code.google.com/p/hotswap/ ), die das Upgraden und Ändern von Modulen Ihres Anwendung, ohne andere Module zu berühren.

E-hard

Hilfreichster Kommentar

Alle 6 Kommentare

Es ist wirklich extrem schwierig, dies mit nativem Code zu tun, insbesondere auf plattformübergreifende Weise. VMs haben es leichter, da sie die volle Kontrolle über das Laden von Bytecode, die Codegenerierung, die Codeplatzierung usw. haben.

Ich bin nicht auf dem neuesten Stand der Forschung zu diesem Thema, aber ich fand Kitsune: Efficient, General Purpose Dynamic Software Updating for C (OOPSLA 2012) interessant.

besucht zur Triage, 17. Juli 2013. Hot-Swapping ist in der Tat knifflig, obwohl einige der dafür notwendigen Dinge (zB Seiten als ausführbar markieren; I-Cache-Flushing usw.) auch notwendig wären, um einen JIT-Compiler zu unterstützen.

Ich vermute, wir bräuchten auch positionsunabhängigen Code (PIC). Das Kitsune-Papier behandelt sogar noch aggressivere Transformationen, z. B. die Migration der Datenlayouts zwischen Versionen. (Ich habe das Papier bisher nur überflogen.)

Das wäre cool, aber ich fühle mich wohl, wenn ich sage, dass es wahrscheinlich nicht passieren wird. Ich denke, es gibt viele andere schwierige Probleme, die zwingender sind.

Es wurde ein paar Mal mit kompiliertem Code durch LLVM und dessen JIT durchgeführt. Was es in eine VM wirft und es ermöglicht, die gleichen Dinge zu tun, die Erlang in seiner VM tun kann ...
Inspiration: http://vimeo.com/36579366
Beispiele mit C++:

Wenn jemand eine Low-Level-VM verwenden möchte, kann er dies wohl auch in Rust tun ... Damit so etwas funktioniert, müssen Sie sowieso das VM-Verhalten hinzufügen ...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen