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

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 4
    včera 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 15
    včera 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

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

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | IT novinky

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    22.4. 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    22.4. 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 2
    22.4. 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    22.4. 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    KDE Plasma 6
     (72%)
     (10%)
     (2%)
     (17%)
    Celkem 697 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Lazarus 1.6.0

    Byla vydána verze 1.6.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus. Nejnovější verze Lazarusu je postavena na Free Pascal Compileru 3.0.0. Podrobnosti v poznámkách k vydání.

    20.2.2016 14:15 | Ladislav Hagara | Nová verze


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

    Komentáře

    Vložit další komentář

    20.2.2016 14:17 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Škoda, že ještě není dodělaný ten customdrawn LCL interface. Ty wrappery kolem GTK a Qt, to je hrozný.
    Petr Tomášek avatar 20.2.2016 16:21 Petr Tomášek | skóre: 39 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Asi se budu opakovat, ale nechápu, proč každý prd potřebuje své vlastní vývojové prostředí...
    multicult.fm | monokultura je zlo | welcome refugees!
    Blaazen avatar 20.2.2016 16:36 Blaazen | skóre: 24 | blog: BL
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Nejspíš proto, že to vývojáři chtějí a sami používají. Nebo úplně přesně nerozumím. V 90. letech byly populární Delphi a pár lidí chtělo něco podobného na Linuxu. Kylix od Borlandu přišel teprve později a taky brzy skončil. Lazarus má za sebou 15 let vývoje a funguje dobře, je celkem lightweight, ale hlavně z jednoho projektu můžeš dělat nativní aplikaci pro Qt, Gtk, Win32 nebo Carbon pro (MacOS); podobně fungují wxWidgets. To mají všechno zahodit a udělat jen nějakej blbej plugin do Eclipse?
    pavlix avatar 20.2.2016 16:49 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    ale hlavně z jednoho projektu můžeš dělat nativní aplikaci pro Qt, Gtk, Win32 nebo Carbon pro (MacOS)
    Jak to souvisí s tím, že máš v systému další samostatný textový editor a pár věcí okolo na další programovací jazyk?
    To mají všechno zahodit a udělat jen nějakej blbej plugin do Eclipse?
    Tak pokud jim Eclipse připadá super, tak proč ne. Pokud jim připadá lepší mít vlastní, pak zase nevidím důvod se za každou cenu omezovat na FreePascal. Ale třeba je někde na webu dobré zdůvodnění, proč je můj dojem špatný.
    podobně fungují wxWidgets.
    To je taky IDE? Na webu píšou, že je to GUI library, tedy toolkit.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Blaazen avatar 20.2.2016 17:14 Blaazen | skóre: 24 | blog: BL
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Jak to souvisí s tím, že máš v systému další samostatný textový editor a pár věcí okolo na další programovací jazyk?
    V systému máš to, co si tam nainstaluješ. Někomu stačí nano, někdo si nainstaluje Lazarus a pak nepotřebuje Emacs, Sublimetext nebo Eclipse.
    Tak pokud jim Eclipse připadá super, tak proč ne. Pokud jim připadá lepší mít vlastní, pak zase nevidím důvod se za každou cenu omezovat na FreePascal. Ale třeba je někde na webu dobré zdůvodnění, proč je můj dojem špatný.
    Evidentně jim Eclipse tak super nepřipadá, když pracují na vlastním IDE/RAD a vydali novou verzi.
    A podpora jiných jazyků? Lazarus není jen textový editor + nějaká kontrola syntaxe a automatické doplňování klíčových slov. Je tam editor formulářů, který je s tím provázaný. Vizuální komponenty jsou v udělané v určitém objektovém modelu a používá se RTTI, nevím k čemu by byla třeba podpora C nebo Javy, to by zaintegrovat nešlo.
    Tomáš Bžatek avatar 21.2.2016 21:47 Tomáš Bžatek | skóre: 29 | Brno
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0

    Lazarus je jednak widget toolkit (analogie s wxWidgets) a taky IDE predevsim s vlastnim GUI designerem. Ano, mohl bys to prebouchat jako pluginy do Eclipse nebo Netbeans, ale bylo by to prilis mnoho prace a narazel bys na ruzne omezeni pluginove architektury zminenych IDE, abys dosahl funkcionality alespon blizici se Lazarusu nebo Delphi.

    Koupim litajiciho tucnaka
    xkucf03 avatar 20.2.2016 17:15 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    To mají všechno zahodit a udělat jen nějakej blbej plugin do Eclipse?

    Když už, tak spíš do Netbeans :-)

    Ale chápu, že vlastní IDE už dlouho, že se jim ho nechce zahazovat.

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Josef Kufner avatar 20.2.2016 17:17 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Zrovna pod tímhle projektem to není úplně vhodná poznámka, neboť Delphi tu bylo daleko dříve než většina současných vývojových prostředí a také se to dosti liší od všeho ostatního.
    Hello world ! Segmentation fault (core dumped)
    21.2.2016 00:38 Radek Hladik | skóre: 20
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Odpovím jednoduše. Lazarus se snaží napodobit Delphi tím, že prováže IDE s vlastním programovacím jazykem a sadou komponent tak, že se bude programovat snáze a rychleji - proto se tomu říká RAD (Rapid Application Development).

    Nevím přesně jak Lazarus, ale Delphi dotáhly propojení na takovou úroveň, že například ladění aplikací je neskutečně pohodlné. Pracoval jsem s Eclipse+Java, ale komfort ladění se nedal ani srovnat. Například změna vykonávaného řádku jednoduchým přetažením myši je věc, která je neskutečně návyková. Nebo uprostřed vykonávání kódu potkáte pole bytů, které byste si rádi uložili do souboru: stači otevřit obyčejný Evaluate/Modify dialog a rovnou psát: TBytesStream.Create(bytes).savetofile..... a ono se to vykoná v kontextu právě aktuálního stavu programu... Chápu, že to všechno nejsou nějaké super zázraky, ale je to všechno pohodlně zabalené a vžydcky po ruce...
    xkucf03 avatar 21.2.2016 10:10 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    stači otevřit obyčejný Evaluate/Modify dialog a rovnou psát: TBytesStream.Create(bytes).savetofile..... a ono se to vykoná v kontextu právě aktuálního stavu programu...

    V Netbeans tohle máš, včetně napovídání. Eclipse to tuším umí taky.

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    21.2.2016 10:41 jb
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    V čem univerzálním bys tedy psal aplikaci pro Delphi/Lazarus, aby byl vývoj stejně rychlý? Předpokládejme, že máš rozsáhlý projekt (mnoho okýnek, mnoho knihoven), který je neekonomické přepisovat do dnes rozumnějšího jazyka.
    20.2.2016 21:21 štěty
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Ne, hlavně ne pascal - nejhorší jazyk co kdy existoval!
    20.2.2016 21:38 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Pascal je dobrý jazyk. Akorát FPC není moc dobré na optimalizace. Často generuje naprosto zbytečné instrukce jako
    lea rax,[rbp+0x20]
    mov rbx, rax
    ; pracuj s rbx a už nešahej na rax
    
    Vygeneruje vám zbytečnou mov instrukci, přestože s hodnou v rax už vůbec nepracuje. Taky má pomalé výjimky, používá k tomu setjmp() a longjmp(). V changelogu 3.0 se sice píše, že už používá "nativní výjimky", ale to asi pouze v případě windows, v linuxu tam pořád generuje setjmp().
    21.2.2016 08:30 Radovan
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Naopak, jeden z nejlepších. Špatný je akorát v očích těch, kteří se ho pokoušeli nacpat do věcí kam se nehodí ;-)
    21.2.2016 10:53 jb
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Pascal je sice trochu ukecaný, ale pracovalo se v něm parádně. V Delphi mě vždy udivovala rychlost kompilace. Na jednojádrovém Pentiu MMX 233MHz se to stále kompilovalo rychleji, než na dnešním stroji C++.

    FPC a Lazarus je z mého pohledu taková srandička. Pietně to asi stále vyvíjí, ale profesionálně to použít nejde. Zkoušel jsem na to migrovat nějaké své staré projekty z Delphi 7. Kód by potřeboval nemalé úsilí na předělání, aby šel vůbec zkompilovat. Zkoušel jsem i jednoduchý prográmek úplně od nuly a taky jsem se kvůli něčemu vzteknul. Zkoušet novou verzi už nemám sílu, protože už nemám aktivní projekty v Delphi.
    Hans1024 avatar 21.2.2016 11:32 Hans1024 | skóre: 5 | blog: hansovo
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Vsechno se kompiluje rychleji nez C++ :-D
    Veni, vidi, copi
    21.2.2016 13:43 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Krom Rustu :-/
    21.2.2016 14:09 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    No rust je stejně nepoužitelnej pro každý trochu seriózní projekt, kde jde o bezpečnost uživatelových dat ... protože si jen tak náhodně může hodit abort() při selhání alokace.
    21.2.2016 17:07 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    V novějších verzích se dá OOM handler nastavit a dají se naštěstí už taky použít vlastní alokátory.
    21.2.2016 23:11 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Jestli to ale neprovede stack unwind a nespustí destruktory (nebo jak tomu říkaj, ten Drop trait?), tak to může být stále problém, že nebude dost paměti na záchranu dat. Ale určitě lepší než přímý abort().

    Z tvého komentáře soudím, že se o rust zajímáš, není nějaký použitelný GUI toolkit, který není jen nějaký wrapper na gtk/qt?
    xkucf03 avatar 21.2.2016 23:22 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    GUI toolkit, který není jen nějaký wrapper

    Proč proboha zavádět další? Aby mohla každá aplikace vypadat jinak? (od toho jsou přece styly/témata/look-and-feel…)

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    22.2.2016 00:17 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Jak další? Protože nedostačují. GTK aplikace náhodně hází abort() při OOM, takže je nepoužitelná pro každou seriózní aplikaci. Qt zase při OOM leakuje, protože není exception-safe, nebo vám vesele zanechá zamčené mutexy, které už nikdy neodemkne. Dlouho se sháním po toolkitu, který je napsaný pořádně pro daný programovací jazyk. Tj, když je v C++, očekávám, že je exception safe, nebo výjimky sám o sobě vyhodit nemůže (např. používá new(std::nothrow)). Je-li napsán v C, očekávám, že kontroluje návratové hodnoty z malloc() a když selže, tak mi probublá třeba ENOMEM chybu až k místu volání, s tím, že já se pak můžu zařídit podle aplikace (záchrana dat, či abort, pokud záchrana není pro danou aplikaci třeba, ale hlavně, nechat to na mně a né samovolně volat abort()).
    xkucf03 avatar 22.2.2016 00:41 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Rozdělení aplikace na UI a démona

    A co rozdělit aplikaci na dvě části (procesy)? A když dojde k sestřelení GUI, to důležité zůstane běžet na pozadí a můžeš se k tomu připojit z jiného UI nebo to v klidu samo doběhne, uloží soubory, uvolní zdroje…

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    22.2.2016 00:52 Jardík
    Rozbalit Rozbalit vše Re: Rozdělení aplikace na UI a démona
    To nemusí být špatné řešení. Přijde mi to ale jako 'hack' kvůli něčemu, co mohlo být na nižší úrovni vyřešeno lépe.
    pavlix avatar 21.2.2016 23:27 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Co je špatného na abort? Když mi chcípne baterka v laptopu nebo vypadnou pojistky u desktopu, tak se taky žádné destruktory nevolají.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    22.2.2016 00:00 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Na abort() je špatně hodně věcí. Pokud vám jde alespoň trochu o data, tak si nemůžete dovolit použít jazyk, či knihovnu, kde je nenastavitelně volán abort(), když selže alokace. Přitom vzpamatovat se z takové věci nemusí být nemožné, třeba zavřu všechny soubory, co se nezměnily a tím dostanu třeba haldy paměti, která mi bude stačit na záložní uložení neuložených dat, a nebo můžu fungovat dát s méně soubory. A srovnávat to s pojistkami je mimo, tam je zase řešení jiné (záložní zdroj třeba).
    pavlix avatar 22.2.2016 00:14 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Na abort() je špatně hodně věcí.
    Třeba?
    Pokud vám jde alespoň trochu o data, tak si nemůžete dovolit použít jazyk, či knihovnu, kde je nenastavitelně volán abort(), když selže alokace.
    To už jsi psal. Chápu, že v některých případech může mít smysl selhávající alokaci ošetřit, ale příklad s náhlým překotným ukládáním dat mě tak úplně nepřesvědčil.
    Přitom vzpamatovat se z takové věci nemusí být nemožné, třeba zavřu všechny soubory, co se nezměnily a tím dostanu třeba haldy paměti, která mi bude stačit na záložní uložení neuložených dat, a nebo můžu fungovat dát s méně soubory.
    Podle mě je hlavní problém mít vůbec neuložená data, bez kterých se neumím obejít. Volání abort() tak jenom ukáže už existující problém.
    A srovnávat to s pojistkami je mimo, tam je zase řešení jiné (záložní zdroj třeba).
    Není to mimo. A nesrovnával jsem to pouze s pojistkami. Je jedno, jestli je to baterka v laptopu, pojistky, vykopnutý kabel z UPS nebo pád systému. Software, který udržuje důležitá data a nestará se o jejich konzistenci a včasné uložení, není dobrý software.

    Očekával jsem proti abort() trochu silnější argumenty.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    22.2.2016 00:25 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Ale proč abort()? Třeba otevírám nový, velký, soubor a prostě nemám dostatek paměti. Proč by mi měl program kvůli takový věci spadnout, když prostě můžu soubor neotevřít? Nebo proč by mi měl spadnout 10 sekund na to, protože už nebudu mít paměť na zobrazení tlačítka? Můžu nepotřebné soubory zavřít, čímž dostanu více paměti, a inforomovat uživatele, co se stalo. A když se nepodaří ani to, prostě urobím zálohy a končím.

    O uložení se třeba podle typu stará uživatel aplikace (příklad editor obrázků), ale proč bych mu neudělal zálohu, když je to v mé moci, a místo toho bych ho měl připravit i třeba o půl minuty práce a musím spadnout?
    pavlix avatar 22.2.2016 07:50 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Ale proč abort()? Třeba otevírám nový, velký, soubor a prostě nemám dostatek paměti. Proč by mi měl program kvůli takový věci spadnout, když prostě můžu soubor neotevřít? Nebo proč by mi měl spadnout 10 sekund na to, protože už nebudu mít paměť na zobrazení tlačítka? Můžu nepotřebné soubory zavřít, čímž dostanu více paměti, a inforomovat uživatele, co se stalo. A když se nepodaří ani to, prostě urobím zálohy a končím.
    Proč ne, to je validní use case. Ale zase na druhou stranu na Linuxu nejčastěji dopadneš tak, že všechny alokace projdou, ale systém v jednu chvíli tvoji appku nemilosrdně sestřelí.
    O uložení se třeba podle typu stará uživatel aplikace (příklad editor obrázků), ale proč bych mu neudělal zálohu, když je to v mé moci, a místo toho bych ho měl připravit i třeba o půl minuty práce a musím spadnout?
    A proč mu neděláš zálohu průběžně, nejlépe ve formě nějakého logu jako to dělá vim, abys ho ochránil i proti mnohem častějším problémům?
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    little.owl avatar 22.2.2016 11:03 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Pouziti abort() pro osetreni OOM situace snad nejbeznejsi zpusob osetreni na Linuxu, a to vcetne beznych command line toolu a pokud k tomuto dojde, jedna se o terminalni stav a je lepsi aplikaci ukoncit. V Linuxu abort() zpusobi SIGABRT a nic vam nebrani ukladani exitujicich dat osetrit. K gtk - GLib tusim nabizi vedle funkce g_malloc(), ktera vola abort() v pripade selhani, take g_try_malloc(), ktera to nevola.
    Přitom vzpamatovat se z takové věci nemusí být nemožné, třeba zavřu všechny soubory, co se nezměnily a tím dostanu třeba haldy paměti, která mi bude stačit na záložní uložení neuložených dat, a nebo můžu fungovat dát s méně soubory.
    Na Linuxu velmi nepravdepodobne.
    A former Red Hat freeloader.
    22.2.2016 13:41 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Na Linuxu velmi nepravdepodobne.
    Pokud jde o overcommit, tak ten jde vypnout.
    22.2.2016 13:56 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Jde, ale tvůj program by stejně měl předpokládat, že je zapnutej, protože naprostá většina uživatelů ho nechá zapnutej...
    22.2.2016 00:17 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Jestli to ale neprovede stack unwind a nespustí destruktory (nebo jak tomu říkaj, ten Drop trait?), tak to může být stále problém, že nebude dost paměti na záchranu dat. Ale určitě lepší než přímý abort().
    Pochybuju, že to dělá stack unwind, popravdě, ono člověku v tom handleru stejně moc nezbude nic jinýho než abortnout. Jenže ono je to celkově problematické, jsou vůbec programy, které se v OOM situaci chovají korektně?

    Pokud člověk OOM očekává - např. alokuje místo pro nějaká potenciálně obrovská data (rastrová grafika,...) - může v Rustu použít std::heap::allocate, zkontrolovat, jestli alokace proběhla, a pokud ano, udělat z toho bežnej boxovanej pointer nebo něco takového.
    Z tvého komentáře soudím, že se o rust zajímáš, není nějaký použitelný GUI toolkit, který není jen nějaký wrapper na gtk/qt?
    Slyšel jsem o Conrodu, ale zkušenost s tím nemám.

    Příležitostně přispívám do Gtk-rs, čili binding pro GTK, IMHO to je dobrá cesta.
    22.2.2016 00:44 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Pokud člověk OOM očekává - např. alokuje místo pro nějaká potenciálně obrovská data (rastrová grafika,...) - může v Rustu použít std::heap::allocate, zkontrolovat, jestli alokace proběhla, a pokud ano, udělat z toho bežnej boxovanej pointer nebo něco takového.
    Problém ale je, že se taková alokace může podařit jen-tak-tak a pak selže jiná alokace někde jinde a dostanu abort(). Z toho důvodu použití alokátoru není záchrana před pádem.
    Příležitostně přispívám do Gtk-rs, čili binding pro GTK, IMHO to je dobrá cesta.
    Třeba teď jsem koukal na ten Gtk-rs a vidím v příkladu
    let window = gtk::Window::new(gtk::WindowType::Toplevel).unwrap();
    
    Proč to vůbec takto dělat, aby to vracelo Option<> nebo Result<>, když samotné gtk_window_new "nemůže" selhat. Tím "nemůže" myslím právě to, že se vytváří GObject a to "nemůže" selhat. A to proto, že pokud k selhání dojde, je to ze strany glib automatický abort(). Tudíž takový wrapper přidává programátorovi naprosto zbytečnou práci (unwrap()), a falešný pocit, že může ošetřit selhání.

    22.2.2016 13:55 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Problém ale je, že se taková alokace může podařit jen-tak-tak a pak selže jiná alokace někde jinde a dostanu abort(). Z toho důvodu použití alokátoru není záchrana před pádem.
    No, anebo neselže nic, ale v nějaký chvíli ti proces zabije OOM killer a stejně s tím nic neuděláš.

    Stejně mi ale není jasný, jak bys to chtěl zpracovávat, i kdybys mohl. Třeba dejme tomu, že ti aplikace v C++ odchytí bad_alloc. Co s tím budeš dělat? Nejspíš na to budeš mít handler někde dost vysoko (tzn. dost blízko main()) a tam ti stejně celkem nezbude nic jinýho, než aplikaci ukončit, protože kontext, ve kterém chyba nastala, je stejně už dávno ztracen. A data bys mohl zachránit jedině tak, že by se zapisovaly v destruktorech, ale to mi přijde jako dost prasárna - destruktor by neměl provádět I/O operace.

    Jedině, že bys měl ošetření bad_alloc na každým kroku, což by asi tak zdesetinásobilo velikost kódu, to mi nepřijde prakticky reálně možné.

    Navíc ve chvíli, kdy systému dojde pamět, tak je systém stejně celkově naprosto nepoužitelný, protože prakticky všechno stojí zablokováno na I/O swapu a všechno je šíleně pomalý a uživatel ti stejně nejspíš mašinu vyresetuje než stihneš něco smysluplného udělat. Snažit se v té chvíli o nějaké I/O na záchranu dat je IMHO naprosto marné.

    Takže klidně používej Gtk nebo Qt a OOM neřeš, nemá to cenu ;-) Důležitý data si vyzálohuj dopředu, jak píše pavlix...
    Proč to vůbec takto dělat, aby to vracelo Option<> nebo Result<>, když samotné gtk_window_new "nemůže" selhat.
    Snažil jsem se to najít ve zdrojácích, ale tam už to není. Zřejmě v nové verzi ten Option/Result odstranili. Příklady používají stabilní verzi z crates.io, takže tam to asi ještě neprobublalo...
    mirec avatar 22.2.2016 16:31 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Třeba dejme tomu, že ti aplikace v C++ odchytí bad_alloc. Co s tím budeš dělat?

    Preto sa občas alokuje časť pamäte (od pár kB po pár MB), ktorá sa pri výskyte chyby pri alokácii uvoľní aby sa program mohol bezpečne ukončiť s uložením dát, alebo aby mohol niečo zatvoriť a podobne.

    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    22.2.2016 16:51 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Preto sa občas alokuje časť pamäte (od pár kB po pár MB), ktorá sa pri výskyte chyby pri alokácii uvoľní
    Spíš použije na bezpečné ukončení, ne?

    Jinak jsem dost skeptický k tomu, že by to v praxi skutečně fungovalo, zejména na běžným desktopu - asi by musel být jednak vypnut overcommit a taky by ten program musel ukládat na jiný device než ten se swapem, protože ten bude IMHO beznadějně vytížen... Musel by tak mít stěští a být včas naschedulován... Prostě, to celkově moc nevidim.

    Vy jste to někdo testoval?
    pavlix avatar 22.2.2016 16:58 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Mně přijde, že se tu řeší úplné kraviny. Když se člověk podívá na reálný software, tak má problémy úplně jinde. Navíc netestovaná feature je kolikrát horší než neexistující a tohle v praxi nikdo testovat nebude a už vůbec ne dostatečně. Nehledě na to, že je to relativně málo častý problém, který jde spláchnout řešením daleko častějších problémů.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    22.2.2016 18:38 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Hlavně Jardík řeší kraviny :-D
    mirec avatar 22.2.2016 17:34 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0

    Ja osobne som to nikdy nerobil, ani neviem ako vyradiť z činnosti OOM, ktorý by to zabil tak či tak. Táto technika o ktorej píšem sa používala na systémoch s primitívnymi OS, v súčasnosti si to možno viem predstaviť niekde na embedded, kde to má človek celé pod palcom.

    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    little.owl avatar 22.2.2016 20:32 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    v súčasnosti si to možno viem predstaviť niekde na embedded, kde to má človek celé pod palcom.
    Tam nepouzijete dynamickou alokaci, jinak to nemate az tak 'pod palcom'.
    A former Red Hat freeloader.
    pavlix avatar 22.2.2016 07:56 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Pochybuju, že to dělá stack unwind, popravdě, ono člověku v tom handleru stejně moc nezbude nic jinýho než abortnout. Jenže ono je to celkově problematické, jsou vůbec programy, které se v OOM situaci chovají korektně?
    Neznám a u běžných aplikací ani nevěřím. Nemá smysl se patlat s kódem pro OOM, který nikdy nikdo nebude pořádně testovat. Myslím, že je v aplikacích už dost problémů například s ošetřením signálů, na které by se dalo zaměřit. Failující malloc na Linuxu, který při OOM střílí procesy jak na běžícím páse a přednostně střílí ty, které potřebuješ, bych už vůbec neřešil.

    Podle mě by mělo maximálně smysl mít nějaký oom nebo dokonce pre-oom handler, který by pracoval nezávisle na kódu, který se snaží alokovat. Jeslti glibc nic takového nemá, dalo by se to tam jednoduše dohackovat.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    pavlix avatar 22.2.2016 08:02 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Mimochodem...

    Takže očividně když se hodně chce, tak můžeš i v současné GLib failed allocation ošetřit.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    22.2.2016 18:25 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Píše se v dokumentaci glib: "g_mem_set_vtable is deprecated, g_mem_set_vtable is stub, do not use".
    little.owl avatar 22.2.2016 11:06 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    +1
    A former Red Hat freeloader.
    pavlix avatar 22.2.2016 12:47 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Až na tu mechanickou paměť, která mě donutila napsat glibc místo GLib. :)
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    22.2.2016 18:43 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Jinak já chápu, že to spousta aplikací nepotřebuje řešit, nebo prostě neřeší, to je na autorovi aplikace. Ale pokud píšu nějakou knihovnu, kterou bude někdo jiný používat, tak bych ho neměl omezovat abort()em kvůli zjednodušení mé implementace, ale měl bych mu dát možnost to ošetřit. Má knihovna se pak hodí pro oba účely. Pokud však dám abort() je dobrá jen pro jeden a dochází k infikaci všech dalších knihoven používající tuto (příklad právě glib).
    22.2.2016 19:06 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Ok, ale proč to řešíš? Nechceš to řešit, až když to pro tebe skutečně bude problém?
    22.2.2016 21:01 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Protože já nejsem schopný nic naprogramovat, když to nemůžu naprogramovat tak, aby se mi to zdálo dokonalé. Třeba jak nádherně mi můj BurnApp začal už vypalovat ISO obrazy a nakonec jsem to všechno smazal včetně všech materiálů, co jsem studovat kvůli tomu. A to proto, že v linuxu nešlo zabezpečit, že mi jiná aplikace vypalování nepodělá tím, že zařízení otevře současně s vypalováním a zničí to. Stejně tak nemůžu v aplikaci použít knihovnu, o které vím, že je "rozbitá". Ve výsledku nemůžu naprogramovat vůbec nic, a můžu jen komentovat cizí projekty.
    22.2.2016 21:40 xm | skóre: 36 | blog: Osvobozený blog | Praha
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Perfect is the enemy of good.
    Svoboda je tím nejdůležitějším, co máme. Nenechte se o ní připravit, podporujte Pirátskou stranu!
    pavlix avatar 22.2.2016 21:49 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    +1

    Ale taky s tím někdy bojuju.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    23.2.2016 23:06 xm | skóre: 36 | blog: Osvobozený blog | Praha
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Sice tady takhle poučuju, ale občas s tím taky sám bojuju :-)
    Svoboda je tím nejdůležitějším, co máme. Nenechte se o ní připravit, podporujte Pirátskou stranu!
    24.2.2016 09:34 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    22.2.2016 22:57 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Protože já nejsem schopný nic naprogramovat, když to nemůžu naprogramovat tak, aby se mi to zdálo dokonalé.
    Pokud jde pouze o programy, možná by stálo za to vyzkoušet vývoj formálně verifikovaného SW v nějakém tradičním jazyce jako je například Coq nebo Isabelle (novější jazyky jako Idris mají stále mnoho bugů).
    xkucf03 avatar 23.2.2016 00:14 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Práce pro Jardíka

    Tak se nech zaměstnat někde, kde budeš testovat nebo dělat revize kódu – budou ti za to ještě platit :-) (ne jako v diskusích)

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Václav 23.2.2016 07:14 Václav "Darm" Novák | skóre: 26 | blog: Darmovy_kecy | Bechyně / Praha
    Rozbalit Rozbalit vše Re: Práce pro Jardíka
    Nebo dělat konzultanta, přednášet…
    Cross my heart and hope to fly, stick a cupcake in my eye!
    Hans1024 avatar 23.2.2016 10:52 Hans1024 | skóre: 5 | blog: hansovo
    Rozbalit Rozbalit vše Re: Práce pro Jardíka
    by jim tam vsechno smazal...
    Veni, vidi, copi
    Josef Kufner avatar 25.2.2016 00:13 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Práce pro Jardíka
    To je mnohdy to nejlepší, co jde udělat.
    Hello world ! Segmentation fault (core dumped)
    little.owl avatar 23.2.2016 08:18 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    To je spise na vyhledani lekarske pomoci ... s tim ze perfekcionismus je nejlepsi cesta do Bohnickeho pavilonu ;-).
    A former Red Hat freeloader.
    23.2.2016 12:37 Jardík
    Rozbalit Rozbalit vše Re: Lazarus 1.6.0
    Nemůžu jít k lékaři, jehož cílem je dostat peníze od pojišťovny za mou 'léčbu'. Stačily mi nedávné problémy asi od září. Měl jsem problémy s dýcháním a cukalo mi u srdce. V prosinci jsem se konečně dokopal jít za doktorem. Všude nekonečné čekání, na plicní, na kardiologii, ... nakonec mi řekli, že mi nic není. A aby taky bylo. Když jsem začátkem února konečně dostal Holtera, tak už mě to nezlobilo ... náhodně ve stejnou dobu, kdy začli mé problémy, se sestra odstěhovala a nechala tu morče, abych se o něj staral, než se zabydlí... pravidelně jsem mu nosil dobrůtky a seno. Někdy v lednu si ho vzala k sobě a můj stav se lepšil. Ke konci ledna chtěla z půdy přivést seno, tak jsem šel pro seno ... a zbytek dne mě zase trápila dušnost a škrábání v krku a bylo mi zle. Další den zase všechno dobré ... z toho jsem si sám udělal diagnózu 'alergie na seno'. Od té doby jsem seno neviděl měsíc a je mi dobře.

    Založit nové vláknoNahoru


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