src/Pure/Concurrent/future.ML
Thu, 18 Feb 2016 23:10:28 +0100 wenzelm unconditional Multithreading;
Tue, 03 Nov 2015 13:54:34 +0100 wenzelm clarified modules;
Tue, 01 Sep 2015 23:10:23 +0200 wenzelm thread context for exceptions from forks, e.g. relevant when printing errors;
Wed, 12 Aug 2015 01:39:31 +0200 wenzelm default ML context for forks, e.g. relevant for debugging and toplevel pretty-printing;
Tue, 21 Jul 2015 14:12:45 +0200 wenzelm more explicit thread identification;
Mon, 29 Jun 2015 20:55:46 +0200 wenzelm improved scheduling for urgent tasks, using farm of replacement threads (may lead to factor 2 overloading, but CPUs are usually hyperthreaded);
Thu, 29 Jan 2015 15:21:16 +0100 wenzelm explicit threads_stack_limit (for recent Poly/ML SVN versions), which leads to soft interrupt instead of exhaustion of virtual memory, which is particularly relevant for the bigger address space of x86_64;
Thu, 29 Jan 2015 13:58:02 +0100 wenzelm unused;
Thu, 29 Jan 2015 13:49:03 +0100 wenzelm clarified worker_wait;
Sat, 10 Jan 2015 14:28:41 +0100 wenzelm explicit shutdown of scheduler and worker thread farm, assuming Session.shutdown() before saving heap image;
Sat, 10 Jan 2015 12:21:27 +0100 wenzelm discontinued worker_trend: prefer constant number of active + reserve threads;
Fri, 09 Jan 2015 20:12:42 +0100 wenzelm permissive worker_start: failure to fork thread is deferred to later attempt to provide missing threads, without crashing scheduler;
Mon, 22 Dec 2014 20:40:37 +0100 wenzelm discontinued central critical sections: NAMED_CRITICAL / CRITICAL;
Wed, 26 Nov 2014 11:43:51 +0100 wenzelm load simple_thread.ML later, such that it benefits from redefined print_exception_trace;
Mon, 23 Jun 2014 12:54:48 +0200 wenzelm more on "Futures";
Mon, 31 Mar 2014 10:28:08 +0200 wenzelm support bulk messages consisting of small string segments, which are more healthy to the Poly/ML RTS and might prevent spurious GC crashes such as MTGCProcessMarkPointers::ScanAddressesInObject;
Thu, 05 Dec 2013 17:58:03 +0100 wenzelm merged, resolving obvious conflicts in NEWS and src/Pure/System/isabelle_process.ML;
Thu, 28 Nov 2013 12:54:39 +0100 wenzelm more official task context via Task_Queue.enroll, which is required to participate in group cancellation (e.g. to terminate command exec);
Wed, 20 Nov 2013 22:10:45 +0100 wenzelm register actual group of nested worker context -- relevant for insulated cancellation of exec_ids (see also 78693e46a237, e0169f13bd37);
Mon, 11 Nov 2013 20:00:53 +0100 wenzelm tuned signature;
Wed, 06 Nov 2013 20:46:00 +0100 wenzelm tuned signature;
Sun, 25 Aug 2013 17:04:22 +0200 wenzelm simplified Goal.forked_proofs: status is determined via group instead of dummy future (see also Pure/PIDE/execution.ML);
Sun, 25 Aug 2013 16:03:12 +0200 wenzelm discontinued parallel_subproofs_saturation and related internal counters (superseded by parallel_subproofs_threshold and timing information);
Mon, 29 Jul 2013 18:59:58 +0200 wenzelm keep memo_exec execution running, which is important to cancel goal forks eventually;
Thu, 11 Jul 2013 22:53:56 +0200 wenzelm tuned signature;
Mon, 08 Jul 2013 12:00:45 +0200 wenzelm allow worker guest threads, which participate actively in future joins, but are outside thread accounting;
Tue, 14 May 2013 20:46:09 +0200 wenzelm more uniform Markup.print_real;
Tue, 09 Apr 2013 15:59:02 +0200 wenzelm clarified protocol_message undefinedness;
Mon, 08 Apr 2013 15:44:09 +0200 wenzelm discontinued odd magic number, which was once used for performance measurements;
Tue, 05 Mar 2013 11:37:01 +0100 wenzelm removed unused Future.flat, while leaving its influence of Future.map (see bcd6b1aa4db5);
Sun, 03 Mar 2013 17:34:42 +0100 wenzelm more uniform Future.map: always internalize failure;
Tue, 26 Feb 2013 13:38:34 +0100 wenzelm disallow shutdown from worker, which would lead to deadlock since the scheduler cannot terminate;
Tue, 26 Feb 2013 13:05:48 +0100 wenzelm signal work_available should be sufficient to initiate daisy-chained workers, and lead to separate broadcast work_finished eventually -- NB: broadcasting all worker threads tends to burn parallel CPU cycles;
Tue, 26 Feb 2013 12:50:52 +0100 wenzelm less eventful shutdown: merely wait for scheduler to terminate;
Tue, 26 Feb 2013 12:46:47 +0100 wenzelm tuned messages;
Thu, 24 Jan 2013 17:31:12 +0100 wenzelm report status more frequently on demand;
Sat, 19 Jan 2013 00:00:29 +0100 wenzelm tuned signature;
Fri, 18 Jan 2013 17:51:50 +0100 wenzelm more systematic task statistics;
Fri, 18 Jan 2013 16:20:09 +0100 wenzelm added "tasks_proof" statistics, via slighly odd global reference Future.forked_proofs (NB: Future.report_status is intertwined with scheduler thread);
Thu, 17 Jan 2013 12:04:52 +0100 wenzelm clarified Future.error_msg: slightly more robust id check, actually suppress displaced messages;
Wed, 16 Jan 2013 21:39:43 +0100 wenzelm proper runtime position (cf. fe4714886d92 and Toplevel.error_msg) -- to make error messages actually appear in the document;
Wed, 16 Jan 2013 20:41:29 +0100 wenzelm identify future results more carefully, to avoid odd duplication of error messages, notably from forked goals;
Wed, 16 Jan 2013 16:26:36 +0100 wenzelm more explicit treatment of (optional) exception properties, notably for "serial" -- avoid conflict with startPosition = offset;
Wed, 16 Jan 2013 11:25:26 +0100 wenzelm tuned signature;
Wed, 02 Jan 2013 13:50:59 +0100 wenzelm inline ML statistics into build log;
Tue, 01 Jan 2013 21:55:46 +0100 wenzelm more robust report_status: tolerate ML_statistics even if ignored right now, e.g. in batch build;
Fri, 07 Dec 2012 23:11:01 +0100 wenzelm final report_status within SYNCHRONIZED part of scheduler loop: required for sanity of data;
Thu, 29 Nov 2012 10:45:25 +0100 wenzelm more uniform ML statistics;
Wed, 28 Nov 2012 17:18:53 +0100 wenzelm some support for ML runtime statistics;
Fri, 19 Oct 2012 12:08:13 +0200 wenzelm clarified Future.map (again): finished value is mapped in-place, which saves task structures and changes error behaviour slightly (tolerance against canceled group of old value etc.);
Thu, 18 Oct 2012 13:53:02 +0200 wenzelm more uniform group for map_future, which is relevant for cancel in worker_task vs. future_job -- prefer peer group despite 81d03a29980c;
Thu, 18 Oct 2012 12:47:30 +0200 wenzelm tuned comment;
Thu, 18 Oct 2012 12:00:27 +0200 wenzelm more official Future.terminate;
Wed, 17 Oct 2012 21:18:32 +0200 wenzelm more robust cancel_now: avoid shooting yourself in the foot;
Thu, 30 Aug 2012 15:26:37 +0200 wenzelm refined status of forked goals;
Wed, 11 Apr 2012 13:49:09 +0200 wenzelm more robust Future.fulfill wrt. duplicate assignment and interrupt;
Wed, 11 Apr 2012 12:15:56 +0200 wenzelm always signal after cancel_group: passive tasks may have become active;
Mon, 09 Apr 2012 17:22:23 +0200 wenzelm simplified Future.cancel/cancel_group (again) -- running threads only;
Mon, 28 Nov 2011 22:05:32 +0100 wenzelm separate module for concrete Isabelle markup;
Thu, 13 Oct 2011 22:50:35 +0200 wenzelm static dummy_task (again) to avoid a few extra allocations;
less more (0) -100 -60 tip