From mika at elego.de Sat Feb 5 22:51:27 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 5 Feb 2011 22:51:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110205215128.0DDED2474007@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/05 22:51:27 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 m3makefile Log message: add configurability to thread tester. The following options are supported: -n number of threads per test (default 3) -wait how many one-second waits to execute between prints (default 10) -iters how many iterations to run for (default 10) -tests ,,... comma-separated list of tests (default all types) From mika at elego.de Sat Feb 5 23:13:26 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 5 Feb 2011 23:13:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110205221326.967B12474007@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/05 23:13:26 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: removed a lot of unnecessary heap memory allocation, which could interfere with the threading tests. Most output to Stdio.stdout, not sure if this is right (compared with Stdio.stderr). From mika at elego.de Sun Feb 6 17:45:05 2011 From: mika at elego.de (Mika Nystrom) Date: Sun, 6 Feb 2011 17:45:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110206164505.A6AABCC125@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/06 17:45:05 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: snazzy command-line options for doing all tests except specified tests From mika at elego.de Mon Feb 7 21:10:40 2011 From: mika at elego.de (Mika Nystrom) Date: Mon, 7 Feb 2011 21:10:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110207201040.4202FCC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/07 21:10:40 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: add two new tests nxread -- read without TRY EXCEPT tryexcept -- loop only doing TRY EXCEPT also add a goodbye message (so we know when done) and a standard set of tests "std", now default From mika at elego.de Mon Feb 7 21:16:47 2011 From: mika at elego.de (Mika Nystrom) Date: Mon, 7 Feb 2011 21:16:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110207201647.66D88CC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/07 21:16:47 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: fixed startup delay and added more comments From jkrell at elego.de Tue Feb 8 15:20:21 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:20:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142021.754AD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:20:21 Modified files: cm3/m3-libs/m3core/src/win32/: WinUserC.c Log message: minor reformat From jkrell at elego.de Tue Feb 8 15:21:14 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:21:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142114.B85D82474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:21:14 Modified files: cm3/m3-libs/m3core/src/win32/: WinUserC.c Log message: comment only From jkrell at elego.de Tue Feb 8 15:22:39 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:22:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142239.219722474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:22:39 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: move comment -- place them this way to try ensure they never get disconnected from function From jkrell at elego.de Tue Feb 8 15:23:00 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:23:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142300.849CD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:23:00 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: save two lines From jkrell at elego.de Wed Feb 9 10:15:38 2011 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Feb 2011 10:15:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110209091538.A23DE2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/09 10:15:38 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: add comment to also see RT0.i3 for builtin typeids From jkrell at elego.de Fri Feb 11 21:57:57 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 21:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211205757.DB7022474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 21:57:57 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTExFrame.m3 cm3/m3-sys/m3front/src/misc/: Marker.m3 cm3/m3-sys/m3middle/src/: M3RT.m3 Log message: For now, go back to the old way, but usu a sleazy gigantic "portable" 1K jumpbuf. (Some PowerPC platforms require more than 700 bytes, I believe.) From jkrell at elego.de Fri Feb 11 21:59:47 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 21:59:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211205947.B5DF72474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 21:59:47 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadInternal.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From jkrell at elego.de Fri Feb 11 22:00:37 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:00:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210037.F10712474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:00:37 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From jkrell at elego.de Fri Feb 11 22:01:16 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:01:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210117.22DF02474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:01:16 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: remove 'return' on void function call, that is under #if 0 From jkrell at elego.de Fri Feb 11 22:04:42 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:04:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210442.5CF382474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:04:42 Modified files: cm3/m3-sys/m3middle/src/: M3RT.m3 Log message: align to 64bits (LONGREAL) From jkrell at elego.de Fri Feb 11 22:12:09 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:12:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211211210.073B92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:12:09 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DatePosixC.c TimePosixC.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From mika at elego.de Sat Feb 12 01:56:33 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 12 Feb 2011 1:56:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212005633.D45BE2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/12 01:56:33 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: #define __BSD_VISIBLE 1 needed on new FreeBSD to get MAP_ANON et al. from sys/mman.h From jkrell at elego.de Sat Feb 12 11:44:52 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Feb 2011 11:44:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212104452.AFEB12474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/12 11:44:52 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTExFrame.m3 Log message: Blow the size up much much more -- as nothing uses the size here. Blowing it up might help us find out if anything does accidentally end up depending on the size. It'd be nifty if there was a way to really prohibit using the size. From mika at elego.de Sat Feb 12 18:38:13 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 12 Feb 2011 18:38:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212173813.3F3742474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/12 18:38:13 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: add "forktoomuch" test to thread tester, which may create zombie processes From mika at elego.de Tue Feb 15 01:28:41 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 1:28:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215002841.85AE92474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 01:28:41 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c Log message: Allow threads in state "pausing" to be woken up by signals, specifically, SIGCHLD, and use the mechanism for allowing Process.Wait to wake up instantly without busy-waiting. Follows design notes as published on the Modula-3 development mailing list, including care to ensure signal handlers aren't nested unnecessarily. From mika at elego.de Tue Feb 15 02:30:18 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 2:30:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215013018.B4DC12474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 02:30:18 Modified files: cm3/m3-sys/m3quake/src/: QMachine.i3 QMachine.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: QPromise.i3 QPromise.m3 Log message: Add support for the QMachine to be able to record (certain) Process.Creates as "promises" rather than executing them on the fly. The purpose of this modification is to allow parallelization of the CM3 compiler. The vast majority of the runtime of the compilation of a typical Modula-3 program is spent in the part "promised" here (when using the GCC backend). From jay.krell at cornell.edu Tue Feb 15 02:37:20 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 15 Feb 2011 01:37:20 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110215013018.B4DC12474005@birch.elegosoft.com> References: <20110215013018.B4DC12474005@birch.elegosoft.com> Message-ID: You might want to throttle the number of outstanding promises. If only Posix provided good functions for e.g. finding the number of processors. Or if NT or Posix made it easy to discover the number of spindles backing a path, or to easily measure system utilization and backing down when it gets near 100%. You know, an idle machine should be maxed out, but no more. A machine with an interactive user should reserve CPU/memory/I/O for forground activity.. I don't I've ever seen this stuff done well though. - Jay > Date: Tue, 15 Feb 2011 02:30:18 +0000 > To: m3commit at elegosoft.com > From: mika at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: mika at birch. 11/02/15 02:30:18 > > Modified files: > cm3/m3-sys/m3quake/src/: QMachine.i3 QMachine.m3 m3makefile > Added files: > cm3/m3-sys/m3quake/src/: QPromise.i3 QPromise.m3 > > Log message: > Add support for the QMachine to be able to record (certain) Process.Creates as "promises" rather than executing them on the fly. > > The purpose of this modification is to allow parallelization of the CM3 compiler. The vast majority of the runtime of the compilation of a typical Modula-3 program is spent in the part "promised" here (when using the GCC backend). > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at elego.de Tue Feb 15 03:27:45 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 3:27:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215022745.54DE52474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 03:27:45 Modified files: cm3/m3-sys/m3quake/src/: QMachine.m3 QPromise.i3 QPromise.m3 Log message: clean up and fix minor bug from earlier cleanup that made innocuous failures (e.g., of fgrep) fatal. From mika at elego.de Tue Feb 15 04:02:59 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 4:02:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215030259.EEAA3CC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 04:02:59 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 Makefile.m3 Log message: parallel back-end builds. To enable, use -pb flag, with n up to about ten (10) times the number of processors available, or set M3_PARALLEL_BACK in config files. Any change in behavior relative to earlier versions with n = 1 (the default) would constitute a bug. From mika at elego.de Tue Feb 15 09:28:05 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:28:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215082805.8CADF2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:28:05 Modified files: cm3/caltech-parser/cit_common/src/: TextReader.i3 TextReader.m3 Log message: current TextReader from Caltech/Generation Capital repository, with bug fixes and enhancements From mika at elego.de Tue Feb 15 09:42:26 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:42:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215084226.DFD052474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:42:26 Added files: cm3/caltech-parser/rdwrreset/src/: RdWrReset.i3 RdWrReset.m3 m3makefile m3overrides Log message: reset reader and writer positions (avoids overflows on systems with small integers for the position of readers and writers) From mika at elego.de Tue Feb 15 09:43:06 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:43:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215084306.E6C1F2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:43:06 Modified files: cm3/caltech-parser/rdwrreset/src/: RdWrReset.i3 RdWrReset.m3 Log message: remove CVS Ids in keeping with CM3 repository practice From mika at elego.de Thu Feb 17 18:33:25 2011 From: mika at elego.de (Mika Nystrom) Date: Thu, 17 Feb 2011 18:33:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110217173326.6BF622474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/17 18:33:25 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: made sets of tests be in all caps. Three sets are provided ALL = all tests coded in the program (including ones that legitimately misbehave) STD = all tests that "should work" without obvious misbehavior POSIX = STD,-lock (user threads may legitimately have fairness issues) From mika at elego.de Sat Feb 19 19:20:30 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:20:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219182030.4DAB22474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:20:30 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c ThreadPosix.i3 Log message: add ValueOfSIGSEGV: get value of SIGSEGV C header constant out in Modula-3 environment From mika at elego.de Sat Feb 19 19:24:05 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:24:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219182405.36E2F2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:24:05 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 Log message: Documentation of ThreadPosix implementation as the light of understanding has finally shone on me and I wish to put down my observations for posterity. Also an implementation of catching of SEGV and conversion into a RuntimeError instead. Mechanism is documented in ThreadPosix.m3: it is a hybrid of the SIGCHLD handling and what ThreadPosix already does to produce Thread.Alerted on a wake-up. Mechanism has been tested and appears to work: the former behavior was to quit execution unconditonally; now it is instead a catcheable exception. From mika at elego.de Sat Feb 19 19:49:14 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:49:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219184914.504472474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:49:14 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c Log message: revert this, with a comment that the signal handler gets overridden: this will make the signal print a message and crash under pthreads and raise a RuntimeError.E exception under user ("POSIX") threads now, as desired. From jkrell at elego.de Mon Feb 21 01:32:47 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 1:32:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221003248.11C9C2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 01:32:47 Modified files: cm3/m3-sys/m3middle/src/: M3Process.i3 Log message: remove incorrect comments; Win32 is not broken From jkrell at elego.de Mon Feb 21 01:37:39 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 1:37:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221003739.8E4E2CC110@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 01:37:39 Modified files: cm3/m3-sys/m3middle/src/: M3Process.i3 Log message: Reword comment. Win32 isn't broken -- as in the Windows OS, but indeed the Modula-3 implementation here is completely broken and likely doesn't do anything at all, except attempt to kill a random process and raise an exception if that fails (random as in possibly nonexistant, possibly another unrelated process, or just barely possibly, the intended process.) From jay.krell at cornell.edu Mon Feb 21 01:35:38 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 21 Feb 2011 00:35:38 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110221003248.11C9C2474005@birch.elegosoft.com> References: <20110221003248.11C9C2474005@birch.elegosoft.com> Message-ID: Hm. Actually, Win32 is not broken, but libm3/m3middle are clearly incorrect here. - Jay > Date: Mon, 21 Feb 2011 01:32:47 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/02/21 01:32:47 > > Modified files: > cm3/m3-sys/m3middle/src/: M3Process.i3 > > Log message: > remove incorrect comments; Win32 is not broken > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Feb 21 01:39:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 21 Feb 2011 00:39:43 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20110221003248.11C9C2474005@birch.elegosoft.com>, Message-ID: The code here confuses hProcess and dwProcessId. Can we introduce a public function here in libm3 instead of m3middle? ie: to avoid answering the question as to how to expose hProcess? And to avoid the loophole as well? Thanks, - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Mon, 21 Feb 2011 00:35:38 +0000 Hm. Actually, Win32 is not broken, but libm3/m3middle are clearly incorrect here. - Jay > Date: Mon, 21 Feb 2011 01:32:47 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/02/21 01:32:47 > > Modified files: > cm3/m3-sys/m3middle/src/: M3Process.i3 > > Log message: > remove incorrect comments; Win32 is not broken > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Feb 21 12:01:39 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 12:01:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221110139.B67482474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 12:01:39 Modified files: cm3/m3-sys/m3middle/src/: M3RT.m3 Target.i3 Target.m3 Log message: Bring back per-target jmpbuf size in all its gory.. at least for now.. From jkrell at elego.de Sat Feb 26 11:23:53 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 26 Feb 2011 11:23:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226102353.E01C92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/26 11:23:53 Added files: cm3/m3-tools/m3sleep/src/: m3makefile m3sleep.c Log message: add a little sleep clone, that also works on Windows, for m3core/tests/thread to use From jkrell at elego.de Sat Feb 26 11:29:07 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 26 Feb 2011 11:29:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226102907.15BDA2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/26 11:29:07 Modified files: cm3/m3-libs/m3core/tests/thread/src/: m3makefile Log message: build_standalone From mika at elego.de Sat Feb 26 19:00:32 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:00:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226180032.26FAC2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:00:32 Modified files: cm3/m3-libs/m3core/tests/thread/src/: m3makefile Log message: different Modula-3 compilers use different syntax for build_standalone; as this program is a test, not a part of the compiler, it is useful for it to be compilable on all. From mika at elego.de Sat Feb 26 19:07:45 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:07:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226180745.2057B2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:07:45 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: remove dependency on external program "sleep" instead call Params.Get(0) with argument -sleep From mika at elego.de Sat Feb 26 19:16:40 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:16:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226181640.8C9B02474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:16:40 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: change newlines to Wr.EOL to remove further OS dependencies From jay.krell at cornell.edu Sat Feb 26 22:14:38 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 26 Feb 2011 21:14:38 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110226180745.2057B2474003@birch.elegosoft.com> References: <20110226180745.2057B2474003@birch.elegosoft.com> Message-ID: There are two uses. - Jay > Date: Sat, 26 Feb 2011 19:07:45 +0000 > To: m3commit at elegosoft.com > From: mika at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: mika at birch. 11/02/26 19:07:45 > > Modified files: > cm3/m3-libs/m3core/tests/thread/src/: Main.m3 > > Log message: > remove dependency on external program "sleep" > instead call Params.Get(0) with argument -sleep > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Feb 27 00:11:25 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:11:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231126.091F42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:11:25 Added files: cm3/m3-libs/m3core/src/win32/: WinBaseC.c Log message: work in progress: update interlocked support From mika at elego.de Sun Feb 27 00:13:07 2011 From: mika at elego.de (Mika Nystrom) Date: Sun, 27 Feb 2011 0:13:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231307.5B3B42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/27 00:13:07 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: Missed the second use of Unix sleep in last commit From jkrell at elego.de Sun Feb 27 00:17:28 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:17:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231749.11BD62474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:17:28 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTDebugC.c Log message: remove one space From jkrell at elego.de Sun Feb 27 00:45:28 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:45:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234529.2B37F2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:45:28 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: reduce DisableScheduling/EnablingScheduling window microscopically From jkrell at elego.de Sun Feb 27 00:45:59 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:45:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234600.8AB952474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:45:59 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 Log message: bring InitialPages, MinNewPages back down to 256K, since page size was grown to 64K across the board From jkrell at elego.de Sun Feb 27 00:48:20 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:48:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234821.B56142474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:48:20 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: when pthread_*_init, pthread_mutex_destroy, pthread_mutex_lock, pthread_mutex_unlock fail, fprintf to stderr and abort Possibly ENOMEM should be handled differently -- raise an exception. Currently, with Mika's threadtest, on Darwin, we get a fair number of EBUSY and EINVAL in these parts. And there are so many threads, that we get more stuff between the fprintf and the abort. From rcoleburn at elego.de Sun Feb 27 20:00:39 2011 From: rcoleburn at elego.de (Randy Coleburn) Date: Sun, 27 Feb 2011 20:00:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110227190039.310BC2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 11/02/27 20:00:39 Modified files: cm3/scripts/: pkginfo.txt Log message: Add Jay's m3sleep program to the package list so it gets built. I listed it under the "core" group. Not sure if this is best or only group it should be in, so feel free to change if needed.--R.Coleburn From mika at elego.de Sat Feb 5 22:51:27 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 5 Feb 2011 22:51:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110205215128.0DDED2474007@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/05 22:51:27 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 m3makefile Log message: add configurability to thread tester. The following options are supported: -n number of threads per test (default 3) -wait how many one-second waits to execute between prints (default 10) -iters how many iterations to run for (default 10) -tests ,,... comma-separated list of tests (default all types) From mika at elego.de Sat Feb 5 23:13:26 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 5 Feb 2011 23:13:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110205221326.967B12474007@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/05 23:13:26 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: removed a lot of unnecessary heap memory allocation, which could interfere with the threading tests. Most output to Stdio.stdout, not sure if this is right (compared with Stdio.stderr). From mika at elego.de Sun Feb 6 17:45:05 2011 From: mika at elego.de (Mika Nystrom) Date: Sun, 6 Feb 2011 17:45:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110206164505.A6AABCC125@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/06 17:45:05 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: snazzy command-line options for doing all tests except specified tests From mika at elego.de Mon Feb 7 21:10:40 2011 From: mika at elego.de (Mika Nystrom) Date: Mon, 7 Feb 2011 21:10:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110207201040.4202FCC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/07 21:10:40 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: add two new tests nxread -- read without TRY EXCEPT tryexcept -- loop only doing TRY EXCEPT also add a goodbye message (so we know when done) and a standard set of tests "std", now default From mika at elego.de Mon Feb 7 21:16:47 2011 From: mika at elego.de (Mika Nystrom) Date: Mon, 7 Feb 2011 21:16:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110207201647.66D88CC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/07 21:16:47 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: fixed startup delay and added more comments From jkrell at elego.de Tue Feb 8 15:20:21 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:20:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142021.754AD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:20:21 Modified files: cm3/m3-libs/m3core/src/win32/: WinUserC.c Log message: minor reformat From jkrell at elego.de Tue Feb 8 15:21:14 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:21:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142114.B85D82474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:21:14 Modified files: cm3/m3-libs/m3core/src/win32/: WinUserC.c Log message: comment only From jkrell at elego.de Tue Feb 8 15:22:39 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:22:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142239.219722474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:22:39 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: move comment -- place them this way to try ensure they never get disconnected from function From jkrell at elego.de Tue Feb 8 15:23:00 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:23:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142300.849CD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:23:00 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: save two lines From jkrell at elego.de Wed Feb 9 10:15:38 2011 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Feb 2011 10:15:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110209091538.A23DE2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/09 10:15:38 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: add comment to also see RT0.i3 for builtin typeids From jkrell at elego.de Fri Feb 11 21:57:57 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 21:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211205757.DB7022474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 21:57:57 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTExFrame.m3 cm3/m3-sys/m3front/src/misc/: Marker.m3 cm3/m3-sys/m3middle/src/: M3RT.m3 Log message: For now, go back to the old way, but usu a sleazy gigantic "portable" 1K jumpbuf. (Some PowerPC platforms require more than 700 bytes, I believe.) From jkrell at elego.de Fri Feb 11 21:59:47 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 21:59:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211205947.B5DF72474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 21:59:47 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadInternal.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From jkrell at elego.de Fri Feb 11 22:00:37 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:00:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210037.F10712474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:00:37 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From jkrell at elego.de Fri Feb 11 22:01:16 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:01:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210117.22DF02474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:01:16 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: remove 'return' on void function call, that is under #if 0 From jkrell at elego.de Fri Feb 11 22:04:42 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:04:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210442.5CF382474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:04:42 Modified files: cm3/m3-sys/m3middle/src/: M3RT.m3 Log message: align to 64bits (LONGREAL) From jkrell at elego.de Fri Feb 11 22:12:09 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:12:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211211210.073B92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:12:09 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DatePosixC.c TimePosixC.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From mika at elego.de Sat Feb 12 01:56:33 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 12 Feb 2011 1:56:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212005633.D45BE2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/12 01:56:33 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: #define __BSD_VISIBLE 1 needed on new FreeBSD to get MAP_ANON et al. from sys/mman.h From jkrell at elego.de Sat Feb 12 11:44:52 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Feb 2011 11:44:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212104452.AFEB12474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/12 11:44:52 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTExFrame.m3 Log message: Blow the size up much much more -- as nothing uses the size here. Blowing it up might help us find out if anything does accidentally end up depending on the size. It'd be nifty if there was a way to really prohibit using the size. From mika at elego.de Sat Feb 12 18:38:13 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 12 Feb 2011 18:38:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212173813.3F3742474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/12 18:38:13 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: add "forktoomuch" test to thread tester, which may create zombie processes From mika at elego.de Tue Feb 15 01:28:41 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 1:28:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215002841.85AE92474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 01:28:41 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c Log message: Allow threads in state "pausing" to be woken up by signals, specifically, SIGCHLD, and use the mechanism for allowing Process.Wait to wake up instantly without busy-waiting. Follows design notes as published on the Modula-3 development mailing list, including care to ensure signal handlers aren't nested unnecessarily. From mika at elego.de Tue Feb 15 02:30:18 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 2:30:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215013018.B4DC12474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 02:30:18 Modified files: cm3/m3-sys/m3quake/src/: QMachine.i3 QMachine.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: QPromise.i3 QPromise.m3 Log message: Add support for the QMachine to be able to record (certain) Process.Creates as "promises" rather than executing them on the fly. The purpose of this modification is to allow parallelization of the CM3 compiler. The vast majority of the runtime of the compilation of a typical Modula-3 program is spent in the part "promised" here (when using the GCC backend). From jay.krell at cornell.edu Tue Feb 15 02:37:20 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 15 Feb 2011 01:37:20 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110215013018.B4DC12474005@birch.elegosoft.com> References: <20110215013018.B4DC12474005@birch.elegosoft.com> Message-ID: You might want to throttle the number of outstanding promises. If only Posix provided good functions for e.g. finding the number of processors. Or if NT or Posix made it easy to discover the number of spindles backing a path, or to easily measure system utilization and backing down when it gets near 100%. You know, an idle machine should be maxed out, but no more. A machine with an interactive user should reserve CPU/memory/I/O for forground activity.. I don't I've ever seen this stuff done well though. - Jay > Date: Tue, 15 Feb 2011 02:30:18 +0000 > To: m3commit at elegosoft.com > From: mika at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: mika at birch. 11/02/15 02:30:18 > > Modified files: > cm3/m3-sys/m3quake/src/: QMachine.i3 QMachine.m3 m3makefile > Added files: > cm3/m3-sys/m3quake/src/: QPromise.i3 QPromise.m3 > > Log message: > Add support for the QMachine to be able to record (certain) Process.Creates as "promises" rather than executing them on the fly. > > The purpose of this modification is to allow parallelization of the CM3 compiler. The vast majority of the runtime of the compilation of a typical Modula-3 program is spent in the part "promised" here (when using the GCC backend). > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at elego.de Tue Feb 15 03:27:45 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 3:27:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215022745.54DE52474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 03:27:45 Modified files: cm3/m3-sys/m3quake/src/: QMachine.m3 QPromise.i3 QPromise.m3 Log message: clean up and fix minor bug from earlier cleanup that made innocuous failures (e.g., of fgrep) fatal. From mika at elego.de Tue Feb 15 04:02:59 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 4:02:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215030259.EEAA3CC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 04:02:59 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 Makefile.m3 Log message: parallel back-end builds. To enable, use -pb flag, with n up to about ten (10) times the number of processors available, or set M3_PARALLEL_BACK in config files. Any change in behavior relative to earlier versions with n = 1 (the default) would constitute a bug. From mika at elego.de Tue Feb 15 09:28:05 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:28:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215082805.8CADF2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:28:05 Modified files: cm3/caltech-parser/cit_common/src/: TextReader.i3 TextReader.m3 Log message: current TextReader from Caltech/Generation Capital repository, with bug fixes and enhancements From mika at elego.de Tue Feb 15 09:42:26 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:42:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215084226.DFD052474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:42:26 Added files: cm3/caltech-parser/rdwrreset/src/: RdWrReset.i3 RdWrReset.m3 m3makefile m3overrides Log message: reset reader and writer positions (avoids overflows on systems with small integers for the position of readers and writers) From mika at elego.de Tue Feb 15 09:43:06 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:43:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215084306.E6C1F2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:43:06 Modified files: cm3/caltech-parser/rdwrreset/src/: RdWrReset.i3 RdWrReset.m3 Log message: remove CVS Ids in keeping with CM3 repository practice From mika at elego.de Thu Feb 17 18:33:25 2011 From: mika at elego.de (Mika Nystrom) Date: Thu, 17 Feb 2011 18:33:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110217173326.6BF622474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/17 18:33:25 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: made sets of tests be in all caps. Three sets are provided ALL = all tests coded in the program (including ones that legitimately misbehave) STD = all tests that "should work" without obvious misbehavior POSIX = STD,-lock (user threads may legitimately have fairness issues) From mika at elego.de Sat Feb 19 19:20:30 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:20:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219182030.4DAB22474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:20:30 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c ThreadPosix.i3 Log message: add ValueOfSIGSEGV: get value of SIGSEGV C header constant out in Modula-3 environment From mika at elego.de Sat Feb 19 19:24:05 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:24:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219182405.36E2F2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:24:05 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 Log message: Documentation of ThreadPosix implementation as the light of understanding has finally shone on me and I wish to put down my observations for posterity. Also an implementation of catching of SEGV and conversion into a RuntimeError instead. Mechanism is documented in ThreadPosix.m3: it is a hybrid of the SIGCHLD handling and what ThreadPosix already does to produce Thread.Alerted on a wake-up. Mechanism has been tested and appears to work: the former behavior was to quit execution unconditonally; now it is instead a catcheable exception. From mika at elego.de Sat Feb 19 19:49:14 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:49:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219184914.504472474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:49:14 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c Log message: revert this, with a comment that the signal handler gets overridden: this will make the signal print a message and crash under pthreads and raise a RuntimeError.E exception under user ("POSIX") threads now, as desired. From jkrell at elego.de Mon Feb 21 01:32:47 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 1:32:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221003248.11C9C2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 01:32:47 Modified files: cm3/m3-sys/m3middle/src/: M3Process.i3 Log message: remove incorrect comments; Win32 is not broken From jkrell at elego.de Mon Feb 21 01:37:39 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 1:37:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221003739.8E4E2CC110@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 01:37:39 Modified files: cm3/m3-sys/m3middle/src/: M3Process.i3 Log message: Reword comment. Win32 isn't broken -- as in the Windows OS, but indeed the Modula-3 implementation here is completely broken and likely doesn't do anything at all, except attempt to kill a random process and raise an exception if that fails (random as in possibly nonexistant, possibly another unrelated process, or just barely possibly, the intended process.) From jay.krell at cornell.edu Mon Feb 21 01:35:38 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 21 Feb 2011 00:35:38 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110221003248.11C9C2474005@birch.elegosoft.com> References: <20110221003248.11C9C2474005@birch.elegosoft.com> Message-ID: Hm. Actually, Win32 is not broken, but libm3/m3middle are clearly incorrect here. - Jay > Date: Mon, 21 Feb 2011 01:32:47 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/02/21 01:32:47 > > Modified files: > cm3/m3-sys/m3middle/src/: M3Process.i3 > > Log message: > remove incorrect comments; Win32 is not broken > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Feb 21 01:39:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 21 Feb 2011 00:39:43 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20110221003248.11C9C2474005@birch.elegosoft.com>, Message-ID: The code here confuses hProcess and dwProcessId. Can we introduce a public function here in libm3 instead of m3middle? ie: to avoid answering the question as to how to expose hProcess? And to avoid the loophole as well? Thanks, - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Mon, 21 Feb 2011 00:35:38 +0000 Hm. Actually, Win32 is not broken, but libm3/m3middle are clearly incorrect here. - Jay > Date: Mon, 21 Feb 2011 01:32:47 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/02/21 01:32:47 > > Modified files: > cm3/m3-sys/m3middle/src/: M3Process.i3 > > Log message: > remove incorrect comments; Win32 is not broken > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Feb 21 12:01:39 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 12:01:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221110139.B67482474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 12:01:39 Modified files: cm3/m3-sys/m3middle/src/: M3RT.m3 Target.i3 Target.m3 Log message: Bring back per-target jmpbuf size in all its gory.. at least for now.. From jkrell at elego.de Sat Feb 26 11:23:53 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 26 Feb 2011 11:23:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226102353.E01C92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/26 11:23:53 Added files: cm3/m3-tools/m3sleep/src/: m3makefile m3sleep.c Log message: add a little sleep clone, that also works on Windows, for m3core/tests/thread to use From jkrell at elego.de Sat Feb 26 11:29:07 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 26 Feb 2011 11:29:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226102907.15BDA2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/26 11:29:07 Modified files: cm3/m3-libs/m3core/tests/thread/src/: m3makefile Log message: build_standalone From mika at elego.de Sat Feb 26 19:00:32 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:00:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226180032.26FAC2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:00:32 Modified files: cm3/m3-libs/m3core/tests/thread/src/: m3makefile Log message: different Modula-3 compilers use different syntax for build_standalone; as this program is a test, not a part of the compiler, it is useful for it to be compilable on all. From mika at elego.de Sat Feb 26 19:07:45 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:07:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226180745.2057B2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:07:45 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: remove dependency on external program "sleep" instead call Params.Get(0) with argument -sleep From mika at elego.de Sat Feb 26 19:16:40 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:16:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226181640.8C9B02474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:16:40 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: change newlines to Wr.EOL to remove further OS dependencies From jay.krell at cornell.edu Sat Feb 26 22:14:38 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 26 Feb 2011 21:14:38 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110226180745.2057B2474003@birch.elegosoft.com> References: <20110226180745.2057B2474003@birch.elegosoft.com> Message-ID: There are two uses. - Jay > Date: Sat, 26 Feb 2011 19:07:45 +0000 > To: m3commit at elegosoft.com > From: mika at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: mika at birch. 11/02/26 19:07:45 > > Modified files: > cm3/m3-libs/m3core/tests/thread/src/: Main.m3 > > Log message: > remove dependency on external program "sleep" > instead call Params.Get(0) with argument -sleep > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Feb 27 00:11:25 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:11:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231126.091F42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:11:25 Added files: cm3/m3-libs/m3core/src/win32/: WinBaseC.c Log message: work in progress: update interlocked support From mika at elego.de Sun Feb 27 00:13:07 2011 From: mika at elego.de (Mika Nystrom) Date: Sun, 27 Feb 2011 0:13:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231307.5B3B42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/27 00:13:07 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: Missed the second use of Unix sleep in last commit From jkrell at elego.de Sun Feb 27 00:17:28 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:17:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231749.11BD62474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:17:28 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTDebugC.c Log message: remove one space From jkrell at elego.de Sun Feb 27 00:45:28 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:45:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234529.2B37F2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:45:28 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: reduce DisableScheduling/EnablingScheduling window microscopically From jkrell at elego.de Sun Feb 27 00:45:59 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:45:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234600.8AB952474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:45:59 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 Log message: bring InitialPages, MinNewPages back down to 256K, since page size was grown to 64K across the board From jkrell at elego.de Sun Feb 27 00:48:20 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:48:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234821.B56142474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:48:20 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: when pthread_*_init, pthread_mutex_destroy, pthread_mutex_lock, pthread_mutex_unlock fail, fprintf to stderr and abort Possibly ENOMEM should be handled differently -- raise an exception. Currently, with Mika's threadtest, on Darwin, we get a fair number of EBUSY and EINVAL in these parts. And there are so many threads, that we get more stuff between the fprintf and the abort. From rcoleburn at elego.de Sun Feb 27 20:00:39 2011 From: rcoleburn at elego.de (Randy Coleburn) Date: Sun, 27 Feb 2011 20:00:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110227190039.310BC2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 11/02/27 20:00:39 Modified files: cm3/scripts/: pkginfo.txt Log message: Add Jay's m3sleep program to the package list so it gets built. I listed it under the "core" group. Not sure if this is best or only group it should be in, so feel free to change if needed.--R.Coleburn From mika at elego.de Sat Feb 5 22:51:27 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 5 Feb 2011 22:51:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110205215128.0DDED2474007@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/05 22:51:27 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 m3makefile Log message: add configurability to thread tester. The following options are supported: -n number of threads per test (default 3) -wait how many one-second waits to execute between prints (default 10) -iters how many iterations to run for (default 10) -tests ,,... comma-separated list of tests (default all types) From mika at elego.de Sat Feb 5 23:13:26 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 5 Feb 2011 23:13:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110205221326.967B12474007@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/05 23:13:26 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: removed a lot of unnecessary heap memory allocation, which could interfere with the threading tests. Most output to Stdio.stdout, not sure if this is right (compared with Stdio.stderr). From mika at elego.de Sun Feb 6 17:45:05 2011 From: mika at elego.de (Mika Nystrom) Date: Sun, 6 Feb 2011 17:45:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110206164505.A6AABCC125@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/06 17:45:05 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: snazzy command-line options for doing all tests except specified tests From mika at elego.de Mon Feb 7 21:10:40 2011 From: mika at elego.de (Mika Nystrom) Date: Mon, 7 Feb 2011 21:10:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110207201040.4202FCC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/07 21:10:40 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: add two new tests nxread -- read without TRY EXCEPT tryexcept -- loop only doing TRY EXCEPT also add a goodbye message (so we know when done) and a standard set of tests "std", now default From mika at elego.de Mon Feb 7 21:16:47 2011 From: mika at elego.de (Mika Nystrom) Date: Mon, 7 Feb 2011 21:16:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110207201647.66D88CC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/07 21:16:47 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: fixed startup delay and added more comments From jkrell at elego.de Tue Feb 8 15:20:21 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:20:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142021.754AD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:20:21 Modified files: cm3/m3-libs/m3core/src/win32/: WinUserC.c Log message: minor reformat From jkrell at elego.de Tue Feb 8 15:21:14 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:21:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142114.B85D82474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:21:14 Modified files: cm3/m3-libs/m3core/src/win32/: WinUserC.c Log message: comment only From jkrell at elego.de Tue Feb 8 15:22:39 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:22:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142239.219722474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:22:39 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: move comment -- place them this way to try ensure they never get disconnected from function From jkrell at elego.de Tue Feb 8 15:23:00 2011 From: jkrell at elego.de (Jay Krell) Date: Tue, 8 Feb 2011 15:23:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110208142300.849CD2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/08 15:23:00 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: save two lines From jkrell at elego.de Wed Feb 9 10:15:38 2011 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Feb 2011 10:15:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110209091538.A23DE2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/09 10:15:38 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: add comment to also see RT0.i3 for builtin typeids From jkrell at elego.de Fri Feb 11 21:57:57 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 21:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211205757.DB7022474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 21:57:57 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTExFrame.m3 cm3/m3-sys/m3front/src/misc/: Marker.m3 cm3/m3-sys/m3middle/src/: M3RT.m3 Log message: For now, go back to the old way, but usu a sleazy gigantic "portable" 1K jumpbuf. (Some PowerPC platforms require more than 700 bytes, I believe.) From jkrell at elego.de Fri Feb 11 21:59:47 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 21:59:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211205947.B5DF72474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 21:59:47 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadInternal.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From jkrell at elego.de Fri Feb 11 22:00:37 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:00:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210037.F10712474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:00:37 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From jkrell at elego.de Fri Feb 11 22:01:16 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:01:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210117.22DF02474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:01:16 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: remove 'return' on void function call, that is under #if 0 From jkrell at elego.de Fri Feb 11 22:04:42 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:04:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211210442.5CF382474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:04:42 Modified files: cm3/m3-sys/m3middle/src/: M3RT.m3 Log message: align to 64bits (LONGREAL) From jkrell at elego.de Fri Feb 11 22:12:09 2011 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Feb 2011 22:12:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110211211210.073B92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/11 22:12:09 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DatePosixC.c TimePosixC.c Log message: pragma visibility push(hidden), though it shouldn't make a difference From mika at elego.de Sat Feb 12 01:56:33 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 12 Feb 2011 1:56:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212005633.D45BE2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/12 01:56:33 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: #define __BSD_VISIBLE 1 needed on new FreeBSD to get MAP_ANON et al. from sys/mman.h From jkrell at elego.de Sat Feb 12 11:44:52 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Feb 2011 11:44:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212104452.AFEB12474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/12 11:44:52 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTExFrame.m3 Log message: Blow the size up much much more -- as nothing uses the size here. Blowing it up might help us find out if anything does accidentally end up depending on the size. It'd be nifty if there was a way to really prohibit using the size. From mika at elego.de Sat Feb 12 18:38:13 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 12 Feb 2011 18:38:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110212173813.3F3742474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/12 18:38:13 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: add "forktoomuch" test to thread tester, which may create zombie processes From mika at elego.de Tue Feb 15 01:28:41 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 1:28:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215002841.85AE92474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 01:28:41 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 ThreadPosix.m3 ThreadPosixC.c Log message: Allow threads in state "pausing" to be woken up by signals, specifically, SIGCHLD, and use the mechanism for allowing Process.Wait to wake up instantly without busy-waiting. Follows design notes as published on the Modula-3 development mailing list, including care to ensure signal handlers aren't nested unnecessarily. From mika at elego.de Tue Feb 15 02:30:18 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 2:30:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215013018.B4DC12474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 02:30:18 Modified files: cm3/m3-sys/m3quake/src/: QMachine.i3 QMachine.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: QPromise.i3 QPromise.m3 Log message: Add support for the QMachine to be able to record (certain) Process.Creates as "promises" rather than executing them on the fly. The purpose of this modification is to allow parallelization of the CM3 compiler. The vast majority of the runtime of the compilation of a typical Modula-3 program is spent in the part "promised" here (when using the GCC backend). From jay.krell at cornell.edu Tue Feb 15 02:37:20 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 15 Feb 2011 01:37:20 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110215013018.B4DC12474005@birch.elegosoft.com> References: <20110215013018.B4DC12474005@birch.elegosoft.com> Message-ID: You might want to throttle the number of outstanding promises. If only Posix provided good functions for e.g. finding the number of processors. Or if NT or Posix made it easy to discover the number of spindles backing a path, or to easily measure system utilization and backing down when it gets near 100%. You know, an idle machine should be maxed out, but no more. A machine with an interactive user should reserve CPU/memory/I/O for forground activity.. I don't I've ever seen this stuff done well though. - Jay > Date: Tue, 15 Feb 2011 02:30:18 +0000 > To: m3commit at elegosoft.com > From: mika at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: mika at birch. 11/02/15 02:30:18 > > Modified files: > cm3/m3-sys/m3quake/src/: QMachine.i3 QMachine.m3 m3makefile > Added files: > cm3/m3-sys/m3quake/src/: QPromise.i3 QPromise.m3 > > Log message: > Add support for the QMachine to be able to record (certain) Process.Creates as "promises" rather than executing them on the fly. > > The purpose of this modification is to allow parallelization of the CM3 compiler. The vast majority of the runtime of the compilation of a typical Modula-3 program is spent in the part "promised" here (when using the GCC backend). > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at elego.de Tue Feb 15 03:27:45 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 3:27:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215022745.54DE52474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 03:27:45 Modified files: cm3/m3-sys/m3quake/src/: QMachine.m3 QPromise.i3 QPromise.m3 Log message: clean up and fix minor bug from earlier cleanup that made innocuous failures (e.g., of fgrep) fatal. From mika at elego.de Tue Feb 15 04:02:59 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 4:02:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215030259.EEAA3CC37B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 04:02:59 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 Makefile.m3 Log message: parallel back-end builds. To enable, use -pb flag, with n up to about ten (10) times the number of processors available, or set M3_PARALLEL_BACK in config files. Any change in behavior relative to earlier versions with n = 1 (the default) would constitute a bug. From mika at elego.de Tue Feb 15 09:28:05 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:28:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215082805.8CADF2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:28:05 Modified files: cm3/caltech-parser/cit_common/src/: TextReader.i3 TextReader.m3 Log message: current TextReader from Caltech/Generation Capital repository, with bug fixes and enhancements From mika at elego.de Tue Feb 15 09:42:26 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:42:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215084226.DFD052474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:42:26 Added files: cm3/caltech-parser/rdwrreset/src/: RdWrReset.i3 RdWrReset.m3 m3makefile m3overrides Log message: reset reader and writer positions (avoids overflows on systems with small integers for the position of readers and writers) From mika at elego.de Tue Feb 15 09:43:06 2011 From: mika at elego.de (Mika Nystrom) Date: Tue, 15 Feb 2011 9:43:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110215084306.E6C1F2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/15 09:43:06 Modified files: cm3/caltech-parser/rdwrreset/src/: RdWrReset.i3 RdWrReset.m3 Log message: remove CVS Ids in keeping with CM3 repository practice From mika at elego.de Thu Feb 17 18:33:25 2011 From: mika at elego.de (Mika Nystrom) Date: Thu, 17 Feb 2011 18:33:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110217173326.6BF622474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/17 18:33:25 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: made sets of tests be in all caps. Three sets are provided ALL = all tests coded in the program (including ones that legitimately misbehave) STD = all tests that "should work" without obvious misbehavior POSIX = STD,-lock (user threads may legitimately have fairness issues) From mika at elego.de Sat Feb 19 19:20:30 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:20:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219182030.4DAB22474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:20:30 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c ThreadPosix.i3 Log message: add ValueOfSIGSEGV: get value of SIGSEGV C header constant out in Modula-3 environment From mika at elego.de Sat Feb 19 19:24:05 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:24:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219182405.36E2F2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:24:05 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 Log message: Documentation of ThreadPosix implementation as the light of understanding has finally shone on me and I wish to put down my observations for posterity. Also an implementation of catching of SEGV and conversion into a RuntimeError instead. Mechanism is documented in ThreadPosix.m3: it is a hybrid of the SIGCHLD handling and what ThreadPosix already does to produce Thread.Alerted on a wake-up. Mechanism has been tested and appears to work: the former behavior was to quit execution unconditonally; now it is instead a catcheable exception. From mika at elego.de Sat Feb 19 19:49:14 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 19 Feb 2011 19:49:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110219184914.504472474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/19 19:49:14 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c Log message: revert this, with a comment that the signal handler gets overridden: this will make the signal print a message and crash under pthreads and raise a RuntimeError.E exception under user ("POSIX") threads now, as desired. From jkrell at elego.de Mon Feb 21 01:32:47 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 1:32:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221003248.11C9C2474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 01:32:47 Modified files: cm3/m3-sys/m3middle/src/: M3Process.i3 Log message: remove incorrect comments; Win32 is not broken From jkrell at elego.de Mon Feb 21 01:37:39 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 1:37:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221003739.8E4E2CC110@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 01:37:39 Modified files: cm3/m3-sys/m3middle/src/: M3Process.i3 Log message: Reword comment. Win32 isn't broken -- as in the Windows OS, but indeed the Modula-3 implementation here is completely broken and likely doesn't do anything at all, except attempt to kill a random process and raise an exception if that fails (random as in possibly nonexistant, possibly another unrelated process, or just barely possibly, the intended process.) From jay.krell at cornell.edu Mon Feb 21 01:35:38 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 21 Feb 2011 00:35:38 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110221003248.11C9C2474005@birch.elegosoft.com> References: <20110221003248.11C9C2474005@birch.elegosoft.com> Message-ID: Hm. Actually, Win32 is not broken, but libm3/m3middle are clearly incorrect here. - Jay > Date: Mon, 21 Feb 2011 01:32:47 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/02/21 01:32:47 > > Modified files: > cm3/m3-sys/m3middle/src/: M3Process.i3 > > Log message: > remove incorrect comments; Win32 is not broken > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Feb 21 01:39:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 21 Feb 2011 00:39:43 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20110221003248.11C9C2474005@birch.elegosoft.com>, Message-ID: The code here confuses hProcess and dwProcessId. Can we introduce a public function here in libm3 instead of m3middle? ie: to avoid answering the question as to how to expose hProcess? And to avoid the loophole as well? Thanks, - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Mon, 21 Feb 2011 00:35:38 +0000 Hm. Actually, Win32 is not broken, but libm3/m3middle are clearly incorrect here. - Jay > Date: Mon, 21 Feb 2011 01:32:47 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/02/21 01:32:47 > > Modified files: > cm3/m3-sys/m3middle/src/: M3Process.i3 > > Log message: > remove incorrect comments; Win32 is not broken > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Feb 21 12:01:39 2011 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Feb 2011 12:01:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110221110139.B67482474005@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/21 12:01:39 Modified files: cm3/m3-sys/m3middle/src/: M3RT.m3 Target.i3 Target.m3 Log message: Bring back per-target jmpbuf size in all its gory.. at least for now.. From jkrell at elego.de Sat Feb 26 11:23:53 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 26 Feb 2011 11:23:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226102353.E01C92474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/26 11:23:53 Added files: cm3/m3-tools/m3sleep/src/: m3makefile m3sleep.c Log message: add a little sleep clone, that also works on Windows, for m3core/tests/thread to use From jkrell at elego.de Sat Feb 26 11:29:07 2011 From: jkrell at elego.de (Jay Krell) Date: Sat, 26 Feb 2011 11:29:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226102907.15BDA2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/26 11:29:07 Modified files: cm3/m3-libs/m3core/tests/thread/src/: m3makefile Log message: build_standalone From mika at elego.de Sat Feb 26 19:00:32 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:00:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226180032.26FAC2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:00:32 Modified files: cm3/m3-libs/m3core/tests/thread/src/: m3makefile Log message: different Modula-3 compilers use different syntax for build_standalone; as this program is a test, not a part of the compiler, it is useful for it to be compilable on all. From mika at elego.de Sat Feb 26 19:07:45 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:07:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226180745.2057B2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:07:45 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: remove dependency on external program "sleep" instead call Params.Get(0) with argument -sleep From mika at elego.de Sat Feb 26 19:16:40 2011 From: mika at elego.de (Mika Nystrom) Date: Sat, 26 Feb 2011 19:16:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226181640.8C9B02474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/26 19:16:40 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: change newlines to Wr.EOL to remove further OS dependencies From jay.krell at cornell.edu Sat Feb 26 22:14:38 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 26 Feb 2011 21:14:38 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20110226180745.2057B2474003@birch.elegosoft.com> References: <20110226180745.2057B2474003@birch.elegosoft.com> Message-ID: There are two uses. - Jay > Date: Sat, 26 Feb 2011 19:07:45 +0000 > To: m3commit at elegosoft.com > From: mika at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: mika at birch. 11/02/26 19:07:45 > > Modified files: > cm3/m3-libs/m3core/tests/thread/src/: Main.m3 > > Log message: > remove dependency on external program "sleep" > instead call Params.Get(0) with argument -sleep > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Feb 27 00:11:25 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:11:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231126.091F42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:11:25 Added files: cm3/m3-libs/m3core/src/win32/: WinBaseC.c Log message: work in progress: update interlocked support From mika at elego.de Sun Feb 27 00:13:07 2011 From: mika at elego.de (Mika Nystrom) Date: Sun, 27 Feb 2011 0:13:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231307.5B3B42474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: mika at birch. 11/02/27 00:13:07 Modified files: cm3/m3-libs/m3core/tests/thread/src/: Main.m3 Log message: Missed the second use of Unix sleep in last commit From jkrell at elego.de Sun Feb 27 00:17:28 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:17:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226231749.11BD62474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:17:28 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTDebugC.c Log message: remove one space From jkrell at elego.de Sun Feb 27 00:45:28 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:45:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234529.2B37F2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:45:28 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: reduce DisableScheduling/EnablingScheduling window microscopically From jkrell at elego.de Sun Feb 27 00:45:59 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:45:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234600.8AB952474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:45:59 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 Log message: bring InitialPages, MinNewPages back down to 256K, since page size was grown to 64K across the board From jkrell at elego.de Sun Feb 27 00:48:20 2011 From: jkrell at elego.de (Jay Krell) Date: Sun, 27 Feb 2011 0:48:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110226234821.B56142474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 11/02/27 00:48:20 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: when pthread_*_init, pthread_mutex_destroy, pthread_mutex_lock, pthread_mutex_unlock fail, fprintf to stderr and abort Possibly ENOMEM should be handled differently -- raise an exception. Currently, with Mika's threadtest, on Darwin, we get a fair number of EBUSY and EINVAL in these parts. And there are so many threads, that we get more stuff between the fprintf and the abort. From rcoleburn at elego.de Sun Feb 27 20:00:39 2011 From: rcoleburn at elego.de (Randy Coleburn) Date: Sun, 27 Feb 2011 20:00:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20110227190039.310BC2474003@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 11/02/27 20:00:39 Modified files: cm3/scripts/: pkginfo.txt Log message: Add Jay's m3sleep program to the package list so it gets built. I listed it under the "core" group. Not sure if this is best or only group it should be in, so feel free to change if needed.--R.Coleburn