Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.
3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.
Open source webový aplikační framework Django slaví 20. narozeniny.
V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.
Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.
Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.
Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
template<typename T> class CancelableThreadData { protected: bool _is_cleanup; T* _data; static void _cleanup_func(void* d); public: template<typename... T_args> CancelableThreadData(T_args... args); ~CancelableThreadData(); T* operator->() { return _data; } const T* operator->() const { return _data; } T& operator*() { return *_data; } const T& operator*() const { return *_data; } }; template<typename T> void CancelableThreadData<T>::_cleanup_func(void* d) { ((CancelableThreadData<T>*)(d))->_is_cleanup = true; ((CancelableThreadData<T>*)(d))->~CancelableThreadData(); } template<typename T> template<typename... T_args> CancelableThreadData<T>::CancelableThreadData(T_args... args) { _is_cleanup = false; _data = new T(args...); pthread_cleanup_push(_cleanup_func, (void*)_data); } /* Line 272 */template<typename T> CancelableThreadData<T>::~CancelableThreadData() { if (!_is_cleanup) pthread_cleanup_pop(0); delete _data; }Výstup gcc:
Thread.h: In constructor ‘BurnLib::CancelableThreadData<T>::CancelableThreadData(T_args ...)’: Thread.h:272:10: error: expected ‘while’ before ‘<’ token Thread.h:272:10: error: expected ‘(’ before ‘<’ token Thread.h:272:10: error: expected primary-expression before ‘<’ token Thread.h:272:20: error: expected nested-name-specifier before ‘T’ Thread.h:272:20: error: expected ‘(’ before ‘T’ Thread.h:272:20: error: expected ‘)’ before ‘T’ Thread.h:272:20: error: expected ‘;’ before ‘T’ Thread.h:272:21: error: expected unqualified-id before ‘>’ token
Řešení dotazu:
Tak ten manual zahodte a poridte si lepsi:
These functions may be implemented as macros. The application shall ensure that they appear as statements, and in pairs within the same lexical scope (that is, the pthread_cleanup_push() macro may be thought to expand to a token list whose first token is '{' with pthread_cleanup_pop() expanding to a token list whose last token is the corresponding '}' ).
Unlike some other implementations of threads, C++ destructors for automatic objects are allowed to run in a well defined and consistent manner when a thread is terminated.
....
When a thread terminates, the following occurs: If the thread was ended using pthread_exit(), pthread_cancel() or return from the thread start routine, then cancellation cleanup handlers and data destructors are run.
The thread is terminated. At the time that the thread is terminated, both C++ destructors for automatic objects and AS/400 cancel handlers run.
Tiskni
Sdílej: