Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).
Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).
Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.
Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.
Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
Pro moddery Minecraftu: Java edice Minecraftu bude bez obfuskace.
Národní identitní autorita, tedy NIA ID, MeG a eOP jsou nedostupné. Na nápravě se pracuje [𝕏].
class Thread{
private:
	pthread_t m_tHandle;
	unsigned int m_nStatus;
	Mutex m_tMutex;
public:
	enum Status{
		NotRunning = 0,
		Running = 1,
		Suspended = 2,
		Zombie = 3
	};
	Thread();
	virtual ~Thread();
	void run();
	void kill();
	void wait();
	pthread_t handle() const { return m_tHandle; };
	void handle( pthread_t handle ) { m_tHandle = handle; }
	void lock() { m_tMutex.lock(); }
	void unlock(){ m_tMutex.unlock(); }
	bool tryLock(){ return m_tMutex.tryLock(); }
	void status( unsigned int status );
	unsigned int status() const { return m_nStatus; }
	virtual void start();
	virtual void stop();
	static void waitForAll();
};
static void *entry_point(void *thread_)
{
	Thread* thread = reinterpret_cast<Thread*>(thread_);
	signal(SIGQUIT, signal_handler_SIGQUIT);
	thread_list_mutex.lock();
	thread_list.insert( std::make_pair(pthread_self(), thread) );
	thread_list_mutex.unlock();
	thread->handle(pthread_self());
	thread->start();
	thread->stop();
	thread->status(Thread::Zombie);
	pthread_exit(NULL);
	return NULL;
}
void Thread::run()
{
	if( status() == NotRunning )
	{
	label_create:
		status(Running);
		pthread_create(&m_tHandle, NULL, &entry_point, this);
	}
	else if( status() == Zombie ){
		wait();
		goto label_create;
	}
}
Ve funkci static void *entry_point(void *thread_) volám thread->start(). Problém je, že se vždy zavolá metoda start() třídy Thread a né metoda odvozené třídy MujThread:
class MujThread: public Thread{
public:
	MujThread(){}
	virtual ~MujThread(){}
	virtual void start()
	{
		printf("MujThread start()\n");
		while(true);
	}
	virtual void stop()
	{
		printf("MujThread stop()\n");
	}
};
             23.11.2006 22:59
Jardík             | skóre: 40
             | blog: jarda_bloguje
        23.11.2006 22:59
Jardík             | skóre: 40
             | blog: jarda_bloguje
            
        (Thread*)thread_, bezúspěšně. Vím ale, že ten kód ještě nedávno fungoval. Pomalu bych řekl, že přestal fungovat po aktualizaci gcc.
             23.11.2006 23:15
Luboš Doležel (Doli)             | skóre: 98
             | blog: Doliho blog
             | Kladensko
        23.11.2006 23:15
Luboš Doležel (Doli)             | skóre: 98
             | blog: Doliho blog
             | Kladensko
         24.11.2006 16:59
Jardík             | skóre: 40
             | blog: jarda_bloguje
        24.11.2006 16:59
Jardík             | skóre: 40
             | blog: jarda_bloguje
            
        pure virtual method called terminate called without an active exception ./testutk: line 4: 6543 Neúspěšně ukončen (SIGABRT)
 24.11.2006 17:04
Luboš Doležel (Doli)             | skóre: 98
             | blog: Doliho blog
             | Kladensko
        24.11.2006 17:04
Luboš Doležel (Doli)             | skóre: 98
             | blog: Doliho blog
             | Kladensko
         Nemáte dohromady ty verze GCC smíchané (že by kus kódu byl zkompilovaný se starou verzí)?
Nemáte dohromady ty verze GCC smíchané (že by kus kódu byl zkompilovaný se starou verzí)?
             24.11.2006 17:21
Jardík             | skóre: 40
             | blog: jarda_bloguje
        24.11.2006 17:21
Jardík             | skóre: 40
             | blog: jarda_bloguje
            
        make clean.
            MujThread::start() nedávat jako inline. Kompilátor by sice měl být dost chytrý, aby buď ignoroval evidentní chybu programátora, nebo protestoval, jenže právě to ignorování chyby lze provést dvěma způsoby: buď bude ignorovat virtual nebo inline (zde implicitní). Musel bych se podívat, co v takové situaci předepisuje specifikace jazyka, ale v každém případě bude jistější nepožadovat po překladači něco, co je principiálně nemožné.
             24.11.2006 17:15
Jardík             | skóre: 40
             | blog: jarda_bloguje
        24.11.2006 17:15
Jardík             | skóre: 40
             | blog: jarda_bloguje
            
        MujThred::start() jako inline, nefunguje to. Mám jinou třídu (Application):
class Application{
	....
public:
	....
	virtual bool onInit() { return true; }
	virtual void onQuit() {}
	....
};
Od té odvozuji TestApplication:
class TestApplication: public Application{
protected:
	MujThread t;
public:
	virtual bool onInit()
	{
		...
		t.run();
		return true;
	}
	
	virtual void onQuit()
	{
		t.kill();
	}
};
Zde však volání virtuálních metod funguje správně, což popírá vaši domněnku. (Už jste viděl zdrojový kód Qt knihovny? Je tam toho plno.) Problém bude nejspíš jinde. A jak říkám výše, ten kód fungoval naprosto bezchybně, když jsem ho před časem použil (ale na jiné distribuci, s jiným kernelem - 2.6.17, teď 2.6.18 - a s trochu nižší verzí GCC).
             24.11.2006 22:33
Jardík             | skóre: 40
             | blog: jarda_bloguje
        24.11.2006 22:33
Jardík             | skóre: 40
             | blog: jarda_bloguje
            
        Thread::run() (viz. kód výše), konkrétně se zavolá po vytvoření nového vlákna: pthread_create(&m_tHandle, NULL, &entry_point, this).
            
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                