abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 22:22 | Komunita

Společnost Purism představila kryptografický token Librem Key. Koupit jej lze za 59 dolarů. Token byl vyvinut ve spolupráci se společností Nitrokey a poskytuje jak OpenPGP čipovou kartu, tak zabezpečení bootování notebooků Librem a také dalších notebooků s open source firmwarem Heads.

Ladislav Hagara | Komentářů: 0
včera 20:33 | Nová verze

Společnost NVIDIA oficiálně vydala verzi 10.0 toolkitu CUDA (Wikipedie) umožňujícího vývoj aplikací běžících na jejich grafických kartách. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 20:00 | Upozornění

Příspěvek Jak přežít plánovanou údržbu DNS na blogu zaměstnanců CZ.NIC upozorňuje na historicky poprvé podepsání DNS root zóny novým klíčem dne 11. října 2018 v 18:00. Software, který nebude po tomto okamžiku obsahovat nový DNSSEC root klíč, nebude schopen resolvovat žádná data. Druhým důležitým datem je 1. února 2019, kdy významní výrobci DNS softwaru, také historicky poprvé, přestanou podporovat servery, které porušují DNS standard

… více »
Ladislav Hagara | Komentářů: 4
včera 15:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 156. brněnský sraz, který proběhne v pátek 21. září od 18:00 v restauraci Na Purkyňce na adrese Purkyňova 80.

Ladislav Hagara | Komentářů: 0
včera 13:22 | Nová verze

Alan Griffiths z Canonicalu oznámil vydání verze 1.0.0 display serveru Mir (GitHub, Wikipedie). Mir byl představen v březnu 2013 jako náhrada X serveru a alternativa k Waylandu. Dnes Mir běží nad Waylandem a cílen je na internet věcí (IoT).

Ladislav Hagara | Komentářů: 0
20.9. 22:00 | Nasazení Linuxu
Stabilní aktualizace Chrome OS 69 (resp. Chromium OS), konkrétně 69.0.3497.95, přináší mj. podporu linuxových aplikací. Implementována je pomocí virtualizace, a proto je tato funkce také omezena na zařízení s dostatkem paměti a podporou hardwarové akcelerace, tudíž nejsou podporovány chromebooky s 32bitovými architekturami ARM, či Intel Bay Trail (tzn. bez Intel VT-x).
Fluttershy, yay! | Komentářů: 5
20.9. 21:32 | Zajímavý projekt
Došlo k uvolnění linuxové distribuce CLIP OS, vyvíjené francouzským úřadem pro kybernetickou bezpečnost ANSSI, jako open source. Vznikla za účelem nasazení v úřadech, kde je potřeba omezit přístup k důvěrným datům. Je založená na Gentoo.
Fluttershy, yay! | Komentářů: 1
20.9. 16:00 | Komerce

Zjistěte více o bezpečné a flexibilní architektuře v cloudu! IBM Cloud poskytuje bezpečné úložiště pro Vaše obchodní data s možností škálovatelnosti a flexibilitou ukládání dat. Zároveň nabízí prostředky pro jejich analýzu, vizualizaci, reporting a podporu rozhodování.

… více »
Fluttershy, yay! | Komentářů: 12
20.9. 12:22 | Nová verze

V dubnu letošního roku Mozilla představila webový prohlížeč pro rozšířenou a virtuální realitu Firefox Reality (GitHub). V úterý oznámila vydání verze 1.0. Ukázka na YouTube. Firefox Reality je k dispozici pro Viveport, Oculus a Daydream.

Ladislav Hagara | Komentářů: 2
20.9. 12:00 | Komunita

V srpnu loňského roku společnost Oracle oznámila, že Java EE (Enterprise Edition) bude uvolněna jako open source. O měsíc později bylo rozhodnuto, že tato open source Java EE bude přejmenována a předána Eclipse Foundation. Nové jméno bylo oznámeno v únoru letošního roku. Z Java EE se stala Jakarta EE. Eclipse Foundation včera oznámila dosažení dalšího milníku. Zdrojové kódy aplikačního serveru GlassFish jsou již k dispozici v git repozitářích Eclipse Foundation (GitHub).

Ladislav Hagara | Komentářů: 0
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (14%)
 (21%)
 (23%)
 (25%)
 (4%)
 (1%)
Celkem 384 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

systemd2rc: Generování initskriptů ze systemd

14.12.2014 00:03 | Přečteno: 2184× | linux/unix | Výběrový blog

Před nějakou dobou jsem publikoval na Githubu projekt systemd2openrc. Později Ondřej Surý publikoval systemd2init a já jsem nakonec svůj projekt značně refaktoroval a přejmenoval na systemd2rc.

Už jednou jsem někde v diskuzi říkal, že by bylo dobré oba projekty spojit, na což se Ondra díval skepticky s odůvodněním, že mají různé cíle. Já bych rád toto odůvodnění vyvrátil. Z toho důvodu jsem upravil skript, aby generoval initskripty pro různé distribuce a pro začátek jsem implementoval v nějaké základní podobně output pro Gentoo, Fedoru a Debian.

Stejně jako systemd2openrc, je i systemd2rc napsaný v Pythonu, čímž se liší od systemd2init napsaného v shellu. Pro začátek jsem si nedělal velkou hlavu s kompatibilitou a skript pouštím ve verzi 3.3. Jeho základem je primitivní parser na systemd unity s pár vychytávkami pro jednodušší přístup a sledování, které direktivy byly opravdu zpracovány.

Součástí skriptu je jednoduchý generátor initskriptů ve formě třídy, ze které jsou pak odvozené specializované generátory pro jednotlivé distribuce. Základní vlastností všech těchto generátorů je, že rozlišují typ služby a podle toho výsledný initskript generují, nejedná se tedy o prosté vyplnění šablony jako v případě systemd2init. Dále generátory zohledňují příkazy, které jsou potřeba vykonat před a po spuštění služby, případně před a po jejím vypnutím.

Momentálně nemám čas hrát si se systémy, které nepoužívají systemd, takže jsem od napsání původního skriptu už nezkoušel výsledky reálně používat. Navíc považuju systemd2rc za těžce work in progress, takže budu rád za každou připomínku a návrh na zlepšení.

Hlavní cíl projektu je jeho použití v definičních skriptech balíčků, kde by měl především pomoci s generováním initskriptů z upstreamem dodávaných unit souborů. Jsem si vědom toho, že automatizace v tomto ohledu nebude ani zdaleka stoprocentní, a plánuju tomu i uzpůsobit příkazové rozhraní, které by mělo volajícímu poskytnout značnou flexibilitu v tom, co chce do výsledného skriptu dostat.        

Hodnocení: 84 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

Josef Kufner avatar 14.12.2014 00:35 Josef Kufner | skóre: 68
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Je to docela nezvyk, vidět vše nahňácané v jednom souboru.

Jak velkou podmnožinu systemd to zvládne?
Hello world ! Segmentation fault (core dumped)
pavlix avatar 14.12.2014 12:12 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Je to docela nezvyk, vidět vše nahňácané v jednom souboru.
Ono to tak asi nezůstane, ten soubor nejspíše rozdělím ve chvíli, kdy se ukáže, že je důvod používat funkcionalitu nejen ve formě skriptu, ale i ve formě knihovny.
Jak velkou podmnožinu systemd to zvládne?
Je to work in progress, takže takovou, jaká se naimplementuje, v tomto ohledu se chystám přistupovat k RFE jako k bugreportům, takže dopíšu, co komu bude chybět. Spouštění simple a oneshot služeb je implementovatelné bez problémů včetně všech těch hovadin okolo. Forking jde řešit specifikací pidfile vytvářeného službou (současný stav) nebo možná i nějakým wrapperem. Zatím jsem neřešil notify.

Problém je se závislostmi a pořadím, které typicky nejdou přímočaře přeložit, takže očekávám, že je bude muset volající často specifikovat na příkazové řádce, což ještě není implementováno. Zajímá tě ještě něco konkrétního?
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
14.12.2014 17:03 Stevko | skóre: 3 | Praha
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Keď som videl, čo všetko by mal systemd zvládnuť, tak som zvedavý.
Príspevok nemá byť ukončený spojením „môj názor“.
pavlix avatar 14.12.2014 19:34 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Cílem projektu je, aby package maintainer nemusel vypisovat celý initskript, pokud se dá alespoň částečně automaticky generovat. V tomto kontextu je pokrývání funkcionality systemd úplně mimo. Pokud nějaký systém bude 100% pokrývat funkcionalitu systemd, tak bych spíše doporučoval, aby ten systém uměl číst systemd unity přímo. Tak to dělá i systemd s initskripty, a to nejsou zdaleka kompatibilní systémy. Smysl generování initskriptů je podle mě v tom, vytřískat z informací pro nekompatibilní systém maximum a zbytek případně nechat specifikovat na příkazové řádce.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Josef Kufner avatar 14.12.2014 23:13 Josef Kufner | skóre: 68
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Co udělá systemd, když narazí na neznámou volbu? Třeba by se chybějící volby daly připisovat přímo do systemd konfiguráku. Tedy pokud takové volby jsou vůbec potřeba.
Hello world ! Segmentation fault (core dumped)
pavlix avatar 15.12.2014 00:30 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Nezkoušel jsem, co dělá systemd s neznámou volbou. Ale spíš vidím smysl ve využití nezměněných systemd unit z upstreamu a doplnění nějakých těch detailů v argumentech.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Josef Kufner avatar 15.12.2014 01:02 Josef Kufner | skóre: 68
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Hm, asi bych přidal pár speciálních komentářů (u těch je jistota, že to nerozbijou) a poslal to upstreamu.
Hello world ! Segmentation fault (core dumped)
pavlix avatar 15.12.2014 01:10 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Osobně mi to moc nedává smysl, ale různým vylepšením se nebráním, pokud by to někdo tak chtěl používat.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
15.12.2014 17:18 JS1 | skóre: 2 | blog: intuition_pump
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Je to docela nezvyk, vidět vše nahňácané v jednom souboru.
Mne naopak prijde v dnesni dobe nelogicky opak. Puvodne vzniklo rozdelovani programu na souboru kvuli modularite (absenci verzovani) a omezeni kompilatoru (ktere mohly zpracovat najednou jen maly soubor). Ale striktne vzato to neni potreba.
pavlix avatar 15.12.2014 17:31 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Tak já jsem většinou spíš modulární, odděluju programy do celků, které se běžně samostatně upravují, ale systemd2rc se prozatím vždy upravuje jako celek, žádná část nemá ani relativně stabilní API, statická data jako LSB_HEADER se sdílejí, atd...
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
15.12.2014 17:42 JS1 | skóre: 2 | blog: intuition_pump
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Tak to co jsem napsal je trochu provokativni, protoze vim, ze Franta ma rad Javu.

Nejsem obhajce toho mit vsechno v jednom souboru (i kdyz u konverzniho skriptu se to hodi, ze se nemusi slozite instalovat), ale javovsky zpusob deleni mi pripada sileny. Jsem zastance toho, ze dobry program by mel byt citelny tak trochu jako knizka, tedy od obalky k obalce (mozna s vynechanim nekterych casti).

Nicmene zatim jsem neslysel dobre zduvodneni, proc to delat jak se to dela v Jave. Takze kdyz uz ti to vytyka, at prinese nejaky zajimavy argument!
pavlix avatar 15.12.2014 17:50 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Tak to co jsem napsal je trochu provokativni, protoze vim, ze Franta ma rad Javu.
A Pepa má taky rád javu?
i kdyz u konverzniho skriptu se to hodi, ze se nemusi slozite instalovat
Tak já už mám přidaný setup.py a je fakt, že Python je v tomhle vcelku flexibilní a hledá jak v aktuálním adresáři, tak v systémovém, takže rozdělení nepřinese zásadní komplikace.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
15.12.2014 18:03 JS1 | skóre: 2 | blog: intuition_pump
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Ah, mea culpa :-) Myslel jsem, ze to napsal Franta.. No nevadi, odpovedet muze taky.
pavlix avatar 15.12.2014 18:14 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Mně se jenom líbilo, že jsi zaměnil dva lidi s takovými blízkými jmény :).
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
15.12.2014 21:10 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Nejsem obhajce toho mit vsechno v jednom souboru (i kdyz u konverzniho skriptu se to hodi, ze se nemusi slozite instalovat), ale javovsky zpusob deleni mi pripada sileny. Jsem zastance toho, ze dobry program by mel byt citelny tak trochu jako knizka, tedy od obalky k obalce (mozna s vynechanim nekterych casti).
Tak já si tu tradičně přihřeju polívku s Rustem - viz Crates and Modules. Hlavně ty moduly se mi docela líbí...
pavlix avatar 15.12.2014 21:24 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Jestliže se tam píše, že závislosti mezi crates tvoří strom, znamená to, že nemůžu vytvořit dva moduly, které jsou na sobě závislé navzájem? Je vcelku běžné, že dva céčkové soubory přímo využívají funkce ze sebe navzájem, ať už sdílí jeden hlavičkový soubor nebo se překřižují, tak mě zajímalo, jestli je ta možnost, případně jak se to vůbec řeší s typováním, když na sobě závisí datové modely apod.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
15.12.2014 21:51 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
IMHO tím stromem se myslí pouze hierarchie modulů (analogie adresářové struktury, tj. acyklická záležitost), to, že jednotlivé zdrojáky na sebe navzájem mohou odkazovat (use) cyklicky, s tím v zásadě nesouvisí. Moduly jsou pouze k tomu, aby sis mohl 1) zdrojáky rozstrkat do hierarchie a 2) řídit viditelnost (ta se v Rustu řeší pouze právě mezi moduly).

Jestli mohou být cyklické závislosti i mezi crates, to už nevim přesně, ale jsem si skoro jistý, že ne.
pavlix avatar 16.12.2014 00:16 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Tak teď mám pocit, že jsi mi odpověděl jak že lze na sebe odkazovat cyklicky, tak že to nelze. Nezapomeň, že je to pro mě (a nejen pro mě) úplně cizí jazyk.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
16.12.2014 01:04 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Lze to, ale nijak to nesouvisí s tím, že moduly tvoří strom. Je to jako když si v céčkovém projektu rozstrkáš zdrojáky do různých složek - máš strom zdrojáků, ale ten nutně nemusí vůbec souviset se stromem závislostí v kódu.

V Rustu ve zdrojácích ani nikde nejsou explicitně specifikovány závislosti mezi moduly/soubory. Závislosti mezi moduly vzniknou tím, že se prostě na nějakém místě v kódu použije symbol z nějakého jiného modulu v rámci jednoho crate. Celý crate se překládá najednou, kompilátor si závislosti mezi moduly - ať už cyklické nebo ne - pořeší.

Crate je pak celá binárka (program nebo knihovna), takže tam už cyklické závislosti afaik nemůžou bejt.
pavlix avatar 16.12.2014 09:23 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
V Rustu ve zdrojácích ani nikde nejsou explicitně specifikovány závislosti mezi moduly/soubory.
Já jsem to chápal tak, že crate je soubor a modul se vytváří explicitně, takže ve skutečnosti jsou crate, soubor a modul tři různé pojmy. To potom znamená, že Rust neumí postupnou kompilaci jako céčko, že.
Crate je pak celá binárka (program nebo knihovna), takže tam už cyklické závislosti afaik nemůžou bejt.
Zajímavé.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
16.12.2014 12:30 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
takže ve skutečnosti jsou crate, soubor a modul tři různé pojmy
Přesně tak. V praxi samozřejmě mít co soubor, to modul, nicméně u větších modulů bude mít smysl je roztáhnout do více souborů...
To potom znamená, že Rust neumí postupnou kompilaci jako céčko, že.
To, co jsem popsal, je výchozí chování, kdy ti rustí kompilátor v podstatě poskytne jednoduchý build systém. Jinak má hafo konfigurace, může generovat všechno možné od celých binárek přes jednotlivé .o soubory až po asm nebo ir, takže afaik by to mělo jít použít v nějakém build systému á la C. Koneckonců backendem je LLVM.
pavlix avatar 16.12.2014 12:39 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Popravdě dosud považuju kombinaci make, shellu a autotools za nepřekonanou a rychlost kompilace za naprosto zásadní, jenže jestli to dobře chápu, nemá Rust hlavičkové soubory a tudíž je potřeba při kompilaci vždy parsovat všechny závislosti, aby měl kompilátor k dispozici informace o datových strukturách. Rovněž mi tak chybí rozumné oddělení API, ABI a implementace, které tedy bohužel není zrovna dokonalé ani v C, ale za ty roky (a desetiletí) už jsou zavedené techniky, jak tyto věci vcelku jasně oddělit. Tady asi ani tak nehraje roli LLVM backend, ale ten frontend jako takový.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
16.12.2014 13:16 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Popravdě dosud považuju kombinaci make, shellu a autotools za nepřekonanou a rychlost kompilace za naprosto zásadní
Popravdě považuju autotools za dílo ďáblovo :-D
jenže jestli to dobře chápu, nemá Rust hlavičkové soubory a tudíž je potřeba při kompilaci vždy parsovat všechny závislosti, aby měl kompilátor k dispozici informace o datových strukturách.
To ano, ale vzhledem k tomu, že ten kompilátor je beztak pomalej a žere dost paměti, je to asi celkem detail ;-)
Rovněž mi tak chybí rozumné oddělení API, ABI a implementace
Tomu moc nerozumim... Ale celkově mi přijde, že se diskuse posunula do roviny "Rust není C", s čímž se nedá než souhlasit...
pavlix avatar 16.12.2014 16:21 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Popravdě považuju autotools za dílo ďáblovo
Já za velmi podařené dílo ďáblovo, které není ani v nejmenším, čím nahradit.
To ano, ale vzhledem k tomu, že ten kompilátor je beztak pomalej a žere dost paměti, je to asi celkem detail
Právě naopak, jestliže kompilátor nesází výsledky bleskově, hodí se postupná kompilace jako sůl. Navíc někteří z nás používají ccache, takže umíme využít výsledků kompilace opakovaně i při formálních změnách nebo naopak při kompilaci z čistých zdrojů, což vývojář potřebuje dost často. Na Gentoo navíc výsledek takto optimalizované kompilace můžeš dostat rovnou do systému.
Tomu moc nerozumim... Ale celkově mi přijde, že se diskuse posunula do roviny "Rust není C", s čímž se nedá než souhlasit...
Uznávám, že C je na Linuxu co do toolingu a zvyklostí natolik kvalitní ekosystém, že je těžké se mu i kdyby jen přiblížit. Na druhou stranu jsem slyšel Rust prezentovaný jako jazyk pro systémové programování, což v kontextu, kde se pohybuju zastává C, maximálně ještě prokládané Pythonem, který se ovšem prakticky za všech okolností používá právě jako nadstavba nad C.

Můžeš mi tedy říct, do jaké oblasti je Rust vhodný, když to podle tebe není ta, kde se používá C?
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
16.12.2014 19:22 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Já za velmi podařené dílo ďáblovo, které není ani v nejmenším, čím nahradit.
CMake, jednoznačně. Ale i některé jiné systémy považuju za furt lepší než autotools...
Právě naopak, jestliže kompilátor nesází výsledky bleskově, hodí se postupná kompilace jako sůl. Navíc někteří z nás používají ccache, takže umíme využít výsledků kompilace opakovaně i při formálních změnách nebo naopak při kompilaci z čistých zdrojů, což vývojář potřebuje dost často.
Nevim přesně, co myslíš tou "postupnou kompilací", každopádně použitelný build systém by imho měl umět ccache-like funkcionalitu bez externí berličky. Build systém v rustc (Rust compiler) v základu takovouhle funkcionalitu nemá, je jen jednoduchý.

Jinak rustc jako takový používá pro sestavování autotools (z čehož nejsem moc nadšen a taky to buhvíjak dobře nefunguje) a je možné použít ccache, ale jak to přesně mají pořešeno, to nevím. rustc umí na žádost vyplivnout dependency info, takže možná že to je tam použito. Osobně se těším na něco rozumnějšího, např. podpora rustu v CMake by byla fajn (někde na githubu jsem viděl takové pokusy, uvidíme, co z toho bude...).
Můžeš mi tedy říct, do jaké oblasti je Rust vhodný, když to podle tebe není ta, kde se používá C?
To jsem neřekl, určitě to je ta, kde se používá C/C++ (víceméně), akorát nemá moc cenu se na něj snažit napasovat věci specifické pro C, jako třeba header files.
pavlix avatar 16.12.2014 22:58 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
CMake, jednoznačně.
Zkoušel jsem a jednoznačně ne. Je to sice zajímavá alternativa, ale i když odhlédnu od toho, že je v mnoha ohledech zcela zbytečně nekompatibilní, plnohodnotná náhrada to rozhodně není. Ale pokud budeš chtít zdůvodnění, tak to je na delší povídání. S autotools jsem natolik sžitý, že mnohou funkcionalitu používám
Nevim přesně, co myslíš tou "postupnou kompilací", každopádně použitelný build systém by imho měl umět ccache-like funkcionalitu bez externí berličky.
To není berlička, ale nástroj, a navíc má mnohem blíž ke kompilátoru než k build systému. Nejjednodušší způsob, jak může build systém něco takového podporovat je právě použít kompilátor přes ccache wrapper.
Jinak rustc jako takový používá pro sestavování autotools (z čehož nejsem moc nadšen a taky to buhvíjak dobře nefunguje)
Což ovšem asi nebude chyba autotools, že. Autotools rozhodně mají své rezervy, na které narážím celkem často, a za build systém, který by byl plnohodnotnou náhradou autotools, byl by srozumitelnější, a ještě by řešil ty věci, na které jsem narazil, bych velice ocenil.
a je možné použít ccache, ale jak to přesně mají pořešeno, to nevím
Jsou dva základní způsoby, jak použít ccache s autotools. Jeden je ./configure CC="ccache gcc", druhý je PATH=$PATH:/usr/lib64/ccache/bin.
To jsem neřekl, určitě to je ta, kde se používá C/C++ (víceméně), akorát nemá moc cenu se na něj snažit napasovat věci specifické pro C, jako třeba header files.

Já jsem zase neřekl, že se na něj mají napasovat header files, ale ptal jsem se jak se tam řeší ty věci, které se v C řeší přes header files. Shodit můj dotaz s odkazem, že mi na Rustu vadí, že není C, je dost laciné, vzhledem k tomu, že jsem nic takového ani nenaznačil. Jen na C kromě vlastností samotného jazyka oceňuj to, že kolem něj je tolik nástrojů, zkušeností a best practices, že nenarážíš na nové problémy, které ještě nikomu nestály za řešení. To, že se u Rustu nemám koho zeptat na základní otázky, abych dostal smysluplnou odpověď, tuto výhodu C jenom podtrhuje.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
17.12.2014 01:14 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Nejjednodušší způsob, jak může build systém něco takového podporovat je právě použít kompilátor přes ccache wrapper.
Pro build systém to určitě jednodušší je, uživatel toho build systému musí nainstalovat si a pochopit další nástroj...
Já jsem zase neřekl, že se na něj mají napasovat header files, ale ptal jsem se jak se tam řeší ty věci, které se v C řeší přes header files.
Což je konkrétně co?
Jen na C kromě vlastností samotného jazyka oceňuj to, že kolem něj je tolik nástrojů, zkušeností a best practices, že nenarážíš na nové problémy, které ještě nikomu nestály za řešení. To, že se u Rustu nemám koho zeptat na základní otázky, abych dostal smysluplnou odpověď, tuto výhodu C jenom podtrhuje.
Tak na to se celkem nedá moc říct, těch >40 let se jentak nedožene... Nicméně ironie je, že na začátku jsme se bavili o modulech, což je oblast, ve které C nenabízí vůbec nic...
pavlix avatar 17.12.2014 10:41 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Pro build systém to určitě jednodušší je, uživatel toho build systému musí nainstalovat si a pochopit další nástroj...
No jeje, tak si vývojář nainstaluje jeden balíček a pokud se nenastaví na cestu sám, tak to udělá.
Což je konkrétně co?
A to se mi zase teď vysvětlovat nechce, je to základní znalost stávajícího ekosystému, to se radši časem zeptám někoho, kdo trochu tuší.
Tak na to se celkem nedá moc říct, těch >40 let se jentak nedožene... Nicméně ironie je, že na začátku jsme se bavili o modulech, což je oblast, ve které C nenabízí vůbec nic...
A to je tak špatné chtít po novém nástroji, aby kromě nových vlastností zastával dobře i to, co se starým už umíme (a to není jen o nástroji, ale i o dostupnosti informací)? Na céčku je samozřejmě spousta věcí na hovno a člověk by tak rád ocenil alternativu, které je řeší. Ale u programovacího jazyka je to ještě horší než u těch autotools. Jejich vlastnosti člověk vždycky nějak naskriptuje, když má na takové věci dost času, ale základní věci prostě rozumně jako uživatel nenahradíš.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
17.12.2014 14:34 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
A to se mi zase teď vysvětlovat nechce, je to základní znalost stávajícího ekosystému, to se radši časem zeptám někoho, kdo trochu tuší.
:-D Neboj, vím co jsou headery, spíš mě zajímalo, v čem vidíš takovej přínos. Imho jsou spíš důsledkem způsobu, jak se C/C++ kompiluje (viz třeba nutnost psát include guards). Mít skupinu funkcí, struktury nebo třídy (když jde o C++) přehledně definované v headeru odděleně od implementace je celkem fajn, to zcela uznávám, nicméně stejně musí člověk používat všelijaké triky, aby implementaci skutečně důsledně oddělil, tj. různé opaque pointery ve strukturách, PIMPL v C++ a některé věci ani oddělit z headerů nemůžeš, např. generika implementovaná preprocesorovou magií v C a templaty v C++ ...
A to je tak špatné chtít po novém nástroji, aby kromě nových vlastností zastával dobře i to, co se starým už umíme (a to není jen o nástroji, ale i o dostupnosti informací)?
V zásadě ne, podle toho, co po tom nástroji vlastně chceš. Zatím jsme zaznamenal požadavek na možnost použití ccache, který s použitím vestavěného build systému splněn není, s použitím externího (autotools) ano.
pavlix avatar 17.12.2014 23:36 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Neboj, vím co jsou headery, spíš mě zajímalo, v čem vidíš takovej přínos
Aha. Ty totiž stále ještě předpokládáš, že požaduju po Rustu, aby fungoval v ohledu struktury zdrojáků jako C, ale to je nesmysl. Když se začal trochu víc propagovat Git jako náhrada Subversion, tak si člověk na každém rohu mohl přečíst, jak dělat věci, které dělal se stávajícím systémem, které věci nejdou, proč nejdou, a co s tím. Pokud mám vůbec chápat Rust jako možnou náhradu C, tak k tomu potřebuju mít v ruce něco podobného.
nicméně stejně musí člověk používat všelijaké triky, aby implementaci skutečně důsledně oddělil
Nejpraktičtější je chápat céčko jako nadstavbu nad assemblerem a bez dalších nástrojů (ať už knihoven nebo různých generátorů) od něj neočekávat zázraky. Na druhou stranu je údržba ABI v čistém C strašně jednoduchá díky tomu, že ten jazyk dělá v podstatě jenom to, co se mu řekne. Exportovat pointer na nedefinovanou strukturu a poskytnout k němu sadu funkcí je tak easy jak si to jenom umím představit :).
V zásadě ne, podle toho, co po tom nástroji vlastně chceš.
Zatím si chci pouze udělat představu, co umí a k čemu je vhodný.
Zatím jsme zaznamenal požadavek na možnost použití ccache
To je nesmysl. Jediný požadavek, který by s tím mohl souviset je rychlá kompilace, přičemž rád slevím z nároků u první kompilace daného projektu, ale rád bych, aby byla rychlá alespoň každá další kompilace, a to i v případě, že udělám změnu. To se v C zajišťuje především pomocí oddělené kompilace za použití hlavičkových souborů a někdy se hodí to spojit s ccache. Použít ccache je ale prostředek, nikoliv cíl, a pokud se ten prostředek použije špatně (například se cachuje po příliš velkých jednotkách), tak nemusí k naplnění cíle vůbec dojít.
s použitím vestavěného build systému
Popravdě řečeno jako céčkař nevidím důvod, aby měl kompilátor jazyka vestavěný build systém.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
18.12.2014 02:32 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Pokud mám vůbec chápat Rust jako možnou náhradu C, tak k tomu potřebuju mít v ruce něco podobného.
Úrovní abstrakce je Rust mnohem blíž k C++, D apod. než k C.

Jinak nějaké takové informace existují, zejména co se jazyka jako takového týče. Viděl jsem různé tutoriály typu "Rust for C++ programmers", "Rust for Rubyists" (nevim, proč zrovna Ruby, které má úplně jiné zaměření, ale w/e) a podobně. Informací týkajících se build systémů, toolingu a vůbec ekosystému okolo je zatím spíš míň a rychle zastarávají, což je dané hlavně tím, že tyhle věci teprve vznikají, takže bych je čekal spíš až s vydáním stabilní* verze jazyka a kompilátoru. Nicméně na ML a IRC jsou i teď obvkle ochotni vysvětlit/poradit.

*) stabilní ve smyslu že nepadá už je, mám na mysli stabilní ve smyslu zachovávající kompatibilitu (ABI, jazyka, atd.)
Na druhou stranu je údržba ABI v čistém C strašně jednoduchá díky tomu, že ten jazyk dělá v podstatě jenom to, co se mu řekne. Exportovat pointer na nedefinovanou strukturu a poskytnout k němu sadu funkcí je tak easy jak si to jenom umím představit :)
To je zásluha unixového ekosystému a taky téměř univerzálního rozšíření GCC nebo kompatibilních kompilátorů, rozhodně ne jazyka C, který pro ABI prakticky nehne prstem. Určitě to je fajn, to souhlas, ale jinak moc nevim, proč to píšeš :-D
Jediný požadavek, který by s tím mohl souviset je rychlá kompilace, přičemž rád slevím z nároků u první kompilace daného projektu, ale rád bych, aby byla rychlá alespoň každá další kompilace, a to i v případě, že udělám změnu.
Aha, hmm, tak na to aktuálně odpovím dost těžko, protože to závisí na X věcech (ja je kód rozdělen, jak/čim ho sestavuješ,...) a za chvíli se situace stejně změní. Jediný, co můžu říct celkem s jistotou, je, že výchozí build většího crate pomocí rustc je v současné době relativně pomalý a žere relativně dost RAM.
Popravdě řečeno jako céčkař nevidím důvod, aby měl kompilátor jazyka vestavěný build systém.
Já taky moc ne, ale někdy se to hodí, když potřebuješ rychle něco zkusit...
pavlix avatar 18.12.2014 09:02 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Úrovní abstrakce je Rust mnohem blíž k C++, D apod. než k C.
To může být i fajn v závislosti na tom, jak je to celé postavené. Já jsem si třeba kdysi myslel, jak je C++ super, než jsem narazil na hromadu drobností, které si radši v C udělám jinak. Třeba v Pythonu se mi zdaleka tolik nestává, že bych narážel na to, že mi ten jazyk překáží, i když má taky své nevýhody třeba i oproti tomu C a teď nemám namysli neefektivní běh programů ve VM, kde je vše v hashovacích tabulkách.
To je zásluha unixového ekosystému a taky téměř univerzálního rozšíření GCC nebo kompatibilních kompilátorů, rozhodně ne jazyka C
To, že je to jednoduché je právě vlastností programovacího jazyka C. Proto to taky píšu. To, že je kolem toho tooling, je samozřejmě dobře, ale o tom až tak nemluvím.
Aha, hmm, tak na to aktuálně odpovím dost těžko, protože to závisí na X věcech (ja je kód rozdělen, jak/čim ho sestavuješ,...)
Tak třeba v C ho můžu rozdělit, jak uznám za vhodné a sestavuje se tak, že největší zpomalené způsobí změna hlavičkového souboru, který se používá ve velké části projektu. zase na druhou stranu není potřeba vícekrát zpracovávat celý zdroják, který za tím hlavičkovým souborem leží a který je násobně větší. Ke kompilaci přichází v ůvahu GCC nebo LLVM, přičemž co vím, tak LLVM má být podstatně rychlejší, ale ještě jsem se nedostal k tomu ho trochu víc používat.

Tady se už skutečně nebavíme ani tak o jazyce jako o existujících nástrojích a jejich dalším směřování. Ono totiž asi není problém vzít zdroják, který popisuje jak API, tak ABI, tak implementaci, a první dvě z nich vygenerovat a uložit jakožto (třeba i binární) obdobu hlavičkového souboru pro další zpracování. Nebo použít nějakou úplně jinou techniku, která mě třeba ani nenapadne.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
14.12.2014 00:57 Zinger
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
pavlix < Surý
14.12.2014 13:40 odin
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
+1
14.12.2014 15:48 patrick
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
pavlix << Surý
14.12.2014 20:13 oryctolagus | skóre: 29 | blog: Untitled
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
pavlix << "Hello world!" << endl;
14.12.2014 21:18 LLeoš
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
jakoze pavlix je odpadni proud? souhlasim
pavlix avatar 14.12.2014 12:29 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Jinak díky za tučňáka.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
16.12.2014 14:17 lqw
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Slysel autor o funkci os.path.basename ? Nebo modulu argparse ? Doporucuju nahlednout do dokumentace ke standardni knihovne, at se zase nevymysli kolo ;-)

Pokud se uvazuje do budoucna o jakesi serioznosti, bylo by asi vhodne nasadit nektery z dostupnych parseru. Uvedene manualni parsovani ktere nepocita s nestandardnimi situacemi(format, znakova sada) a rozsiritelnosti, neni dostatecne.

Dal mi neni jasne proc je to napsane pro porad min rozsireny Python 3. Pouziti subgeneratoru tu je spis jako manyra nez nutnost. Jiny duvod ?

Btw. je po necem takovem vubec poptavka v Gentoo komunite ? Zatim jsem nezaznamenal ze by upstream zesilel a vetsina uz dodavala systemd unity.

pavlix avatar 16.12.2014 16:43 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Slysel autor o funkci os.path.basename?
Patches welcome.
Nebo modulu argparse?
Slyšel a nevidí důvod ho použít. Na jednoduché věci je zbytečný, na středně složité ho autor čas od času použije a na cokoli komplikovanějšího je úplně na hovno. Autor čas od času uvažuje, že si napíše vlastní parser na parametry příkazové řádky, který bude trochu lépe ovladatelný. Navíc je tu možnost, že bude program portován na nějakou ze starších verzí Pythonu.
Uvedene manualni parsovani ktere nepocita s nestandardnimi situacemi(format, znakova sada) a rozsiritelnosti, neni dostatecne.
Konkrétně?
Dal mi neni jasne proc je to napsane pro porad min rozsireny Python 3.
Python 3 považuju za skvělý jazyk na psaní prototypů podobných věcí, jakmile budu rámcově spokojený s funkcionalitou, nevidím problém to portovat na Python ≥ 2.6, ve chvíli, kdy se ukáže, že je k tomu důvod.
Btw. je po necem takovem vubec poptavka v Gentoo komunite?
Vím minimálně o jednom člověku z Gentoo komunity, který to chce využívat, a to jsem já. Vivat open source!
Zatim jsem nezaznamenal ze by upstream zesilel a vetsina uz dodavala systemd unity.
Považuju naopak za velice rozumné, když tak upstream učiní a do několika projektů už jsem je sám poslal a byly přijaty. Je to nejen krok k lepší podpoře systemd, kdy maintaineři distribuce můžou odškrtnout další položku jako vyřešenou upstreamem, ale i ukázka, jak se má služba používat. To ve výsledku slouží nejen jako příklad lidem, ale lze z toho při troše snahy generovat hotové skripty, jako to dělám já. Jako maintainer balíků pro více než jednu distribuci to dokážu ocenit.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
16.12.2014 22:43 jas | skóre: 13 | blog: blag
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Slyšel a nevidí důvod ho použít. Na jednoduché věci je zbytečný, na středně složité ho autor čas od času použije a na cokoli komplikovanějšího je úplně na hovno. Autor čas od času uvažuje, že si napíše vlastní parser na parametry příkazové řádky, který bude trochu lépe ovladatelný. Navíc je tu možnost, že bude program portován na nějakou ze starších verzí Pythonu.

Nejaky priklad, co take zasadne tam chyba? Samozrejme nejde spravit uplne vsetko, ale to vidim skor ako vyhodu -- vyzaduje si to isty navrh UI a je tam ista konzistencia medzi tym ako vyzera vstup python scriptov, co pouzivaju argparse.

btw: Pre starsi python (2.3+) je argparse dostupny vo forme externej kniznice.

pavlix avatar 16.12.2014 23:35 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Nejaky priklad, co take zasadne tam chyba?
Je to takové celkově neovladatelné. Přijde mi, že od toho nemůžeš chtít nic víc než chtěl autor. Vyžaduje to primitivní návrh UI, což vyhovuje u běžných příkazů, která max implementují nějakou tu volbu. Zrovna na nástroj typu systemd2rc by to stačilo. Ale tuším, že jsem měl problém tam implementovat i něco, co by fungovalo aspoň trochu ve stylu iproute2 nebo git.
btw: Pre starsi python (2.3+) je argparse dostupny vo forme externej kniznice.
Externí závislosti bych zrovna v případě systemd2rc rád omezil na minimum, ale dobrá poznámka.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Josef Kufner avatar 17.12.2014 00:03 Josef Kufner | skóre: 68
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Velice pěkný je docopt, který byl přepsán i pro PHP. Nástroje ve stylu Gitu to umí. Programátor napíše nápovědu a ono ji to rozparsuje a použije ke zpracování parametrů na příkazové řádce.
Hello world ! Segmentation fault (core dumped)
pavlix avatar 17.12.2014 10:42 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Díky, někdy zkusím a napíšu, jak mi to sedlo.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Jakub Lucký avatar 18.12.2014 11:55 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Nebo použít Click od Armina Roachera. S tím jsem si hrál a přišlo mi to zcela geniální
If you understand, things are just as they are; if you do not understand, things are just as they are. (Zen P.) Blogísek
Josef Kufner avatar 18.12.2014 12:31 Josef Kufner | skóre: 68
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Docopt má výhodu v tom, že byl přepsán pro PHP, neboť Python nepoužívám ;-) A havně se mi líbí, že napíšeš dokumentaci a už není třeba psát implementaci takto zdokumentovaného API.
Hello world ! Segmentation fault (core dumped)
pavlix avatar 18.12.2014 12:49 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
s/implementaci/boilerplate/
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Jakub Lucký avatar 18.12.2014 17:53 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Tomu říkám výhoda... :-)

No, ono by to z toho Clicku asi šlo taky generovat, ani nevím, možná to umí...
If you understand, things are just as they are; if you do not understand, things are just as they are. (Zen P.) Blogísek
Bystroushaak avatar 23.12.2014 15:09 Bystroushaak | skóre: 33 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Velice pěkný je docopt, který byl přepsán i pro PHP. Nástroje ve stylu Gitu to umí. Programátor napíše nápovědu a ono ji to rozparsuje a použije ke zpracování parametrů na příkazové řádce.
Docopt imho nemůže plně konkurovat argparse. Je to dobré na různé jednodušší interface, ale selhává tam kde chceš validaci, defaultní hodnoty a všelijaké vymoženosti, které jsem si už zvykl považovat za standard.
My sustenance is information. My interventions are hidden. I increase as I learn. I compute, so I am.
17.12.2014 22:23 jas | skóre: 13 | blog: blag
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd

Hm, nemylis si to s getopt? Ten git-like UI (iproute2 UI nepoznam) skutocne nedaval a mal aj par dalsich nevyhod (napr. nedokazal rozparsovat len zname argumenty a pod.), ale s argparse sa git-like UI da implementovat celkom pohodlne (cca len staci pridat subparsere) + vdaka ciastocnemu rozparsovaniu je mozne celkom lahko poskladat viacero parserov, pripadne doplnit nejaku nestandardnu funkcionalitu.

pavlix avatar 18.12.2014 00:01 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Podle mě jsou subparsery zlo. Jsou až příliš oddělené a nelze pak dobře řešit tak triviální věci jako že nějako command je default a podobné. Už je to dlouho, co jsem to zkoumal, zkoumal jsem to dost pečlivě, a došel jsem k závěru, že je to vyhovující nástroj jen na základní věci a když z toho chce člověk vymačkat víc, tak stráví hromadu času nad věcmi, které by jinak sám implementoval na pár řádků a měl hotovo.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
19.12.2014 19:16 jas | skóre: 13 | blog: blag
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd

Default command v zaklade nie je, ale to nie je az tak velky problem pri argparse. Hlavna vyhoda argparse je snad v tom, ze je dost benevolentne k jeho vstupu a dovoluje robit s nim dalej (prave na rozdiel od optparse), takze mozes kludne implementovat veci nad argparse, ktore argparse nezvlada na par riadkov...

V tomto pripade teda pred volanim parse_args staci nieco ako


if sys.argv[0] not in allowed_commands:
    sys.argv =  [default_command] + sys.argv

btw: Mne pride, ze subparsere su mozno az prilis malo oddelene, napr. zapisuju argumenty do jednej namespace.

pavlix avatar 19.12.2014 22:04 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
V tomto pripade teda pred volanim parse_args staci nieco ako
1) To něco bude muset být značně odlišné.

2) Nevím proč by v mém software přímý přístup k argv měl vadit, zatímco u software s argparse by měl být v pořádku.
zapisuju argumenty do jednej namespace.
Sám si to už ani nepamatuju, ale to mi teda taky přijde úchylné, i když funkčně to asi není až tak zásadní.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
22.12.2014 13:07 jas | skóre: 13 | blog: blag
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
1) To něco bude muset být značně odlišné.

Ci to bude musiet byt znacne odlisne zalezi od designu programu, ale pokial argumenty beru az podprikazy, tak to alebo nieco velmi podobne dostacuje.

2) Nevím proč by v mém software přímý přístup k argv měl vadit, zatímco u software s argparse by měl být v pořádku.

Nevadi, chcel som prave povedat len to, ze argparse je proste lahko rozsiretelne a da sa nan pozerat len ako na pomocny nastroj, pouzivat ho v pripadoch, ked dava nejaku pridanu hodnotu zadarmo a o zvysok parsovania argumentov sa moze clovek starat rucne.

pavlix avatar 22.12.2014 13:33 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Nevadi, chcel som prave povedat len to, ze argparse je proste lahko rozsiretelne a da sa nan pozerat len ako na pomocny nastroj, pouzivat ho v pripadoch, ked dava nejaku pridanu hodnotu zadarmo a o zvysok parsovania argumentov sa moze clovek starat rucne.
Až budu mít čas, vyzkouším to.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
17.12.2014 09:36 JS1 | skóre: 2 | blog: intuition_pump
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Jsi zbytecne konzervativni, a ten ton.. Proc neco dneska psat pro Python 2, kdyz clovek nemusi?
Bystroushaak avatar 23.12.2014 15:08 Bystroushaak | skóre: 33 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Protože je to pořád "průmyslový standard" a trojka nemá kromě pár vylepšení moc co nabídnout. Programuju v pythonu profesionálně a nikde kde mi nabízeli práci o trojce ani neuvažovali.
My sustenance is information. My interventions are hidden. I increase as I learn. I compute, so I am.
pavlix avatar 23.12.2014 16:43 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: systemd2rc: Generování initskriptů ze systemd
Souhlasím, že je dvojka průmyslový standard, ale že nemá co nabídnout, je podle mě kravaťácký pohled. Podle mě narovnává, co se ve dvojce porůznu zvrhlo a tím je pro vývojáře docela dost atraktivní, zvlášť, když se do značné míry daří jeho vlastnosti backportovat na 2.x a pokud by vývojářům Pythonu trochu víc záleželo na prosazení trojky jako průmyslového standardu, tak by ta kompatibilita byla ještě lepší. Zda na to ještě dojde, ukáže čas.

Osobně jsem se bavil s mnoha lidmi ohledně nasazení dvojky a trojky a zpravidla je situace podstatně složitější než jenom že by o trojku v podstatě neměli zájem. Navíc za ten průmyslový standard trochu můžou i průmysloví dodavatelé software, kteří nemají problém s trojkou ještě chvilku počkat a nabízet ji jen jako nadstavbu a nikoli jako integrální součást svých produktů.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.