Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: bjarne 06. 12. 2015, 22:08:47

Název: Runtime model jazyka Rust
Přispěvatel: bjarne 06. 12. 2015, 22:08:47
Ať googlim jak googlim, tak nikde není nic o tom, jaký má Rust runtime model, ABI, binární kompatibilitu mezi craty.

Můžu např. do pub struktury v jednom cratu přidat nějaký člen, aniž bych musel rekompilovat nějaký jiný crat, který tu strukturu používá?
Název: Re:Runtime model jazyka Rust
Přispěvatel: Inkvizitor 06. 12. 2015, 23:21:14
Ať googlim jak googlim, tak nikde není nic o tom, jaký má Rust runtime model, ABI, binární kompatibilitu mezi craty.

Můžu např. do pub struktury v jednom cratu přidat nějaký člen, aniž bych musel rekompilovat nějaký jiný crat, který tu strukturu používá?

Ne že bych byl znalec Rustu, ale jelikož je to statický jazyk, divil bych se, kdyby to (obecně, ne v pár speciálních případech) šlo bez rekompilace. Od toho jsou verze, aby se dala hlídat vzájemná kompatibilita modulů, ne?
Název: Re:Runtime model jazyka Rust
Přispěvatel: Jakub Galgonek 07. 12. 2015, 01:17:51
Můžu např. do pub struktury v jednom cratu přidat nějaký člen, aniž bych musel rekompilovat nějaký jiný crat, který tu strukturu používá?

Souvisí ten dotaz s tím předchozím a hledáš náhradu za C++? Možná by tě mohlo zajímat Objective-C, tam přidání položky do třídy nenaruší ABI.
Název: Re:Runtime model jazyka Rust
Přispěvatel: bjarne 07. 12. 2015, 11:15:57
Můžu např. do pub struktury v jednom cratu přidat nějaký člen, aniž bych musel rekompilovat nějaký jiný crat, který tu strukturu používá?

Souvisí ten dotaz s tím předchozím a hledáš náhradu za C++? Možná by tě mohlo zajímat Objective-C, tam přidání položky do třídy nenaruší ABI.

Jj včera jsem se byl ještě dotázat na IRC Rust vývojářu a popsal jim svůj problém a jeden z nich upozornil, že Objective-C má tzv. "fragile ABI" a umožňuje přidávat jak další datové členy, tak metody (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtHowMessagingWorks.html). Trochu jsem to promyslel a závěr jsem si udělal takový, že na to asi kašlu a budu se snažit udržovat kompatibilitu na úrovni zdrojových kódu a když vyjde nová verze software, tak bude stačit existující pluginy jen přeložit. Chtěl jsem to původně mít tak, že by se ta aplikace sama updatovala a nerozbila kompatibilitu, ale tak to dělat teda nebudu. Good old C++ tady bude prostě na věky věků.
Název: Re:Runtime model jazyka Rust
Přispěvatel: bjarne 07. 12. 2015, 11:18:39
sry "non-fragile ABI" měl být ten správny termín