Runtime model jazyka Rust

bjarne

Runtime model jazyka Rust
« kdy: 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á?
« Poslední změna: 06. 12. 2015, 22:17:43 od Petr Krčmář »


Inkvizitor

Re:Runtime model jazyka Rust
« Odpověď #1 kdy: 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?

Re:Runtime model jazyka Rust
« Odpověď #2 kdy: 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.

bjarne

Re:Runtime model jazyka Rust
« Odpověď #3 kdy: 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ů.

bjarne

Re:Runtime model jazyka Rust
« Odpověď #4 kdy: 07. 12. 2015, 11:18:39 »
sry "non-fragile ABI" měl být ten správny termín